Курсовая на тему Знаходження власних значеннь лінійого оператора
Работа добавлена на сайт bukvasha.net: 2014-11-30Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
Міністерство освіти і науки України
ФАКУЛЬТЕТ ІНФОРМАТИКИ
КАФЕДРА ІНФОРМАЦІЙНИХ УПРАВЛЯЮЧИХ СИСТЕМ ТА ТЕХНОЛОГІЙ
Реєстраційний №________
Дата ___________________
КУРСОВА РОБОТА
Тема:
Знаходження власних значень лінійного оператора
Рекомендована до захисту
“____” __________ 2008р.
Робота захищена
“____” __________ 2008р.
з оцінкою
_____________________
Підписи членів комісії
Зміст
Вступ
Теоретична частина
1. Означення і найпростіші властивості лінійних операторів
2. Матриця лінійного оператора
3. Власні вектори й власні значення лінійного оператора
Практична частина
1. Опис програми
2. Текст програми
3. Контрольний приклад
Висновок
Список літератури
Вступ
Власні значення грають при вивченні лінійних операторів дуже велику роль.
Нехай в дійсному лінійному просторі задан лінійний оператор . Якщо вектор , відмінний від нуля, переводиться оператором у вектор, пропорційний самому ,
,
де – деяке дійсне число, то вектор називається власним вектором оператора , а число – власним значенням цього оператора, причому, власний вектор відноситься до власного значення .
Обертання евклідової площини навколо початку координат на кут, що не являється кратним , є прикладом лінійного оператора, що не має власних векторів. Прикладом іншого випадку є розтягнення площини, при якому всі вектори, що виходять з початку координат, причому всі нульові вектори площини будуть для нього власними; всі вони відносяться до власного значення 5.
Теоретична частина
1. Означення і найпростіші властивості лінійних операторів
В теорії лінійних просторів та її застосування важливу роль відіграють лінійні оператори, які інакше називають лінійними перетвореннями.
Нехай – деякий векторний простір над полем .
Означення 1. Вважають, що у векторному просторі задано оператор, якщо вказано правило (закон), за яким кожному вектору простору ставиться у відповідність деякий вектор цього ж простору. Про цьому вектор називають образом вектора , а називають прообразом вектора .
Як бачимо, оператор у векторному просторі – це функція, множиною відправлення і множиною прибуття якої є простір .
Означення 2. Оператор у векторному просторі називається лінійним, якщо він задовольняє такі умови:
Лінійні оператори в просторі називають також лінійним перетворенням простору .
З означення 2 випливають безпосередньо такі властивості лінійних операторів:
1. Будь-який лінійний оператор у просторі залишає нерухомим нульовий вектор цього простору, тобто .
2. Всякий лінійний оператор у просторі протилежному вектору – будь-якого вектора , ставить у відповідність вектор, протилежний образу вектора , тобто .
3. Кожен лінійний оператор у просторі будь-який лінійний комбінації довільно вибраних векторів простору ставить у відповідність лінійну комбінацію (з тими самими коефіцієнтами) образів цих векторів, тобто .
2. Матриця лінійного оператора
Нехай – деякий лінійний оператор у просторі . Виберемо в який-небудь базис . Оператор відображає вектори цього базису в деякі вектори . Кожен вектор єдиним способом лінійно виражається через вектори базису . Припустимо, що
Складемо з коефіціентів матрицю . Рядками матриці є координатні рядки векторів в базисі . Оскльки координатні рядки векторів визначені однозначно, то й матриця визначається оператором в базисі .
Будемо вважати, що в базисі лінійний оператор задається матрицею .
Отже, при зафіксованому базисі кожному лінійному оператору простору відповідає певна квадратна матриця -го порядку – матриця цього оператора.
3. Власні вектори й власні значення лінійного оператора
Означення 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
ФАКУЛЬТЕТ ІНФОРМАТИКИ
КАФЕДРА ІНФОРМАЦІЙНИХ УПРАВЛЯЮЧИХ СИСТЕМ ТА ТЕХНОЛОГІЙ
Реєстраційний №________
Дата ___________________
КУРСОВА РОБОТА
Тема:
Знаходження власних значень лінійного оператора
Рекомендована до захисту
“____” __________ 2008р.
Робота захищена
“____” __________ 2008р.
з оцінкою
_____________________
Підписи членів комісії
Зміст
Вступ
Теоретична частина
1. Означення і найпростіші властивості лінійних операторів
2. Матриця лінійного оператора
3. Власні вектори й власні значення лінійного оператора
Практична частина
1. Опис програми
2. Текст програми
3. Контрольний приклад
Висновок
Список літератури
Вступ
Власні значення грають при вивченні лінійних операторів дуже велику роль.
Нехай в дійсному лінійному просторі
де
Обертання евклідової площини навколо початку координат на кут, що не являється кратним
Теоретична частина
1. Означення і найпростіші властивості лінійних операторів
В теорії лінійних просторів та її застосування важливу роль відіграють лінійні оператори, які інакше називають лінійними перетвореннями.
Нехай
Означення 1. Вважають, що у векторному просторі
Як бачимо, оператор у векторному просторі
Означення 2. Оператор
Лінійні оператори в просторі
З означення 2 випливають безпосередньо такі властивості лінійних операторів:
1. Будь-який лінійний оператор
2. Всякий лінійний оператор
3. Кожен лінійний оператор
2. Матриця лінійного оператора
Нехай
Складемо з коефіціентів
Будемо вважати, що в базисі
Отже, при зафіксованому базисі
3. Власні вектори й власні значення лінійного оператора
Означення 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