Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37 Tehtävä 1: Käynnistä Matlab-ohjelma ja kokeile laskea sillä muutama peruslaskutoimitus: laske jokin yhteen-, vähennys-, kerto- ja jakolasku. Laske myös 14, 3 sin(π/3), e 1/ ja 7843. Ratkaisu: Esimerkki yhteen- ja vähennyslaskusta, kertolaskusta ja jakolaskusta: >> 1+3-1 3 >> 3*3 9 >> 3/ 1.5000 Yllä käytettyjä merkkejä "*"ja "/"käytetään Matlabissa matriisien kerto- ja jakolaskuihin, matriisien alkioiden käsittelyyn käytetään komentoja ".*"ja "./". Skalaareilla molemmat muodot toimivat samalla tavalla. >> ^14 16384 >> 3*sin(*pi/3).5981 >> exp(1/) 1.6487 >> sqrt(7843) 88.5607 1
Tehtävä : Kolmiulotteisen reaaliavaruuden R 3 pisteitä merkitään usein antamalla koordinaatit kolmen alkion pituisena pystyvektorina. Matlab-ohjelmalla tämä tapahtuu syöttämällä esimerkiksi» v=[1; ; 3] a) Luo jotkin R 3 :n vektorit u ja v. Laske sitten näiden summa, erotus ja jokin muu lineaarikombinaatio, eli muotoa a*u+b*v oleva lauseke, jossa a ja b ovat valitsemasi vakiokertoimet. b) Pystyvektorista saat vastaavan vaakavektorin komennolla» v tai» v. (Näillä komennoilla on itse asiassa pieni ero, joka mainitaan loppuviikon luennolla, kun aiheena ovat kompleksiluvut.) Mitä tapahtuu, jos kerrot vektorin itsellään? Entä jos kerrot pystyvektorin jommalta kummalta puolelta vastaavalla vaakavektorilla? Miten saat vektorin, jonka jokainen alkio on korotettu toiseen potenssiin? (Vihje: Viimeiseen kysymykseen voit saada apua kirjoittamalla» help power) Ratkaisu: a) >> v=[1; ; 3]; >> u=[1; 1; 1]; >> u+v 3 4 >> v-u 0 1 >> 8*v-3*u 5 13 1
b) >> v*v Error using * Inner matrix dimensions must agree. Kuten aikaisemmin mainittu, muotoa A*B oleva lauseke on Matlabissa matriisikertolasku, joka on määritelty vain jos A:ssa on yhtä monta saraketta kuin B:ssä on rivejä. Yllä tämä ehto ei toteudu, joten Matlab antaa virheilmoituksen. Seuraavissa ehto toteutuu: >> v*v >> v *v 1 3 4 6 3 6 9 14 3x1- ja 1x3-matriisien kertolasku tuottaa 3x3-matriisin, 1x3- ja 3x1-matriisien kertominen taas 1x1-matriisin eli skalaarin. Vektorin kaikki alkiot voidaan korottaa toiseen potenssiin kolmella eri tavalla: >> v.*v 1 4 9 >> v.^ 1 4 9 3
>> power(v,) 1 4 9 A.*B-muotoinen lauseke kertoo matriisien A ja B alkiot keskenään, tässä tapauksessa siis vektorin u alkiot itsellään. A.ˆb ja power(a,b) korottavat molemmat A:n kaikki alkiot potenssiin b. Tehtävä 3: Matlab on vektori- ja matriisilaskentaohjelmisto, joten se operoi hyvin pitkälti vektorien ja matriisien (näihin perehdymme ensi viikosta alkaen) avulla. Funktion kuvaajat Matlab piirtää siten, että toisessa vektorissa annetaan laskentapisteet ja toisessa datapisteet. Siis esimerkiksi funktion f(x) = cos(x) kuvaaja välillä [ π, π] saadaan piirrettyä komennoilla» x = -pi:0.1:pi;» y = cos(x);» plot(x,y) Piirrä nyt funktioiden g(x) = x ja h(x) = x 3 kuvaajat jollakin sopivalla välillä, sopivalla askelpituudella. Saatko piirrettyä ne samaan kuvaan? Tallenna kuva ja tulosta se ratkaisusi liitteeksi. (Vihje:» help hold) Ratkaisu: Määritellään ensin laskenta- ja datapisteet: >> x=-:.1:; >> g=x; >> h=x.^3; Kuvaajat piirretään käskyillä plot(x,g) ja plot(x,h). Samaan kuvaan kuvaajat saadaan käskyllä plot(x,g,x,h) tai >> plot(x,g) >> hold on >> plot(x,h) Tehtävä 4: Luonnollisesti voimme piirtää myös kolmiulotteisia kuvia eli pintoja. Ideana tällöin on, että jokaiseen xy-tason pisteeseen on liitetty yksi arvo, joka määrittelee pinnan korkeuden sillä kohdalla. Nyt tarvitaan xy-tason pisteverkko ja data-arvot, jotka annetaan taulukkoina. Esimerkiksi >> [X,Y] = meshgrid(-8:0.5:8); >> Z = X.^-*Y.^; >> mesh(x,y,z) 4
Kuva 1: Käyrät tehtävässä 3. luo xy-tason pisteverkon, laskee kussakin näistä pisteistä funktion f(x, y) = x y arvon ja piirtää pinnan. Piirrä nyt jonkin itse valitsemasi kahden muuttujan funktion kuvaaja, eli mahdollisimman hieno pinta! Tulosta kuva ratkaisusi liitteeksi. Merkitse mukaan myös komennot, joilla kuva on piirretty. Lisäapuja voit katsoa Matlabin manuaalista. Ratkaisu: Pisteverkko ja datapisteet määritetään kuten tehtävänannossa, kuvaaja piirretään mesh(x,y,z)- komennolla. Esimerkki: >> [X,Y] = meshgrid(-5:.15:5); >> Z=sinc(sqrt(X.^+Y.^)); >> mesh(x,y,z) Kuvaaja löytyy kuvasta 4. Tehtävä 5 (L): a) Ovatko vektorit u = (, 1, 1) ja v = ( 1,, ) kohtisuorassa toisiaan vastaan? Jos eivät, mikä on niiden välinen kulma? b) Anna napakoordinaatiston pisteet (, π/3) ja (1, π/6) karteesisissa koordinaateissa. Tarkista piirtämällä kuva. Ratkaisu: a) Lasketaan pistetulo: u v = ( ( 1)) + (( 1) ) + (1 ) =. Koska u v 0, eivät vektorit ole kohtisuorassa toisiaan vastaan. Niiden välinen kulma saadaan 5
MS-A0004/MS-A0006 Matriisilaskenta, I/016 Kuva : Kuvaaja tehtävässä 4. 6
lausekkeesta: u v = u v cos(θ) ( ) ( ) u v θ = arccos = arccos u v 3 6 θ 1.85 105.8 b) Napakoordinaatiston piste (r, ϕ) karteesisissa koordinaateissa löytyy seuraavilla kaavoilla: x = r cos(ϕ) y = r sin(ϕ) Joten (, π/3) on karteesisissa koordinaateissa: x = cos(π/3) = 1 y = sin(π/3) = 6 Ja (1, π/6) on x = cos( π/6) = 3 y = sin( π/6) = 1 Tehtävä 6 (L): Olkoot u = ( 1,, ) ja v = (1, 3, 3). Laske ristitulo u v sekä vektoreiden u ja v määräämän kolmion pinta-ala. Ratkaisu: Lasketaan i j k u v = 1 1 3 3 = 3 3 i 1 1 3 j + 1 1 3 k = ( 3 ( 3) )i (( 1) 3 1 )j + (( 1) ( 3) 1 )k = 1i + 5j + 1k Ristitulovektorin pituus on yhtä suuri kuin vektorien u ja v määräämän suunnikkaan pinta-ala. Vektorien määräämän kolmion ala on puolet tämän suunnikkaan alasta, eli A = 1 u v = 1 1 + 5 + 1 = 170 7
Tehtävä 7 (P): a) Sievennä kompleksiluku 4 + i 3 i muotoon x + yi, missä x, y R. b) Tulkitse seuraavat kompleksiluvut tason R pisteiksi (piirrä kuva!) ja laske niiden napakoordinaatit eli itseisarvot ja vaihekulmat (välillä ] π, π]): 1 + 3 i, 1 + 3 i, 1 3 i. Ratkaisu: a) Ratkaisu saadaan laventamalla lauseketta nimittäjän kompleksikonjugaatilla: 4 + i 3 i = (4 + i)(3 + i) (3 i)(3 + i) = 10 + 10i 10 = 1 + i b) Kompleksilukua a+bi vastaa kompleksitason piste (a, b), jonka napakoordinaatit saadaan seuraavilla kaavoilla: r = a + b ϕ = arctan(b/a) Kompleksitason pisteen (1, 3) napakoordinaatit: r = 1 + ( 3) = ϕ = arctan( 3/1) = π 3 Pisteen ( 1, 3) on kompleksitason II-neljänneksessä, joten kulmaan pitää lisätä π: r = ( 1) + ( 3) = ϕ = arctan( 3/( 1)) + π = π 3 Piste ( 1, 3) on kompleksitason III-neljänneksessä, kulmasta pitää vähentää π: r = ( 1) + ( 3) = ϕ = arctan(( 3)/( 1)) π = arctan( 3)) π = π 3 8
Im -1+i3 1+i3 Re -1-i3 Kuva 3: Kuva pisteistä kompleksitasolla tehtävässä 7. Tehtävä 8 (P): Tarkastellaan kompleksilukuja z = i ja w = 1 + 3i. Laske luvut zw ja w z esitä ne napakoordinaateissa. Piirrä myös kuva ja tarkista vastauksesi sen avulla. ja Ratkaisu: Lasketaan zw =( i)(1 + 3i) = + 6i i + 3 = 5 + 5i w z =1 + 3i i = (1 + 3i)( + i) ( i)( + i) Napakoordinaatit saadaan edellisen tehtävän kaavoilla: = 1 + 7i 5 r zw = 5 + 5 = 5 (( 1) ) + 7 r w/z = = 5 ϕ zw = arctan (1) = π 4.36 ϕ w/z = arctan ( 7) + π 1.71 = 1 5 + 7 5 i Koska w on kompleksitason II-neljänneksessä, lisäsimme kulmaan π. Kuvasta nähdään, että 0 z ϕ wz π ja π ϕ w/z π kuten pitääkin. 9
10