И другие программы этой серии
Пример:
>> [x,y] = meshgrid(-5:5,-4:4);
>> U =x.*x+y.*y
U =
41 34 29 26 25 26 29 34 41
>> V=del2(U)
V =
11 1 111 111 11
11 1 111 111 11
11 1 111 111 11
11 1 111 111 11
11 1 111 111 11
11 1 111 111 11
11 1 111 111 11
11 1 111 111 11
11 1 111 111 11
>> subplot(1,2,1)
>> surfl(U)
>> subplot(1,2,2)
>> surfl(V)
На рис. 8.3 представлены графики поверхностей U и V.
Эти графики построены завершающими командами данного примера.
8.5.2. Аппроксимация производных конечными разностями
Одним из важнейших приложений конечно-разностных методов является приближенное представление производных функций – численное дифференцирование. Оно реализуется следующей функцией:
• diff(X) возвращает конечные разности смежных элементов массива X. Если X – вектор, то diff(X) возвращает вектор разностей соседних элементов [X(2)–X(1) X(3)–X(2) … X(n)–X(n–1)], у которого количество элементов на единицу меньше, чем у исходного вектора X. Если X – матрица, то diff(X) возвращает матрицу разностей столбцов: [X(2:m,:)–X(1:m–1,:)];
Рис. 8.3. Графики функций U и V
diff(X,n) возвращает конечные разности порядка n. Так, diff(X,2) – это то же самое, что и diff(diff(X)). При вычислениях используется рекуррентное уравнение diff(x,n)=diff(x,n-1);
Y = diff(X,n,dim) возвращает конечные разности для матрицы Õ по строкам или по столбцам, в зависимости от значения параметра dim. Если порядок n равен величине dim или превышает ее, то diff возвращает пустой массив. Примеры:
>> X=[1 2 4 6 7 9 3 45 6 7] X =
9 3 456 7
12
4
6
7
>> size(X)
ans =
Начало в части 1