Вычисление плоскости касательной, чтобы появиться

В этом примере показано, как аппроксимировать градиенты функции конечными разностями. Это затем показывает, как построить плоскость касательной к точке на поверхности при помощи этих аппроксимированных градиентов.

Создайте функцию f(x,y)=x2+y2 использование указателя на функцию.

f = @(x,y) x.^2 + y.^2;

Аппроксимируйте частные производные f(x,y) относительно x и y при помощи gradient функция. Выберите длину конечной разности, которая совпадает с размером mesh.

[xx,yy] = meshgrid(-5:0.25:5);
[fx,fy] = gradient(f(xx,yy),0.25);

Плоскость касательной к точке на поверхности, P=(x0,y0,f(x0,y0)), дают

z=f(x0,y0)+f(x0,y0)x(x-x0)+f(x0,y0)y(y-y0).

fx и fy матрицы являются приближениями к частным производным 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);

Постройте исходную функцию f(x,y), точка 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*')

Figure contains an axes. The axes contains 3 objects of type surface, line.

Посмотрите профиль стороны.

view(-135,9)

Figure contains an axes. The axes contains 3 objects of type surface, line.

Смотрите также

Похожие темы