Контрольная
работа №2
КОМПЬЮТЕРНЫЙ
ПРАКТИКУМ ПО МАТЕМАТИЧЕСКОМУ АНАЛИЗУ
НИКИТИНА
ДАРЬЯ ПИН-21Д
1.
.
а) Изобразить в MATLAB график функции,
б) изобразить в MATLAB область определения
Линии, не принадлежащие области определения, выделять пунктиром!!!
2.
Изобразить
на координатной плоскости линии уровня
для функции
,
придавая
значения от
до
через 1.
а) Построить в MATLAB линии уровня непосредственно по заданию. б) построить поверхность, состоящую из линий уровня при помощи функции с шагом 0,1. в) построить плоские линии уровня без нанесения и с нанесением значений функции с шагом 0,5. Нанести сетку.
3. Записать уравнения касательной плоскости и нормали к поверхности S в точке M0
.
а) Изобразить в MATLAB поверхность, б) изобразить в MATLAB на одном рисунке поверхность локально около точки M0 , касательную плоскость и нормаль. Выбрать несколько ракурсов рисунка
4.
Найдите точное (
) и приближенные (
)
, (
)
значения функции
в
точке (4,05; 2,96)
найти, используя полный дифференциал функции двух переменных; - используя формулу Тейлора до 2-го порядка включительно
а)
в MATLAB
на одном рисунке построить локально
около исследуемой точки
поверхность
и поверхность
.
Провести через т
вертикальную линию параллельно оси
аппликат OZ.
Отметить точное значение функции
на поверхности
и приближенное значение на поверхности
.
Показать разность (выделить
жирный отрезок
на прямой)
приращения аппликаты
.
б)
На втором рисунке тоже самое проделать
с поверхностью
и функцией
Провести вертикальную линию
параллельно оси аппликат OZ.
Отметить точное значение функции
на поверхности
и приближенное значение на поверхности
.
Показать разность (выделить
жирный отрезок
на прямой)
приращения аппликаты
.
5. Найти точки безусловного экстремума (добавить исследование в письменную часть). а) В MATLAB построить поверхность , по возможности, определить визуально наличие и примерное расположение точек безусловного минимума и максимума функции . Отметить точки на рисунках в матлаб, сравнить с письменным исследованием.
б)
В MATLAB
построить
на поверхности
кривую,
определяемую ограничением
.
По возможности, определить визуально
наличие и примерное расположение точек
условного
минимума и максимума
этой функции при данном ограничении.
в,г,д)
Изобразить эту же кривую без самой
поверхности в пространстве и в различных
ракурсах (в
плоскости OZX,
OZY),
отметить на рисунке точки условного
экстремума.
Найти точки экстремума
функции
при условии, что
(использовать прямой метод)
.
Результаты, полученные в MATLAB, должны снабжаться краткими пояснениями. На рисунках экономить ненужно. Бывает не лишним сделать рисунки в различных приближениях и ракурсах.
1. .
а) Изобразить в MATLAB график функции,
б) изобразить в MATLAB область определения
Линии, не принадлежащие области определения, выделять пунктиром!!!
Решение:
ООФ:
Область определения функции (темно синяя область), граница (парабола) не входит.
При
подходе точки к границе (парабола)
,
поэтому, для наглядности, поверхность
обрезали снизу плоскостью
clc;
Minx=-10;%нижняя граница оси X
Maxx=100;%верхняя граница оси X
Miny=-20;%нижняя граница оси Y
Maxy=20;%верхняя граница оси Y
x=Minx:0.1:Maxx;% сетка по оси X
X=[Minx Maxx];
Y=[Miny Maxy];
Z=[0 0];% линия координат
hold on
x=-2:0.1:100;%сетка по оси OX
y=2*sqrt(x+2);% верхняя полупарабола
y1=-2*sqrt(x+2);% нижняя полупарабола
figure(1);
hold on;
X1=[-20 100 100 -20 -20];
Y1=[-25 -25 25 25 -25];
fill(X1,Y1,[0 0 1]);% закрашивание прямоугольника
fill([x fliplr(x)], [y fliplr(y1)], [1 1 1])% закрашивание внутренности параболы
plot(x,y,'g:',x,y1,'g:');% график параболы
plot(X,Z, 'k');% ось X
plot(Z,Y, 'k');% ось Y
x=-50:1:50;%сетка по оси OX
y=-50:1:50;
y1=-50:1:50;
N=length(x);
for i=1:1:N
for j=1:1:N
a(i,j)=y(i)^2-x(j)*4+8;
a1(i,j)=y1(i)^2-x(j)*4+8;
if a(i,j)<=0.001
z(i,j)=-5;% обрезка нижней части поверхности
else
z(i,j)=log(a(i,j));
end
if a1(i,j)<=0.001
z1(i,j)=-5;% обрезка нижней части поверхности
else
z1(i,j)=log(a(i,j));%формирование 3-й координаты поверхности
end
end
end
figure(2);
mesh(x,y,z);% одна половина (y>0)поверхности
hold on;
mesh(x,y1,z1);% другая половина (y<0)поверхности
а) Построить в 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);
.
а) Изобразить в 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,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);