Symbolinen laskenta Harjoitus Jatkuu... Kursiivilla merkityt sanat ovat vinkkejä Maximan Help -järjestelmään. Tasaleveyisellä kirjasinlajilla merkityt sanat ovat (Maximan omia tai käyttäjän määrittelemiä) komentoja tai symboleita/muuttujia. Pääteviivattomalla kirjasinlajilla merkityt sanat ovat Maximan valikkojen ja/tai alavalikkojen nimiä.. Käynnistä wxmaxima, kirjoita ikkunaan laskutoimitukseksi vaikka +, päätä syöterivi puolipisteeseen ( ; ) ja suorita laskutoimitus (=paina shift + return tai enter ). 2. Laske vaativampia laskutoimituksia, vaikkapa suuria kertolaskuja ja potenssiin korotuksia. Kertolaskuun tarvitset merkin * (returnin vieressä) ja potenssiinkorotukseen ^ (=aksenttimerkki välilyöntimerkin päälle, tai **). 3. Avaa Help-valikosta Maxima Help. Valitse hakutavaksi Index. Kirjoita hakusanaksi numer; lue dokumentaatio, ja laske piille %pi likiarvo. Likiarvon voi laskea myös komennolla float ja suurtarkkuuslikiarvon komennolla bfloat (float floating point, bfloat big float). Tarkkuus ilmaistaan muuttujalla fpprec ( floating point precision): bfloat(lauseke), fpprec:tarkkuus. Laske piin likiarvo 00 numeron tarkkuudella. Entä 000 numeron? 4. Laske ensin lukujen ja 3 summa ja tulo, ja sitten saadun tulon kolmas potenssi. Viimeisimpään tulokseen voi viitata symbolilla % ja aiempiin muodossa 8 5 %on, missä n on tulosrivin numero, tai muodossa %th(n), missä n = viittaa viimeisimpään tulokseen, n = 2 toiseksi viimeiseen, jne. (Engl. n th n.s.) Lisää tulon kolmanteen potenssiin aiemmin saatu summa ja laske näin saadusta tuloksesta likiarvo. 5. Kätevämpi tapa käyttää aiempia tuloksia myöhemmissä laskuissa on nimetä tarvittavat suureet. Suure lauseke talletetaan muuttujan nimi kaksoispistesijoitukselle, nimi:lauseke (ks. Help Index : ). Anna luvuille ja 3 nimet luku ja luku2, laske näitä nimiä käyttäen lukujen summa ja tulo samalla nimeten tulokset nimille summa ja tulo. (Ääkkösiä 8 5 nimeämisessä on syytä välttää.)
Laske tulon kolmas potenssi, ja edelleen lisää tähän aiemmin saatu summa. Laske lopuksi tuloksesta likiarvo. 6. Lauseke, jonka arvoa edellä on laskettu, on tutummassa matemaattisessa muodossaan (x y) 3 +x+y. Jos muuttujiin x ja y ei haluta sitoa arvoja, voidaan näistä muuttujista riippuvan lausekkeen z arvo laskea pisteessä x = a ja y = b laskea komennolla ev(z, x=a, y=b). (ev evaluate, laske arvo). Laske lausekkeen (x y) 3 + x + y arvo, kun x = /8 ja y = 3/5. 7. Useita Maxima-komentoja voi antaa kerralla yhdelle syöteriville kaarisulkujen avulla ja erottamalla eri komennot toisistaan pilkulla: (nimi:lauseke, nimi2:lauseke2,...) Muuttujat, joita ei enää tarvita, on hyvä vapauttaa Maximan muistista. Vapauttaminen tapahtuu komennolla kill. Lista muuttujista, joille on annettu arvo, saadaan komennolla values, ja kaikkien tämän listan muuttujien arvot voidaan vapauttaa kill(values). 8. Käyttöliittymästä wxmaxima: Siirry dokumentin alkuun, klikkaa osoitin aivan ensimmäisen syötesolun yläpuolelle (merkiksi pitäisi ilmestyä ohut ikkunan levyinen vaakaviiva). Valitse Cell Title Cell ja annan dokumentillesi otsikko Symbolinen laskenta, harjoitus. Klikkaa osoitin aivan otsikkosolun alapuolelle, ja valitse Cell Section Cell. Nämä väliotsikkosolut wxmaxima numeroi automaattisesti. Etsi dokumentista näiden harjoitusten eri tehtäviin liittyvät laskut ja liitä jokaisen kohdaan alkuun väliotsikkosolu, jolloin dokumenttisi osat tulee numeroiduksi tehtäväjaon mukaisesti. Tarpeen mukaan voit eri syötesolujen väliin lisätä kommentteja lisäämällä tekstisolun Cell Text Cell. Vaikka syötesolut ja tekstisolut eivät ulkoasultaan poikkea paljoa toisistaan, ei syötesoluja tulee käyttää muuhun tarkoitukseen kuin siihen, mihin ne on tarkoitettu. Talleta dokumentti wxmaxima wxm-muodossa nimellä SL harjoitus.wxm. Sulje dokumentti (mahdollisesti wxmaximakin on hyvä lopettaa välillä), avaa se uudelleen. Aukeavasta dokumentista puuttuvat tulokset, vain syötteet ja otsikot säilyvät. Valitse Cell Evaluate All Cells. Tarkista Maximan laskemista tuloksista, että dokumenttisi toimii oikein. Jos haluat tallettaa dokumentistasi kopion, jossa mukana kulkevat myös tulokset, talleta dokumentti wxmaximan wxmx-muodossa (File Save As; alkuperäinen wxm-dokumentti kannattaa säilyttää). Tallennusmuotona wxm on parempi, koska ne ovat tavallisia tekstidokumentteja, joita voi lukea millä tahansa tekstieditorilla; wxmx-dokumentit ovat binäärisiä xml-tiedostoja, joiden avaamiseen käyvät vain tietyt ohjelmat (mm. wxmaxima). 2 Maximaa (ja montaa muutakin ohjelmaa) käytettäessä on eri sulkuja hyvä oppia kutsumaan niiden oikeilla nimillä: ( kaarisulut ), [ hakasulut ] ja { aaltosulut }.
Symbolinen laskenta Harjoitus 2 Jatkuu... Kursiivilla merkityt sanat ovat vinkkejä Maximan Help -järjestelmään. Tasaleveyisellä kirjasinlajilla merkityt sanat ovat (Maximan omia tai käyttäjän määrittelemiä) komentoja tai symboleita/muuttujia. Pääteviivattomalla kirjasinlajilla merkityt sanat ovat Maximan valikkojen ja/tai alavalikkojen nimiä. Muista strukturoida dokumenttisi väliotsikoin ja kommentein, sekä tallettaa se riittävän usein.. Yhtälö x 2 +2 x+ = (x+) 2 on koulusta tuttua perusalgebraa. Myös Maxima osaa tämän kaavan, kunhan sitä käskee oikein (factor). Sievennyskomentoja löytyy valmiina Maximan valikosta Simplify. Jaa tekijöihin lauseke x 5 + 3 x 4 + x 3 + 3 x 2 2 x 6. 2. Määrää rationaalifunktion osamurtokehitelmä (partfrac). x 5 +3 x 4 +x 3 +3 x 2 2 x 6 Miten pääset osamurtokehitelmästä takaisin alkuperäiseen rationaalifunktioon? 3. Perusalgebraa on myös lausekkeen (x + 3)(x 3) sieventäminen. Tee tämä Maximalla. 4. Selvitä lausekkeen sin x 4 cos 2 x sin 3x cos 2x sieventämistä Maximan valikon Simplify kohdan Trigonometric Simplification komennoilla. 5. Logaritmin laskusääntöjä muistelemalla lauseke (log(x 2 2x + ) log(x )) p (log(x )) p 2 sievenee helposti muotoon log(x ) p 2. Maxima ei kuitenkaan tunnu osaavan tätä tehtävää. Ongelma ei löydy niinkään logaritmeista kuin radikaaleista (engl. radical = juuri; tässä mielivaltainen potenssi... p on tällainen). (Tutki komentoa radcan.) 6. Logaritmilausekkeiden sieventämisestä. Aseta aluksi logexpand:false. Muuttujan logexpand arvoina voi olla false, true, all tai super. Selvitä Maximan käsikirjan (Help) avulla miten muuttujan logexpand arvo vaikuttaa logaritmien sieventämiseen; sen käyttötapa on lauseke, logexpand:arvo; Syötä Maximalle lauseke log((x ) 2 ) ja nimeä se vaikka nimelle y. Sievennä lauseke y. Entä jos y = log(3 (x ) 2 )? Polynomeille expand ja factor ovat jossakin mielessä käänteisiä operaatioita. Muuttujan logexpand eri arvojen vaikutus voidaan kääntää komennolla logcontract. Miten logcontract vaikuttaa edellisiin tuloksiin? Entä jos y = log(a (x ) n )?
7. Laske edellisen tehtävän lausekkeelle y = log(a (x ) n ) arvo, kun a = 4, n = 3, x = 2 ja a) y on alkuperäisessä muodossaan; b) y on avattu arvolla logexpand:all. (Muista harjoituksista komento ev(lauseke, muuttujat).) Laske molemmille tuloksille likiarvot (vaikka komenolla float). 8. Maxima osaa käsitellä kompleksilukuja, t.s. lukuja, jotka ovat muotoa a + b i, missä a ja b ovat reaalilukuja ja i on ns. imaginaariyksikkö, joka toteuttaa yhtälön i 2 =. Katso käsikirjan kohtaa Expressions Complex, ja Expressions Functions and Variables for Expressions (Maximan versio 5.24; versiossa 5.25: Data Types and Structures Numbers Introduction to Numbers, ja Mathematical Functions Functions for Complex Numbers). Kompleksiluvun 2 + 3 i reaaliosa on 2 ja imaginääriosa 3. Miten selvität tämän Maximalla? Entä mitä ovat luvun moduli (engl. complex absolute value; myös itseisarvo) ja argumentti (engl. complex arument; myös vaihekulma). Jos kompleksiluvun z moduli on r ja argumentti ϕ, niin luku z voidaan esittää muodossa z = r e iϕ. Tätä esitystä kutsutaan kompleksiluvun napakoordinaattiesitykseksi (polarform). Normaali esitys a + b i on nimeltään karteesinen esitys (rectform).. Määrää tälle käänteis- 9. Laske edellä olleen kompleksiluvun käänteisluku luvulle karteesinen esitys ja napakoordinaattiesitys. 2+3 i 2 0. Maxima tuntee useimmille funktioille arvot myös kompleksiselle muuttujan arvolle. Selvitä reaali- ja imaginääriosat kompleksiluvulle cos(4 + 8 i) ja yleisemmin kompleksiselle kosinille cos(x + y i). Kommentteja. Käyttöliittymäohjelman wxmaxima valikoista Equations, Algebra, Calculus, Simplify ja Plot (miksei myös Numeric) löytyy varsin paljon perustyöskentelyssä tarvittavia Maximan komentoja. Näiden komentojen tarkempi käyttötapa on syytä selvittää Maximan käsikirjasta. Edellä olleista tehtävistä (ja jo ensimmäisistä harjoituksista) näkyy, että Maximaa käytetään ainakin kahdella selkeästi toisistaan poikkeavalla tavalla. Jos kyse on komennosta, sitä käytetään kuten komentoja float tai logcontract: logcontract(lauseke); Jos taas kyse on muuttujasta, kuten logexpand tai numer, tälle muuttujalle annetaan arvo, joka vaikuttaa uudelleenlaskettavan lausekkeen arvoon kuten lauseke, logexpand:all; Jos muuttujan arvo jätetään ilmaisematta, niin oletusarvo on true kuten lauseke, numer; Tässä käytössä oleva komentomuoto on itse asiassa lyhenne komennosta ev(lauseke, numer=true); Maximan käsikirjaa selatessa on hyvä kiinnittää huomiota siihen, onko kyse komennosta vai muuttujasta (tai vastaavasta).
Symbolinen laskenta Harjoitus 3 Jatkuu... Kursiivilla merkityt sanat ovat vinkkejä Maximan Help -järjestelmään. Tasaleveyisellä kirjasinlajilla merkityt sanat ovat (Maximan omia tai käyttäjän määrittelemiä) komentoja tai symboleita/muuttujia. Pääteviivattomalla kirjasinlajilla merkityt sanat ovat Maximan valikkojen ja/tai alavalikkojen nimiä. Muista strukturoida dokumenttisi väliotsikoin ja kommentein, sekä tallettaa se riittävän usein.. Määrittele muuttujan lauseke arvoksi x ( + x 2 ). Maxima osaa laskea lausekkeille derivaattoja (diff ) ja integraalifunktioita (integrate) tai vaikkapa piirtää (plot2d) lausekkeiden kuvaajia koordinaatistoon. Laske derivaatta symbolin lauseke arvolle. Yhtä helposti onnistuu toisen derivaatan (derivaatan derivaatan) laskeminen. Laske samalla myös kolmas, kymmenes ja sadas derivaatta... 2. Piirrä funktion x x ( + x 2 ) kuvaaja välillä 0 x. Jos käytät komentoa plot2d, kuva ilmestyy erilliseen GnuPlot-ohjelman ikkunaan. Kuvan saa ilmestymään wxmaximan ikkunaan, johon syöte on annettu, kun käytetään wx-alkuista komentoa wxplot2d. (Sama toiminallinen ero soveltuu myös komentoihin contour plot ja plot3d.) 3. Laske funktion x x (+x 2 ) derivaatta ja nimeä se. Piirrä saamasi derivaatan kuvaaja. Jos piirtämisessä käytit muuttujaväliä 0 x, niin Maxima varoittaa... evaluates to non-numeric value.... Mistä tässä on kyse? 4. Useamman lausekkeen piirtäminen samaan koordinaatistoon/kuvaan on melkein yhtä helppoa kuin yhdenkin. Piirrä funktion x x ( + x 2 ) ja sen derivaatan kuvaajat samaan kuvaan. 5. Laske muuttujan lauseke arvolle integraalifunktio (integrate); nimeä integraalifunktio, ja piirrä funktion x x (+x 2 ) ja sen integraalifunktion kuvaajat samaan kuvaan. Piirrä samaan kuvaan funktion x x ( + x 2 ), sen derivaatan ja integraalifunktion kuvaajat. Mikä kuvan käyristä on minkäkin olion kuvaaja? 6. Laske muuttujaa lauseke käyttäen määrätty integraali 6 x ( + x 2 ) dx. 7. Laske integraali dx ( = inf ) x 2 (Jatkuu... ) Ilmaisu funktio x x ( + x 2 ) tarkoittaa muuten samaa kuin funktio y = x ( + x 2 ), mutta funktion lauseketta ei nimetä mitenkään.
8. Laske moniulotteinen integraali 0 0 y z e x dx dy dz = 0 ( 0 ( ) ) y z e x dx dy dz. Huomaa tässä muuttujien järjestys sisältä ulospäin (t.s. muuttuja x väliä x, jne). 9. Kaikilla (yksinkertaisillakaan) funktioilla ei ole alkeisfunktioiden avulla esitettävää integraalifunktiota. Kokeile vaikka miten käy integraalille sin x dx. x 0. Maxima osaa laskea integraalille 0 sin x x dx tarkan arvon. (Mitenkähän?) 2
Symbolinen laskenta Harjoitus 4 Jatkuu... Kursiivilla merkityt sanat ovat vinkkejä Maximan Help -järjestelmään. Tasaleveyisellä kirjasinlajilla merkityt sanat ovat (Maximan omia tai käyttäjän määrittelemiä) komentoja tai symboleita/muuttujia. Pääteviivattomalla kirjasinlajilla merkityt sanat ovat Maximan valikkojen ja/tai alavalikkojen nimiä. Muista strukturoida dokumenttisi väliotsikoin ja kommentein, sekä tallettaa se riittävän usein.. Maximassa yhtälöiden ja yhtälöryhmien perusratkaisija on solve. Ratkaise yhtälö 2x 4 x 3 6x 2 + 7x 2. Vaikka yhtälö on neljättä astetta, Maxima palauttaa vain kolme juurta. Polynomiyhtälöiden juurten kertaluvut Maxima kertoo komennolla multiplicities. Tässä tilanteessa juuret saadaan helposti selville myös komennolla factor. 2. Viidennen ja korkeamman asteen polynomiyhtälöt voivat olla ongelmaisia. Yritä ratkaista yhtälo x 5 + 7x + = 0. Maximan komento algsys ratkaisee polynomiyhtälöryhmiä (huomaa syntaksi) tarvittaessa numeerisesti. Kokeile tätä. Muita hyödyllisiä komentoja polynomiyhtälöiden ratkaisemiseen ovat nroots ja allroots. 3. Yritä ratkaista yhtälö x + m sin x = y muuttujan x suhteen (m ja y ovat vakioita). Onko saamasi ratkaisu mielekäs? 4. (Jatkoa.) Aseta vakiolle m arvoksi 0.9 ja piirrä funktion x x+m sin x kuvaaja välillä [0, 4π] ja myös sen derivaatan kuvaaja. Derivaatan kuvaajasta (tai jo derivaatan lausekkeesta) pitäisi käydä selville, että funktio x x + m sin x on aidosti kasvava. Yksinkertaisella (teoreettisella) lisäpäättelyllä nähdään, että yhtälöllä x + m sin x = y on yksi ja vain yksi ratkaisu x jokaiselle y:n arvolle. Etsitään yhtälölle x + m sin x = 3 ratkaisu likimääräismenetelmin. Selvitä aluksi, miten komentoa find_root käytetään. Miten avuksi tarvittavat luvut a ja b on valittava? Määrää myös funktion x x + m sin x derivaatan arvo löytämässäsi pisteessä. 5. Yhtälöiden likimääräisten ratkaisujen määräämiseen käytetään usein myös Newtonin menetelmää, joka löytyy Maximasta nimillä newton (yhden muuttujan funktiot) ja mnewton (useamman muuttujan funktiot). Huomaa, että kumpikin näistä pitää ensin ladata käyttöön komennolla load. Määrää yhtälölle x + m sin x = 3 ratkaisu Newtonin menetelmällä. 6. Johdanto: Jos yhtälö x + m sin x = y voitaisiin ratkaista muuttujan x suhteen, voitaisiin funktion x x + m sin x käänteisfunktion x = x(y) kuvaaja piirtää komennolla plot2d(x, [y,0,4π]). Mutta: käänteisfunktion kuvaaja voidaan aina piirtää parametrisoituna käyränä. Selitys: funktion f : A B kuvaajan pisteet ovat (x, f(x)), x A, ja jos f on bijektio, sen käänteisfunktion f : B A kuvaajan pisteet ovat (y, f (y)), y B. Koska f (y) =
x f(x) = y, on (y, f (y)) = (f(x), x). Funktion f käänteisfunktion kuvaaja saadaan siis piirretyksi piirtämällä käyrä (f(x), x), x A. Selvitä, miten komentoa plot2d käytetään parametrisoitujen käyrien piirtämiseen (parametric). Piirrä funktion x x+m sin x kuvaaja parametrisoituna käyränä eli käyrä x (x, x + m sin x). Piirrä funktion x x + m sin x käänteisfunktion kuvaaja parametrisoituna käyränä eli käyrä x (x + m sin x, x). Piirrä lopuksi samaan kuvaan funktion x x + m sin x kuvaaja, sen käänteisfunktion kuvaaja ja käyrä y = x. 7. Palataan edellisten harjoitusten funktioon f(x) := x ( + x 2 ). Määrää funktion f derivaatta g(x) := f (x) ja toinen derivaatta f (x). Piirrä kummankin derivaatan kuvaajat. Derivaatan g(x) kuvaajasta ilmenee, että derivaattafunktiolla g on lokaali minimi välillä (0, ). Määrää tämä minimikohta etsimällä toisen derivaatan nollakohta komennoilla find_root ja newton. Määrää myös derivaatan g(x) arvo löytämässäsi pisteessä. 8. Edellisen tehtävän yhtälön f (x) = 0 Maxima osaa ratkaista tarkasti. Määrää tarkka ratkaisu. Ovatko kaikki löydetyt juuret kelvollisia? Määrää derivaatan g(x) tarkka arvo ääriarvopisteessä. Seuraavat tehtävät eivät oleellisia kurssin kannalta. 9. Monissa sovelluksissa derivaatat esiintyvät differentiaaliyhtälöissä. Esimerkiksi, jos pistemäiseen kappaleeseen vaikuttaa vakiovoima, kappaleen liikettä kuvaa differentiaaliyhtälö y = a, missä a on vakio (kiihtyvyys). Differentiaaliyhtälöideen ratkaisemiseen Maximassa on komennot ode2 ja ic (ensimmäisen kertaluvun yhtälöt) sekä ic2 (toisen kertaluvun yhtälöt). Selvitä, miten ylläolevalle yhtälölle löydetään ratkaisu, jolle y(0) = y 0 ja y (0) = y, y 0 ja y annettuja alkuarvoja (engl. initial conditions). Differentiaaliyhtälöitä syötettäessä tarvitaan oikeanpuoleista lainausmerkkiä (returnin vieressä oleva, kertolaskutähden pari) estämään derivaattojen arvon laskeminen; normaalistihan diff(y,x) = 0. 0. Maxima antaa (algoritmiensa takia?) hieman hankalan muodon integraalille t sin( π x2) dx. Maximassa tälle integraalille on kuitenkin valmiina ns. Fresnelin sini-integraali fresnel_s. Mieti (matematiikkaa), miksi seuraavien Maxima- 0 2 komentojen tulosten nojalla on t sin( π x2) dx = fresnel_s(x): 0 2 diff(fresnel_s(x), x); fresnel_s(0);. Jos tarvitaan lähinnä numeerisia likiarvoja, integraalin sin( π x2) dx laskemiseen voi käyttää Rombergin menetelmää, joka löytyy nimellä romberg. 0 2 QUADpack-kirjaston integrointikomennot ovat hieman mutkikkaampia käyttää, mutta ne soveltuvat hankalampien integraalien likiarvojen laskemiseen. 2
Symbolinen laskenta Harjoitus 5 Jatkuu... Kursiivilla merkityt sanat ovat vinkkejä Maximan Help -järjestelmään. Tasaleveyisellä kirjasinlajilla merkityt sanat ovat (Maximan omia tai käyttäjän määrittelemiä) komentoja tai symboleita/muuttujia. Pääteviivattomalla kirjasinlajilla merkityt sanat ovat Maximan valikkojen ja/tai alavalikkojen nimiä. Muista strukturoida dokumenttisi väliotsikoin ja kommentein, sekä tallettaa se riittävän usein.. Piirrä funktion y = x 4 + x 3 x 2 x kuvaaja välillä [ 2, 2]. Kuvan perusteella näyttäisi siltä, että funktio saavuttaa suurimman arvonsa pisteessä x = 2 ja, että sillä olisi kolme lokaalia ääriarvokohtaa. Näiden lokaalien ääriarvojen määräämiseksi määrää aluksi funktion derivaatta ja sen nollakohdat (käytä komentoa solve). Huomaa, että komennon solve tulos on lista, jonka jokainen osa on yhtälö. Käytä näitä tietoja ja komentoa ev, ja laske funktion y arvo jokaisessa derivaatan nollakohdassa. Määrää funktion y toinen derivaatta ja sen arvo jokaisessa derivaatan nollakohdassa. 2. Yritä vastaavaa kuin edellisessä tehtävä funktiolle y = x 6 + x 5 x 2 x. Komennon solve tulos on nyt hieman epäkäytännöllinen. Määrää funktion derivaatta ja sen nollakohdat käyttäen komentoa find_root (derivaatan kuvaaja on varmaan avuksi). Määrää myös funktion y toinen derivaatta ja sen arvo jokaisessa derivaatan nollakohdassa. 3. Muodosta seuraavat matriisi A ja B ja sijoita ne muuttujien ma ja mb arvoiksi ( ) ( ) 2 29 78 75 A := ja B := c 3 0 7 48 Määrää matriisitulo A B, determinatti det A, käänteismatriisi A (invert) ja laske matriisitulo A A. Tuloksena pitäisi olla yksikkömatriisi (ident). 4. Muodosta vektori v = (x, y) ja sijoita se muuttujan vek arvoksi. Laske matriisitulo A v. Miten Maxima tutkitsee tulon ma*vek? Miten lasket vektorin v pituuden neliön? 5. Ratkaise lineaarinen yhtälöpari { 28 x + 86 y + 64 z = komennolla linsolve. 39 x + 99 y + 98 z = 2 Funktion y = x 6 + x 5 x derivaatan nollakohtia komento solve ei löydä lainkaan.
6. Selvitä, miten yhtälöryhmästä poimitaan vastaava laajennettu kerroinmatriisi (augcoefmatrix). Määrää edellisen tehtävän yhtälöryhmän laajennettu kerroinmatriisi ja sen komennolla echelon muodostettu yläkolmiomatriisi. Miten tämä jälkimmäinen matriisi liittyy yhtälöryhmän ratkaisemiseen, jos ratkaiseminen tehtäisiin käsin laskien? (Muistele Gaussin (ja Jordanin) menetelmää.) 7. Lataa käyttöön (load) paketti eigen. Tämä paketti tuo käyttöön mm. komennon gramschmidt, jolla voidaan annetusta euklidisen avaruuden kannasta lähtien muodostaa ortogonaalinen kanta (Gramin ja Schmidtin menetelmä). Komennolle gramschmidt kanta voidaan antaa matriisin rivivektoreina. Sovella komentoa gramschmidt matriisiin 0 4 5 7 3 3 9 5 5 Poimi tuloksen kolme vektoria ja tarkista, että ne ovat toisiaan vastaan kohtisuorassa. Määrää myös näiden vektoreiden pituuksien neliöt. 8. Määrää edellisen tehtävän matriisin ominaisarvot (eigenvalues). 2
Symbolinen laskenta Harjoitus 6 Jatkuu... Kursiivilla merkityt sanat ovat vinkkejä Maximan Help -järjestelmään. Tasaleveyisellä kirjasinlajilla merkityt sanat ovat (Maximan omia tai käyttäjän määrittelemiä) komentoja tai symboleita/muuttujia. Pääteviivattomalla kirjasinlajilla merkityt sanat ovat Maximan valikkojen ja/tai alavalikkojen nimiä. Muista strukturoida dokumenttisi väliotsikoin ja kommentein, sekä tallettaa se riittävän usein.. Lataa käyttöön grafiikkapaketti draw. Piirrä draw-kirjaston komentojen (explicit) avulla funktion f(x) := x 3 5 x 2 + 2 x + kuvaaja. Kuten plot-komentojen kohdalla wxmaximassa piirtokomennoista voi käyttää myös wx-alkuisia versioita, jotka tuottavat kuvan dokumentti-ikkunaan (käsikirja dokumentoi vain GnuPlot-ohjelman erilliseen ikkunaan kuvan tuottavat versiot). 2. Määrää funktion f nollakohdat, eli pisteet x, joissa käyrä y = f(x) leikkaa x-akselin. Tässä komento allroots lienee kätevin. (Miksei solve?) Määrää myös funktion f derivaatta ja sen nollakohdat. 3. Valitse jokin funktion f nollakohta x 0 (käytä komentoa part tms, älä leikkaa liimaa -menetelmää). Määrää lauseke funktion f kuvaajan pisteeseen x 0 piirretylle tangenttisuoralle. (Muista, että tangenttisuoran yhtälö on y = f(x 0 ) + f (x 0 ) (x x 0 ).) [Vihje: Kannattaa edetä pienin askelin.] 4. Piirrä samaan kuvaan funktion f kuvaaja ja sen pisteeseen x 0 piirretyn tangenttisuoran kuvaaja. 5. Valitse jokin funktion f derivaatan f nollakohta x. Määrää funktion f arvo pisteessä x ja piirrä funktion f kuvaajan tangenttisuora pisteessä x. 6. Piirrä samaan kuvaan () funktion f kuvaaja; (2) sen pisteeseen x 0 piirretyn tangenttisuoran kuvaaja; (3) pisteeseen x piirretyn tangenttisuoran kuvaaja; (4) piste (x 0, f(x 0 )) (tämä onnistuu graafisen objektion points avulla); (5) piste (x, f(x )). Korjaa kuvaa niin, että () pisteet (x 0, f(x 0 )) ja (x, f(x )) on piirretty selkeästi erottuvina (ks. point size, point type), ja (2) pisteeseen x 0 piirretty tangenttisuora ja piste (x 0, f(x 0 )) on piirretty yhdellä värillä, pisteeseen x piirretty tangenttisuora ja piste (x, f(x )) on piirretty toisella värillä ja itse kuvaaja y = f(x) on piirretty kolmannella värillä. 7. Talleta työkirjasi, lopeta Maxima, ja avaa+evaluoi työsi uudestaan. Tulosta työkirjasi (ainakin osaksi) mikroluokan kirjoittimelle. Neuvoksi saatua: avaa
... My Computer ja kirjoita osoiteriville tuo \\jyprint\mad-353-printer ja paina Enter. Tämän jälkeen tuolle tulostimelle pitäisi pystyä tulostamaan. 8. Jos aikaa riittää: Piirrä viimeisin kuva uudestaan käyttäen komennon wxdraw2d(...) sijasta komentoa draw2d(terminal= eps, dimensions=[500,000], file_name="u:/draw_esim",...); (Komento draw_file siinä muodossa, jossa se esiintyy verkkosivulle laitetussa esimerkissä, ei ilmeisesti toimi Maximan versiossa 5.24.) Huomio: Harjoitukset 7 ja 8 pidetään poikkeavina aikoina. Harjoitus 7 keskiviikkona 7.2. (normaalit kellonajat) ja harjoitus 8 torstaina 8.2. ja perjantaina 9.2. (ryhmät klo 0 2 ja 2 4 normaalit kellonajat, ryhmät to klo 4-6 pe 0 2 ja to 6 8 pe 8 0). Kurssin päätekoe pidetään keskiviikkona 4.2. neljänä ryhmänä klo 9 (huomaa aika), 2 4, 4 6 ja 6 8 mikroluokissa MaD 353 (2 osallistujaa) ja MaD 247 (jos tarvitaan; max 9 osallistujaa). 2
Symbolinen laskenta Harjoitus 7 Jatkuu... Kursiivilla merkityt sanat ovat vinkkejä Maximan Help -järjestelmään. Tasaleveyisellä kirjasinlajilla merkityt sanat ovat (Maximan omia tai käyttäjän määrittelemiä) komentoja tai symboleita/muuttujia. Pääteviivattomalla kirjasinlajilla merkityt sanat ovat Maximan valikkojen ja/tai alavalikkojen nimiä. Muista strukturoida dokumenttisi väliotsikoin ja kommentein, sekä tallettaa se riittävän usein.. Lataa käyttöön grafiikkapaketti draw. Kahden muuttujan funktioiden kuvaajia (eli pintoja z = f(x, y)) voidaan piirtää komennolla draw3d (tai wxmaximassa wxdraw3d). Kuten yhden muuttujan funktioille kahden muuttujan funktioillekin funktion kuvaaja rakennetaan komennolla explicit. Piirrä pallopinnan x 2 + y 2 + z 2 = ylempään puoliavaruuteen z 0 jäävä osa funktion (x, y) (x 2 + y 2 ) kuvaajana. 2. (Jatkoa.) Puolipallo näyttänee keskiaikaiselta maapallolta ( pannukakulta). Korjaa kuvaa muuttujien surface_hide ja proportional_axes avulla. Lisää kuvaan alempi pallonpuolisko z 0. 3. Pallon voi piirtää suoraan yhtälöstä x 2 + y 2 + z 2 = implicit-objektina. Kokeile tätä. Lisää tunnelmaa muuttujan enhanced3d avulla. 4. Yleisesti käytetty tapa kaksiulotteisten pintojen piirtämiseen on pinnan esittäminen parametrimuodossa. Tällöin pinnan pisteen koordinaatit x, y ja z esitetään joidenkin parametrien u ja v funktioina. Pallon tapauksessa yksi tavanomaisimmista esitystavoista on käyttää pallokoordinaatteja: (x, y, z) = (cos θ cos ϕ, sin θ cos ϕ, sin ϕ). Kulmalle θ luonnollinen väli on [ π, π] ja kulmalle ϕ vastaavasti [ π, π ]. (Kulman θ vakioarvoa vastaava pallopinnan käyrä on pituuspiiri etelänavalta poh- 2 2 joisnavalle ja kulman ϕ vakioarvoa vastaava käyrä on leveyspiiri.) Anna pallokoordinaattifunktioille nimet pallo_x, pallo_y ja pallo_z. Muuttujien θ ja ϕ tilalla voit käyttää muuttujia u ja v. Piirrä pallopinnan kuva parametric_surface-objektina. Kun käytät lyhyempiä parametrivälejä kulmille θ ja ϕ, saat pallopinnan leikatuksi auki. Katselukulmaa voi muuttaa asetuksella view = [φ, ϑ]. Käytettäessä komentoa draw3d, joka tekee kuvan GnuPlot-ikkunaan, katselukulman näkee ikkunan alareunasta. Jatkuu... Draw-kirjaston graafisia objekteja ovat 2d-grafiikkaan explicit, parametric, implicit, polar, points, polygon, rectangle, ellipse, triangle, quadrilateral, region, bars, vector, errors; ja 3d-grafiikkaan explicit, parametric, parametric surface, implicit, cylindrical, spherical, tube, points, triangle, quadrilateral, vector.
5. (Jatkoa.) Lisätään pallopinnalle käyrä (joka tunnetaan nimellä loksodromi). Jotta käyrä saataisiin näkymään kuvassa, nostetaan se hieman pallopinnan yläpuolelle: [xt,yt,zt]: ev(r*[pallo_x, pallo_y, pallo_z], u=a*t+b, v=c*t+d); Sijoita (ev-komennolla, kuinkas muuten) edellä saatuihin lausekkeisiin xt, yt ja zt parametreille arvot r =.05, a =, b = 0, c = 0.2 ja d = 0, ja tee saatujen koordinaattien avulla parametric-objekti, missä muuttuja t liikkuu välillä [ 3π, 3π]. Piirrä saatu käyrä yksinään ja yhdessä pallopinnan kanssa (aukileikattu pallopinta on tähän tarkoitukseen ehkä parempi). 2 0.5 0-0.5-0.5 - -0.5 0 0.5 - -0.5 0 Huomio: Kurssin päätekoe pidetään keskiviikkona 4.2. neljänä ryhmänä klo 9 (huomaa aika), 2 4, 4 6 ja 6 8 mikroluokissa MaD 353 (2 osallistujaa) ja MaD 247 (jos tarvitaan; max 9 osallistujaa). Koetta varten varmista, että osaat tulostaa mikroluokan MaD 353 koneilta oheiselle kirjoittimelle \\jyprint\mad-353-printer, ja että osaat lähettää sähköpostia, johon mukaan tulee liite. Kreikan kielen aakkosto a:sta o:hon. Iso ja pieni kirjain sekä nimi (suluissa mahdollinen vaihtoehtoinen muoto): A α alfa, B β beeta, Γ γ gamma, δ delta, E ε (tai ɛ) epsilon, Z ζ zeeta, H η eeta, Θ θ (tai ϑ) theeta, I ι joota, K κ (tai κ) kappa, Λ λ lambda, M µ myy, N ν nyy, Ξ ξ ksii, O o omikron, Π π (tai ϖ) pii, P ϱ (tai ρ) roo, Σ σ (tai ς) sigma, T τ tau, Υ υ ypsilon, Φ ϕ (tai φ) fii, X χ khii, Ψ ψ psii, Ω ω oomega.
Symbolinen laskenta Harjoitus 8 Jatkuu... Kursiivilla merkityt sanat ovat vinkkejä Maximan Help -järjestelmään. Tasaleveyisellä kirjasinlajilla merkityt sanat ovat (Maximan omia tai käyttäjän määrittelemiä) komentoja tai symboleita/muuttujia. Pääteviivattomalla kirjasinlajilla merkityt sanat ovat Maximan valikkojen ja/tai alavalikkojen nimiä. Muista strukturoida dokumenttisi väliotsikoin ja kommentein, sekä tallettaa se riittävän usein.. Funktioita Maximaan voi määritellä kahdella tavalla. Tavallinen tapa vastaa normaalia matemaattista tapaa; esimerkiksi funktio f, jolle f(x) := x 3 5 x 2 + 2 x +, määriteltäisiin Maximalla seuraavasti: f(x):=x^3-5*x^2+2*x+; Funktion f derivaatta f voitaisiin määritellä asettamalla df(x):=diff(f(x),x); Laske yllä olevan mukaisin määrityksin f (x), f(2) ja f (2). Ongelmia? Esiintyvä evaluaatio-ongelma voidaan ratkaista hieman mutkikkaamman määrittelyn avulla: df2(x):=block([t,d], d:diff(f(t),t), ev(d, t=x)); 2. Toinen tapa määritellä funktioita on indeksoitujen funktioiden käyttö. (Matematiikassa tämä esiintyy luku- ja funktiojonojen tilanteissa.) Esimerkiksi lukujono a n := voitaisiin määritellä asettamalla n a[n]:=/n; Lukujonon (a n ) N n= pisteet voidaan piirtämistä varten taulukoida komennolla makelist. Talleta taulukko vaikka nimelle h_jono (käytä arvoa N = 00). Lataa käyttöön grafiikkapaketti draw ja piirrä jonon h_jono pisteistä (points) kuva. 3. (Jatkoa.) Piirrä kuva lukujonon (a n ) n= muodostamista osasummista ( k n= a N n), k= kun N = 00 (t.s. nyt tarkasteltavana lukujonona on s k := k n= a n). (Summien arvot kannattanee taulukoida ennen piirtämistä, ja niiden arvot kannattaa laskea numeerisina likiarvoina.) 4. (Jatkoa.) Piirrä edelliseen kuvaan (jossa siis on lukujonon ( ) N s k pisteitä) k= mukaan logaritmifunktio x log x, x N. Lukujono ( ) N s k ja logaritmifunktio näyttävät käyttäytyvän samalla tavalla, mutta logaritimifunktio jää alemmaksi. Paljonko? k= [Vihje: Laske erotuksen likiarvo d := s N log N kohdasta k = N, x = N.] 5. (Jatkoa.) Piirrä edellinen kuva uudestaan niin, että logaritmifuntktio on korjattu paremmaksi (eli vertailtavana on x d + log x, missä d on erotus s N log N). (Erotuksen oikea arvo on ns. Eulerin (ja Mascheronin) vakio, jota on tapana merkitä kirjaimella γ; Maximasta se löytyy nimellä %gamma).
6. Palauta mieleen miten saat selville käytettämäsi muuttujat ja miten voit poistaa niiden arvot. Käytetyt (tavalliset) funktiot löytyvät nimellä functions ja niiden määrittelyt voidaan poistaa vastaavasti kuin muuttujien arvot. Indeksoidut funktiot (kuten a n ) löytyvät nimellä arrays. Poista jonolta a n (ja summajonolta s k, jos sellaista olet käyttänyt) sen määritys. 7. Muuta tehtävän 2 lukujonoksi a n := /n 2 ja tee tehtävät 2 5 uudestaan, mutta käyttäen nyt vertailufunktiota x d sopivalle vakion d arvolle. Etsi x vakiolle likiarvo kuten tehtävässä 4. (Oikeaksi arvoksi osoittautuu d = π2.) 6 8. Paketin simplify_sum komento simplify_sum sieventää summalausekkeita, jokusia äärettömiäkin. Laske summan n= tarkka arvo. x n n! saa- 9. Summalle x n n=0 saadaan nätti tarkka arvo, mutta summalle n! tava tulos on ehkä hämmentävä. n 2 n= 2 0. Ns. alkulukulauseen mukaan enintään luvun x suuruisten alkulukujen lukumäärä on asymptoottisesti x/ log x. Tätä voi demonstroida seuraavalla Maximakoodilla (ryhmittele syötteet oikein ): p:2$ p_lst:[p]$ for j: thru 00 do ( p:next_prime(p), p_lst:append(p_lst, [p]))$ j_lst:makelist(j, j,,length(p_lst))$ wxdraw2d(color=green, explicit(x/log(x), x,2,last(p_lst)), point_size=0.5, point_type=filled_circle, color=red, points(p_lst, j_lst) );. Etsi leikkauspisteet ympyrälle x 2 + y 2 = 4 ja paraabelille y = 2 x2 2. Yritä piirtää kuva tilanteesta. Ympyrän piirtäminen onnistuu mukavimmin draw-paketin parametric-oliona; r-säteisen, origokeskisen ympyrän parametriesitys on x = r cos t, y = r sin t. Jos ympyrä ei näytä ympyrältä, vika on x- ja y-akselien mittasuhteissa. Aseta draw-komennon alkuun user_preamble="set size ratio -" Viimeistele kuva lisäämällä kuvaan ympyrän ja paraabelin yhteinen piste. Huomio: Kurssin päätekoe pidetään keskiviikkona 4.2. klo 9 (huomaa aika), 2 4, 4 6 ja 6 8 mikroluokissa MaD 353 (2 osallistujaa) ja MaD 247 (jos tarvitaan; max 9 osallistujaa). Muista ilmoittautua Korpissa asianmukaiseen ryhmään. Koetta varten varmista, että mikroluokan MaD 353 koneilta osaat tulostaa oheiselle kirjoittimelle \\jyprint\mad-353-printer, ja että mikroluokan MaD 247 koneilta osaat tulostaa wxmaxima-työkirjan PDF-tiedostoksi ja lähettää sähköpostia, johon mukaan tulee liite. Käy läpi vanhat ratkaisusi ja tarkista, että jokaisen dokumentin syötteet toimivat oikein, kun valitset Cell Evaluate All Cells. Lopeta Maxima jokaisen dokumentin käsittelyn jälkeen, jotta uusi dokumenttisi aukeaisi puhtaalta pöydältä.