Lineaarialgebra a, kevät 2019 Harjoitus 6 (ratkaisuja Maple-dokumenttina) restart; with(linalg): # toteuta ihan aluksi! Tehtävä 1. Säännöllisyys yhdellä yhtälöllä Koska matriisit A ja B ovat neliömatriiseja ja, on tulon determinantin laskusäännön (Lause 6.6.1) mukaan 1 = det(i) = det(ab) = det(a) det(b). Silloin det(a) on nollasta poikkeava, ja Lauseen 6.5.1 mukaan A on säännöllinen, ja siten myös on säännöllinen (Lause 5.2.1 a). Lauseen 5.4.1 mukaan voidaan yhtälö AB = I kertoa säännöllisellä matriisilla vasemmalta; tällöin saadaan supistussäännön mukaan B =. Tehtävä 2. Tulon säännöllisyyssääntö I Jos A ja B ovat säännöllisiä n x n -matriiseja, on tulo AB vanhan Lauseen 5.2.1 c mukaan säännöllinen. II Jos A ja B ovat n x n -matriiseja ja tulo AB säännöllinen, niin tulon determinanttisäännön (Lause 6.6.1) mukaan = det(a) det(b). Siis ja, joten Lauseen 6.5.1 mukaan molemmat ovat säännöllisiä. Tehtävä 3. Laskutoimitusten määristä Laskutoimitusten määrien kaavat funktioina, kun n on matriisin koko (n x n) Y viittaa yhteenlaskuihin, K kertolaskuhin, k kehittämismenetelmään ja e eliminointimenetelmään: Yk := n - n!- 1: #! kertoma Kk := n - 'sum'(n!/p!, p=1..n-1): #'' viivästys Ye := n - n/6*(n-1)*(2*n-1): Ke := n - 1/3*(n-1)*(n^2+n+3): Kaavat sievemmin [Yk(n), Kk(n), Ye(n), Ke(n)]; Maple sisältää myös taulukolaskentaa symbolimuodossa (3.1) A B C D E F 1 2 3 4 5 6 Tehtävä 4. Adjungoitu matriisi ja käänteismatriisi Lasketaan adjungoitu matriisi ja käänteismatriisi lyhyyden vuoksi Maplella: A := matrix([[1,-2,5], [-2,5,1], [1,-2,-4]]);
(4.1) ADJA := adjoint(a); # liittomatriisi adj(a) Maplella (4.2) det(a); # jos det(a) ei ole nolla, on A säännöllinen Siis A on säännöllinen, ja voidaan käyttää kaavaa A^(-1) = 1/det(A) * adj(a): (1/det(A))*evalm(ADJA); # käänteismatriisi on (tässä Maplella typerä esitysmuoto matriisi/luku): (4.3) (4.4) Tästä näkyvät sekä liittomatriisi, determinantti, että käänteismatriisi. Tehtävä 5. Käänteismatriisin rivillä 3 sarakkeessa 4 oleva alkio Tarkastetaan onko A ensinnäkään säännöllinen, samalla saadaan determinantti selville: A := matrix([[1,-1,0,-4],[2,6,-7,6],[1,0,2,0],[2,-4,-7,-7]]); (5.1) det(a); # jos det(a) ei ole nolla, on A säännöllinen 261 (5.2) Koska A^(-1) on olemassa, on se laskettavissa kaavalla 1/det(A)*adj(A), mistä tarvitaan alkio (adj(a)) (3,4). Koska adj(a) on kofaktorimatriisin (Aij) = cof(a) transpoosi, tarvitaan kofaktori A43 = (cof(a))(4,3). Kofaktoria A43 varten tarvitaan alkiota A(4,3) vastaava matriisi (engl. minor) M43 #?minor M43 := minor(a,4,3); (5.3) A43 := (-1)^(4+3)*det(M43); '1/det(A)*A43' = 1/det(A)* A43; (5.4) (5.5) Tarkastus Maplella toista kautta:
(inverse(a))[3,4]; # Maplessa alkioon viitataan hakasulkujen sisällä (5.6) Tehtävä 6. Cramerin säännöllä A := matrix([[2,-1,-3],[1,-2,4],[-1,-5,2]]); (6.1) b := vector([2,0,-1]); LAAJA := augment(a,b); (6.2) (6.3) Hieman temppuilua: Lisättiin vektori b matriisin 4:nneksi sarakkeeksi. Määritellään funktio vaihto := (M,i) - delcols(swapcol(m,i,4),4..4); joka vaihtaa matriisin i:nnen sarakkeen b:ksi ja poistaa samalla turhan neljännen sarakkeen; siis laskee Cramerin säännön osoittajassa tarvittavan matriisin. Näytetään viivästetysti (6.4) seq(x[i] = 'det'(vaihto(laaja,i))/'det'(a), i = 1..3); (6.5) ja lopulta tulokset seq(x[i] = det(vaihto(laaja,i))/det(a), i = 1..3); (6.6) Tarkastus: linsolve(a,b); (6.7) Tehtävä 7. Kelvollisia vai kelvottomia operaatioita? Mitkä lineaariavaruuden määritelmän kohtien (0), (i) ja (ii) ominaisuudet ovat voimassa?
(0) Joukot: R on kerroinkuntana kaikissa. Samoin kussakin operoivat alkiot ovat tason vektoreita ja siis V = R^2, epätyhjä joukko siis. (i) ja (ii) Kohdassa a) ensimmäinen operaatio on funktio R^2 x R^2 -- R^2, siis kelpoinen. Toinen taas on funktio R x R^2 -- R^2, ja siis myös kelpoinen. b) Kelpoisia, samanlainen perustelu kuin kohdassa a). Kohdassa c) tulokset eivät ole kelvollisia. Ne ovat kyllä funktioita, lähtöjoukot kuten a)-kohdassa, mutta maalijoukko molemmissa on R eikä R^2. Mitkä aksioomien (iii) kohdat A1-A8 voimassa kohdassa a)? Yhteenlasku tavallinen, joten A1-A4 voimassa, neutraalialkiona (0 0)^T ja vasta-alkioina tavalliset vastavektorit. Määritellään tarvittavat sopivamuotoiset oliot laskuja varten: restart; with(linalg): `&oplus` := (x,y) - x + y; `&odot` := (alpha,x) - alpha*x + Vector([0,1-alpha]) X := Vector(2, symbol = x); # "testivektorit" Y := Vector(2, symbol = y); (7.1) (7.2) (7.3) X &oplus Y; alpha &odot X; # Tulokset näyttävät miltä pitää? (7.4) (iii) A5: Onko totta? Eri puoliskot tässä: A5 := alpha &odot (X &oplus Y) = (alpha &odot X) &oplus (alpha &odot Y); (7.5) lhs(a5), rhs(a5); (7.6)
equal(lhs(a5),rhs(a5)); # yleensä ei kannata luottaa näissä Mapleen! false (7.7) Vastaesimerkki saadaan valitsemalla vaikkapa ja vektorit x = 0 = y, jolloin vasen = (0 1)^T ja oikea = (0 2)^T. (iii) A6: Onko totta Eri puoliskot tässä: A6 := (alpha + beta) &odot X = (alpha &odot X) &oplus (beta &odot X); (7.8) A6 := simplify(a6); (7.9) equal(lhs(a6),rhs(a6)); false (7.10) Vastaesimerkki saadaan valitsemalla vaikkapa,, ja x = 0, jolloin vasen = (0 1)^T ja oikea = (0 2)^T. (iii) A7: Onko totta? ON! A7 := alpha &odot ( beta &odot X) = (alpha * beta) &odot X; (7.11) simplify(a7); (7.12) A8. Ykkösellä kertominen myös pelittää: 1 &odot X = X; (7.13) VASTAUS: Kohdat A1-4 ja A7, A8 ovat voimassa, mutta seka-aksioomat A5 ja A6 eivät ole voimassa. Tehtävä 8. x oplus y := x + y - a etc. Vrt. Omituiset Esimerkit 9.5.6 ja 9.5.8. 1. Laskutoimitusten määrittelyt Tässä määritellään aivan erityiset kahden muuttujan funktiot, joita käytetään dyadisesti, siis muuttujien välissä:
restart; with(linalg): `&oplus` := (x,y) - x + y - A; #`&oplus` := (x,y) - simplify(evalm(x + y - a)); `&odot` := (alpha,x) - alpha*(x-a) + A; #`&odot` := (alpha,x) - simplify(evalm(alpha*(x-a) + a)); (8.1) (8.2) (8.3) Muodostetaan mielivaltaiset "testivektorit", joilla jatkossa pelataan: X := Vector(2, symbol = x); # taas "testivektorit" Y := Vector(2, symbol = y); Z := Vector(2, symbol = z); (8.4) (8.5) A := Vector(2,symbol = a); # se vakiovektori (8.6) 2. Testiskalaarien ja -vektorien tyypit Kerrotaan Maplelle, että ja ovat reaalilukuja: assume(alpha,real); assume(beta,real); 3. (i) ja (ii) Laskutoimitukset funktioita (käyttäjä tutkii itse kelpoisuuden) X &oplus X; alpha &odot X; # operaatioiden tulokset: (8.7) (iii) A1. Vaihdannaisuus (commutativity) A1 := X &oplus Y = Y &oplus X; # havaitaan samoiksi? (8.8)
(8.8) Huomaa, että = -merkki on tässä vain erottamassa eri puolet, olipa ne samat tai ei! (iii) A2. Liitännäisyys (associativity) A2 := X &oplus (Y &oplus Z) = (X &oplus Y) &oplus Z; # samat? (8.9) (iii) A3. Neutraalialkion laskeminen (zero element, null vector) Määritellään tuntematon vektori E, josta pitäisi saada tämän systeemin nollavektori: E := Vector(2, symbol = e); (8.10) X &oplus E = X; (8.11) Helposti nähdään, että yhtälöllä on (vektorista X riippumaton) ratkaisu E = A = ( )^T : määritellään nyt Y &oplus A = A &oplus Y; (8.12) (iii) A4: Vasta-alkioiden laskeminen (inverse element) Määritellään tuntematon m_x, josta toivomme vasta-alkiota vektorille X (m-alaviiva korvaa rinkulamiinuksen!): m_x := Vector(2, symbol = m_x); (8.13) X &oplus m_x = A; (8.14) Edellisestä ratkaistaan m_x1 ja m_x2, ja määritellään lopuksi m_x := Vector([-x[1]+2*a[1],-x[2]+2*a[2]]); # alkion x vastaalkio: (8.15)
X &oplus m_x; # tarkastus, onko tulos nolla-alkio a (8.16) m_x &oplus X; # ja toisinpäin (8.17) (iii) A5. I osittelulaki (I distributivity law) TOSI A5 := alpha &odot (X &oplus Y) = (alpha &odot X) &oplus (alpha &odot Y); (8.18) simplify(a5); (8.19) (iii) A6. II osittelulaki (II distributivity law) TOSI A6 := (alpha + beta)&odot X = (alpha &odot X) &oplus (beta &odot X); (8.20) simplify(a6); (8.21) (iii) A7. Skalaarin asema A7 := alpha &odot ( beta &odot X) = (alpha * beta) &odot X; (8.22) A8. Ykkösellä kertominen 1 &odot X = X; (8.23) Siis kaikki aksioomat toteutuvat!