Srjrtkisun etsiminen Mplell Olkoon trksteltvn ensimmäisen kertluvun differentiliyhtälö: > diffyht:= diff(y(x, x=1y(x^; d diffyht := = dx y( x 1 y( x Tälle pyritään etsimään srjrtkisu origokeskisenä potenssisrjn. Tvoitteen on lske srjn termien kertoimet n -steiseen termiin skk: > n:= 1; n := 1 Potenssisrjojen käsittelyä vrten on Mpless pketti powseries. > with(powseries: Trvittv potenssisrjmuotoinen yrite on > powcrete(yrite(k=[k]: tpsform(yrite, x, n; x x x 3 x 4 x 5 x 6 x 7 x 8 x 9 O( x 1 Powcrete-komennoll luodn Mple-proseduuri, jok vst hluttu potenssisrj. Tpsform-komennoll sdn tulostettu hluttu määrä termejä luodust potenssisrjst. Powseries-pketti käytettäessä on potenssisrjojen väliset opertiot tehtävä pketin työkluill. Esimerkiksi kht powcrete-komennoll luotu potenssisrj ei void kerto keskenään operttorill *, vn on käytettävä pketin komento multiply. Vstvsti diff -komento ei pure potenssisrjn vn on käytettävä komento powdiff. Sijoittmist vrten on pketin työkluill lskettv vlmiiksi lkuperäisessä differentiliyhtälössä esiintyvät derivointi j toiseen potenssiin korottminen. Tämän jälkeen potenssisrjoist muodostetn sijoitust vrten polynomit ottmll mukn n ensimmäistä termiä. > yriteder:= powdiff(yrite: tpsform(yriteder, x, n; x 3 x 4 x 3 5 x 4 6 x 5 7 x 6 8 x 7 9 x 8 1 x 9 O( x 1 > yritetoiseen:= multiply(yrite, yrite: tpsform(yritetoiseen, x, n; x ( x ( x 3 ( x 4
( x 5 ( x 6 ( x 7 ( x 8 ( x 9 O( x 1 > yritederpol:= convert(tpsform(yriteder, x, n, polynom; yritederpol := x 3 x 4 x 3 5 x 4 6 x 5 7 x 6 8 x 7 9 x 8 1 x 9 > yritetoiseenpol:= convert(tpsform(yritetoiseen, x, n, polynom; yritetoiseenpol := x ( x ( x 3 ( x 4 ( x 5 ( x 6 ( x 7 ( ( x 9 Sijoitetn yrite differentiliyhtälöön. > srjyht:= yritederpol=1yritetoiseenpol; srjyht := x 3 x 4 x 3 5 x 4 6 x 5 7 x 6 8 x 7 9 x 8 1 x 9 = 1 x ( x ( x 3 ( ( x 5 ( ( x 7 ( ( x 9 Yhtälön oikell j vsemmll puolell on potenssisrj. Jott nämä olisivt smt, tulee smkorkuisten potenssien kertoimien yhtälön oikell j vsemmll puolell oll smt. Vähentämällä yhtälön oike puoli vsemmst sdn ikn polynomi, jonk potenssien kertoimien tulee tällöin oll. Poimimll kertoimet coeffs-komennoll j määrittelemällä ne nollksi, sdn yhtälöryhmä. > lhs(srjyht-rhs(srjyht: coeffs(%, x: yhtlot:= {seq(%[i]=, i=1..n}; yhtlot := { 1 =, =, 5 =, 6 =, 7 =, 8 =, 9 =, x 8 x 6 x 4 x 8
1 =, 4 =, 3 = } Tuloksen on rekursiivinen epälinerinen yhtälöryhmä: ensimmäisestä yhtälöstä voidn rtkist, jos tunnetn, toisest tämän jälkeen, kolmnnest jne. Kokonisuudessn ryhmä voidn rtkist solve-komennoll. Tässä jälkimmäiseksi rgumentiksi pitäisi oikestn nt list yhtälöryhmän tuntemttomist, mutt oletuksen on, että rtkisu tphtuu kikkien ryhmässä esiintyvien symbolien suhteen. Kikki tuntemttomi ei sd rtkistuiksi, vn muut voidn inostn lusu ensimmäisen kertoimen vull. > rtk:= solve(yhtlot; 4 rtk = 3 4 1 5 = 3 4 3 5 3 6 17 = 15 := {,,, 15 8 = 3 8 1 5 48 315 17 7 = 315 6 3 7 77 45 17, 45, 37 = 9 1 3 44 189 138 835 1 6, = 835 ( 1, 141 = 14175 3179 945 77 15 11 138 14175 1 3 7 9 16 = 3 5 88 63 6 315, =, = 1 } Sijoittmll kertoimet yritteeseen sdn rtkisun olevn potenssisrjn lkupää: > srjrtk:= subs(rtk, tpsform(yrite, x, n1; srjrtk ( 1 x ( 1 x 4 3 4 1 5 3 x3 3 5 := 3 x 4 4 6 17 15 7 15 x5 3 7 77 45 17 45 x 6 8 3 8 1 5 48 315 17 7 9 16 315 x7 3 5 88 63 6 315 x 8 37 9 1 3 44 189 138 835 1 6 835 x9 141 14175 3179 945 77 15 11 138 14175 1 3 x 1 O( x 11 Tämä sisältää yhden määräämättömän vkion, kuten ensimmäisen kertluvun differentiliyhtälön yleiselle rtkisulle luonnollist onkin. Jos lkuehdoksi vlitn y( =, tulee oll =. Vstv yksittäisrtkisu on > yksrtk:= subs([]=, srjrtk; 9,
1 17 6 yksrtk := x 3 x3 15 x5 315 x7 835 x9 O( x 11 Tämä on sm kuin funktion tn(x origokeskinen Tylorin srj: > series(tn(x, x, n1; 1 17 6 x 3 x3 15 x5 315 x7 835 x9 O( x 11 Näin tulee ollkin, sillä differentiliyhtälö on seproituv j sen yleiseksi rtkisuksi sdn y = tn(x C. > dsolve(diffyht, y(x; y( x = tn ( x _C1 Jott srjrtkisulle voitisiin piirtää kuvj, siitä on pudotettv jäännöstermi pois. Tämän trkk luseketthn ei tunnet eikä sille siis void lske numeerisi rvoj piirtämistä vrten. Jäännöstermin poistminen tphtuu muuntmll potenssisrj polynomiksi komennoll convert. > poly:= convert(yksrtk, polynom; 1 17 6 poly := x 3 x3 15 x5 315 x7 835 x9 Srjrtkisu j funktio tn(x smss kuvss: > plot({poly, tn(x}, x=..1.5;
Esitetty lsku ei nn viitteitä srjrtkisun suppenemislueest. Kokonn muill keinoill voidn osoitt, että tngentin origokeskisen Tylorin srjn suppenemissäde on π. Srj suppenee siis vin välillä ] π, π [. Hluttu termiluku voidn edellä olevss lskuss muutt j tämän jälkeen lske kikki uudelleen vlinnll Evlute Notebook vlikost Kernel/Evlution. Rtkisu suorn dsolve-komennoll Mplen dsolve-komennoll on mhdollist lske suorn rtkisuj, jotk ovt Tylorin srjoj. Tällöin käytetään prmetri type=series. Esimerkkinä edellä johdettu srjrtkisu suorn dsolve-komennoll: > Order:=1: dsolve({diffyht, y(=}, y(x, type=series: simplify(%; 1 17 6 y( x = x 3 x3 15 x5 315 x7 835 x9 O( x 1 > Linkit
srjmuotoinen yrite SKK & MS 31.5.1