Mat-1.415 V3/2002 LA.mw HA 11.9.02/maaliskuu 2012
<Text-field style="Heading 1" layout="Heading 1">Alustukset, aliakset, kirjastot</Text-field> restart: with(linalg): with(LinearAlgebra): Edellinen on vanhempi, versiosta 6 alkaen on uudempi. Pyrimme etup"a"ass"a k"aytt"am"a"an uutta, mutta joskus on mukavaa/tarpeellista soveltaa jotain vanhan kunnon linalgin funktiota. Koska uudet nimet ovat tosi pitki"a, kannattaa m"a"aritell"a aliakset: alias(rref=ReducedRowEchelonForm): alias(Diag=DiagonalMatrix): alias(ref=GaussianElimination): # "row echelon form" alias(Det=Determinant,Id=IdentityMatrix):
<Text-field style="Heading 1" layout="Heading 1">Matriisien rakentelu ja laskutoimitukset</Text-field>
<Text-field style="Heading 2" layout="Heading 2">Rakentelu</Text-field>
Kaikki matriisit kannattaa ajatella muodostetuiksi ositetuista matriiseista. Katsotaan seuraavassa muutamia esimerkkej"a: JSFH Maple Matlab LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkobWZlbmNlZEdGJDYmLUYjNictSSNtbkdGJDYkUSIxRicvJSxtYXRodmFyaWFudEdRJ25vcm1hbEYnLUkjbW9HRiQ2LVEiLEYnRjQvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHUSV0cnVlRicvJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdRLDAuMzMzMzMzM2VtRictRjE2JFEiMkYnRjRGNy1GMTYkUSIzRidGNEY0LyUlb3BlbkdRJyZsYW5nO0YnLyUmY2xvc2VHUScmcmFuZztGJy1GODYtUSI7RidGNEY7Rj5GQUZDRkVGR0ZJRksvRk9RLDAuMjc3Nzc3OGVtRic= Mapessa ei saa unohtaa pilkkuja, kuten Matlabissa LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkobWZlbmNlZEdGJDYmLUYjNistSSNtbkdGJDYkUSIxRicvJSxtYXRodmFyaWFudEdRJ25vcm1hbEYnLUkjbW9HRiQ2LVEifkYnRjQvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTC1GODYtUSJ8Z3JGJ0Y0RjtGPi9GQVEldHJ1ZUYnRkJGREZGRkgvRktRLDAuMTExMTExMWVtRicvRk5GVUY3LUYxNiRRIjJGJ0Y0RjdGT0Y3LUYxNiRRIjNGJ0Y0RjQvJSVvcGVuR1EnJmxhbmc7RicvJSZjbG9zZUdRJyZyYW5nO0YnLUY4Ni1RIjtGJ0Y0RjsvRj9GU0ZARkJGREZGRkhGSi9GTlEsMC4yNzc3Nzc4ZW1GJw== LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkobWZlbmNlZEdGJDYmLUYjNiUtRiw2Ji1GIzYlLUkjbW5HRiQ2JFEiMUYnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy1JI21vR0YkNi1RIixGJ0Y4LyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR1EldHJ1ZUYnLyUpc3RyZXRjaHlHRkEvJSpzeW1tZXRyaWNHRkEvJShsYXJnZW9wR0ZBLyUubW92YWJsZWxpbWl0c0dGQS8lJ2FjY2VudEdGQS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHUSwwLjMzMzMzMzNlbUYnLUY1NiRRIjNGJ0Y4RjgvJSVvcGVuR1EnJmxhbmc7RicvJSZjbG9zZUdRJyZyYW5nO0YnLUY8Ni1RInxnckYnRjhGPy9GQ0ZBL0ZGRkRGR0ZJRktGTS9GUFEsMC4xMTExMTExZW1GJy9GU0Zeby1GLDYmLUYjNiUtRjU2JFEiMkYnRjhGOy1GNTYkUSI0RidGOEY4RlhGZW5GOEZYRmVuLUY8Ni1RIjtGJ0Y4Rj9GQkZFRkdGSUZLRk1GTy9GU1EsMC4yNzc3Nzc4ZW1GJw== LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2JVEiQUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RKiZjb2xvbmVxO0YnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLyUncnNwYWNlR0ZMLUkobWZlbmNlZEdGJDYmLUYjNiYtRlA2Ji1GIzYnLUkjbW5HRiQ2JFEiMUYnRjktRjY2LVEifkYnRjlGO0Y+RkBGQkZERkZGSC9GS1EmMC4wZW1GJy9GTkZqbi1GNjYtUSJ8Z3JGJ0Y5RjtGPi9GQUYxRkJGREZGRkgvRktRLDAuMTExMTExMWVtRicvRk5GYW9GZm4tRlk2JFEiMkYnRjlGOS8lJW9wZW5HUScmbGFuZztGJy8lJmNsb3NlR1EnJnJhbmc7RictRjY2LVEiLEYnRjlGOy9GP0YxRkBGQkZERkZGSEZpbi9GTlEsMC4zMzMzMzMzZW1GJy1GUDYmLUYjNigtRlk2JFEiM0YnRjlGZm5GXG9GZm4tRlk2JFEiNEYnRjlGZm5GOUZmb0Zpb0ZmbkY5RmZvRmlvLUY2Ni1RIjtGJ0Y5RjtGX3BGQEZCRkRGRkZIRmluRk0= LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkobWZlbmNlZEdGJDYmLUYjNiYtRiw2Ji1GIzYnLUkjbWlHRiQ2JVEiQUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIn5GJy9GPFEnbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkYvJSlzdHJldGNoeUdGRi8lKnN5bW1ldHJpY0dGRi8lKGxhcmdlb3BHRkYvJS5tb3ZhYmxlbGltaXRzR0ZGLyUnYWNjZW50R0ZGLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGVS1GPzYtUSJ8Z3JGJ0ZCRkRGRy9GSkY6RktGTUZPRlEvRlRRLDAuMTExMTExMWVtRicvRldGZ25GPi1GLDYmLUYjNiUtSSNtbkdGJDYkUSIxRidGQi1GPzYtUSIsRidGQkZEL0ZIRjpGSUZLRk1GT0ZRRlMvRldRLDAuMzMzMzMzM2VtRictRl5vNiRRIjJGJ0ZCRkIvJSVvcGVuR1EnJmxhbmc7RicvJSZjbG9zZUdRJyZyYW5nO0YnRkJGam9GXXBGYW9GPi1GLDYmLUYjNictRjU2JVEiYUYnRjhGO0ZYLUY1NiVRImJGJ0Y4RjtGWC1GNTYlUSJjRidGOEY7RkJGam9GXXBGQkZqb0ZdcC1GPzYtUSI7RidGQkZERmRvRklGS0ZNRk9GUUZTL0ZXUSwwLjI3Nzc3NzhlbUYn JSFH Matriisin osia voi muutella (Matlabmaisesti). LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEiQkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RKiZjb2xvbmVxO0YnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLyUncnNwYWNlR0ZMLUkobWZlbmNlZEdGJDYmLUYjNiYtRlA2Ji1GIzYnLUYsNiVRIkFGJ0YvRjItRjY2LVEifkYnRjlGO0Y+RkBGQkZERkZGSC9GS1EmMC4wZW1GJy9GTkZpbi1GNjYtUSJ8Z3JGJ0Y5RjtGPi9GQUYxRkJGREZGRkgvRktRLDAuMTExMTExMWVtRicvRk5GYG9GZW4tRlA2Ji1GIzYlLUkjbW5HRiQ2JFEiMUYnRjktRjY2LVEiLEYnRjlGOy9GP0YxRkBGQkZERkZGSEZobi9GTlEsMC4zMzMzMzMzZW1GJy1GZ282JFEiMkYnRjlGOS8lJW9wZW5HUScmbGFuZztGJy8lJmNsb3NlR1EnJnJhbmc7RidGOUZjcEZmcEZqb0Zlbi1GUDYmLUYjNictRiw2JVEiYUYnRi9GMkZbby1GLDYlUSJiRidGL0YyRltvLUYsNiVRImNGJ0YvRjJGOUZjcEZmcEY5RmNwRmZwLUY2Ni1RIjtGJ0Y5RjtGXXBGQEZCRkRGRkZIRmhuRk1GZW5GZW4= LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzZVLUkjbWlHRiQ2JVEiQkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JKG1mZW5jZWRHRiQ2Ji1GIzYpLUkjbW5HRiQ2JFEiMUYnL0YzUSdub3JtYWxGJy1JI21vR0YkNi1RIixGJ0Y+LyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0YxLyUpc3RyZXRjaHlHRkYvJSpzeW1tZXRyaWNHRkYvJShsYXJnZW9wR0ZGLyUubW92YWJsZWxpbWl0c0dGRi8lJ2FjY2VudEdGRi8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHUSwwLjMzMzMzMzNlbUYnRjotRkE2LVEjLi5GJ0Y+RkQvRkhGRkZJRktGTUZPRlEvRlRRLDAuMjIyMjIyMmVtRicvRldGVS1GQTYtUSomdW1pbnVzMDtGJ0Y+RkRGZm5GSUZLRk1GT0ZRRmduL0ZXRmhuRjpGPkY+LyUlb3BlbkdRIltGJy8lJmNsb3NlR1EiXUYnLUZBNi1RKiZjb2xvbmVxO0YnRj5GREZmbkZJRktGTUZPRlEvRlRRLDAuMjc3Nzc3OGVtRicvRldGaG8tRjY2Ji1GIzYoLUYsNiVRInhGJ0YvRjItRkE2LVEifGdyRidGPkZERmZuL0ZKRjFGS0ZNRk9GUS9GVFEsMC4xMTExMTExZW1GJy9GV0ZmcEZecEZhcEZecEY+Rj4vRl9vUScmbGFuZztGJy9GYm9RJyZyYW5nO0YnLUZBNi1RIjpGJ0Y+RkRGZm5GSUZLRk1GT0ZRRmdvRmlvLUZBNi1RIn5GJ0Y+RkRGZm5GSUZLRk1GT0ZRRlNGaW4tRkE2LVEiI0YnRj5GREZmbkZJRktGTUZPRlFGU0Zpbi1GLDYlUTR+TXV1dGV0YWFufjEufnJpdmkuRidGL0YyLUknbXNwYWNlR0YkNiYvJSdoZWlnaHRHUSYwLjBleEYnLyUmd2lkdGhHRlUvJSZkZXB0aEdGXXIvJSpsaW5lYnJlYWtHUShuZXdsaW5lRidGX3FGKy1GQTYtUSI7RidGPkZERkdGSUZLRk1GT0ZRRlNGaW9GX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGX3FGYnEtRiw2JVEufkthdHNvdGFhbn5CLkYnRi9GMi8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStleGVjdXRhYmxlR0ZGRj4= 1..-1 vastaa Matlabin pelkk\303\244\303\244 kaksoispistett"a (:). Indeksi -1 vastaa Matlab:n end:i"a >> [1;2;3] >> [1 2 3] % tai [1,2,3] >> [1 2;3 4] >> syms a b c >> B=[A [1;2] ;[a b c]] B = [ 1, 2, 1] [ 3, 4, 2] [ a, b, c] >> syms x >> B(1,:)=[x x x] B = [ x, x, x] [ 3, 4, 2] [ a, b, c] Matlabissa voitaisiin kirjoittaa: B(1,1:end)=[x x x]
Voit viel"a kokeilla seuraavia muuttamalla kaksoispisteet (:) puolipisteiksi (;). B[1,1..-2]: B[1..-1,2]:=<haa,hii,hoo>: B: B[2..3,[1,3]]: B[2..3,[1,3]]:=<<21,31>|<23,33>>: B:
<Text-field style="Heading 2" layout="Heading 2">Laskutoimitukset</Text-field> K"ayd"a"an l"api perusoperaatiot esimerkkien avulla. A := <<1,2>|<3,4>>; B := <<a,b>|<c,d>>; Kertolasku A . B; Transpoosi Transpose(A);
<Text-field style="Heading 1" layout="Heading 1">Gaussin eliminaatio rivioperaatioilla (k"asin)</Text-field> Aloitetaan restartista. restart:with(linalg): with(LinearAlgebra): Esim: A := <<1,1,0,1>|<-1,1,2,-3>|<1,2,1,0>|<0,4,4,-4>|<0,1,3,-2>|<2,2,1,1>>; b:=<0,3,2,0>; Ab:=<A|b>; Ab[2,1..-1]:=Ab[2,1..-1]-Ab[1,1..-1]: Ab; Ab[4,1..-1]:=Ab[4,1..-1]-Ab[1,1..-1]: Ab; 1. sarake nollattu. Siirryt"a"an 2. sarakkeeseen. Ab[3,1..-1]:=Ab[3,1..-1]-Ab[2,1..-1]: Ab; Ab[4,1..-1]:=Ab[4,1..-1]+Ab[2,1..-1]: Ab; 2. sarake nollattu. Seuraava pivot on sarakkeessa 5. Ab[4,1..-1]:=Ab[4,1..-1]+(1/2)*Ab[3,1..-1]: Ab; Ratkaise nyt "k"asin"! x6:=solve(-1/2*x=5/2,x); x5 ja x4 vapaita. x5:=solve(2*x+x6=-1,x); Jne. Kaikenkaikkiaan 2 vapaata parametria,x4 ja x3. Jos haluttaisiin sarakepermutaatioita, niin n"ain: Ab[1..-1,[3,5]]:=Ab[1..-1,[5,3]]:Ab[1..-1,[4,6]]:=Ab[1..-1,[6,4]]: Ab;
<Text-field style="Heading 1" layout="Heading 1">Gaussin eliminaatio valmiilla funktioilla, aliakset ref ja rref</Text-field> restart:with(linalg): with(LinearAlgebra): alias(rref=ReducedRowEchelonForm): alias(ref=GaussianElimination): # "row echelon form" A := <<1,1,0,1>|<-1,1,2,-3>|<1,2,1,0>|<0,4,4,-4>|<0,1,3,-2>|<2,2,1,1>>; b:=<0,3,2,0>:Ab:=<A|b>; E:=ref(Ab); rref(Ab);
<Text-field style="Heading 1" layout="Heading 1">Takaisinsijoitus ref-muodosta sek"a ,LinearSolve</Text-field> E; LinearSolve(E[1..-1,1..-2],E[1..-1,-1]);