Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1-й курс / МатЛаб - Алгебра / МП_14_Ермилов_Ярослав_лаб_2_3

.docx
Скачиваний:
93
Добавлен:
18.12.2017
Размер:
68.11 Кб
Скачать

Лабораторная работа №7 Ярослав Ермилов (МП-14)

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

Квадратичные формы

Работу выполнил: Ермилов Ярослав (МП-14)

Упражнение 1.

Привести данную квадратичную форму к каноническому виду ортогональным преобразованием координат средствами MATLAB (создать м-файл, определиться с входящими параметрами):

% Составим матрицу квадратичной формы

A = [3 -1 -1; -1 3 -1; -1 -1 3];

% Составим матрицу характеристического уравнения

syms l; Ah = A-l*eye(3)

% Находим определитель

det_Ah=det(Ah)

%det_Ah = - l^3 + 9*l^2 - 24*l + 16

% Находим собственные числа

l=solve('- l^3 + 9*l^2 - 24*l + 16=0')

%l =

% 1

% 4

% 4

% Для l=4 система выглядит так:

% -x1-x2-x3=0

% -x1-x2-x3=0

% -x1-x2-x3=0

% Найдём Ф.С.Р.

rref([-1 -1 -1 0; -1 -1 -1 0; -1 -1 -1 0])

%ans =

% 1 1 1 0

% 0 0 0 0

% 0 0 0 0

% x1 - базисная, x2, x3 - свободные

% Получим u2: x1=-1 x2=1 x3=0

% u1: x1=-1 x2=0 x3=1

u1=[-1 0 1]; u2=[-1 1 1];

% Применяя процесс ортогонализации Шмидта, получим

% v1=u1; u2=-1/2*u1=

v1=u1

v2=u2-(1/2)*v1

% Для l=1 система выглядит так:

% 2x1-x2-x3=0

% -x1+2x2-x3=0

% -x1-x2+2x3=0

% Найдём Ф.С.Р.

rref([2 -1 -1 0; -1 2 -1 0; -1 -1 2 0])

%ans =

% 1 0 -1 0

% 0 1 -1 0

% 0 0 0 0

% x1,x2 - базисные, x3 - свободная

% Получим u3: x1=1 x2=1 x3=1

v3=[1 1 1]

% Находим ортонормированный базис

e1=v1/sqrt(v1(1)^2+v1(2)^2+v1(3)^2)

e2=v2/sqrt(v2(1)^2+v2(2)^2+v2(3)^2)

e3=v3/sqrt(v3(1)^2+v3(2)^2+v3(3)^2)

% Составим матрицу перехода от е к е'

T=[e1;e2;e3]'

%T =

% -0.7071 -0.4082 0.5774

% 0 0.8165 0.5774

% 0.7071 0.4082 0.5774

%Переход от старых координат к новым

syms x1 x2 x3; X = [x1; x2; x3]

Y = T*X

Упражнение 2.

Продумать и решить пример 3 средствами MATLAB. Привести геометрическую иллюстрацию.

Пример 3: Определить вид и расположение кривой второго порядка

. (8)

Решение. Слагаемые второго порядка в (8) составляют квадратичную форму

,

которую преобразование неизвестных по формулам

(9)

приводит к сумме квадратов

Тогда уравнение кривой (8) преобразованием (9) приведётся к виду

.

Здесь , и, следовательно, , – кривая эллиптического типа.

Как при рассмотрении выше случая 1, соберём слагаемые, содержащие неизвестное и дополним их до полного квадрата, аналогично поступим со слагаемыми, содержащими :

, или

Полагаем и получим . Это уравнение эллипса с полуосями и центром в точке

% Общее уравнение кривой второго порядка

% a11*x^2+2*a12*x*y+a22*y^2+2*a1*x+2*a2*y+a=0

% Квадратичная форма

% f(x,y)=a11*x^2+2*a12*x*y+a22*y^2

% Рассмотрим следующую квадратичную форму

% f(x1,x2)=a11*x1^2+2*a12*x1*x2+a22*x2^2

% Её матрица симметрична:

% Q=[a11,a12;a12,a22]

% В общем случае преобразование поворота осей координат

% x=x'*cos(fi)-y'*sin(fi)

% y=x'*sin(fi)+y'*cos(fi)

% приведёт общее уравнение кривой к такому виду:

% l1*x'^2+l2*y'^2+2*b1*x'+2*b2*y'+b=0

% Обозначим за fi(l)=det([a11-l a12; a21 a22-l]), тогда

% d=fi(0)=det([a11 a12; a21 a22])

% c=b-b1^2/l1-b2^2/l2

% Определение типа кривой

if (d>0)

if (l1*c<0)

%эллипс

elseif (l1*c>0)

% мнимый эллипс

elseif (c==0)

% точка

end

elseif (d<0)

if (c~=0)

%гипербола

elseif(c==0)

%пара пересекающихся прямых

end

elseif (d==0)

end

Упражнение 3.

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

1) ; 2) ; 3) ;

4) ;

5) ;

6) ; 7).

function sign_of_form(A)

if (A' ~= A)

disp('Форма не является квадратичной');

else

L=eig(A)

if (L(1)>=0 && L(2) >=0 && L(3) >=0)

disp('Положительная квадратичная форма)

elseif (L(1)<0 && L(2)<0 && L(3)<0)

disp('Отрицаутельная квадратичная форма')

else

disp('Непонятная квадратичная форма (+/-)')

end;

end;

end

>> A=[1 5 0; 5 26 0; 0 0 0]

A =

1 5 0

5 26 0

0 0 0

>> sign_of_form(A)

L =

0

0.0371

26.9629

Положительная квадратичная форма

>> B=[-1 1 0; 1 -4 0; 0 0 0]

B =

-1 1 0

1 -4 0

0 0 0

>> sign_of_form(B)

L =

-4.3028

-0.6972

0

Отрицаетльная квалратичная форма, есть 0

>> C=[1 2 -1; 2 -15 3; -1 3 0]

C =

1 2 -1

2 -15 3

-1 3 0

>> sign_of_form(C)

L =

-15.8532

0.2337

1.6195

+/- квадратичная форма

>> D=[-11 6 -6; 6 -6 3; -6 3 -6]

D =

-11 6 -6

6 -6 3

-6 3 -6

>> sign_of_form(D)

L =

-18.5440

-3.0000

-1.4560

Отрицательная квадратичная форма

>> E=[9 6 -5; 6 6 -1;-5 -1 6]

E =

9 6 -5

6 6 -1

-5 -1 6

>> sign_of_form(E)

L =

0.1130

5.0188

15.8682

Положительная квадратичная форма

-6- 21.07.2019