Означення 1. Підпростір
лінійного простору називається інваріантним відносно оператора , якщо , тобто якщо образ будь-якого вектора із міститься в .Нехай
–одновимірний підпростір простору , а –деякий лінійний оператор цього простору. Підпростір , як відомо, породжується будь-яким своїм вектором , тобто є сукупністю всіх векторів виду , де – будь яке число з поля Р. Якщо підпростір інваріантний відносно оператора , то , тобто , де –деяке число з поля Р. Тоді й для будь-якого вектора підпростору , бо , і тому .Означення 2. Вектор
, що заддовільняє співвідношення , де називається власним вектором оператора , а число – власним значенням оператора , що відповідає власному вектору .Отже, якщо одглвимірний підпростір
простору інваріантний відносно лінійного оператора , то всі вектори цього підпростору є власними векторами оператора з тим самим власним значенням оператора .Практична частина
1. Опис програми
n – вимірність матриці;
m – максимальне допустиме число ітерацій;
e – точність;
a – на вході – двовимірний масив елементів матриці А, на виході матриця А блочно-діагональна, причому блоки розміри 1х1 містять дійсні власні значення, блоки розміру 2х2 містять комплексні власні значення, записані в стовпцях (рядках) для правих (лівих) власних векторів;
t – двовимірний масив власних векторів А;
b – цілочислова змінна.
Лінійний оператор потрібно задати за допомогою матриці.
2. Текст програми
uses crt;
const dim=10;
type ar=array[1..dim,1..dim]of real;
var ff:text;
i100,j100,n100,b,m:integer;
e:real;
a,t:ar;
procedure eigen(n,m:integer;e:real;var a,t:ar;var b:integer);
var c,c1,c2,co,ch,d,e1,f,g,h,p,r,s,s1,s2,si,sh,x,y:real;
i,j,k,n1,q:integer;
u,v,w,z:boolean;
function zn(x:real):integer;
begin if x<0 then zn:=-1 else zn:=1; end;
begin
u:=false;v:=u;w:=u;n1:=n-1;e1:=sqrt(e);
if b<>0 then
begin
if b<0 then v:=true else w:=true;
for i:=1 to n do
for j:=1 to n do
if i=j then t[i,j]:=1 else t[i,j]:=0;
end;
for q:=1 to m do
begin
if u then begin b:=1-q; exit; end;
i:=1; z:=false;
repeat
j:=i+1;
repeat
if(abs(a[i,j]+a[j,i])>e1) or
(abs(a[i,j]-a[j,i])>e1) and
(abs(a[i,i]-a[j,j])>e1) then z:=true;
j:=j+1;
until (j>n) or z;
i:=i+1;
until (i>n1) or z;
if not z then begin b:=q-1; exit; end;
u:=true;
for k:=1 to n1 do
for j:=k+1 to n do
begin
h:=0; g:=0; f:=0; y:=0;
for i:=1 to n do
begin
x:=sqr(a[i,k]);d:=sqr(a[i,j]); y:=y+x-d;
if (i<>k) and (i<>j) then
begin
h:=h+a[k,i]*a[j,i]-a[i,k]*a[i,j];
p:=x+sqr(a[j,i]); r:=d+sqr(a[k,i]);
g:=g+p+r; f:=f-p+r;
end;
end;
h:=2*h; d:=a[k,k]-a[j,j];
p:=a[k,j]+a[j,k]; r:=a[k,j]-a[j,k];
if abs(p)<=e then begin c:=1; s:=0; end
else
begin
x:=d/p; c:=x+zn(x)*sqrt(1+x*x);
s:=zn(x)/sqrt(1+c*c); c:=s*c;
end;
if y<0 then begin x:=c; c:=s; s:=-x; end;
co:=c*c-s*s; si:=2*s*c; d:=d*co+p*si;
h:=h*co-f*si; x:=(r*d-h/2)/(g+2*(r*r+d*d));
if abs(x)<=e
then begin ch:=1; sh:=0; end
else begin ch:=1/sqrt(1-x*x); sh:=ch*x; end;
c1:=ch*c-sh*s; c2:=ch*c+sh*s;
s1:=ch*s+sh*c; s2:=-ch*s+sh*c;
if (abs(s1)>e)or(abs(s2)>e) then
begin
u:=false;
for i:=1 to n do
begin
p:=a[k,i];a[k,i]:=c1*p+s1*a[j,i];
a[j,i]:=s2*p+c2*a[j,i];
if v then
begin
p:=t[k,i]; t[k,i]:=c1*p+s1*t[j,i];
t[j,i]:=s2*p+c2*t[j,i];
end;
end;
for i:=1 to n do
begin
p:=a[i,k];a[i,k]:=c2*p-s2*a[i,j];
a[i,j]:=-s1*p+c1*a[i,j];
if w then
begin
p:=t[i,k];t[i,k]:=c2*p-s2*t[i,j];
t[i,j]:=-s1*p+c1*t[i,j];
end;
end;
end;
end;
end;
b:=m;
end;
begin clrscr;
write('введите максимальное количество итераций');read(m);
write('введите точность');read(e);
assign(ff,'vlasn.dat');
reset(ff);
read(ff,n100);
for i100:=1 to n100 do
for j100:=1 to n100 do
read(ff,a[i100,j100]);
b:=0;
eigen(n100,m,e,a,t,b);
for i100:=1 to n100 do begin
for j100:=1 to n100 do
write(a[i100,j100],' ');
writeln; end;
writeln;
writeln(b);
readkey;
end.
3. Контрольний приклад
При e=10-8 і m=50 для матриці
за 7 ітерацій знайдено власні значення
Тобо отримали такі власні значення
, ,Висновок
Таким чином, задача знаходження інваріантних відносно оператора
одновимірних підпросторів простору рівнозначна задачі згаходження власних векторів оператора .Список літератури
1. А. Г. Курош «Курс высшей алгебры», «Наука», Москва 1975
2. С. Т. Завало, В. М. Костарчук, Б. И. Хацет «Алгебра и теория чисел», Том 1,«Высшая школа», Киев 1974
3. С. Т. Завало, В. М. Костарчук, Б. И. Хацет «Алгебра и теория чисел», Том 2,«Высшая школа», Киев 1976