2. Изобразить на координатной плоскости линии уровня для функции , придавая значения от до через 1.
а) Построить в MATLAB линии уровня непосредственно по заданию. б) построить поверхность, состоящую из линий уровня при помощи функции с шагом 0,1. в) построить плоские линии уровня без нанесения и с нанесением значений функции с шагом 0,5. Нанести сетку.
clc;
x=-20:0.1:20;
y=-20:0.1:20;
[X,Y]=meshgrid(x,y);
Z=X-12+X.^2/3+Y.^2;
figure(1);
contour(X,Y,Z);
x=-8:0.1:5;
y=-4:0.1:4;
[X,Y]=meshgrid(x,y);
Z1=X-12+X.^2/3+Y.^2;
levels=[-13:1:1];
figure(2);
grid on;
contour3(X,Y,Z1,levels)
levels=[-2:0.1:1];
figure(3);
contour3(X,Y,Z1,levels)
Z=X-12+X.^2/3+Y.^2;
figure(4);
[C,h]=contour(X,Y,Z,6);
clabel(C,h)
figure(5);
grid on;
contour(X,Y,Z,6);
3. Записать уравнения касательной плоскости и нормали к поверхности s в точке m0
.
а) Изобразить в MATLAB поверхность, б) изобразить в MATLAB на одном рисунке поверхность локально около точки M0 , касательную плоскость и нормаль. Выбрать несколько ракурсов рисунка
Решение:
Рассмотрим
Уравнение касательной плоскости:
Уравнение нормали
clc;
x=-4:0.1:6;
N=length(x);
y=-5:0.1:5;
M=length(y);
for i=1:N
for j=1:M
R(i,j)=sqrt(8*(x(i)-y(j))^2+113)/4;
z1(i,j)=3/4+R(i,j);
z2(i,j)=3/4-R(i,j);
p(i,j)=-2*(10+x(i)-y(j))/11;
end
end
figure(1);
mesh(x,y,z1);% одна половина поверхности
hold on;
mesh(x,y,z2);% другая половина поверхности
hold off;
figure(2);
mesh(x,y,z2);
hold on;
mesh(x,y,p);% касательная плоскость
t=-5.5:1.1:5.5;
x1=1-2*t./11;
y1=2*t./11;
z1=-2+t;
plot3(x1,y1,z1);% нормаль
4. Найдите точное ( ) и приближенные ( ) , ( ) значения функции
в точке (4,05; 2,96)
найти, используя полный дифференциал функции двух переменных; - используя формулу Тейлора до 2-го порядка включительно
а) в MATLAB на одном рисунке построить локально около исследуемой точки поверхность и поверхность . Провести через т вертикальную линию параллельно оси аппликат OZ. Отметить точное значение функции на поверхности и приближенное значение на поверхности . Показать разность (выделить жирный отрезок на прямой) приращения аппликаты .
б) На втором рисунке тоже самое проделать с поверхностью и функцией Провести вертикальную линию параллельно оси аппликат OZ. Отметить точное значение функции на поверхности и приближенное значение на поверхности . Показать разность (выделить жирный отрезок на прямой) приращения аппликаты .
Решение:
Положим . Тогда,
Приближенная формула через первый дифференциал:
.
Приближенная формула через второй дифференциал:
clc; clear all; clf;
a=4;b=3;ax=0.05;by=-0.04;p=a+ax;q=b+by;
syms x y
f=sqrt(x^2+y^2);
Px=diff(f,x);% частная производная по x
Py=diff(f,y);% частная производная по y
A=double(subs(subs(f,x,a),y,b));% значеник функции в точке (4;3)
disp('Точное значение в точке (4,05;2,96):');
B=double(subs(subs(f,x,p),y,q))% Точное значение в точке (4,05;2,96)
Dx=subs(subs(Px,x,a),y,b);% частный дифференциал по x
Dy=subs(subs(Py,x,a),y,b);% частный дифференциал по y
X=double(Dx)*ax;% значение частного дифференциала
Y=double(Dy)*by;% значение частного дифференциала
disp('Приближенное значение в точке (4,05;2,96),через дифференциал:');
B1=double(A+X+Y)
disp('Абсолютная погрешность:');
E=double(abs(B-B1))
P2x=diff(f,x,2);% 2-я производная по x
P2y=diff(f,y,2);% 2-я производная по y
P2xy=diff(Px,y);% смешанная производная
D2x=subs(subs(P2x,x,a),y,b);%
D2y=subs(subs(P2y,x,a),y,b);%
D2xy=subs(subs(P2xy,x,a),y,b);%
X2=double(D2x)*ax*ax;
Y2=double(D2y)*by*by;
XY=double(D2xy)*ax*by;
disp('Приближенное значение в точке (4,05;2,96),через формулу Тейлора:');
BT=double(A+X+Y+(X2+2*Y2+XY)/2)
disp('Абсолютная погрешность:');
E2=double(abs(B-BT))
h=0.1;
x=(p-5):h:(p+5);
y=(q-5):h:(q+5);
N=length(y);
for i=1:1:N
for j=1:1:N
z(i,j)=sqrt(x(i)^2+y(j)^2);
zp(i,j)=double(Dx)*x(i)+double(Dy)*y(j);
end
end
figure(1);
mesh(x,y,z);% поверхность f(x,y)
hold on;
mesh(x,y,zp);% поверхность df(x,y)
t=-5:0.1:10;
x1=p+t.*0;
y1=q+t.*0;
z1=t.*1;
plot3(x1,y1,z1,'r');% нормаль
h=0.0001;
x=(p-0.001):h:(p+0.001);
y=(q-0.001):h:(q+0.001);
N=length(y);
for i=1:1:N
for j=1:1:N
z0(i,j)=sqrt(x(i)^2+y(j)^2);
end
end
figure(2);
mesh(x,y,z0);% поверхность f(x,y)
hold on;
q=[4.05 2.96 B;4.05 2.96 B1];
qx=q; qx(:,1)=0;
qy=q; qy(:,2)=0;
qz=q; qz(:,3)=0;
plot3(q(:,1),q(:,2),q(:,3),'*-');%
grid on;
Полученный ответ в командном окне:
Точное значение в точке (4,05;2,96):
B = 5.0164
Приближенное значение в точке (4,05;2,96),через дифференциал:
B1 =5.0160
Абсолютная погрешность:
E = 3.8316e-04
Приближенное значение в точке (4,05;2,96),через формулу Тейлора:
BT =5.0164
Абсолютная погрешность:
E2 =7.6408e-06
>>
Фигура 1. Ракурс 1.
Фигура 1. Ракурс 2.
Фигура 1. Ракурс 3.
Фигура 2. Ракурс 1.
Фигура 2. Ракурс 2.
5. Найти точки безусловного экстремума (добавить исследование в письменную часть). а) В MATLAB построить поверхность , по возможности, определить визуально наличие и примерное расположение точек безусловного минимума и максимума функции . Отметить точки на рисунках в матлаб, сравнить с письменным исследованием.
б) В MATLAB построить на поверхности кривую, определяемую ограничением . По возможности, определить визуально наличие и примерное расположение точек условного минимума и максимума этой функции при данном ограничении.
в,г,д) Изобразить эту же кривую без самой поверхности в пространстве и в различных ракурсах (в плоскости OZX, OZY), отметить на рисунке точки условного экстремума. Найти точки экстремума функции при условии, что (использовать прямой метод)
.
Решение: Из условия . Подставим в .
- парабола. ветви параболы направлены вниз. Критическая точка: точка максимума.
x=0:0.01:1;
y=x-x.*x;
plot(x,y);
Итак, координаты точки максимума: .
Поверхность и плоскость пересекаются по параболе
Показана точка максимума
В различных ракурсах (в плоскости OZX, OZY) изображения одинаковы