Teht. 2

a) A=QDQ -1 => A2=QDQ-1QDQ -1 = QDDQ -1=QD2Q-1

Näin jatkaen saadaan: An=QDD...DQ -1 = QDnQ-1.

b)

> with(linalg):

> A:=matrix(3,3,[0,3,-2,2,1,-2,-3,3,1]);
                                  [ 0    3    -2]
                                  [             ]
                             A := [ 2    1    -2]
                                  [             ]
                                  [-3    3     1]

> eigenvects(A);
        [-2, 1, {[1, 0, 1]}], [3, 1, {[1, 1, 0]}], [1, 1, {[1, 1, 1]}]

Tämä tarkoittaa: Ominaisarvot: -2,3,1 ja niiden alg. kertaluvut 1,1,1 ja
sitten näkyvät ominaisvektorit.

Koska alg. kertaluvut ovat =1, niin geom. kertaluvut ovat myös =1
(jäävät 1:den ja 1:den väliin). Siitä seuraa diagonalisoituvuus.
(Tietysti yhtä hyvin suoraan siitä, että ominaisarvot ovat eri suuret
ja eri ominaisarvoihin liittyvät om. vektorit ovat lin. riippumattomia.)

*** alla ominaisarvot "käsinlaskutekniikalla" ***

Seuraava on kätevä tapa poimia ominaisvektorit hiirellä vaakariveiksi,
jolloin tarvitaan transponointi.

> Q:=transpose(matrix([[1, 0, 1],[1, 1, 0],[1, 1, 1]]));
                                   [1    1    1]
                                   [           ]
                              Q := [0    1    1]
                                   [           ]
                                   [1    0    1]
> QI:=inverse(Q);   
                                  [ 1    -1     0]
                                  [              ]
                            QI := [ 1     0    -1]
                                  [              ]
                                  [-1     1     1]


Tarkistus:
> evalm(A),evalm(Q&*diag(-2,3,1)&*QI);                  
                       [ 0    3    -2]  [ 0    3    -2]
                       [             ]  [             ]
                       [ 2    1    -2], [ 2    1    -2]
                       [             ]  [             ]
                       [-3    3     1]  [-3    3     1]
Samathan nuo ovat.

a)-kohdan mukaan: A6=Q D6 Q-1

> D6:=diag((-2)^6,3^6,1^6);
                                  [64      0    0]
                                  [              ]
                            D6 := [ 0    729    0]
                                  [              ]
                                  [ 0      0    1]


> evalm(Q&*D6&*QI);        
                             [792    -63    -728]
                             [                  ]
                             [728      1    -728]
                             [                  ]
                             [ 63    -63       1]

Tarkistus (raakaa voimaa käyttäen):
> evalm(A&^6);             
                             [792    -63    -728]
                             [                  ]
                             [728      1    -728]
                             [                  ]
                             [ 63    -63       1]



**Näin siis ominaisarvot "käsin":

> charmA:=evalm(A-lambda*diag(1,1,1));
                          [-lambda        3             -2    ]
                          [                                   ]
                charmA := [   2       1 - lambda        -2    ]
                          [                                   ]
                          [  -3           3         1 - lambda]

> p:=det(charmA);
                                            2         3
                    p := 5 lambda + 2 lambda  - lambda  - 6

> lam:=solve(p,lambda);

                                lam := 1, 3, -2

> charm1:=subs(lamda=1,op(charmA));
                          [-lambda        3             -2    ]
                          [                                   ]
                charm1 := [   2       1 - lambda        -2    ]
                          [                                   ]
                          [  -3           3         1 - lambda]

> charm2:=subs(lambda=3,op(charmA));
                                    [-3     3    -2]
                                    [              ]
                          charm2 := [ 2    -2    -2]
                                    [              ]
                                    [-3     3    -2]

> charm3:=subs(lambda=-2,op(charmA));
                                     [ 2    3    -2]
                                     [             ]
                           charm3 := [ 2    3    -2]
                                     [             ]
                                     [-3    3     3]

Tässä leikitään eleganttia: suoritetaan Gauss kolmelle matriisille
samanaikaisesti:

> map(gausselim,[charm1,charm2,charm3]);
            [-1    3    -2]  [-3    3     -2  ]  [2     3      -2]
            [             ]  [                ]  [               ]
           [[ 0    6    -6], [ 0    0    -10/3], [0    15/2     0]]
            [             ]  [                ]  [               ]
            [ 0    0     0]  [ 0    0      0  ]  [0     0       0]

Tästäpä luetaan ominaisvektorit:

                        [1, 1, 1], [1, 1, 0], [1, 0, 1]