MS-A0002 Matriisilaskenta Laskuharjoitus 1 / 2022 Mallit / Alkuviikko

MS-A0002 Matriisilaskenta Laskuharjoitus 1 / 2022 Mallit / Alkuviikko MS-A0002 Matriisilaskenta, III/2022 Turunen / Bergman MS-A0002 Matriisilaskenta Laskuharjoitus 1 / 2022 Mallit / Alkuviikko Tehtävä 1 (L): Käynnistä Matlab-ohjelma ja kokeile laskea sillä muutama peruslaskutoimitus: laske jokin yhteen-, vähennys-, kerto- ja jakolasku. Laske myös 2 14 , 3 sin(2π/3), e 1/2 ja √ 7843. Ratkaisu: Esimerkki yhteen- ja vähennyslaskusta, kertolaskusta ja jakolaskusta: >> 1+3-1 ans = 3 >> 3*3 ans = 9 >> 3/2 ans = 1.5000 Yllä käytettyjä merkkejä "*"ja "/"käytetään Matlabissa matriisien kerto- ja jakolaskuihin, matrii sien alkioiden käsittelyyn käytetään komentoja ".*"ja "./". Skalaareilla molemmat muodot toimivat samalla tavalla. >> 2^14 ans = 16384 >> 3*sin(2*pi/3) ans = 2.5981 >> exp(1/2) ans = 1.6487 >> sqrt(7843) ans = 88.5607 1 MS-A0002 Matriisilaskenta, III/2022 Turunen / Bergman Tehtävä 2 (L): Kolmiulotteisen reaaliavaruuden R 3 pisteitä merkitään usein antamalla koordinaa tit kolmen alkion pituisena pystyvektorina. Matlab-ohjelmalla tämä tapahtuu syöttämällä esimer kiksi » v=[1; 2; 3] a) Luo jotkin R 3 :n vektorit u ja v. Laske sitten näiden summa, erotus ja jokin muu lineaarikom binaatio, eli muotoa a*u+b*v oleva lauseke, jossa a ja b ovat valitsemasi vakiokertoimet. b) Pystyvektorista saat vastaavan vaakavektorin komennolla » v’ Mitä tapahtuu, jos kerrot vektorin itsellään? Entä jos kerrot pystyvektorin jommalta kum malta puolelta vastaavalla vaakavektorilla? Miten saat vektorin, jonka jokainen alkio on ko rotettu toiseen potenssiin? c) Määritellään vektori u: » u=[1+2*i 3+4*i] Mitä eroa on vektoreilla u.’ ja u’ ? Ratkaisu: a) >> v=[1; 2; 3]; >> u=[1; 1; 1]; >> u+v ans = 2 3 4 >> v-u ans = 0 1 2 >> 8*v-3*u ans = 5 13 21 2 MS-A0002 Matriisilaskenta, III/2022 Turunen / Bergman 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’ ans = 1 2 3 2 4 6 3 6 9 >> v’*v ans = 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 ans = 1 4 9 >> v.^2 ans = 1 4 9 3 MS-A0002 Matriisilaskenta, III/2022 Turunen / Bergman >> power(v,2) ans = 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. c) >> u=[1+2*i 3+4*i] u = 1 + 2i 3 + 4i >> u.’ ans = 1 + 2i 3 + 4i >> u’ ans = 1 - 2i 3 - 4i Ensimmäinen on tavanomainen matriisin (tai vektorin) transpoosi, jälkimmäisen ollessa ns. her miittitranspoosi, jossa myös imaginääriosan merkki vaihdetaan. Monet reaaliarvoisen matriisit ranspoosin ominaisuudet yleistyvät kompleksisille matriiseille, kun transpoosi vaihdetaan hermiit titranspoosiksi. Tehtävä 3 (P): Matlab on vektori- ja matriisilaskentaohjelmisto, joten se operoi hyvin pitkälti vektorien ja matriisien (näihin perehdymme ensi viikosta alkaen) avulla. Funktion kuvaajat Mat lab piirtää siten, että toisessa vektorissa annetaan laskentapisteet ja toisessa datapisteet. Siis esi merkiksi funktion f(x) = sin(x) kuvaaja välillä [−π, π] saadaan piirrettyä komentamalla >> x = -pi:.1:pi; >> y = sin(x); >> plot(x,y) 4 MS-A0002 Matriisilaskenta, III/2022 Turunen / Bergman Piirrä nyt funktioiden g(x) = x 2 ja h(x) = x 3−x kuvaajat välillä [−2, 2], sopivalla askelpituudella. Saatko ne piirrettyä samaan kuvaan? Tallenna kuva ja tulosta se tehtäväsi liitteeksi. Ratkaisu: Määritellään ensin laskenta- ja datapisteet: >> x=-2:.1:2; >> g=x.^2; >> h=x.^3-x; 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 (P): 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 taulukoina. Esimerkiksi >> [X,Y] = meshgrid(-8:.5:8); >> Z = X.^2-2*Y.^2; >> mesh(X,Y,Z) luo xy-tason pisteverkon, laskee kussakin näistä pisteistä funktion f(x, y) = x 2−2y 2 arvon ja piir tää pinnan. Piirrä nyt jonkin itse valitsemasi kahden muuttujan funktion kuvaaja, eli mahdollisim man hieno pinta! Tallenna kuva ja tulosta se tehtäväsi 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: 5 MS-A0002 Matriisilaskenta, III/2022 Turunen / Bergman >> [X,Y] = meshgrid(-5:.15:5); >> Z=X.^2- 2*Y.^2; >> mesh(X,Y,Z) Tämä tuottaa seuraavanlaisen kuvaajan:

More information