
1-й курс / МатЛаб - Алгебра / МП_14_Ермилов_Ярослав_лаб_2_3
.docx
Лабораторная работа №7 Ярослав Ермилов
(
Лабораторная работа №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
Положительная квадратичная форма
-