Harjoitus -- Ratkaisut 1 Ei kommenttia. Tutkittava funktio oskilloi äärettömän tiheään nollan lähellä. PlotPoints-asetus määrää, kuinka tiheästi Plot-funktio ottaa piirrettävästä funktiosta "näytteitä" kuvaajaa varten. f x : Sin 1 x ; Plot f x, x,.1,, PlotRange 1, 1, AxesOrigin,, PlotPoints.. 1. Luodaan pisteet y i (käytetään y:tä muuttujana, sillä x on varattu funktion f argumentiksi): a.1; b.; n ; h b a ; y 1 a; y n b; n 1 Do y i a i 1 h, i,, n 1 ; Show Plot f x, x, a, b, PlotRange 1, 1, AxesOrigin,, ListPlot Table y i, f y i, i, 1, n.. 1. Ongelmallinen tapaus, sillä tämä h:n arvo riittäisi mainiosti alueeseen x., mutta ei lähempänä origoa. Tämän voisi
hratk.nb korjata luomalla epätasavälisen pisteistön: x i 1 x i h i tms. Luodaan taulukko derivaattojen arvoista: f y i 1 f y i 1 df Table y i,, i,, n 1 ; h ddf Table y i, f y i 1 f y i f y i 1, i,, n 1 ; h Show Plot f' x, x, a, b, PlotRange 4,, AxesOrigin,, ListPlot df 3 4 Show Plot f'' x, x, a, b, PlotRange,, AxesOrigin,, ListPlot ddf 8 6 4 Tämä h:n arvo ei riitä mihinkään. Oikeastaan mikään h:n arvo (tai mikään n:n arvo) ei riitä, jos tarpeeksi lähelle origoa mennään. Clear a, b, n, h a.; b.; n 4; h b a ; y 1 a; y n b; n 1 Do y i a i 1 h, i,, n 1 ; f y i 1 f y i 1 df Table y i,, i,, n 1 ; h ddf Table y i, f y i 1 f y i f y i 1, i,, n 1 ; h
hratk.nb 3 g1 Show Plot f' x, x, a, b, PlotRange All, ListPlot df ; g Show Plot f'' x, x, a, b, PlotRange All, ListPlot ddf ; GraphicsArray g1, g.8..1.14.16.18.8..1.14.16.18 3 3 Differentiaaliyhtälöiden ratkaisuun perehdytään myöhemmin. Tässä vähän maistiaisia: Clear n, t, Λ ratk DSolve n' t Λ n t, n n ratkaistava yhtälö ryhmä aaltosulkeisiin, myös alkuehdot tänne, n t ratkaistava funktio, t riippumaton muuttuja n t t Λ n Ratkaisu saadaan sääntönä (transformation rule). Myös parametrit n ja Λ kannattaa antaa sääntöjen kautta (näin niihin ei tule pysyvästi mitään arvoa). Seuraavassa sovelletaan ensin sääntöä ratk, jonka jälkeen sijoitetaan n :n ja Λ:n arvot. Plot n t. ratk. n, Λ.1, t,, 1. 8. 4 6. 4 4. 4. 4 Kun differentiaaliyhtälöön sijoitetaan derivaatan approksimaatio, saadaan N i 1 1 Λ h N i. Olkoon h.1, ja t i i 1 h, kun i 1,..., m. h.1; m ; Do t i i 1 h, i, 1, m ; Taulukoidaan arvot n i : (merkitään n:ää Μ:llä). Μ 1 ; Λ.1; Do Μ i 1 Λ h Μ i 1, i,, m ;
4 hratk.nb Show ListPlot Table t i, Μ i, i, m, Plot n t. ratk. n, Λ.1, t,, m h, PlotStyle Hue 1 1. 8. 4 6. 4 4. 4. 4 Likimääräinen ja tarkka ratkaisu käyvät hyvin yksiin. Suuremmilla h:n arvoilla (tai pienemmillä m:n arvoilla) havaitaan poikkeamaa: Clear t, Μ ; t m t 1 m 4; t 1 ; t m 4; h ; m 1 Do t i t 1 i 1 h, i, 1, m ; Μ 1 ; Λ.1; Do Μ i 1 Λ h Μ i 1, i,, m ; Show ListPlot Table t i, Μ i, i, m, Plot n t. ratk. n, Λ.1, t,, m h, PlotStyle Hue 1 1. 8. 4 6. 4 4. 4. 4 Tässä ratkaisumenetelmässä virhe siis kasaantuu joka aika-askeleella. 4 Otetaan yksiköt mukaan. Jälleen aikamuuttujaan t on liitettävä yksikkö Second. In[3]:= In[43]:= Units` Clear g, a, v, x, t, c In[44]:= c.1 Meter Second 3 ; g t : c t Second; Nopeus on kiihtyvyyden integraali. Merkitään integroimismuuttujaa s:llä. Alaviiva funktion määrittelyssä (g[t_]) tarkoittaa, että g hyväksyy argumentikseen minkä tahansa lausekkeen. Kun integroidaan ajan suhteen, on yksiköitä kerrottava sekunnilla.
hratk.nb In[46]:= v 1 Meter Second 1 ; v t : v Integrate g s, s,, t Second; Paikka on nopeuden integraali. In[48]:= x ; x t : x Integrate v s, s,, t Second Simplify; In[1]:= Plot Evaluate x t Meter, t,,, ImageSize Small Out[1]= Toinen lähestymistapa: (huom. sääntöjä (a->b) voidaan soveltaa myös funktioihin, ja niillä voidaan sijoittaa funktioihin arvoja) In[]:= In[3]:= In[4]:= Clear g, v, x, t, s, x, v x t : x Integrate v Integrate g s, s,, r, r,, t ; Plot Evaluate x t. g s.1 s. v 1, x, t,,, ImageSize Small Out[4]= Määrätyn integraalin voi kirjoittaa esc-dintt-esc (määräämätön esc-int-esc): In[]:= g t :.1 t; x ; v 1; In[7]:= t x t : x s v g r r s Plot Evaluate x t, t,,, ImageSize Small Out[7]= b) Puolisuunnikassääntö Katso luennoista puolisuunnikassäännön määritelmä. Lasketaan paikka ajanhetkillä t i, i 1,..., n; t 1 ja t n s. In[8]:= t n t 1 n ; t 1 ; t n ; h ; n 1 Do t i t 1 i 1 h, i,, n 1
6 hratk.nb Oletetaan, että kiihtyvyys tunnetaan vain hetkillä t i. In[6]:= Do g i.1 t i, i, 1, n Paikan laskemiseksi hetkellä t i tarvitaan nopeuden arvot hetkillä t j, missä j 1,..., i. Taulukoidaan siis ensin nopeuden arvot kaikilla ajanhetkillä. Nopeus hetkellä t 1 saadaan alkuehdosta. Loput lasketaan puolisuunnikaskaavalla kiihtyvyydestä: t i v t i v t 1 a t dt v1 h j 1 t 1 i 1 a i a i 1 Koska nyt halutaan kaikki nopeuden arvot, yo. kaava on kätevintä kirjoittaa muotoon i v t i v 1 h a j a j 1 j 1 h a i 1 a i. v i 1 h a i 1 a i. In[61]:= v 1 1; alkuehto v 1m s g i 1 g i Do v i v i 1 h, i,, n Summan voi tietenkin laskea jokaiselle i:n arvolle erikseen: In[63]:= In[6]:= g j g j 1 Do v ; Do v, j, 1, i 1 ; v i v 1 h v, i,, n ListPlot Table t i, v i, i, 1, n, ImageSize Small 6 4 Out[6]= 3 Paikka voidaan nyt laskea nopeudesta, samalla tavalla kuin äsken nopeus kiihtyvyydestä. In[66]:= x 1 ; v i 1 v i Do x i x i 1 h, i,, n In[69]:= ListPlot Table t i, x i, i, 1, n, ImageSize Small Out[69]=