Методы численного дифференцирования. Оценка погрешности. Численное дифференцирование в MATLAB.
ВОПРОС №25
Методы численного дифференцирования применяются, если исходную функцию y(x) трудно или невозможно продифференцировать аналитически.
Погрешность производной интерполирующей функции равна производной от погрешности этой функции. То же самое справедливо и для производных высших порядков.
Пусть введена как интерполяционный многочлен Ньютона, тогда в случаедля производной неравномерной сетки имеет место общая формула:
На практике чаще всего используются упрощенные формулы для равномерной сетки, при этом точность нередко повышается. Часто используются следующие формулы вычисления производных:
по двум узлам: + О(h) (1)
по трём узлам: + О(h2) (2)
+ О(h2), (3)
где h = x1 – x0 = const.
Минимальное количество узлов, необходимое для вычисления конечных разностей какого-либо порядка, должно быть на единицу больше этого порядка.
Символьное дифференцирование выполняет команда
diff(<fun>, <x>, <n>),где <fun> - символьная запись функции или её имя, <x> - переменная дифференцирования, <n> - порядок (номер) производной, которую необходимо найти.
Функция polyder предназначена для вычисления производной не только от полинома, но и от произведения и частного двух полиномов.
Вычисления численного значения производной в некоторой:
subs (<fun>, <x>, <knot>).
В общем виде функция subs вызывается с тремя параметрами: первый – символьная функция или её имя, второй – переменная, подлежащая замене, третий – значение или выражение, которое нужно подставить вместо переменной
Для численного дифференцирования табличной функции двух переменных z(x,y) в MATLAB имеется функция, вычисляющая цифровой аналог градиента:
[gx,gy]=gradient(z,hx,hy)