Исчисление, как вы можете найти уравнение из ряда чисел? - PullRequest
1 голос
/ 12 января 2010

Я анализирую финансовые данные и хотел бы найти точки перегиба линии. Я знаю, что могу сделать это, используя производные, но сначала мне нужно уравнение. Есть ли способ создать уравнение, основанное на серии чисел. Мне нужно сделать это программно.

Ответы [ 4 ]

12 голосов
/ 12 января 2010

Сплайн-интерполяция, вероятно, более полезна для вас, чем полиномиальная интерполяция: если вы подходите полиному, он неизбежно должен уйти на +/- бесконечность за пределы вашего диапазона данных.

Вам также понадобится метод, который допускает слегка неполную подгонку: финансовые данные часто бывают немного шумными, что может привести к очень странным кривым, если вы попытаетесь точно их подогнать.

8 голосов
/ 12 января 2010

Существуют установленные процедуры для преобразования набора существующих точек данных в полином; это называется полиномиальная интерполяция . Эта статья в Википедии: http://en.wikipedia.org/wiki/Polynomial_interpolation объясняет это математически. Вы можете, вероятно, легко найти Google для алгоритмов.

При наличии достаточного количества точек ваш полином достаточно хорошо отслеживает исходную неизвестную функцию, поэтому точки перегиба полинома должны примерно совпадать с пиками и впадинами ваших данных.

С другой стороны, мы все знаем, что на самом деле за финансовыми данными нет функции. Поэтому на вашем месте я бы просканировал вдоль этих точек и нашел бы каждую точку, которая имеет меньшее значение по обе стороны от нее, и объявил бы это высоким; и наоборот для минимумов. Принудительное встраивание этих данных в фиктивную функцию не сделает их более полезными.

Обновление: Том Смит советует, что сплайн-интерполяция предпочтительнее полиномиальной интерполяции для такого рода вещей, и Википедия подтверждает это. Или скорее это бычий ответ.

0 голосов
/ 12 января 2010

Я думаю, что в этом случае вам поможет кривая. Вот обсуждение , которое может пригодиться.

ура

0 голосов
/ 12 января 2010

То, что вы думаете, является аналитическим исчислением ... когда вы имеете дискретные данные (например, баллы), вы должны делать это численно. Теперь линия обычно не имеет точек перегиба, поэтому я думаю, что вы думаете о кривой. Вы можете либо интерполировать некоторый вид через точки, а затем вычислить первую производную (также численно, но для большего числа точек), или вы можете просто рассчитать первую производную от точек, которые у вас есть (что будет лучше, зависит от сколько очков у вас на самом деле).

Но на самом деле, это просто теория, поскольку мы не знаем природу данных, языка или чего-либо еще.

Подробнее о предмете поиска: Числовой анализ в вики и перейдите оттуда.

...