Aalto-yliopisto, Matematiikan ja Systeemianalyysin laitos -e mplcurve fitting 1. mplcf01.tex [Matlab:../../matlabteht/mlCurveFit/mplCF01.tex] Opettajalle: Tehtävän alkuperäinen tarkoitus on demonstroida luontevaa, nautitta vaa Maple-työskentelyä. [Sopii myös oikein hyvin Matlab- tehtäväksi. Matlabissa on valmiina polyder-funktio, jonka ohjelmointi on sinänsä myös oikein sopiva pikku harjoitustehtävä. Tässä tehtävässä ei ole tarvetta/syytä käyttää symbolic toolboxia.] Hermiten interpolaatio: Interpolaatioehdoissa esiintyy myös derivaattoja. Määritä 4. asteen polynomi p, joka toteuttaa ehdot: p(0) = p (0) = 1, p(1) = p (1) = p (1) = 2. (a) Käsittele polynomi lausekkeena. Tarkista tulos sopivasti subs-komennoilla ja piirrä kuva/kuvia polynomista ja derivaatoista. (b) Käsittele polynomi funktiona. Huom: 5 ehtoa ja 5 tuntematonta kerrointa = järkevän tuntuinen tehtävä. Yleisesti järkevälläkään Hermiten interpolaatiotehtävällä ei aina ole yksikäsitteistä ratkaisua (kuten ei neliömatriisin määräämällä lineaarisella yhtälöryhmälläkään siitähän on kyse). Pelkkiä funktion arvoja koskevalla interpolaatiotehtävällä aina on (koska Vandermonden neliömatriisi on aina ei-singulaarinen). Tässä opetellaan erityisesti Maplen kätevää ratkaisutekniikkaa. Vihje: Kirjoita polynomi lausekkeeksi tyyliin: p:=a*x^4+b*x^3 +..., missä a, b,..., e ovat määrättävät kertoimet. Derivaatta: diff Arvojen (x=0,x=1) sijoittaminen p:n lausekkeeseen: subs Yhtälön ratkaiseminen: solve Kaikista saat tietoa näin?diff,... 2. mplcf03.tex, [Matlab:../../matlabteht/mlCurveFit/mlCF15.tex] Opettajalle: (a)-kohta sopii ensitutustumiseen. (b)-kohta on sikäli huono, että virhetermin suuruusluokka on toisesta maailmasta (opettavaista kylläkin, mutta alkajaisiksi vaatii ainakin varoituksen). Lisää tehtävän opetuksia ratkaisutiedostoissa. (a) Muodosta interpolaatiopolynomi pisteistölle, joka saadaan laskemalla funktion cos(1 + x 2 ) arvot tasavälisessä x-pisteistössä, jossa on 7 pistettä välillä [0, 3].Piirrä samaan kuvaan funktio, datapisteet ja interpolaatiopolynomi.
(b) Arvioi (Lagrangen) interpolaatiokaavan virhetermin avulla interpolaatiovirheen yläraja yo. välillä ja vertaa todelliseen. Lause Olkoot x 0, x 1,..., x n erilliset pisteet ja f (n + 1) kertaa jatkuvasti derivoituva funktio x k pisteet sisältävällä välillä. Jos p n on (1-käs) dataan (x k, f(x k )) liittyvä interpolaatiopolynomi, niin f(x) p n (x) = f n+1 (ξ) (n + 1)! (x x 0)(x x 1 ) (x x n ). Vihje: Tässä on mahdollista harrastaa Maplen ja Matlabin yhteistyötä. Virhekaavan derivaatta muodostetaan tietysti Maplella ja lauseke sievennetään. Itse asiassa piirtämällä ja poimimalla kuvasta maksimipisteen koordinaatit, saadaan riittävän hyvä arvio. Toinen mahdollisuus on käyttää Matlabin symbolic toolboxia. Tulotermin voisi hoitaa tehokkaimmin Matlabissa ottamalla tiheän diskretoinnin ja käyttämällä max-funktiota. Maplessakin on max-funktio, lakenta on Matlabissa tehokkaampaa. Miten tulotermi lasketaan Matlabissa? Vaikka tähän tapaan: 1. x=linspace(...,n) 2. Tedään matriisi X, jossa x-vektoreita allekkain n+1 kpl. 3. Tehdään matriisi X0, jossa rivit x0 x0... x0 x1 x1... x1... xn xn... xn N kpl. N kpl. N kpl. Nämä syntyvät vaikka meshgrid-komennolla tai ulkotuloilemalla ykköspystyvektorilla. 4. Vähennetään matriisit ja prod()). Sitten vain abs ja max kehiin. Tosi Matlabmaista! (Ei moitita, vaikka tekisit for-loopin, vain 8 kertaa käydään, mutta hyvä ymmärtää Matlabin hienoa matriisiajattelua, muistiahan ei nykyisin tarvitse säästellä.) Avainsanat: Interpolaatio, käyrän sovitus, interpolaatiovirhe, Lagrange 3. mlcf07.tex/mplcf07.tex // Matlab,Maple,[Mathematica] W.A Mozartin(1756-1791) sävellyksiä indeksoidaan Köchel-luvuilla, jotka ilmaisevat teosten sävellysjärjestyksen. Alla on eräitä Köchel-lukuja, ja vastaavien teosten sävellysvuosia. Number Year 1 1761 75 1771 155 1772 219 1775 271 1777 351 1780 425 1782 503 1786 575 1789 626 1791
Käyttäen tätä dataa, arvioi teoksen Sinfonia Concertanten sävellysvuosi, kun tiedetään, että sen Köchel-numero on 364. Vihje: Piirrä ensin datapisteet tasoon, ja päätä millaista menetelmää kannattaa käyttää. Epäilemättä sopivan asteista PNS-polynomia. Suorita joitakin sovituksia, ja tarkista sitten tulos vaikka Wikipediasta. 4. Maple tai Matlab Tutkitaan nk. Rungen ilmiötä. Laske funktion g(x) = 1/(1 + x 2 ) arvoja tasaisin välein väliltä [ 5, 5], ja tee näihin pisteisiin perustuva polynominen interpolaatio. Piirrä sekä g(x) että P (x) samaan kuvaan. Mitä huomaat, kun valittujen datapisteiden määrää tihennetään? Kokeile interpolointia silloin, kun datapisteitä ei valita tasavälisesti, vaan ne valitaan Chebyshevpisteiden mukaan. x j = 5 cos( jπ N ), j = 0... N Vihje: Polynominen interpolaatio kannattaa tehdä MATLAB-funktiolla polyfit. Funktio g kannattaa määritellä funktiokahvan avulla: g = @(x)1./(1+x.^2). Tasavälisiä pisteistä saa funktiolla linspace Sopii aivan yhtä hyvin Maplelle. 5. H2T14.tex/mlCF13.tex/mplCF13.tex Matlab,Maple,[Mathematica] Yhdysvaltojen perustuslaki vaatii, että maassa suoritetaan joka kymmenes vuosi väestönlaskenta. Ohessa on väestönlaskennan tuloksia sadoissa miljoonissa asukkaissa viime vuosisadalta. 1900 1910 1920 1930 1940 1950 1960 1970 1980 1990 76 92 106 122 132 150 179 203 226 248 Tee polynomi-interpolointi datalle, ja ennusta väestön määrä vuonna 2010. Kuinka ennusteesi suhtautuu laskennan todelliseen tulokseen: 308,745,538 laskettua asukasta? Sovita myös eriasteisia PNS-polynomeja, vrt. Matlab Censusgui, lue Molerista: http://www.mathworks.se/ Comp. with Matlab, interpolation Vihje: -e Differentiaaliyhtälöt 6. mpld001.tex (infoverkostot (iv) s. 2001) Ratkaise yhtälö. dy dt = ty a.) Muodosta yleinen ratkaisu. b.) Määritä vakio _C1 alkuehdolle y(0) = 1.
c.) Ratkaise alkuarvotehtävä suoraan dsolve:lla. Vihje: Maplen funktio dsolve. b)-kohdassa voit ottaa ratkaisulausekkeen rhs (Righthand side) kiinni. Tarvitset lisäksi komentoja subs ja solve c)?dsolve, [HAM] ss. 162-165 Ratkaisu: > dyht := diff(y(t), t) = t*y(t) a) > ylratk := dsolve(dyht, y(t)) b) > Y := rhs(ylratk) > solve(subs(t = 0, Y) = 1, _C1) Huom! Dokumenttimoodissa alaviiva pudottaa kursorin alaindeksitasolle. "copy/paste" tarvitaan _C1:lle. > eval(%) c) > dsolve({dyht, y(0) = 1}, y(t)) 7. mpld002.tex (infoverkostot (iv) s. 2001) Ratkaise differentiaaliyhtälö sijoittamalla ratkaisuehdotus (REh) annettuun yhtälöön tai esim. integroimalla, arvaamalla tms.: (a) y + y = x 2 2, REh: y = Ce x + x 2 2x (b) y + y = 0, REh: y = a cos x + b sin x (c) y = e x, (d) x + yy = 0, REh: x 2 + y 2 = C (C > 0, vakio). Vihje: (d)-kohta: Derivoi implisiittisesti, ts. oleta, että on olemassa derivoituva funktio x y(x) s.e. x 2 +y(x) = C ja derivoi puolittain. (Tässä tapauksessa olemassaolo tiedetään, onhan y(x) = C x 2 tällainen. Tämän eksplisiittisen lausekkeen käyttö ei silti kannata, se vain mutkistaa asioita, olkaamme siis implisiittisiä.) Ratkaisu: mpld002r.mw ja.pdf ON 8. mpld003.tex [Matlab-versio:...mlD002.tex] (iv3/2001, harj. 1, teht. 2) Millä xy-tason käyrillä on ominaisuus: Käyrän tangentin kulmakerroin jokaisessa pisteessä (x, y) on 4x y? Ratkaise yhtälö muuttujien erottelulla ( separation of variables ). Piirrä suuntakenttä isokliineja apuna käyttäen käsin vaikkapa alueessa [ 2, 2] [ 2, 2]. Ota sitten Maple avuksi. Kokeile ja selitä! Vihje: Kts. [HAM] ss. 169-170 > with(detools) > with(plots) Suuntakenttään:DEplot, grafiikkojen yhdistämiseen: display. Suoraparven saat tyyliin
> yparvi:=seq(...,c=[-2,-1,-.5,.5,2,1]) # tms. > isokl:=plot([yparvi],x=...) Yleisemmin isokliinit saadaan piirretyksi implicitplot-funktiolla, mutta tässä saatiin ratkaistussa muodossa suoraan. Avainsanat:MapleDy, diffyhtälöt, suuntakenttä, isokliinit, mpldifferentiaali(yhtälöt) Viitteet: [HAM] Heikki Apiola: Symbolista ja numeerista matematiikkaa Maple-ohjelmalla, Otatieto 588, 1998 9. mpld004.tex [Matlab-versio:...mlD004.tex] (iv3/2001, harj. 1, LV teht. 1-2) Laskuvarjohyppääjän yhtälö. Oletetaan, että hyppääjän + varustuksen massa = m ja ilmanvastus on verrannollinen nopeuden neliöön, olkoon verrannollisuskerroin = b. Tällöin Newtonin 2. laki antaa liikeyhtälön: mv = mg bv 2. Olkoon yksinkertaisuuden vuoksi m = 1, b = 1 ja g = 9.81m/s 2. Piirrä suuntakenttä. Oletetaan, että laskuvarjo aukeaa, kun v = 10m/s, valitaan tämä alkuhetkeksi t = 0. Piirrä tämä ratkaisukäyrä suuntakenttäpiirrokseen. Yritä nähdä suuntakentästä, että kaikki ratkaisut näyttävät lähestyvän rajanopeutta v 3.13 ja että ratkaisut ovat joko kasvavia tai pieneneviä (ja millä alkuarvoilla mitäkin, ja mitä tarkoittaa fysikaalisesti) Määritä rajanopeus suoraan yhtälöstä. Käytä Matlab-piirroksiin funktiota dfield8 ja Maplessa DEtools-kirjaston DEplot-funktiota. Vihje: Kts. [HAM] ss. 169-170 tai?deplot > with(detools) > with(plots) Suuntakenttään:DEplot, grafiikkojen yhdistämiseen: display. dfield-ohje: Hae m-tiedosto dfield8 sivulta http://math.rice.edu/~dfield/ ja sijoita se Matlab-polkusi varrelle. Kirjoita Matlab-istuntoon : dfield8 Avainsanat: MatlabDy, MapleDy, diffyhtälöt, suuntakenttä, isokliinit, mpldifferentiaali(yhtälöt), mldifferentiaali(yhtälöt) Viitteet: [HAM] Heikki Apiola: Symbolista ja numeerista matematiikkaa Maple-ohjelmalla, Otatieto 588, 1998 10. mpld005.tex (iv3/2001, harj. 1, LV teht. 2)
Muodosta edellä olevan laskuvarjotehtävän (mpld004) analyyttinen ratkaisu muuttujien erottelulla. Määritä edellä mainittu (v(0) = 10)-ratkaisukäyrä. Tarkista ratkaisu Maplella ja kokeile lopuksi Maplen dsolve- komentoa. (Ohje [HAM]-kirjassa.) Vihje: Ohje analyyttiseen: Muistathan, että osamurtohajoitelma on hyödyllinen rationaalilausekkeen integroinnissa (Maple: convert(lauseke,parfrac,muuttuja); mutta osattava myös käsin). Avainsanat: MapleDy, diffyhtälöt, muuttujien erottelu, mpldifferentiaali(yhtälöt), mldifferentiaali(yhtälöt) Viitteet: [HAM] Heikki Apiola: Symbolista ja numeerista matematiikkaa Maple-ohjelmalla, Otatieto 588, 1998 11. mpld006.tex (iv3/2001, harj. 1, LV teht. 3) Vaihdamme tässä LAODE-tyyliseen notaatioon: t on riippumaton muuttuja, x on riippuva muuttuja. Kannattaa totutella eri tyyleihin. Ratkaise alkuarvotehtävä x = x 2 e t, x(0) = 1. Kyseessä on lineaarinen epähomogeeninen (EHY). Tämä lasku ei edellytä mitään uutta muuttujien erottelun lisäksi (ainoastaan uskomista), kaikki on tässä neuvottu. Suorita ratkaisu näin: Ratkaise ensin vastaava (HY) x = x 2 (yleinen ratkaisu). Yritä keksiä jokin (EHY):n erityisratkaisu (siis mikä tahansa (EHY):n toteuttava). Keksiminen on helppoa, kun mietit exp-funktion derivointia. (Määräämätön kerroin ratkaistaan sijoittamalla yrite (EHY):yyn). Lineaaristen teoria sanoo, että (EHY):n yleinen = (HY):n yleinen + (EHY):n erikoinen. Piirrä myös suuntakenttä ja ratkaisukäyriä (Maple: DEtools[DEplot], Matlab: dfield8 tai suuntak1). Miten näet suuntakentästä, että yhtälö ei ole autonominen? Avainsanat: MapleDy, lineaariset diffyhtälöt, mpldifferentiaali(yhtälöt) Viitteet: [LAODE] Golubitzky-Dellnitz: Linear Algebra and Differential Equations using Matlab, Brooks/Cole 1999. 12. mpld007.tex (iv3/2001, harj. 2, AV teht. 1) Ratkaise (AA)-tehtävä y 2xy = 1, y(0) = 0.5 Tässä näyttää siltä, että (EHY):n erikoinen olisi helppo löytää, mutta huomaat pian, että luonnolliset yritteet eivät toimi. (Kyseessähän on lineaarinen, mutta ei-vakiokertoiminen yhtälö.) Ratkaise vaan sitten kiltisti integroivan tekijän menettelyllä. Integrointi johtaa erf-funktioon, Maple antaa sen suoraan, voit myös konsultoida KRE-kirjaa hakusanalla erf. Lausu siis ratkaisu erf:n avulla. Piirrä suuntakenttäpiirros Maplen DEtools-pakkauksen DEplot-funktion avulla (kts [HAM] s. 169), voit toki käyttää myös Matlab:n dfield8-funktiota (ohje alla).
Valitse alkuarvoja y 0 väliltä ( 1, 0.5) yrittäen löytää kriittistä arvoa y 0, joka jakaa ratrkaisukäyrät plus tai miinus ääretöntä lähestyviin. (Tuo kriittinen ratkaisukäyrä on rajoitettu.) Käytä hyväksesi erf-funktion ominaisuutta lim x erf(x) = 1 laskeaksesi tarkan arvon y 0 :lle. Vihje: dfield-ohje: Hae m-tiedosto dfield8 sivulta http://math.rice.edu/~dfield/ ja sijoita se Matlabpolkusi varrelle. Kirjoita Matlab-istuntoon : dfield8 Avainsanat: MapleDy, diffyhtälöt,erf, mpldifferentiaali(yhtälöt) Viitteet: [KRE] E. Kreyszig: Advanced Engineering Mathematics, Wiley [HAM] Heikki Apiola: Symbolista ja numeerista matematiikkaa Maple-ohjelmalla, Otatieto 588, 1998. 13. mpld008.tex (iv3/2001, harj. 2, AV teht. 2) Tarkastellaan (AA)-tehtävää xy = 4y, y(0) = 1. (a) Osoita, että tehtävällä ei ole ratkaisua. Osoita, että tämä ei ole ristiriidassa 1 -lauseen kanssa. (Huom: Lauseen avulla ei voi todistaa epäeksistenssiä, koska lauseen ehdot eivä ole välttämättömät.) (b) Vaihdetaan alkuehdoksi: y(0) = 0. Miten nyt on ratkaisujen laita. (c) Mitä voit sanoa alkuehdon y(x 0 ) = y 0 tapauksessa, jos x 0 0, (A) suoraan ratkaisukaavan avulla, (B) 1 -lauseen avulla. Vihje: Tämä on puhtaasti perinteinen tehtävä, mutta havainnollistus Maple/Matlab-välineillä on hyvinkin paikallaan. Avainsanat: diffyhtälöt, ratkaisun (epä)olemassaolo, eksistenssilause, mpldifferentiaali(yhtälöt) 14. mpld009.tex (iv3/2001, harj. 2, AV teht. 3) Muodosta Picardin iteraatiojonon muutama termi (AA)-tehtäville (a) y = x + y, y(0) = 0 (b) y = x + y, y(0) = 1 (c) y = y 2, y(0) = 1. Määritä myös tarkka ratkaisu. Vihje: LV-tehtävässä palataan asiaan Maple-hommana. Tämä on tyypillistä symbolilaskennan vahvuusaluetta. Avainsanat: diffyhtälöt, ratkaisun (epä)olemassaolo, Picard-Lindelöf-menetelmä, Picardin iteraatio, mpldifferentiaali(yhtälöt) 15. Ratkaise yhtälö dy dt = ty. Vihje: Maplen funktio dsolve. 16. mpld010.tex (iv3/2001, harj. 2, LV teht. 1) Muodosta Picardin iteraatiojonoa pitemmälle kuin AV-tehtävässä samoille (AA)-tehtäville (a), (b), (c) ja lisäksi vielä (d): lle. (a) y = x + y, y(0) = 0 (b) y = x + y, y(0) = 1 (c) y = y 2, y(0) = 1. (d) y = 3 y x
Laske myös tarkka ratkaisu Maplella ja piirrä se ja iteraatiojonon funktioita. (Jos tuntuu liian pitkältä, niin jätä yksi pois, hyvä olis saada kaikki yhteisesti katetuksi (vaikka parityöskentelyssä sopimalla). Vihje: Malli: Aputiedostossa mpld010apu.zip on L4Picard.mw,L4Picard.pdf,L4exa2.mw, L4exa2.pdf, kts. myös [HAM] ss. 162 165 (dsolve)ja s. 126 Picard Lindelöf Avainsanat: diffyhtälöt, Picard-Lindelöf-menetelmä, Picardin iteraatio, mpldifferentiaali(yhtälöt) Viitteet: [HAM] Heikki Apiola: Symbolista ja numeerista matematiikkaa Maple-ohjelmalla, Otatieto 588, 1998. 17. mpld011.tex (a) Sovella Picardin iteraatiota (tuttuakin tutumpaan) (AA)-tehtävään y = y, y(0) = 1. Osoita, että iteraatiojono lähestyy ratkaisufunktiota y(x) = e x. (b) (Olkoon vaihteeksi x(t).) Olkoon alkuarvotehtävänä edelleen x = x, x(0) = 1. Osoita, että jos lasketaan likiarvo x n = x h (t n ) EM:llä pisteessä t = t n käyttäen askelpituutta h, niin x h (t n ) = c(h) tn, missä c(h) = (1 + h) 1/h. Osoita tämän nojalla, että kiinteällä t = t n pätee lim h 0 x h (t) = e t. Vihje: Tehtävässä tuskin tarvitaan ohjelmistoja. EM = Eulerin menetelmä 18. mpld012.tex Seuraava toistokäsky soveltaa Eulerin menetelmää alkuarvotehtävän y = sin(xy), y(0) = 1 ratkaisun likiarvon y(1) laskemiseen. Kokeile käskyjä askelpituuksilla h = 0.25, h = 0.1, h = 0.01 ja h = 10 4. Mikä menee pieleen viimeisessä kohdassa? f:=(x,y)-> sin(x*y); Digits:= 4; n:= 4; h:=1/n; y[0] := 1; for k from 0 to n-1 do # (paina tässä kohti Shift+Enter) y[k+1]:= evalf(y[k]+h*f(k*h,y[k])) # (samoin) end do; Piirrä Eulerin murtoviivat eri väreillä samaan koordinaatistoon. Vihje: Datan piirto sujuu nykyisin Matlab-tyylisesti : > xlista:=[seq(j*h,j=0..n)]; > ylista:=[seq(y[j],j=0..n)] > plot(xlista,ylista)
[HAM]-viitteessä ss. 94-96 esitetyt tavat pisteparien listana toimivat myös, mutta s. 96 zip-temppu ei ole enää tarpeen. Viitteet: [HAM] Heikki Apiola: Symbolista ja numeerista matematiikkaa Maple-ohjelmalla, Otatieto 588, 1998. 19. mpld013.tex Ratkaise alkuarvotehtävä ja piirrä ratkaisun kuvaaja välillä 0 x 10. y + 3y + 3y = 1 e x, y(0) = 2, y (0) = 0, Vihje: Diffyhtälön saat ratkaistua komennolla dsolve. Yhtälössä esiintyvät derivaatat voit ilmoittaa komennolla diff, ja derivaatan pisteessa 0 voit ilmaista derivaattaoperaattorilla D(y)(0). 20. mpld014.tex Maple,Matlab a) Ratkaise alkuarvotehtävä y y = cos x, y(0) = 1 analyyttisesti Maplella ja numeerisesti Matlabilla. Piirrä ratkaisukäyrä. b) Anna alkuarvoksi symboli c ja piirrä ratkaisukäyräparvi sopivalla välillä, kun c = 0.9, 0.8,..., 0. Miltä parvi näyttää suurilla x :n arvoilla. Tässä pitäisi erottua kolmenlaista käytöstä. Vihje: Maple: dsolve, Matlab: ode45 Avainsanat: Differentiaaliyhtälö, alkuarvotehtävä, analyyttinen ratkaisu, numeerinen ratkaisu. Viitteet: Coombes et al: Differential equations with Maple, Wiley Boyce - DiPrima s: Elementary Differential Equations and Boundary Value Problems,Wiley 21. mpld015.tex Maple,Matlab Tarkastellaan (AA)-tehtävää y 3t 2 =, y(1) = 0. (3y 2 4) (a) Laske EM:llä ratkaisuapproksimaatiot pisteissä t = 1.2, 1.4, 1.6, 1.8 käyttäen askelta h = 0.1. (b) Tee sama askeleella h = 0.05. (c) Vertaa tuloksia. (d) Piirrä suuntakenttä ja ratkaisuapproksimaatioita, sekä EM-ratkaisuja. Osaatko selittää, miksi EM toimii kohtuullisesti alussa, mutta kelvottomasti lopussa? Vihje: Eulerin menetelmää voi tässä käyttää ohjelman (MMM) laskintyylillä, kuten edellä tai sitten oikeaksi funktioksi koodatulla versiolla, annetaan tässä nuo koodit. Eulerin menetelmän koodit (sisältyvät myös apupakettiin *apu.zip): Maple: [HAM s. 206] (copy/paste Maple-istuntoon)
Euler:=proc(f,a,b,ya,m) local n,h,t,y; h:=evalf((b-a)/m); t[0]:=a;y[0]:=ya; for n from 0 to m do y[n+1]:=y[n]+h*f(t[n],y[n]); t[n+1]:=t[n]+h; end do; seq([t[n],y[n]],n=0..m); end: Esim: y = t y 2 f:=(t,y)->t-y^2; e3:=euler(f,0,5,1,3); plot([e3]); Matlab: (Kts. vastaava Matlab-teht.) Avainsanat: Differentiaaliyhtälö, alkuarvotehtävä, analyyttinen ratkaisu, numeerinen ratkaisu. Viitteet: [KRE] E. Kreyszig: Advanced Engineering Mathematics, Wiley [HAM] Heikki Apiola: Symbolista ja numeerista matematiikkaa Maple-ohjelmalla, Otatieto 588, 1998. 22. mpld016.tex (vrt. Matlab: mld007.tex) Tarkastellaan (AA)-tehtävää välillä t [1, 1.8] Ratkaise tehtävä y = 2 y ln t t + 1 t, y(1) = 0 a) Eulerin menetelmällä askelpituudella h = 0.1, b) Heunin menetelmällä askelpituudella h = 0.2, c) RK4- menetelmällä askelpituudella h = 0.4. Määritä tarkka ratkaisu Maple:n dsolve-komennolla ja laske sen avulla virheet, piirrä ja taulukoi kussakin tapauksessa. Huomaa, että näillä askelpituuksien valinnoilla funktion arvojen laskentamäärät ovat samat. Vihje: Eulerin menetelmän koodit (sisältyvät myös apupakettiin mpld016apu.zip): Maple: [HAM s. 206] (copy/paste Maple-istuntoon)
Euler:=proc(f,a,b,ya,m) local n,h,t,y; h:=evalf((b-a)/m); t[0]:=a;y[0]:=ya; for n from 0 to m do y[n+1]:=y[n]+h*f(t[n],y[n]); t[n+1]:=t[n]+h; end do; seq([t[n],y[n]],n=0..m); end: Esim: y = t y 2 f:=(t,y)->t-y^2; e3:=euler(f,0,5,1,3); plot([e3]); Laitetaan myös Heun ja RK4 Matlab: (Kts. vastaava Matlab-teht.) Huom: Tästä voi kehitellä monenlaisia tehtävävariaatioita, myös ilman numeeristen menetelmien korostusta. Avainsanat: Differentiaaliyhtälö, alkuarvotehtävä, analyyttinen ratkaisu, numeerinen ratkaisu. Viitteet: [KRE] E. Kreyszig: Advanced Engineering Mathematics, Wiley [HAM] Heikki Apiola: Symbolista ja numeerista matematiikkaa Maple-ohjelmalla, Otatieto 588, 1998. 23. mpld017.tex, mld007.tex Huomasimme, että eksponentiaalinen kasvumalli, ns. Malthus n laki y = ky ei toimi USA:n väestödataan pitkällä aikavälillä. Mallia voidaan tarkentaa lisäämällä sopiva kasvua rajoittava termi, tällöin johdutaan ns. logistiseen kasvulakiin: y = ay by 2 USA:n väestödataan liityen Verhulst arvioi v. 1845 arvot a = 0.03 ja b = 1.610 4, kun t mitataan vuosissa ja väkiluku y(t) miljoonissa. Opettajalle: Tehtävä voidaan käsitellä ehkä luontavamminkin kokonaan erillisenä numeeristen diffyhtälöratkaisujen opetuksesta. Tällöin otetaan vain alla olevat kohdat (c) ja/tai (d). (a) Ratkaise tehtävä (y(0) = 5.3) Eulerin menetelmällä käyttämllä askelpituussa h = 10 (b) rk4:llä käyttäen n. nelinkertaista askelta (voit kokeilla pienempiäkin) (c) Matlabin ode45:llä. (d) Laske analyyttinen ratkaisu Maplella (kyseessähän on Bernoullin yhtälö. Piirrä kuvia ja laske kaikissa tapauksessa ratkaisujen arvot annetuissa taulukkopisteissä. (ode45-tapauksessa onnistuu ainakin sovittamalla dataan splini funktiolla spline, joka on maailman helppokäyttöisin.)
kts. http://www.math.hut.fi/teaching/v/matlab/opas.html#splinit (Nykyään (2012) ei tarvita erillistä splinisovitusta, laskentapisteet voidaan antaa suoraan ode45-funktiolle syötteenä.) Vihje: function [T,Y]=eulerS(f,Tspan,ya,n) % Tämä vain kehittely- ja opettelutarkoituksessa. % Funktio eulerv hoitaa niin skalaari- kuin vektoriversion. % (24.2.04, modifioitu 21.8.2010) % Esim: y =t+y, y(0)=1 % f=@(t,y)t+y % [T,Y]=eulerS(f,[0 4],1,6), plot(t,y,t,y,.r );shg a=tspan(1);b=tspan(2); h=(b-a)/n; Y=zeros(n+1,1);T=(a:h:b) ; %Pystyvektorit yhdenmukaisesti ode45:n Y(1)=ya; % kanssa for j=1:n Y(j+1)=Y(j)+h*f(T(j),Y(j)); end; Viitteitä: http://math.aalto.fi/opetus/kp3-ii/06/l/l14dynumkalvot.pdf http://www.math.hut.fi/~apiola/matlab/opas/lyhyt/esim/eulers.m (Listaus yllä) 24. mpld018.tex, mld008.tex Tarkastellaan yhtälöä y = 2α(t 1)y. Ratkaise aluksi analyyttisesti (saat käyttää Mapleakin.) Totea kuvasta ja derivaattaehdosta yhtälön stabiilisuus/epästabiilisuusalueet. Ota kuvassa ja aina tarvittaessa vaikkapa α = 5. Ratkaise yhtälö sekä Eulerilla että BE:llä. Sopivia arvoja voisivat olla vaikkapa h = 0.2, väli: [1, 4.5], y(1) = 1. Vertaa kokeellisesti stabiilisuukäyttäytymistä teorian ennustamaan ja pane merkille, miten epästabiilisuus käytännössä ilmenee. Tämä tehtävä soveltuu erityisen hyvin Maplella tehtäväksi, se on pitkälle ideoitu [HAM] sivulla 124, myös Euler ja BE ovat valmiina. (Koodit saa kurssin maple-hakemistosta.) ** Tulee aputiedostoon ** ** apu puuttuu, editoi viitteet! ** Vihje: Viitteitä: http://math.aalto.fi/opetus/kp3-ii/06/l/l14dynumkalvot.pdf http://www.math.hut.fi/~apiola/matlab/opas/lyhyt/esim/eulers.m (Listaus yllä)
25. mpld019.tex [mplp017.tex] Opiskelija ottaa lainaa 10000 euroa hetkellä k = 0 ja ryhtyy maksamaan sitä takaisin kuukauden päästä hetkellä k = 1. Kuukausikorko on 1% (huh!) ja takaisinmaksu tapahtuu kiintein maksuerin 450 EUR/kk Olkoon y k k:n kuukauden kuluttua jäljellä olevan velan määrä. Kirjoita differenssiyhtälö y k :lle. Muodosta taulukko ja graafinen esitys, jossa on pisteet (k, y k ), ja selvitä sen perusteella, miten kauan velan maksu kestää ja miten paljon rahaa opiskelijaparka käyttää koko projektiin. Luokittelu: Differenssi- ja differentiaaliyhtalot, Maple-perusteet. Vihje: 26. a) Osoita, että funktio arctan y x toteuttaa Laplacen osittaisdifferentiaaliyhtälön 2 u x 2 + 2 u y 2 = 0. (Tällaisia funktioita sanotaan harmonisiksi funktioiksi.) b) Oletetaan, että funktioilla u(x, y) ja v(x, y) on jatkuvat toiset osittaisderivaatat ja ne toteuttavat ns. Cauchy-Riemannin yhtälöt: u x = v y, v x = u y Osoita, että u ja v ovat harmonisia. c) Olkoon f(x, y) = x 3 y 2 + x 4 sin y + cos(xy). Laske osittaisderivaatat f xxy, f xyx, f yxx ja totea, että ne ovat samat. 27. Seuraava toistokäsky soveltaa Eulerin menetelmää alkuarvotehtävän y = sin(xy), y(0) = 1 ratkaisun likiarvon y(1) laskemiseen. Kokeile käskyjä askelpituuksilla h = 0.25, h = 0.1, h = 0.01 ja h = 10 4. Mikä menee pieleen viimeisessä kohdassa? f:=(x,y)-> sin(x*y); Digits:= 4; n:= 4; h:=1/n; y[0] = 1; for k from 0 to n-1 do (paina tässä kohti Shift+Enter) y[k+1]:= y[k]+h*f(k*h,y[k]) (samoin) od;
Vihje: 28. Ratkaise alkuarvotehtävä ja piirrä ratkaisun kuvaaja välillä 0 x 10. y + 3y + 3y = 1 e x, y(0) = 2, y (0) = 0, Vihje: Diffyhtälön saat ratkaistua komennolla dsolve. Yhtälössä esiintyvät derivaatat voit ilmoittaa komennolla diff, ja derivaatan pisteessa 0 voit ilmaista derivaattaoperaattorilla D(y)(0). 29. Maple,Matlab (H2T10) a) Ratkaise alkuarvotehtävä y y = cos x, y(0) = 1 analyyttisesti Maplella ja numeerisesti Matlabilla. Piirrä ratkaisukäyrä. b) Anna alkuarvoksi symboli c ja piirrä ratkaisukäyräparvi sopivalla välillä, kun c = 0.9, 0.8,..., 0. Miltä parvi näyttää suurilla x :n arvoilla. Tässä pitäisi erottua kolmenlaista käytöstä. Vihje: Maple: dsolve, Matlab: ode45 Avainsanat: Differentiaaliyhtälö, alkuarvotehtävä, analyyttinen ratkaisu, numeerinen ratkaisu. 30. Kirjoita heiluriyhtälö Θ + g sin(θ) = 0 ensimmäisen kertaluvun systeemiksi, tai toisen kertaluvun differentiaaliyhtälöksi. Voit ottaa g/l = L 1. Laske ratkaisu sopivalla aikavälillä (esim. [0, 10]) ja kolmella erilaisella alkuarvolla, joilla saat erityyppiset ratkaisut. Piirrä ratkaisukäyrät aikatasoon ja trajektorit faasitasoon. 31. Ratkaise RA-tehtävä y = y 2 1, y(0) = 0, y(1) = 1. Maplella. Yritä ensin analyyttista. Jos/kun mitään ei palaudu, voit asettaa esim infolevel[dsolve]:=3:. Näet ainakin, mitä Maple yrittää. Siirry sitten tyyppiin numeric, homma sujuu ongelmitta.
Muutaman kokeilun jälkeen huomasin, ettei sujukaan. Numeerisen ratkaisun määritteleminen parametrista riippuvaksi funkioksi on aikamoista temppuilua, tällaisella kurssilla ei kannata siihen paneutua, koska Matlab-ratkaisu on hyvin selkeä ja ongelmaton. Muutetaan tehtävä helpommaksi: Suorita Maplella suoraan reuna-arvotehtävän ratkaisu (luultavasti Maple laskee sen differessimenetelmällä). Syntaksi on aivan sama kuin alkuarvotehtävälle, nyt vain annetaan pelkät reunaehdot. Helpin esimerkkien avulla pääset kiinni ratkaisufunktioon. 32. a) Osoita, että funktio arctan y x toteuttaa Laplacen osittaisdifferentiaaliyhtälön 2 u x 2 + 2 u y 2 = 0. (Tällaisia funktioita sanotaan harmonisiksi funktioiksi.) b) Oletetaan, että funktioilla u(x, y) ja v(x, y) on jatkuvat toiset osittaisderivaatat ja ne toteuttavat ns. Cauchy-Riemannin yhtälöt: Osoita, että u ja v ovat harmonisia. u x = v y, v x = u y c) Olkoon f(x, y) = x 3 y 2 + x 4 sin y + cos(xy). Laske osittaisderivaatat f xxy, f xyx, f yxx ja totea, että ne ovat samat. -e Differentiaali- ja integraalilaskenta 33. mpldi001.tex ([HAM] ss. 48-50) Funktiolausekkeen derivaatta muodostetaan diff-komennolla. Määritä seuraavien funktioiden 1. ja 2. derivaatta ja sievennä tulokset simplify-komennolla. 6x 3 + 3x 2 2x + 1, x+1 x 2 +1, cos(x2 + 1), arcsin(2x + 3), 1 + x 4, arctan x Vihje: Voit myös kirjoittaa lausekkeen työarkille, koskettaa sitä hiiren oikealla context sensitive näppäimellä, jolloin saat joukon Maple-komentoja, mm. diff, simplify ym. Luokittelu, avainsanat: Mapleperusteet, Maplediffint, lauseke, symbolinen derivointi, diff Viitteet: [HAM] Heikki Apiola: Symbolista ja numeerista matematiikkaa Maple-ohjelmalla, Otatieto 588, 1998.
34. mpldi002.tex Olkoon f(x) = x 2 4. Muodosta integraalifunktiot f(x) dx, dx f(x). Tarkista tulokset derivoimalla. Vihje: int ja Int. Voit myös aloittaa: int <ESC-näppäily>, saat valikon, josta valitset -merkin ja täydennät luonnollisen tapaan. Käytä simplify-komentoa tarvittaessa. Luokittelu, Avainsanat: Maplediffint, int,int,mapleperusteet. 35. mpldi003.tex Määritä seuraavat integraalit: 0 e t dt ja 0 e t2 dt. Vihje: Ääretön: infinity. Huom: Voit kirjoittaa int(esc), saat valikon, josta voit valita määrätyn integraalimerkin, rajojen paikalle kirjoitat sopivasti, ylärajan voit aloittaa infi(esc), jolloin Maple antaa taas valikon, josta voit valita -symbolin. Toki voit kirjoittaa vanhan hyvän ajan tapaan int(f,t=0..infinity). 36. mpldi004.tex Huom! Alla jotkin kaavat html-sivulla epäselviä, suositus: avaa pdf-tiedosto (ellet jo avannut). Laske seuraavat integraalit. Määräämättömien integraalien tapauksessa tarkista tuloksesi derivoimalla. Määrätyissä integraaleissa, joista Maple ei suoriudu voit käyttää numeerista integrointia. Laske joitakin esimerkkejä (kuten h-kohta) symbolisesti ja sitten tulokselle numeerinen likiarvo ja toisaalta suoraan numeerisesti. Huomaa, että ns. suljettu muoto on nykyisin epämääräinen käsite, sillä useat perinteisesti mahdottomat integraalit voidaan lausua Maple:n tuntemien erikoisfunktioiden (kuten erf ) avulla. a) π/2 0 sin xdx b) x cos x 2 dx c) sin3x 1 cos 3xdx d) ln xdx e) x 2 x + 4dx f) 1 0 x4 + 1dx g) π 0 ecos x dx h) e x2 dx Vihje: Integrointikomento on int. Lisäksi on komennon muoto Int, joka on ns. hidas muoto int:stä ( inert function ). Numeerinen integrointi saadaan aikaan yhdistelmällä evalf(int(...)) tai int(,...,numeric).
Muoto evalf(int(...)) yrittää ensin symbolista, ja evaluoi tuloksen. Jos symbolinen ei onnistu, integroi numeerisesti. Siksi saattaa olla paljon tehottomampi numeeriseen integrointiin. Avainsanat: maplediffint, symbolinen integrointi, numeerinen integrointi,erf 37. mpldi005.tex Maple, Mathematica, Matlab (erityisesti b)-kohta). Laske integraali 2π cos x 0 13 12 cos 2x dx a) symbolisesti, b) numeerisesti. Piirrä integroitavan funktion kuvaaja. Mikä itse asiassa on integraalin arvo? Vihje: Mathematica: Symbolinen integrointi tapahtuu funktiolla Integrate, numeerinen funktiolla NIntegrate. Jälkimmäisessä sovelletaan suoraan jotakin numeerisen integroinnin menetelmää, jonka valintaan myös käyttäjä voi vaikuttaa. Ks. dokumentaatiota, erityisesti Implementation Notes. Maple: Symbolinen integrointi tapahtuu funktiolla int, numeerinen funktiolla int(...,type=numeric) tai evalf(int(...)). Numeerisessa sovelletaan suoraan jotakin numeerisen integroinnin menetelmää, jonka valintaan myös käyttäjä voi vaikuttaa. Esim: evalf(int(f, x = 0.. 2, digits = 20, method = _Dexp)) Matlab: Integrandi määritellään funktioksi (helpoimmin funktiokahvaksi function handle ). Sitten quad-alkuiset Matlab-funktiot. Luokittelu: mplteht/mpldiffint/mpldixx.tex, matlabteht/mldiffint/mldixx.tex mmateht/mmadiffint/mmadi100 Avainsanat: Symbolinen integrointi, numeerinen integrointi, funktiot, lausekkeet Ratkaisu: ON (mpldi005r.mw, mpldi005r.pdf) Viitteet: http://math.tkk.fi/~apiola/matlab/opas/lyhyt/m-files.html (Matlab:n funktiokahva, function handle). 38. mpldi005a.tex (PA, P1, tharj. 2, s. 2011) Harjoituksessa käytetään Maple-ohjelmaa. Toisen harjoituksen tavoitteena on syventää tietoja funktioiden käsittelystä: aiheina ovat mm. derivointi, maksimointi, yhtälöiden ratkaiseminen (ja
iterointi jos jää aikaa). Avaa Viikkoharjoitukset-sivulla oleva työarkki ja käy läpi siinä olevat esimerkit ja tehtävät. Sen jälkeen voit siirtyä alla oleviin tehtäviin, mikäli aikaa riittää. 1. Klikkaa hiirellä Viikkoharjoitukset-sivun tiedostoa maple2.mw (tässä http://www.math.hut.fi/opetus/mattie/mattiet/mplteht/mpldiffint/mpldi005apohja.mw), ja avaa se Maple-ohjelmalla. Käy läpi työarkin tehtävät ja siirry sen jälkeen alla oleviin tehtäviin. 2. Putoavan kappaleen nopeus v = v(t) toteuttaa differentiaaliyhtälön mv (t) = mg kv(t) 2, jos positiivinen suunta on alaspäin ja ilmanvastus on verrannollinen nopeuden neliöön kertoimella k > 0. a) Osoita, että funktio mg v(t) = k tanh gk m t toteuttaa vaaditun differentiaaliyhtälön. b) Mikä on rajanopeus lim t v(t)? Vihje: simplify-käsky ei tee sievennyksiä aivan loppuun, koska se ei tiedä, ovatko m, g, k positiivisia. Lisää käsky assume(m>0 and k>0 and g>0) ja kokeile sievennystä sen jälkeen. 3. Kuulantyönnön tulos riippuu kuulan alkunopeudesta v, lähtökorkeudesta h ja työnnön suuntakulmasta x seuraavan lausekkeen mukaisesti: ( ) v cos x v sin x + v 2 sin 2 x + 2hg f(x) =, g missä x [ π/2, π/2]. Käytetään SI-järjestelmän yksiköitä ja oletetaan, että h = 2, v = 14 ja g = 9.81. Määritä työnnön optimaalinen suuntakulma ja maksimitulos. Kannattanee edetä seuraavien vaiheiden mukaan: Määrittele f funktiona; älä sijoita lukuarvoja tässä vaiheessa, niin voit tarkistaa, että lauseke on oikein. Sijoita lukuarvot h, v, g. Piirrä funktion f kuvaaja välillä π/2 x π/2 ja tarkista, että se näyttää järkevältä. (Yleinen virhe: kertomerkkejä puuttuu!) Ratkaise maksimi kokeilemalla molempia tapoja: suoraan maximize TAI muodosta yhtälö f (x) = 0, ratkaise numeerisesti fsolve-käskyllä, laske maksimi. Muuta saatu kulma asteiksi ja mieti, onko tulos järkevä.
Avainsanat: mpldiffint, PeruskurssiP1, putoavan kappaleen diffyhtalo, differentiaalyhtalo, yhtälö, simplify, assume 39. mpldi006.tex (Maple, Mathematica) Laske integraali x4 2 dx Yritä sieventää tulosta (äläkä masennu, kun ei sievene). Derivoi, sievennä ja hämmästy! Vihje: Funktiot int (ja Int). Tehtävä näyttää kovin viattomalta, mutta tulos voi yllättää ja lisätä kunnioitusta Maplen kykyihin. Samalla näkyy, että integroinnin ns. suljettu muoto on nykyohjelmissa huomattavasti laajentunut entisajoista. Luokittelu, avainsanat: MapleDiffint, integrointi, erikoisfunktiot 40. mpldi007.tex [Isr] s. 46 Ilmapallon tilavuus kasvaa nopeudella 10cm 3 /s. Millä nopeudella säde kasvaa hetkellä, jolloin pallon pinta-ala on 200cm 2? Vihje: Periaate: V (t) = 4 3 πr(t)3, A(t) = 4πr 2. Derivoidaan: V (t) = lauseke, jossa esiintyy r(t) ja r (t) (implisiittinen derivointi). Tästä saadaan yksi yhtälö, josta voidaan ratkaista r V :n (tunnettu) ja r:n avulla. r saadaan pinta-alaehdosta. Voit aloittaa vaikka näin: V:=(4/3)*Pi*r(t)^3; A:=4*Pi*r(t)^2; yht1:=10=diff(v,t);yht2:=200=a; Huomaa, että diff soveltaa implisiittistä derivointia tuntemattomaan funktioon r(t). Ratkaisu: > V := (4/3)*Pi*r(t)^3; > A := 4*Pi*r(t)^2; > yht1 := 10 = diff(v, t); > yht2 := 200 = A; > r1 := solve(yht2, r(t)); > r1 := max(r1); # Valitaan pos. > dr := solve(yht1, diff(r(t), t)); > subs(r(t) = r1, dr); Luokittelu, avainsanat: MapleDiffint, implisiittinen dervointi Viitteet: [Isr] Robert Israel: Calculus: The Maple Way, Addison Wesley 41. mpldi008.tex Missä pisteissä Cartesiuksen lehden x 3 + y 3 = 3xy tangentin suuntakulma jonkin koordinaattiakselin suhteen on = 45? Piirrä sekä käyrä että ko. tangentit (ainakin joku tangentti).
Vihje: Implisiittinen derivointi ja numeerinen yhtälön ratkaisu fsolve lienevät paikallaan. Huomaa, että diff soveltaa implisiittistä derivointia tuntemattomaan funktioon y(x) (tai x(y)). Luokittelu, avainsanat: MapleDiffint, implisiittinen derivointi, yhtälön numeerinen ratkaisu, fsolve 42. mpldi009.tex (Maple, Mathematica) 1 cos x Muodosta funktion f(x) = arctan ensimmäinen ja toinen derivaatta. Piirrä funktion 1 + cos x ja derivaattojen kuvaajat. Vihje: Derivaatat ovat aluksi todella sotkuisia. Käytä komentoa simplify siistiäksesi tulostusta. Kuvat saattavat yllättää ja johdatella pohtimaan, miksi? Ratkaisu: (Poista kommentit...) %> f := x -> arctan(sqrt((1-cos(x))/(1+cos(x)))) %> plot(f(x),x=-2*pi..2*pi) %> df := diff(f(x), x) %> df:=simplify(df) %> plot(df,x=-pi..pi) %> d2f:=diff(df,x) %> simplify(%) Luokittelu, avainsanat: diff, simplify, plot,diffint1, peruskurssi1 43. mpldi010.tex Määritä funktion f(x) = arcsin(2x 1 x 2 ) suurin ja pienin arvo välillä [ 1, 1]. Käytä symboliohjelmissa perinteistä diffistekniikkaa kuvan kanssa, Matlab:ssa raakaa numeronmurskausta tyyliin: linspace, plot, zoom, uusi linspace kapeammalla välillä, find,... Vihje: arcsin on Mathematicassa ArcSin, Maplessa arcsin ja Matlabissa asin. Symbolilaskentaohjelma saattaa johtaa oikeaan tulokseen puutteellisin perustein, jos tarkkoja ollaan. Ratkaisu: Tämän kohdan ratkaisulinkissä Maple-ratkaisu, Matlab-ratkaisu vastaavassa Matlab-kohdassa (../../matlabteht/mldiffint/mldi010r.m ja.pdf) Avainsanat: Diffint1,max/min, ääriarvot,peruskurssi1 44. mpldi011.tex Ohjelmat: Maple,Mathematica Laske sen alueen pinta-ala, jota rajoittavat käyrät y 2 = x ja x y = 3. Vihje: Mieti, kumpi on helpompaa: integrointi x- vai y-suunnassa. Ratkaisu: mpldi011.pdf (pdf-tiedosto), mpldi011.mw (Maple ws)...mmateht/mmadiffint/mmadi107r.nb (Mma-notebook) Luokittelu: mplteht/mpldiffint/mpldi011.tex, mmateht/mmadiffint/mmadi107.tex
Avainsanat: Pinta-ala, integraali,diffintperusteet,peruskurssi1. 45. mpldi012.tex (Maple,Mathematica) Määritä ellipsin 9x 2 + 16y 2 = 144 sisään piirretyn (akselien suuntaisen) suorakulmion maksimaalinen pinta-ala. Piirrä ellipsi ja suorakulmio. Ratkaisu: Maple: mpldiffint/mpldi012r.mw mpldiffint/mpldi012r.pdf Avainsanat: Diffint1, ääriarvot, peruskurssi1,diffintperusteet 46. mpldi013.tex (Mathematica,Maple) Määritä funktion 1 f(x) = 2 + sin x integraalifunktio ja piirrä sen kuvaaja. Onko tämä jatkuva? Pitäisikö sen olla jatkuva? Laske funktion integraali jakson [0, 2π] yli a) integroimalla analyyttisesti komennolla Integrate, b) integroimalla numeerisesti komennolla NIntegrate, c) muodostamalla ensin integraalifunktio komennolla Integrate ja sijoittamalla rajat tähän korvausoperaattoria käyttäen. Vihje: Mathematica: Komennolla Integrate lasketaan sekä integraalifunktio että määrätty integraali. Numeeriselle integroinnille (määrätyn integraalin laskemiseen) on komento NIntegrate. Korvausoperaattori on ReplaceAll eli /.. Maple: Integrointi: int, hidastusmuoto : Int. Numeerinen integrointi: int(lauseke,x=a..b,numeric). Arvon (a) sijoittaminen lausekkeen (F) muuttujaan (x): subs(x=a,f) Ratkaisu: > f := 1/(2+sin(x)) # (Työarkilla matem. notaatio) > F:=int(f,x) > plot(f,x=0..2*pi) # Oho, integroimisvakiot ei yhteensopivat. > subs(x=2*pi,f)-subs(x=0,f) > simplify(%) # Ei voi olla, integroitava pos. koko välillä > int(f,x=0..2*pi) > evalf(%) > int(f,x=0..2*pi,numeric) 47. mpldi014.tex (Mathematica,Maple) Laske kardioidin r = 1 + cos ϕ kaarenpituus. Piirrä kuvio. Miten saat kardioidin kuvan oikeanmuotoiseksi? Tuntuuko saamasi pituus uskottavalta? Vihje: Kaarenpituusintegraali: ds = x (ϕ) 2 + y (ϕ) 2 dϕ. 48. mpldi015.tex Laske kaksinkertainen integraali 1 x 2 0 x 2 x 1 + y dy dx.
Laske tarkka arvo sekä likiarvo. Vihje: Huom: Maplessa voit kirjoittaa integraalit, neliöjuuret ym. matemaattisena notaationa. Tässä kaksoisintegraalissa syntyy jostain syystä oikeannäköisen matemaattisen kaavan kanssa vaikeaselkoinen virhe: Error, unable to parse integral.... Kyse on differentiaalitermin tulkintavaikeudesta. Perusnotaatio (int(int(...))) toimii varmasti. Ratkaisu: > int(int(x*sqrt(1+y), y = -x^2.. x^2), x = 0.. 1) > evalf(%) Avainsanat: diffint2, kaksinkertainen integraali, peruskurssi2 49. mpldi016.tex Osoita, että funktio f(x, y, z) = 1 x2 + y 2 + z 2 toteuttaa Laplace yhtälön f xx + f yy + f zz = 0. Vihje: Laske osittaisderivaatat diff-komennolla. Tulos ei todennäköisesti suoraan anna nollaa, vaan kaipaa sieventämistä. Käytä tähän komentoa simplify. Ratkaisu: > f := 1/sqrt(x^2+y^2+z^2) > diff(f, x, x)+diff(f, y, y)+diff(f, z, z) > simplify(%) Avainsanat: diffint2, osittaisderivaatta, Laplacen yhtälö, peruskurssi2 50. mpldi017.tex a) Osoita, että funktio arctan y x toteuttaa Laplacen osittaisdifferentiaaliyhtälön 2 u x + 2 u 2 y = 0. 2 (Tällaisia funktioita sanotaan harmonisiksi funktioiksi.) b) Oletetaan, että funktioilla u(x, y) ja v(x, y) on jatkuvat toiset osittaisderivaatat ja ne toteuttavat ns. Cauchy-Riemannin yhtälöt: u x = v y, v x = u y Osoita, että u ja v ovat harmonisia.
c) Olkoon f(x, y) = x 3 y 2 + x 4 sin y + cos(xy). Laske osittaisderivaatat f xxy, f xyx, f yxx ja totea, että ne ovat samat. Ratkaisu: mpldiffint/mpldi017r.mw ja.pdf Avainsanat: Osittaisderivaatta, harmoniset funktiot, sekaderivaatat yhtyvät, diffint2, peruskurssi2 51. mpldi018.tex Approksimoi numeerisesti kahden desimaalin tarkkuudella polun γ(t) = (cos(4πt), t 2 ), t [0, 1] pituutta. Idea on, että jaat välin [0, 1] n kappaleeseen tasapituisiä välejä, ja lasket näiden välien päätepisteitä vastaavien koordinaattien etäisyydet yhteen. Näin jakoa tihentämällä summan pitäisi lähestyä oikeaa pituutta. Muista, että saat tarkan pituuden laskemalla γ (t) dt Vihje: 52. mpldi019.tex Mat-1.1410 Matematiikan peruskurssi P1, syksy 2011, Pekka Alestalo Harjoituksessa käytetään Maple-ohjelmaa. Viimeisen harjoituksen tavoitteena on tutustua integraalilaskentaan ja ratkaista siihen liittyvä sovellettu tehtävä. Lopuksi tutustutaan työarkin esimerkkien avulla jonojen, listojen ja matriisien käsittelyyn, jos jää aikaa. Tarkista oman ryhmäsi aika ja paikka. Ota mukaasi (tämän paperin lisäksi) Viikkoharjoitukset-sivun Maple-pikaohje. Myös aikaisempien kierrosten malliratkaisut kannattaa kerrata. 1. Käy läpi edellisen kerran tehtävä 3 Noppa-sivun malliratkaisun avulla, ellet ehtinyt tehdä sitä viimeksi. 2. Klikkaa hiirellä Viikkoharjoitukset-sivun tiedostoa maple3.mw (puuttuu tästä toistaiseksi) ja avaa se ohjelmalla Maple 15. Käy läpi esimerkit ja laske annetut integraalit. 3. Työarkilla on annettu katenaariin eli ketjukäyrään liittyvä tehtävä, jossa etsitään sellaisen köyden muotoa, jonka pituus on 6 ja jonka päät on kiinnitetty pisteisiin (0, 1) ja (3, 2). Käy läpi esimerkkilaskut väärästä yrityksestä paraabelin y = g(x) = Ax 2 +Bx+C avulla ja ratkaise sitten tehtävä oikean lausekkeen y = f(x) = 1 cosh(a(x b)) + c a
avulla. Ehdot tulevat siis muotoon f(0) = 1, f(3) = 2 ja 3 0 1 + f (x) 2 dx = 6. Piirrä lopuksi funktioiden f ja g kuvaajat samaan kuvaan ja vertaa tuloksia. Hyödyllisiä vihjeitä: Kursoria ei tarvitse siirtää rivin loppuun ennen Enter-käskyä! Nuolinäppäimillä voi siirtyä yläindeksistä pois; samoin murtolausekkeissa. Pikanäppäimiä: Ctrl + Delete poistaa käsky- tai tulosrivin Ctrl + t siirtyy tekstitilaan F5 siirtyy tekstitilassa kaavankirjoitustilaan ja takaisin Ctrl + k tekee uuden käskyrivin kursorin yläpuolelle Ctrl + j tekee uuden käskyrivin kursorin alapuolelle Ctrl + l (l = label) liittää viittauksen aikaisemman tuloksen numeroon Vihje: 53. mpldi020.tex Integroi rationaalifunktiot: a) x 2x 2 3x 2 b) x 5 + 4 (x 2 + 2) 2 Saat käyttää Maplea apuna, mutta komennot convert(lauseke,parfrac,x) (puhumattakaan int :stä) ovat kiellettyjä muuhun kuin tarkistukseen. Katso mallia Maple-työskentelyyn vaikkapa /p/edu/mat-1.414/l2000/inttekn.mws:stä. Tehtävien ei pitäisi olla kohtuuttomia kokonaan käsinkään laskettaviksi. ** Linkki tuskin toimii, tee apu.zip ** Vihje: Viitteitä: Tämä ja seuraavat n. 10 teht. kokoelmasta... v2-3/h/harj2.tex (** Nootti systeemin rakentajalle(ha) **) 54. mpldi021.tex Tynnyrin korkeus on h, pohjaympyrösöiden säteet a ja keskikohdalta otetun poikkileikkausympyrän säde b (a < b). Laske tynnyrin tilavuus, kun sivulaudat kaartuvat paraabelin muotoisesti. Vihje: Sopii käsinlaskuun ja Maple/Mathematica-harjoitteluun.
Avainsanat: maplediffint, Mapleperusteet, peruskurssi1. 55. mpldi022.tex Laske sen alueen pinta-ala, joka on ympyrän r = a sisäpuolella, mutta Bernoullin lemniskaatan r 2 = 2a 2 cos 2φ ulkopuolella. Vihje: Sopii käsinlaskuun ja Maple/Mathematica-harjoitteluun. Avainsanat: maplediffint, Mapleperusteet, peruskurssi1 56. mpldi023.tex Laske asteroidin x = a cos 3 t, y = a sin 3 t koko pituus. Piirrä mielellään sekä Maplella (tai Mma:lla) että Matlabilla. Vihje: Sopii käsinlaskuun ja Maple/Mathematica(/Matlabkin)-harjoitteluun. Avainsanat: maplediffint, Mapleperusteet, peruskurssi1 57. mpldi024.tex Ketjukäyrän y = a cosh x, x a pyörähtäessä x-akselin ympäri syntyy katenoidiksi kutsuttu a pinta. Laske sen ala ja piirrä kuva (sopivalla a:lla). Vihje: Sopii käsinlaskuun ja Maple/Mathematica(/Matlabkin)-harjoitteluun. Avainsanat: maplediffint, Mapleperusteet, peruskurssi1 58. mpldi025.tex Määritä ne p:n arvot, joilla seuraavat integraalit suppenevat ja määritä suppenevien integraalien arvot. 1 a) x p dx b) x p dx Vihje: Sopii käsinlaskuun ja Maple/Mathematica(/Matlabkin)-harjoitteluun. Avainsanat: maplediffint, Mapleperusteet, peruskurssi1 1 59. mpldi026.tex Selvitä, suppeneeko 1 0 ln xdx. Integrointiin voit käyttää Maplen int-komentoa. Tarjoile ongelma Maplelle raja-arvona, johon sovellat limit-funktiota. Selvitä tuloksen oikeellisuus. Vihje: Avainsanat: maplediffint, Mapleperusteet, peruskurssi1 60. mpldi027.tex Eulerin Γ-funktio määritellään kaavalla Γ(x) = a) Osoita, että integraali suppenee aina kun x > 0. 0 t x 1 e t dt, x > 0 b) Johda osittaisintegroimalla palautuskaava Γ(x):lle Γ(x 1):n avulla ja osoita sitä käyttäen, että Γ(n + 1) = n!, kun n = 0, 1, 2,.... 0
c) Tutustu Gamma-funktioon piirtämällä Maplella tai Matlabilla. Huomaa, että Matlabissa ei ole (ollut) muuta tapaa n!:n laskemiseen kuin Gamman avulla. Pikku tarkennus (v. 2012): No, tokihan voi laskea: prod(1:n), mutta uudemmissa versioissa on myös factorial. Vihje: a)- ja b)-kohdat käsinlasku(pää-päättely)tehtäviä. Avainsanat: maplediffint, Mapleperusteet, peruskurssi1 61. mpldi028.tex (Maple,Matlab) Selvitä, miksi seuraava Matlabin komentojono antaa exp-funktion (0:ssa muodostetun) Taylorin n-asteisen polynomin kertoimet. n=10,c=1:n,c=gamma(c+1),c=1./c,c=[1,c] Huomaa, että kertoimet ovat kasvavan potenssin mukaan, joten jos/kun halutaan laskea polyval-funktiolla arvoja, on tehtävä y=polyval(fliplr(c),x); a) Piirrä exp-funktio ja sen Taylorin polynomit T k (x, 0), arvoilla k = 1... 10. b) Suorita Maple-komento seq(eval(subs(x=0,diff(exp(x),x$k) )),k=1..5); Se antaa varmasti idean, miten Maplen ja Matlabin yhteistyöllä voi kätevästi laskea minkä tahansa funktion Taylorin polynomeja x-vektorissa. Muodosta tällä tavoin joidenkin funktioiden Taylor-polynomitaulukoita ja kuvia. c) Muodosta ja piirrä edellisiä suoraan Maplella. d) Kirjoita edellä olevat ideat (pieneksi, 2 3 komentoa) funktioksi taypolkert, joka yksinkertaisesti ottaa argumentikseen (Vaikkapa Maplella saatavan ) derivaattajonon, jossa siis käsiteltävän funktion derivaatat on laskettu kehityskeskuksessa. Funktion tulee palauttaa Taylorin polynomin kerroinjono. (Laskentapiste ei näy Matlab-funktiossa argumenttina, se tulee mukaan jo Maple (tai kynä/paperi)-vaiheessa.) Palauta kertoimet alenevien potenssien mukaan, siis polyval-sopivasti. Alku voisi olla tällainen: function kertoimet=taypolkert(derjono) % Lasketaan Taylorin polynomin kertoimet. Asteluku määräytyy % derjonon pituudesta % derjono: [f(x0),f (x0),f (x0),...] % pisteet, joissa lasketaan Testaa funktiotasi ainakin samoilla kuin ennen funktion tekoa. Voi tietysti olla, että haluat mieluummin kirjoittaa funktion muodossa function y=taypol(derjono,x). Tällöin polyval on mukana ja arvot lasketaan siis vektorissa x. No, tee miten haluat! Vihje: Avainsanat: maplediffint, Mapleperusteet, peruskurssi1,taylorin polynomi,matlabdiffint 62. mpldi029.tex (Maple,Matlab) Laske sopivaa Taylorin polynomia ja siihen liittyvää virhetermiä hyväksi käyttäen likiarvo integraalille 1 xe x 2 dx 0
siten, että virheen itseisarvo on korkeintaan 10 6. Tarkoitus on laskea Taylorin kaavan jäännöstermin avulla, kuinka korkea asteluku tarvitaan, jotta virheraja varmasti alitetaan. Vertaa laskemaasi approksimaatiota Maplen evalf(int(..)); - komennon antamaan arvoon. Pohdittavaksi: Onko Taylorin polynomin käyttö hyvä numeerisen integroinnin menetelmä? Missä tapauksessa on ja missä ei? Vihje: Avainsanat: maplediffint, Mapleperusteet, peruskurssi1,taylorin polynomi,matlabdiffint 63. mpldi030.tex (Maple,Matlab) Muodosta lemniskaatan r 2 = cos 2φ kaaren pituuden lauseke. Voit integroida välillä [0, π/4] ja kertoa tuloksen 4:llä. Kokeile integroida Maplella, kenties tulos on hieman yllättävä, laske numeerinen approksimaatio evalf:lla. Suorita with(student): ja kokeile funktioita trapezoid ja simpson. Huomaa, että integroitava on singulaarinen päätepisteessä, joten näillä täytyy jättää väli hieman vajaaksi. Pääsetkö lähelle oikeaa tulosta näillä välineillä. Katso myös kuvia, niin integrandista kuin integraalifunktiostakin (Niin, Maple osaa tosiaankin sellaisen muodostaa!) Vihje: Avainsanat: maplediffint, Mapleperusteet, peruskurssi1,taylorin polynomi,matlabdiffint,numeerinen integrointi 64. Selitä, miksi näin saadaan exp-funktion katkaistu Taylorin sarja. Suorita sitten Maplella tämäntyylistä: > series(exp(x), x = 0, 10); # tai taylor(...); > p:=convert(%,polynom); > c:=coeffs(p,x); > evalf(%); Selitä, mitä näissä tapahtuu. (Tutki tarvitessasi helpillä komentoja niin Matlabissa kuin Maplessa.) Piirrä ja taulukoi tulokset. Vihje: -e mplgrafiikka 65. Tiedosto: mplg001.tex Piirrä funktion f(x) = sin(8x) + sin(9x) kuvaaja. Vihje: Tarkastele riittävän pitkää väliä 66. mplg002.tex
a.) Suorita plot(1/x,x=-1..1); Miten saisit kuvan näyttämään paremmalta? b.) Kokeile datan piirtoa tähän tapaan h:=0.01: xy=seq([k*h,1/(k*h)],k=1..100); plot([xy]) (Data annettu xy-pisteiden listana.) c.) ja myös: x:=[seq(k*h,k=1..100)]: y:=map(z->1/z,x); plot(x,y) (Matlab-tyylinen datan piirto (uusissa Maple-versioissa.)) d.) Kokeile nyt sitä Matlab-piirtoa vertailuksi viimeksi mainittuun: h=0.01; x=h:h:1; plot(x,1./x) Vihje: a)-kohtaan: (?plot,options ). Etsi options-luettelosta discont=true- kohta. Kokeile myös, mitä discont(1/x,x); vastaa. 67. mplg009.tex Kun suoritat komennon with(plots): saat käyttöösi mm. funktiot contourplot ja implicitplot. Kokeile vaikkapa contourplot(x^2+y^2,x=-5..5,y=-5..5) implicitplot(x^2+y^2=1,x=-1..1,y=-1..1) Piirrä funktion f(x, y) = y ln x + x ln y korkeuskäyriä pisteen (1, 1) ympäristössä. Piirrä erityisesti se, joka kulkee pisteen (1, 1) kautta. Klikkaa hiirellä kuvaa ja etsi käyrältä piste, joka on lähellä pistettä (1, 1). Seuraa pisteen koordinaatteja työkalunauhan vasemmasta laatikosta. 68. [Matlab,Maple,Mathematica] (Vihjeet ja ratkaisut tässä vain Matlab/Maple.) Piirrä pintakuva ja korkeuskäyräpiirros funktiosta ja Ota alueeksi vaikka [-2 2-1 1]. f(x, y) = sin(3 y x 2 + 1) + cos(2 y 2 2 x).
Vihje: 1) Matlab Käyttäjän täytyy itse muodostaa koordinaattihila ja sen pisteissä korkeusarvomatriisi Z. Tämä hoituu "tehooperaattorilla"meshgrid, johon kannattaa panostaa muutenkin. Korkeusarvomatriisi Z tehdään kahden muuttujan funktiolle tähän tapaan: x=linspace(a,b,m); y=linspace(c,d,n); % m ja n luokkaa 30. [X,Y]=meshgrid(x,y); Z=f(X,Y); (Kokeile periaatetta pienillä, hiukan erikokoisilla matriiseilla X,Y.) Tässä funktion f on toimittava pisteittäisin operaatioin. Jos vaikka f(x, y) = x 2 y 2, niin kirjoitettaisiin: Z=X.^2 - Y.^2; Pintoihin mesh(x,y,z), surf(x,y,z),... Kokeile myös colorbar yms. Matlabilla korkeuskäyriin contour, voit myös kokeilla ezcontour-funktiota. Mahdollisuus on kokeilla myös korkeuskäyrien valitsemistapoja, clabel. Älä diskretoi liian hienoksi. Linspacessa 100 on ihan liikaa, n. luokkaa 30 olkoon lähtökohta. 2) Maple: Helpompaa, koska hila tehdään ohjelman toimesta. Tulos ei aivan niin loistava kuin Matlabissa. (Osin tosin varsin hienoa tämäkin, ja context sensitive ). with(plots): plot3d(f(x,y),x=a..b,y=c..d); contour(f(x,y),x=a..b,y=c..d); # Tarkista! Luokittelu: mplteht/mplgrafiikka/mplgxx.tex, matlabteht/mlgrafiikka/mlgxx.tex Avainsanat: 3D-grafiikka, pinta, pinnat, korkeuskäyrät, korkeuskayrat 69. [Matlab,Maple,Mathematica] (Vihjeet ja ratkaisut tässä vain Matlab/Maple.) Piirrä pintakuva ja korkeuskäyräpiirros funktiosta Ota alueeksi vaikka [-2 2-1 1]. f(x, y) = sin(3 y x 2 + 1) + cos(2 y 2 2 x). Vihje: 1) Matlab Käyttäjän täytyy itse muodostaa koordinaattihila ja sen pisteissä korkeusarvomatriisi Z. Tämä hoituu "tehooperaattorilla"meshgrid, johon kannattaa panostaa muutenkin. Korkeusarvomatriisi Z tehdään kahden muuttujan funktiolle tähän tapaan: