Лабораторная
работа №5
Компьютерный
практикум по математическому анализу
никитина
дарья пин-21д
clear;clc;close all
% Практикум 6. Дифференцирование функции нескольких переменных.
% Упражнение 1. (Upr_6_1.m)
disp(' Вычисление частных производных')
syms x y
z=cos(x+y^2);
dzdx=diff(z,x) ; disp( 'z''x=')
disp( dzdx)
dzdy=diff(z,y);
disp( 'z''y='); disp( dzdy)
d2zdx=diff(z,x,2);
disp( 'z''''x='); disp( d2zdx)
d2zdy=diff(z,y,2);
disp( 'z''''y='); disp( d2zdy)
d2zdxdy=diff(dzdx,y);
disp( 'z''''xy='); disp( d2zdxdy)
% Поиск градиента функции а точке (1, 2, -3)
disp('Вычисление градиента функции')
syms x y z
v=2*x^3*y+x-z;
disp(v)
Grs=[diff(v,x) diff(v,y) diff(v,z)];
disp('Символьный вид градиента')
disp(Grs)
Gr=subs(Grs,[x, y,z],[1,2,-3]);
disp('Значение градиента в точке (1, 2, -3)')
disp(Gr)
Вычисление частных производных
z'x=
-sin(y^2 + x)
z'y=
-2*y*sin(y^2 + x)
z''x=
-cos(y^2 + x)
z''y=
- 2*sin(y^2 + x) - 4*y^2*cos(y^2 + x)
z''xy=
-2*y*cos(y^2 + x)
Вычисление градиента функции
2*y*x^3 + x - z
Символьный вид градиента
[ 6*y*x^2 + 1, 2*x^3, -1]
Значение градиента в точке (1, 2, -3)
[ 13, 2, -1]
clear;clc
% Практикум 6. Дифференцирование функции нескольких переменных.
% Упражнение 2. (Upr_6_2.m)
syms r t z
% а) Вычислите якобиан перехода от декартовой системы координат к цилиндрической
% формулы перехода от декартовой системы координат к цилиндрической
x=r*cos(t);
y=r*sin(t);
z=z;
disp('Якобиан перехода от декартовой системы координат к цилиндрической')
A=[diff([x;y;z],r) diff([x;y;z],t) diff([x;y;z],z) ]
disp('Определитель Якобиана')
I=det(A)
disp('Упрощенное выражение определителя')
I=simplify(I)
disp('Якобиан перехода от декартовой системы координат к сферической')
% а) Вычислите якобиан перехода от декартовой системы координат к
% сферической
syms r t z u
% формулы перехода от декартовой системы координат к сферической
x=r*cos(t)*cos(u);
y=r*sin(t)*cos(u);
z=r*sin(u);
A=[diff([x;y;z],r) diff([x;y;z],t) diff([x;y;z],u) ]
disp('Определитель Якобиана')
I=det(A)
disp('Упрощенное выражение определителя')
I=simplify(I)
Якобиан перехода от декартовой системы координат к цилиндрической
A =
[ cos(t), -r*sin(t), 0]
[ sin(t), r*cos(t), 0]
[ 0, 0, 1]
Определитель Якобиана
I =
r*cos(t)^2 + r*sin(t)^2
Упрощенное выражение определителя
I =
r
Якобиан перехода от декартовой системы координат к сферической
A =
[ cos(t)*cos(u), -r*cos(u)*sin(t), -r*cos(t)*sin(u)]
[ cos(u)*sin(t), r*cos(t)*cos(u), -r*sin(t)*sin(u)]
[ sin(u), 0, r*cos(u)]
Определитель Якобиана
I =
r^2*cos(t)^2*cos(u)^3 + r^2*cos(t)^2*cos(u)*sin(u)^2 + r^2*cos(u)^3*sin(t)^2 + r^2*cos(u)*sin(t)^2*sin(u)^2
Упрощенное выражение определителя
I =
r^2*cos(u)
clear;clc
% Практикум 6. Дифференцирование функции нескольких переменных.
% Упражнение 3a). (Upr_6_3а.m)
%а) Найдите первый дифференциал dz функции
syms x y z dx dy
z=x*y^2+2*y-x^2
dzx=diff(z,x)
dzy=diff(z,y)
d1x=0.1; d1y=0.2;
x0=2;y0=-1;
disp('Дифференциал 1-го порядка в символьном виде')
dzs=dzx*dx+ dzy*dy
disp('Численное значение дифференциала 1-го порядка ')
dz=subs(dzx,[x,y],[x0,y0])*d1x+subs(dzy,[x,y],[x0,y0])*d1y
z =
- x^2 + x*y^2 + 2*y
dzx =
y^2 - 2*x
dzy =
2*x*y + 2
Дифференциал 1-го порядка в символьном виде
dzs =
dy*(2*x*y + 2) - dx*(- y^2 + 2*x)
Численное значение дифференциала 1-го порядка
dz =
-7/10
clear;clc
% Практикум 6. Дифференцирование функции нескольких переменных.
% Упражнение 3a). (Upr_6_3b.m)
%а) Найдите первый дифференциал dz функции
global z
syms x y z
z=x*y^2+2*y-x^2
dx=0.1; dy=0.2;
x0=2;y0=-1;
disp('Дифференциал 1-го порядка')
[dzs,dz]=Dif(x0,y0,dx,dy);% Обращение к функции вычисляющей 1-й дифференциал
disp('Дифференциал 1-го порядка в символьном виде')
disp(dzs)
disp('Численное значение дифференциала 1-го порядка ')
disp(dz)
function [dzs,dz]=Dif(x0,y0,dx,dy)
% Функция вычисляет дифференциал 1-го порядка
% символьно и численно
syms x y z dz d1x d1y
global z
dzx=diff(z,x);
dzy=diff(z,y);
dzs=dzx*d1x+ dzy*d1y;
dz=subs(dzx,[x,y],[x0,y0])*dx+subs(dzy,[x,y],[x0,y0])*dy;
z =
- x^2 + x*y^2 + 2*y
Дифференциал 1-го порядка в символьном виде
d1y*(2*x*y + 2) - d1x*(- y^2 + 2*x)
Численное значение дифференциала 1-го порядка
-7/10
% Практикум 6. Дифференцирование функции нескольких переменных.
% Формула Тейлора
% Упражнение 4. (Upr_6_4.m)
% Найдите второй дифференциал d2z функции
syms x y z dx dy
global z
z=x*y^2+2*y-x^2
dx=0.1; dy=-0.2;
x0=2;y0=-1;
[d2zs,d2z]=Dif2(x0,y0,dx,dy);% Обращение к функции вычисляющей 2-й дифференциал
disp('Дифференциал 2-го порядка в символьном виде')
disp(d2zs)
disp('Численное значение дифференциала 1-го порядка ')
disp(d2z)
function [d2zs,d2z]=Dif2(x0,y0,dx,dy)
% Функция вычисляет дифференциал 2-го порядка
% символьно и численно
syms x y z dz d1x d1y
global z
d2zx=diff(z,x,2);
d2zy=diff(z,y,2);
dzxy=diff(z,x,y);
d2zs=d2zx*d1x^2+ dzxy*d1x*d1y+d2zy*d1y^2;
d2z=subs(d2zx,[x,y],[x0,y0])*dx^2+subs(dzxy,[x,y],[x0,y0])*dx*dy+subs(d2zy,[x,y],[x0,y0])*dy^2;
z =
- x^2 + x*y^2 + 2*y
Дифференциал 2-го порядка в символьном виде
- 2*d1x^2 + 2*y*d1x*d1y + 2*x*d1y^2
Численное значение дифференциала 1-го порядка
9/50
clear;clc
% Практикум 6. Дифференцирование функции нескольких переменных.
% Приближенное вычисление функции в заданной точке с помощью %дифференциала 1-го и 2-го порядка и разложение ее в ряд Тейлора 1-го и 2-го порядка
% Упражнение 5. (Upr_6_5.m)
disp(' ')
global z
syms x y z
z=input('Введите функцию двух переменных ','s');
x0=input('Координата х0= ');
y0=input('Координата y0= ');
dx=input('Смещение dх= ');
dy=input('Смещение dy= ');
disp(' ')
disp('Использование дифференциала 1-го порядка и ряда Тейлора 1-го порядка ')
disp(' ')
[P1T,P1d]=Taylor_1(x0,y0,dx,dy);% Обращение к функции
fprintf('Приближенное значение функции z(x0+dx,y0+dy)=z(x0,y0)+dz =% 5.4f\n',double(P1d))
disp('Функция Тейлора 1-го порядка P1T(x,y) ')
disp(P1T)
F1t=inline(P1T);
P1Tt=subs(P1T,[x,y],[x0+dx,y0+dy]);
fprintf('Значение функции Тейлора 1-го пор. в точке (x0+dx; y0+dy) = %5.4f\n',double(P1Tt))
disp(' ')
disp('Использование дифференциала 2-го порядка и ряда Тейлора 2-го порядка ')
disp(' ')
[P2T,P2d]=Taylor_2(x0,y0, dx, dy);
fprintf('Приближенное значение функции z(x0,y0)+dz+d2z=% 5.4f\n',double(P2d))
disp('Функция Тейлора 2-го порядка P2T(x,y) ')
disp(simplify(P2T))
F2t=inline(P2T);
P2Tt=subs(P2T,[x,y],[x0+dx,y0+dy]);
fprintf('Значение функции Тейлора 2-го пор. в точке (x0+dx; y0+dy) = %5.4f\n',double(P2Tt))
fz=double(subs(z,[x,y],[x0+dx,y0+dy]));
fprintf(' Точное значение функции z(x+dx; y+dy) = %5.4f\n',fz)
function [P1T,P1d]=Taylor_1(x0,y0,dx,dy)
% Определение значения функции с помощью дифференциала 1-го порядка
% и разложения функции в ряд Тейлора 1-го порядка
% P1T - ряд Тейлора 1-го порядка
% P1d - значение функции, вычисленное с помощью дифференц. 1-го порядка
syms x y z dz
global z
dzx=diff(z,x);% z'x
dzy=diff(z,y);% z'y
% Символьное представление функции P1(x,y)в окрестности точки (x0,y0)
P1T=subs(z,[x,y],[x0,y0])+subs(dzx,[x,y],[x0,y0])*(x-x0)+subs(dzy,[x,y],[x0,y0])*(y-y0);
dz=subs(dzx,[x,y],[x0,y0])*dx+subs(dzy,[x,y],[x0,y0])*dy; %Дифференциал 1-го порядка
P1d=subs(z,[x,y],[x0,y0])+dz; % Значение функции z(x+dx,y+dy)
function [P2T,P2d]=Taylor_2(x0,y0,dx,dy)
% Определение значения функции с помощью дифференциала 2-го порядка
% и разложения функции в ряд Тейлора 2-го порядка
% P2T - ряд Тейлора 2-го порядка
% P2d - значение функции, вычисленное с помощью дифференц. 2-го порядка
syms x y z dz
global z
dzx=diff(z,x);
dzy=diff(z,y);
d2zx=diff(z,x,2);
d2zy=diff(z,y,2);
dzxy=diff(z,x,y);
% Символьное представление функции P2(x,y)в окрестности точки (x0,y0)
P2T=subs(z,[x,y],[x0,y0])+subs(dzx,[x,y],[x0,y0])*(x-x0)+subs(dzy,[x,y],[x0,y0])*(y-y0)+ ...
subs(d2zx,[x,y],[x0,y0])*(x-x0)^2/2+subs(d2zy,[x,y],[x0,y0])*(y-y0)^2/2+ ...
subs(dzxy,[x,y],[x0,y0])*(x-x0)*(y-y0);
dz=subs(dzx,[x,y],[x0,y0])*dx+subs(dzy,[x,y],[x0,y0])*dy; %Дифференциал 1-го порядка
d2z=subs(d2zx,[x,y],[x0,y0])*dx^2+2*subs(dzxy,[x,y],[x0,y0])*dx*dy+subs(d2zy,[x,y],[x0,y0])*dy^2;
P2d=subs(z,[x,y],[x0,y0])+dz+d2z; % Значение функции z(x+dx,y+dy)
% Построение поверхностей заданной функции и функций ее разложений в ряд
% Тейлора 1-го и 2-го порядка
x1=linspace(-6,6,20);
y1=linspace(-6,6,20);
[X, Y]=meshgrid(x1,y1);
Z=(2*X.^2+Y.^2).^2;
Z1= F1t(X,Y);
Z2= F2t(X,Y);
mesh(X,Y,Z1) ;
xlabel('x'); ylabel('y'); zlabel('z')
legend('Поверхность z=(2x^2+y^2)^2','Ряд Тейлора 1-го пор', 'Ряд Тейлора 2-го пор.','Location','northoutside','Orientation','horizontal')
hold on
mesh(X,Y,Z2) ;
surf(X,Y,Z)
plot3(x0,y0,subs(z,[x,y],[x0,y0]),'or','LineWidth',5);% Точка (x0,y0)
view(-141,28)
hold off
Введите функцию двух переменных x*y^2+2*y-x^2
Координата х0= 2
Координата y0= -1
Смещение dх= 0.1
Смещение dy= -0.2
Использование дифференциала 1-го порядка и ряда Тейлора 1-го порядка
Приближенное значение функции z(x0+dx,y0+dy)=z(x0,y0)+dz =-3.9000
Функция Тейлора 1-го порядка P1T(x,y)
- 3*x - 2*y
Значение функции Тейлора 1-го пор. в точке (x0+dx; y0+dy) = -3.9000
Использование дифференциала 2-го порядка и ряда Тейлора 2-го порядка
Приближенное значение функции z(x0,y0)+dz+d2z=-3.6800
Функция Тейлора 2-го порядка P2T(x,y)
- x^2 - 2*x*y - x + 2*y^2 + 6*y + 2
Значение функции Тейлора 2-го пор. в точке (x0+dx; y0+dy) = -3.7900
Точное значение функции z(x+dx; y+dy) = -3.7860
Введите функцию двух переменных (2*x^2+y^2)^2
Координата х0= 1
Координата y0= 2
Смещение dх= -0.2
Смещение dy= 0.2
Использование дифференциала 1-го порядка и ряда Тейлора 1-го порядка
Приближенное значение функции z(x0+dx,y0+dy)=z(x0,y0)+dz = 36.0000
Функция Тейлора 1-го порядка P1T(x,y)
48*x + 48*y - 108
Значение функции Тейлора 1-го пор. в точке (x0+dx; y0+dy) = 36.0000
Использование дифференциала 2-го порядка и ряда Тейлора 2-го порядка
Приближенное значение функции z(x0,y0)+dz+d2z= 38.8800
Функция Тейлора 2-го порядка P2T(x,y)
40*x^2 + 32*x*y - 96*x + 28*y^2 - 96*y + 108
Значение функции Тейлора 2-го пор. в точке (x0+dx; y0+dy) = 37.4400
Точное значение функции z(x+dx; y+dy) = 37.4544
Вывод. Приближенные значения функции, полученные с помощью разложения ее в ряд Тейлора 1-го и с помощью дифференциала 1-го порядка, совпадают для двух рассмотренных функций.
Разложение же в ряд Тейлора 2-го порядка дает лучший результат, чем определение значения функции с помощью дифференциала 2-го порядка. Однако, оба эти способа превосходят в точности эти же методы 1-го порядка.