2.6 Lineaarialgebraa

Matriisit ja vektorit

> restart:

Maplessa lista ja vektori ovat kaksi eri asiaa. Vektori määritellään komennolla vector , ja se on aina oletusarvoisesti vaakavektori.

> a:=vector([1,2,3]);

[Maple Math]

Vektorien yhteen- ja vähennyslasku tapahtuu suoraan kirjoittamalla. On kuitenkin huomattava, että evaluointisääntöjen vuoksi Maple ei kirjoita vektoreita auki ilman evalm -komentoa:

> a+a;

[Maple Math]

> evalm(a+a);

[Maple Math]

> evalm(a-vector([x,y,z]));

[Maple Math]

Pistetulon symbolina on &*. Samaa merkkiä käytetään myös matriisitulon symbolina.

> evalm(a&*a);

[Maple Math]

> evalm(a&*vector([x,y,z]));

[Maple Math]

Matriisi muodostetaan Maplessa komennolla matrix . Komennossa luetellaan joko aluksi matriisin koko ja sitten alkiot yhtenä listana, tai matriisi riveittäin.

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

[Maple Math]

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

[Maple Math]

Matriisin tai vektorin alkioon viitataan alkiota vastaavilla indekseillä, matriiseissa tyyliin [rivi, sarake]. On huomattava, että rivien ja sarakkeiden indeksointi alkaa ykkösestä eikä nollasta.

> a[2];

[Maple Math]

> A[2,1];

[Maple Math]

Komento nops ilmaisee objektien lukumäärän. Koska Maplessa vektori ja lista ovat kaksi eri asiaa, ohjelma ymmärtää vektorin yhdeksi objektiksi, mutta ilmoittaa vastaavan listan alkioiden lukumäärän.

> evalm(a);

[Maple Math]

> b:=[1,2,3];

[Maple Math]

> nops(a);

[Maple Math]

> nops(b);

[Maple Math]

Vektorin alkoiden lukumäärä ja matriisin koko voidaan laskea komennolla dimensions . Komennon käyttöä varten on ladattava käyttöön pakkaus Matlab .

> with(Matlab):

Error, (in Matlab/OpenEngine) can't find Matlab's engine library, libeng.dll

> dimensions(A);

[Maple Math]

Dimensions laskee matriisin kokoja, joten vektori on määriteltävä laskemista varten komennossa matriisiksi:

> dimensions(matrix([a]));

[Maple Math]

> restart:

Matriisin ominaisarvot ja -vektorit

> restart:

Määritellään tarkasteluja varten matriisi A:

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

[Maple Math]

Matriisin ominaisarvot lasketaan komennolla eigenvalues . Ominaisarvojen laskemista varten on käyttöön ladattava pakkaus linalg .

> with(linalg):

Warning, new definition for norm

Warning, new definition for trace

> eigenvalues(A);

[Maple Math]

Matriisin ominaisvektorit lasketaan komennolla eigenvectors . Maple tulostaa vastauksen muodossa [ominaisarvo, algebrallinen monikerta, {ko. ominaisvektorit}].

> eigenvectors(A);

[Maple Math]

Määritelmän mukaan A x = [Maple Math] x, missä A on matriisi, [Maple Math] ominaisarvo ja x kyseistä ominaisarvoa vastaava ominaisvektori. Todetaan, että tämä tulos on voimassa määritellyn matriisin A ominaisarvoa 8 vastaavalle ominaisvektorille [ 1, [Maple Math] , [Maple Math] ].

> Ax:=evalm(A&*vector([1,3/2,3/2]));

[Maple Math]

> lx:=evalm(8*vector([1,3/2,3/2]));

[Maple Math]

> restart:

Käänteismatriisi ja determinantti

> restart:

Ladataan tarkasteluja varten käyttöön pakkaus linalg :

> with(linalg):

Warning, new definition for norm

Warning, new definition for trace

Halutun kokoinen yksikkömatriisi muodostetaan komennolla array . Yksikkömatriisin koko määritellään määreellä identity .

> evalm(array(identity, 1..4,1..4));

[Maple Math]

Yksikkömatriisin muodostamiseen voi käyttää myös lävistäjämatriisin muodostuskomentoa diag :

> diag(3,2,1);

[Maple Math]

> diag(1,sin(x),2);

[Maple Math]

> diag(1$10);

[Maple Math]

Määritellään tarkasteluja varten matriisi M:

> M:=matrix([[8,9],[8,7]]);

[Maple Math]

Käänteismatriisi muodostetaan komennolla inverse :

> iM:=inverse(M);

[Maple Math]

Määritelmän mukaisesti matriisin ja käänteismatriisin tulo sekä käänteismatriisin ja matriisin tulo on vastaavan kokoinen yksikkömatriisi:

> evalm(M&*iM);

[Maple Math]

> evalm(iM&*M);

[Maple Math]

Matriisin determinantti lasketaan komennolla det :

> det(M);

[Maple Math]

> restart:

Lineaarinen yhtälöryhmä matriisimuodossa

> restart:

Tarkastellaan lineaarista yhtälöryhmää

[Maple Math]

[Maple Math]

[Maple Math] .

Kyseinen yhtälörymä on matriisimuodossa:

[Maple Math] .

Ladataan käyttöön pakkaus linalg , sekä määritellään kerroinmatriisi A ja vakiot sisältävä vektori b:

> with(linalg):

Warning, new definition for norm

Warning, new definition for trace

> A:=matrix([[1,3,1],[3,7,6],[3,5,7]]);

[Maple Math]

> b:=vector([-1,-4,-3]);

[Maple Math]

Lineaarinen yhtälöryhmä voidaan nyt ratkaista komennolla linsolve . Komennossa on mainittava kerroinmatriisi ja vakiot sisältävä vektori. Maple palauttaa myös ratkaisun vektorimuodossa x = [ [Maple Math] , [Maple Math] , [Maple Math] ].

> linsolve(A,b);

[Maple Math]

> restart: