exponenta event banner

Расчет касательной плоскости к поверхности

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

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

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

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

[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 матрицы представляют собой аппроксимации к частным производным ∂f∂x и ∂f∂y. Точка, представляющая интерес в этом примере, где касательная плоскость соответствует функциональной поверхности, (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.

См. также

Связанные темы