Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 Общая формула для n-й производной
Аватара пользователя
Хочется поделиться с вами небольшим достижением. Я, вообще говоря, не математик. И как работают с математическими доказательствами, плохо себе представляю. Но недавно мне пришлось стать математиком. Дело в том, что я работаю программистом в одной лаборатории и там нужно реализовывать различные математические алгоритмы. Мне дали задание взять 4-ю производную от функции. Как это делать, я не знал. Поэтому решил начать работу от определения.

Итак, в математическом анализе производная функции f(x) в точке x0 определяется в виде:
$$f'(x_0) =\lim_{{\Delta x} \to {\infty}}\frac{{f(x_0 + \Delta x) - f(x_0)}}{{\Delta x}}$$
Теперь посмотрим, что представляет из себя 2-я и 3-я производная. Чтобы получить вторую производную, я принимаю, что F2(x) = f'(x). Произвожу операции над F2(x) по первой формуле и получаю:
$$f''(x_0) =\lim_{{\Delta x} \to {\infty}}\frac{{f(x_0 + 2\Delta x) - 2 f(x_0 + \Delta x) + f(x_0)}}{{(\Delta x)^2}}$$
Для 3-й производной:
$$f'''(x_0) =\lim_{{\Delta x} \to {\infty}}\frac{{f(x_0 + 3\Delta x)-3f(x_0 + 2\Delta x) + 3 f(x_0 + \Delta x) - f(x_0)}}{{(\Delta x)^2}}$$
Я думаю, далее не стоит продолжать и можно обобщить формулу:
$$f^n(x_0) = \lim_{\Delta x \to \infty}\sum_{k=0}^{n}(-1)^{n+k}{n \choose k}\frac{f(x_0+k\Delta x)}{(\Delta x)^n}$$
Не знаю, а сколько эта фармула полезна в матане. Но вот для программы она очень хороша:

Имеются значения аргументов функции $\{x_0, x_1, x_2, ..., x_m\} = \{x_0, x_0 + T, x_0 + 2T, ..., x_0 + mT\}$, где $T = x_1 - x_0$ и значения функции$ \{y_0, y_1, y_2, ..., y_m\}$. Чтобы получить массив n-й производной, используем обобщенныую формулу, полученную выше. Только сделаем замену $\Delta x = T$ и $f(x_0+k\Delta x) = y_{0+k}$. Получаем
$$f^n(x_i) = \sum_{k=0}^{n}(-1)^{n+k}{n \choose k}\frac{y_{i+k}}{T^n}, \mbox{где i} = 0, 1, ..., m-n$$
Руками проверил формулу. Вот что получается для значений $\{x_0, x_1, x_2\}$ и $\{y_0, y_1, y_2\}$

Первая производная для точек x0, x1:
$$\left\{\frac{y_1-y_0}{T}, \frac{y_2-y_1}{T}\right\}$$
Вторая производная для точки x0:
$$\left\{\frac{y_2-2y_1+y_0}{T^2}\right\}$$
Зачем я все это писал. Во-первых, для того, чтобы найти ошибку в том, что я делал. Во-вторых, если формула правильная, мне бы хотелось узнать, есть ли где-то упоминание о ней. Вне сомнения она важна. Я так же уверен, что ее раньше получали, но до сего момента она мне не попадалась. Очень странно. В-третьих, это вам жвачка для мозгов и для расширепния знаний.

 Re: Общая формула для n-й производной
Аватара пользователя
Есть понятия "конечные разности", "разностная схема", которые используются при численном решении дифференциальных уравнений. Кроме выведенных Вами есть и другие схемы аппроксимации производных, позволяющие увеличить точность расчётов. Например, $\dfrac {y_2-y_0}{2T}$ для приближения первой производной в $x_1$.

 Re: Общая формула для n-й производной
Аватара пользователя
gris
Ваш ответ расцениваю как правильность выводов. Это уже хорошо.

Да, про разностные схемы знаю. Но тут есть причина, по которой я взялся за вывод обобщенной формулы. Я не нашел 4-ю разностную производную. Вполне возможно плохо искал и угробил время. Но, во-первых, это было очень инетесно, во-вторых, многое прояснило в моей голове. Так что польза большая.

Кстати. При увеличении точности увеличивается количество точек, которые нужно использовать для получения производной. Это значит, что увеличивая точность расчетов, мы уменьшаем количество значений n-й производной и уменьшаем количество производных, которые мы можем получить. Что не есть хорошо.

 Re: Общая формула для n-й производной
Аватара пользователя
Всегда полезно открыть что-то даже известное самому. Я некогда читал книгу "Повышение точности решения разностных схем"и тоже программировал решение разных дифференциальных уравнений, и сразу вспомнил былое, прочитав Ваше сообщение :-) .

 Re: Общая формула для n-й производной
Аватара пользователя
На всякий случай, думаю, стоит напомнить топикстартеру, что задача численного дифференцирования некорректно поставлена. Пользоваться, например, приведёнными Вами формулами можно, но надо иметь ввиду, что при «ухудшении» точности значений $x_i$, $y_i$ точность вычисления производных «ухудшается» гораздо быстрее. Условно говоря, если $x_i$, $y_i$ вычислены с точностью до 10 знаков после запятой, $y^{(4)}(x_0)$ получится с двумя-тремя точными знаками. Цифры я сейчас взял с потолка, конкретные формулы для точности можете найти в справочниках, или ради интереса сами вывести, там ничего сложного нет.

 Re: Общая формула для n-й производной
Cobert
Вообще если есть интерес в этой теме, посмотрите про формулу Тейлора - насколько я помню, именно она используется для выведения конечно-разностных схем, а также точности их оценок. Если будете смотреть - обратите внимание на формулу Тейлора с остаточным членом в виде Лагранжа.

 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group