Этот пример показывает, как аппроксимировать градиенты функции конечными различиями. Затем показано, как построить график касательной плоскости к точке на поверхности с помощью этих аппроксимированных градиентов.
Создайте функцию использование указателя на функцию.
f = @(x,y) x.^2 + y.^2;
Аппроксимируйте частные производные по отношению к и при помощи gradient
функция. Выберите конечную длину различия, которая совпадает с размером сетки.
[xx,yy] = meshgrid(-5:0.25:5); [fx,fy] = gradient(f(xx,yy),0.25);
Касательная плоскость к точке на поверхности, , задается как
The fx
и fy
матрицы являются приближениями к частным производным и . Точка интереса в этом примере, где тангенциальная плоскость встречается с функциональной поверхностью, является (x0,y0) = (1,2)
. Значение функции в этой интересующей точке f(1,2) = 5
.
Для аппроксимации касательной плоскости z
вы должны найти значение производных в точке интереса. Получите индекс этой точки и найдите там приблизительные производные.
x0 = 1; y0 = 2; t = (xx == x0) & (yy == y0); indt = find(t); fx0 = fx(indt); fy0 = fy(indt);
Создайте указатель на функцию с уравнением касательной плоскости z
.
z = @(x,y) f(x0,y0) + fx0*(x-x0) + fy0*(y-y0);
Постройте график исходной функции , точка P
и кусок плоскости z
тангенс функции в P
.
surf(xx,yy,f(xx,yy),'EdgeAlpha',0.7,'FaceAlpha',0.9) hold on surf(xx,yy,z(xx,yy)) plot3(1,2,f(1,2),'r*')
Просмотр бокового профиля.
view(-135,9)