Апроксимация производных конечными разностями
- diff(X) – возвращает конечные разности смежных элементов массива X. Если X – вектор, то diff(X) возвращает вектор разностей соседних элементов [Х(2)-Х(1) Х(3)-Х(2)… X(n)-X(n-D], у которого количество элементов на единицу меньше, чем у исходного вектора X. Если X – матрица, то diff(X) возвращает матрицу разностей столбцов: [X(2:m,:)-X(l:m-l.:)];
- Y = diff(X.n.dim) – возвращает конечные разности для матрицы X по строкам или по столбцам в зависимости от значения параметра dim. Если порядок п равен величине dim или превышает ее, то diff возвращает пустой массив.
Используя функцию diff, можно строить графики производных заданной функции. Пример этого показан ниже:
>
>
X
=
0
:
0.05
:
10
;
>
>
S
=
sin(X);
>
>
D
=
diff(S):
>
>
plot(D
/
0.05
)
Для получения приближенных численных значений производной от функции sin(.r) вектор конечно-разностных значений D поделен на шаг точек по х. Как и следовало ожидать, полученный график очень близок к графику функции косинуса (рис. 16.2). Обратите внимание, что по оси х отложены номера элемента* вектора X, а не истинные значения х.
Пакет расширения Symbolic Math Toolbox позволяет выполнять дифференцирование функций в аналитическом виде, т. е. точно. Это, однако, не всегда нужно.
Рис. 16.2. Приближенный график производной от функции sin(x)