Скачиваний:
25
Добавлен:
05.12.2017
Размер:
58.19 Кб
Скачать

Лабораторная работа №8

Лабораторная работа №8

Упражнение 1

Постройте линии уровня функции и найдите экстремумы функции.

function f = u_1(v)

x = v(1); y = v(2);

f = x*y + 50/x + 20/y;

end

[X, Y] = meshgrid((4 : 0.01 : 6), (1 : 0.01 : 3));

Z = X.*Y + 50./X + 20./Y;

[CMatr, h] = contour(X, Y, Z);

colormap(gray);

syms x y;

z = x * y + 50 / x + 20 / y;

[M, f] = fminsearch('u_1', [5, 2])

M = 5 2

f = 30

Упражнение 2

Создайте М-функцию, вычисляющую значения первых и вторых частных производных функции в точке и значения главных миноров матрицы, составленной из вторых производных.

function [D, E] = u_2(f, x0, y0)

syms x y;

dfdx = subs(diff(f, x), [x, y], [x0, y0]);

dfdy = subs(diff(f, y), [x, y], [x0, y0]);

d2fdx2 = subs(diff(f, x, 2), [x, y], [x0, y0]);

d2fdy2 = subs(diff(f, y, 2), [x, y], [x0, y0]);

d2fdxdy = subs(diff(diff(f, x), y), [x, y], [x0, y0]);

D = [dfdx, dfdy, d2fdx2, d2fdxdy, d2fdy2];

M = [d2fdx2, d2fdxdy; d2fdxdy, d2fdy2];

E(1) = M(1);

E(2) = det(M);

end

Упражнение 3

а) Найти экстремумы функции .

б) С помощью созданной в упр. 2 М-функции проверьте выполнение необходимого и достаточного условия экстремума.

function extremums(f)

syms x y;

disp(['f(x,y) = ', char(f)]);

disp('Первые производные:');

dfdx = diff(f,x);

disp(['df/dx = ', char(dfdx)]);

dfdy = diff(f,y);

disp(['df/dy = ', char(dfdy)]);

disp('Вторые производные:');

d2fdx2 = diff(f,x,2);

disp(['d2f/dx^2 = ', char(d2fdx2)]);

d2fdy2 = diff(f,y,2);

disp(['d2f/dy^2 = ', char(d2fdy2)]);

d2fdxdy = diff(dfdx,y);

disp(['d2f/dxdy = ', char(d2fdxdy)]);

disp('Метод отбора точек: D>0 - экстремум есть, D<0 - нет')

disp('D=A*C-B^2, где A=d2f/dx^2, B=d2f/dxdy, C=d2f/dy^2');

disp('Возможные точки экстремума:')

[X,Y] = solve(dfdx, dfdy);

for i = 1:length(X)

x0=X(i); y0=Y(i);

disp(['Точка №',num2str(i),'(',char(x0),';',char(y0),')']);

D=subs(d2fdx2*d2fdy2-d2fdxdy^2, [x,y],[x0,y0]);

disp(['D=',char(vpa(D))]);

if (double(D)>0)

disp('D>0 => Экстремум есть');

if (double(subs(d2fdx2, [x,y], [x0,y0]))>0)

disp('A>0 => Минимум');

else

disp('A<0 => Максимум');

end;

else

disp('D<0 => Экстремума нет');

end

end

end

>> syms x y;

>> z = x^2 + y^2 - 2 * log(x) - 18 * log(y);

>> extremums(z)

Точка №1 (1, 3)

Минимум

f(x) = 10-18*log(3)

Точка №2 (1, -3)

Минимум

f(x) = 10-18*log(3)-18* i*pi

Точка №3 (-1, 3)

Минимум

f(x) = 10-2* i*pi-18*log(3)

Точка №4 (-1, -3)

f(x) = 10-20* i*pi-18*log(3)

>> [D, E] = u_2(z, 1, 3)

D = [0, 0, 4, 0, 4]

E = [4, 16]

>> [D, E] = u_2(z, 1, -3)

D = [0, 0, 4, 0, 4]

E = [4, 16]

>> [D, E] = u_2(z, -1, 3)

D = 0, 0, 4, 0, 4]

E = [4, 16]

>> [D, E] = u_2(z, -1, -3)

D = [0, 0, 4, 0, 4]

E = [4, 16]

Упражнение 4

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

function u_4(f)

syms x y z;

s = solve(diff(f, x), diff(f, y), diff(f, z), 'x, y, z');

for i = 1 : 4

x0 = s.x(i); y0 = s.y(i); z0 = s.z(i);

disp(['Точка №', int2str(i), '(',char(vpa(x0,5)),';',

char(vpa(y0,5)),';',char(vpa(z0,5)),')']);

A1 = subs(diff(f, x, 2), [x,y,z], [x0,y0,z0]);

d2fdx2 = diff(f, x, 2);

d2fdy2 = diff(f, y, 2);

d2fdz2 = diff(f, z, 2);

d2fdxdy = diff(diff(f, x), y);

d2fdydx = diff(diff(f, y), x);

d2fdxdz = diff(diff(f, x), z);

d2fdydz = diff(diff(f, y), z);

d2fdzdx = diff(diff(f, z), x);

d2fdzdy = diff(diff(f, z), y);

A2 = subs(d2fdx2*d2fdy2 - d2fdxdy * d2fdydx, ...

[x,y,z], [x0,y0,z0]);

A = [d2fdx2, d2fdxdy, d2fdxdz; ...

d2fdydx, d2fdy2, d2fdydz; ...

d2fdzdx, d2fdzdy, d2fdz2];

A3 = subs(det(A), [x,y,z], [x0,y0,z0]);

if ((double(A1)>0)&&(double(A2)>0)&&(double(A3)>0))

disp('Минимум');

elseif ((double(A1)<0)&&(double(A2)>0)&&(double(A3)<0))

disp('Максимум');

else

disp('Не определено');

end

end

end

Упражнение 5

Используя М-функцию из упр. 5, найдите точки экстремума функции

>> syms x y z;

>> u = x + y/x + z/y + 2/z;

>> u_4(u)

Точка №1(1.1892;1.4142;1.6818)

Минимум

Точка №2(-1.1892;1.4142;-1.6818)

Максимум

Точка №3(-1.1892*i;-1.4142;1.6818*i)

Не определено

Точка №4(1.1892*i;-1.4142;-1.6818*i)

Не определено

-5-

Соседние файлы в папке Лабораторные (использовать только в случае крайней необходимости)