(1) A x = s x , s in C.
(yleensä merkitään s:n sijasta lambda, mutta kun HTML ..., samasta syystä
käytämme tyhmän näköistä joukkoonkuulumismerkkiä "in")
Yhtälöllä on aina triviaaliratkaisiu x=0, olipa s mikä tahansa
kompleksiluku.
Kysymys kuuluu:
A x = s x <==> (A-s I)x = 0
Kyseessä on siis homogeeniyhtälö, jonka kerroinmatriisi sisältää parametrin
s. Se pitää valita siten, että HY:llä on ei-triv. ratkaisuja, ts.
Gaussin eliminaation on tuotettava ainakin 1 nollarivi, joten
det(A-s I)=0 .
1. om. vekt. : parametrit: 1,0,0 2. om. vekt. : parametrit: 0,1,0 3. om. vekt. : parametrit: 0,0,1Huom!
Kysymys. Voiko kiertokuvauksella olla ominaisarvoja/vektoreita?
Ehdotus: Jos kiertokulma on 0 tai Pi, niin kyllä, mutta muuten ei?
Mutta: Algebran peruslauseen mukaan jokaisella polynomiyhtälöllä on ratkaisu kompleksitasossa. Siten kiertokuvauksellakin on ominaisarvoja, mutta ne ovat kompleksisia. Itse asiassa kompleksiluvulla kertominen merkitsee kiertämistä tasossa.
Ominaisarvon s alg. kertal. merk Ms
Lause (SYM) Symmetrisen (yleisemmin hermiittisen) matriisin
ominaisarvot ovat reaaliset ja eri ominaisarvoihin liittyvät ominaisvektorit
ovat ortogonaaliset.
Tod: Ei vaikea. [QED]
Lause (SYMDIAG), syvällinen
Symmetrisen matriisin jokaisen ominaisarvon algebrallinen ja geometrinen
kertaluku on sama. Ts. ominaisvektoreista voidaan muodostaa (jopa ortonormeerattu kanta.) Rn:ään. Merkitsee myös: Symmetrinen matriisi on
diagonalisoituva.
Tod: "Syvällinen" tarkoittaa: todistus ylittää kurssin vaatimustason, vaan
ei tuloksen soveltaminen. [QED]
> with(linalg):
A:=matrix([[8,6,6],[-3,-1,-3],[-6,-6,-4]]);
[ 8 6 6]
[ ]
A := [-3 -1 -3]
[ ]
[-6 -6 -4]
> Id:=diag(1,1,1);
[1 0 0]
[ ]
Id := [0 1 0]
[ ]
[0 0 1]
> p:=det(A-lambda*Id);
2 3
p := -4 + 3 lambda - lambda
> factor(p);
2
-(lambda + 1) (-2 + lambda)
> omarvot:=solve(p=0,lambda);
omarvot := -1, 2, 2
> Cmat:=evalm(A-lambda*Id);
[8 - lambda 6 6 ]
[ ]
Cmat := [ -3 -1 - lambda -3 ]
[ ]
[ -6 -6 -4 - lambda]
> Cmat1:=subs(lambda=-1,op(Cmat));
[ 9 6 6]
[ ]
Cmat1 := [-3 0 -3]
[ ]
[-6 -6 -3]
> Cmat2:=subs(lambda=2,op(Cmat));
[ 6 6 6]
[ ]
Cmat2 := [-3 -3 -3]
[ ]
[-6 -6 -6]
> G1:=gaussjord(Cmat1);
[1 0 1 ]
[ ]
G1 := [0 1 -1/2]
[ ]
[0 0 0 ]
> G2:=gaussjord(Cmat2);
[1 1 1]
[ ]
G2 := [0 0 0]
[ ]
[0 0 0]
#B1:=backsub(G1,o,'t'); subs(t[1]=1,op(B1));
#B2:=backsub(G2,o,'t');
#v1:=subs(t[1]=1,t[2]=0,op(B2));v2:=subs(t[1]=0,t[2]=1,op(B2));
> B1:=backsub(G1,o,'t'); subs(t[1]=1,op(B1));
B1 := [-t[1], 1/2 t[1], t[1]]
[-1, 1/2, 1]
> B2:=backsub(G2,o,'t');
B2 := [-t[2] - t[1], t[2], t[1]]
> v1:=subs(t[1]=1,t[2]=0,op(B2));v2:=subs(t[1]=0,t[2]=1,op(B2));
v1 := [-1, 0, 1]
v2 := [-1, 1, 0]
> eigenvectors(A);
[2, 2, {[-1, 0, 1], [-1, 1, 0]}], [-1, 1, {[-2, 1, 2]}]
>> A=[8,6,6;-3,-1,-3;-6,-6,-4]
A =
8 6 6
-3 -1 -3
-6 -6 -4
>> p=poly(A)
p =
1.0000 -3.0000 -0.0000 4.0000
>> lam=roots(p)
lam =
2.0000
2.0000
-1.0000
>> rref(A-lam(1)*eye(3))
ans =
1 0 0
0 1 0
0 0 1
% OHHOH!! miten ihmeessä
>> format long
>> lam
lam =
2.00000002344808
1.99999997655192
-1.00000000000001
>> A-lam(1)*eye(3)
ans =
5.99999997655192 6.00000000000000 6.00000000000000
-3.00000000000000 -3.00000002344808 -3.00000000000000
-6.00000000000000 -6.00000000000000 -6.00000002344808
>> rank(ans)
ans =
3
% Joopa joo, tässä tuli senverran virhettä, että Matlab päätteli
% rangin 3:ksi.
>> rref(A-lam(3)*eye(3))
ans =
1.00000000000000 0 1.00000000000000
0 1.00000000000000 -0.50000000000000
0 0 0
% No kolmas ominaisarvo meni järjellisesti.
% Annetaan Matlabin näyttää kykynsä:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Lasketaan numeerisesti luotettavalla ja tehokkaalla tavalla:
>> format short
>> [V,D]=eig(A)
V =
0.8018 0.6667 0.6880
-0.2673 -0.3333 -0.7248
-0.5345 -0.6667 0.0368
D =
2.0000 0 0
0 -1.0000 0
0 0 2.0000