Harj. 3 loppuviikko, teht. 6 ============================ > > with(linalg): Warning: new definition for norm Warning: new definition for trace > A:=matrix(3,3,[8,6,6,-3,-1,-3,-6,-6,-4]); [ 8 6 6 ] [ ] A := [ -3 -1 -3 ] [ ] [ -6 -6 -4 ] > B:=matrix(3,3,[1,0,0,2,1,0,0,0,3]); [ 1 0 0 ] [ ] B := [ 2 1 0 ] [ ] [ 0 0 3 ] > C:=matrix(3,3,[109,87,81,87,73,63,81,63,61]); [ 109 87 81 ] [ ] C := [ 87 73 63 ] [ ] [ 81 63 61 ] > Id:=diag(1,1,1); [ 1 0 0 ] [ ] Id := [ 0 1 0 ] [ ] [ 0 0 1 ] > nolla:=vector([0,0,0]); nolla := [ 0, 0, 0 ] > poly1:=charpoly(A,lambda); 3 2 poly1 := lambda - 3 lambda + 4 > poly2:=charpoly(B,lambda); 2 poly2 := (lambda - 1) (lambda - 3) > poly3:=charpoly(C,lambda); 3 2 poly3 := lambda - 243 lambda + 960 lambda - 16 > solve(poly1=0,lambda); -1, 2, 2 > linsolve(A-2*Id,nolla); [ - _t[1] - _t[2], _t[1], _t[2] ] > linsolve(A+1*Id,nolla); [ - 2 _t[1], _t[1], 2 _t[1] ] > # -1:n alg.kertaluku=geom.kertaluku=1 > # 2:n alg.kertaluku=geom.kertaluku=2 > # Ei ole defektiivinen > eigenvects(A); [2, 2, {[ -1, 1, 0 ], [ -1, 0, 1 ]}], [-1, 1, {[ -2, 1, 2 ]}] > lamb:=solve(poly2=0,lambda); lamb := 1, 1, 3 > linsolve(B-lamb[1]*Id,nolla); [ 0, _t[1], 0 ] > linsolve(B-lamb[2]*Id,nolla); [ 0, _t[1], 0 ] > # 1:n alg.kertaluku=2, geom.kertaluku=1 > # 3:n alg.kertaluku=geom.kertaluku=1 > # On defektiivinen > eigenvects(B); [1, 2, {[ 0, 1, 0 ]}], [3, 1, {[ 0, 0, 1 ]}] > lamc:=solve(poly3,lambda); 1/2 1/2 lamc := 4, 239/2 + 9/2 705 , 239/2 - 9/2 705 > evc1:=linsolve(C-4*Id,nolla); evc1 := [ _t[1], - 4 _t[1], 3 _t[1] ] > evc2:=linsolve(C-lamc[2]*Id,nolla); \ evc2 := 25 1/2 67 1/2 [ - ---- _t[1] + 3/44 _t[1] 705 , _t[1], ---- _t[1] - 1/44 _t[1] 705 ] 44 44 > evc3:=linsolve(C-lamc[3]*Id,nolla); \ evc3 := 1/2 1/2 [ _t[1], 5/26 _t[1] - 3/130 _t[1] 705 , - 1/13 _t[1] - 2/65 _t[1] 705 ] > # Kaikkien omin.arvojen alg. ja geom.kertaluku = 1 (Nain on aina, kun ominaisarvot erilliset) > # Ei ole defektiivinen > eigenvects(C); [4, 1, {[ 1, -4, 3 ]}], 2 [RootOf(_Z - 239 _Z + 4), 1, {[ 2 157 2 421 1/66 RootOf(_Z - 239 _Z + 4) - ---, 1, - 1/198 RootOf(_Z - 239 _Z + 4) + --- 66 198 ]} ] > # Tassa (V.3) Maple jostain syysta kieltaytyi ratkaisemasta 2. asteen > # yhtaloa. RootOf-muodot voi yrittaa ratkaista allvalues-komennolla: > allvalues(RootOf(z^2-239*z+4)); 1/2 1/2 239/2 + 9/2 705 , 239/2 - 9/2 705 > # Tasta on hiukan hankala poimia, joten otetaan edella ratkaistuista: # Valitaan parametriksi vaikkapa _t[1]=1 > evc1:=subs(_t[1]=1,op(evc1)); evc1 := [ 1, -4, 3 ] > evc2:=subs(_t[1]=1,op(evc2)); 25 1/2 67 1/2 evc2 := [ - ---- + 3/44 705 , 1, ---- - 1/44 705 ] 44 44 > evc3:=subs(_t[1]=1,op(evc3)); 1/2 1/2 evc3 := [ 1, 5/26 - 3/130 705 , - 1/13 - 2/65 705 ] > # Ovatko ortogonaaliset? > innerprod(evc1,evc2); 0 > innerprod(evc1,evc3); 0 > innerprod(evc2,evc3); 0 > # Ortogonaalisuus on tietysti selvio, koska matriisi on symmetrinen > # Yhtä selviö on, etteivät ole normaaratut, ellei varta vasten suoriteta > # normeerausta, mitä emme tehneet (valitsuimme vain summan mutikassa > # parametrin t=1