Vkioiden vriointi kolmnnen kertluvun yhtälölle Olkoon trksteltvn kolmnnen kertluvun linerinen epähomogeeninen differentiliyhtälö > diffyht:= (-1)*diff(y(), $3)-*diff(y(), $2)+diff(y(), )=ep(^2); diffyht := ( 1) d 3 y( ) d 2 + = d 3 y( ) d 2 d y( ) 2) e( Vstv homogeeniyhtälö on > homogyht:= lhs(diffyht)=0; homogyht := ( 1 ) d 3 y( ) d 2 + = d 3 y( ) d 2 d y( ) 0 Tämän rtkisut ovt suhteellisen yksinkertiset j pienellä pohdiskelull rvttviss. Jos y:n piklle sijoitetn eksponenttifunktio, niin yhtälö toteutuu: > subs(y()=ep(), homogyht): Smoin käy, jos sijoitetn funktio 2 : > subs(y()=^2, homogyht): Kolmnneksi perusrtkisuksi sopii vkiofunktio, jok kikkill s rvon 1: > subs(y()=1, homogyht): Homogeeniyhtälön perusjärjestelmä on siten > perusjrj:= [ep(), ^2, 1]; perusjrj := [ e, 2, 1] Linlg-pketist löytyvällä multiply-komennoll voidn lske mtriisituloj. Kun kyseessä on kksi vektori, on tuloksen pistetulo. Ldtn pketti käyttöön. > with(linlg): Wrning, the protected nmes norm nd trce hve been redefined nd
unprotected Homogeeniyhtälön yleinen rtkisu on: > homogrtk:= multiply(perusjrj, [_C1, _C2, _C3]); homogrtk := e _C1 + 2 _C2 + _C3 Epähomogeenisen yhtälön yksittäisrtkisu voidn hke vkioiden vrioinnill, jolloin yrite on > vriot:= [u(), v(), w()]; vriot := [ u( ), v( ), w( )] > yr0:= multiply(vriot, perusjrj); yr0 := u( ) e + v( ) 2 + w( ) Tämä sijoitetn differentiliyhtälöön j pyritään määrittämään selliset funktiot u(), v() j w( ), että yhtälö toteutuu. Lsku yksinkertistetn kuten toisen kertluvun yhtälön tpuksesskin settmll sopivi lisäehtoj. Toisen kertluvun tpuksess näitä on yksi, kolmnnen kertluvun tpuksess kksi. Kerätään derivtt listksi: > derivtt:= diff(vriot, ); d derivtt :=,, d u( ) d d v( ) d d Muodostetn yritteen derivtt w( ) > der1:= diff(yr0, ); der1 := + + + + d u( ) e u( ) e d v( ) d 2 2 v( ) d w( ) j yksinkertistetn sitä settmll funktioiden u, v j w derivttoj sisältävien termien summ nollksi: > termit1:= [seq(coeff(der1, derivtt[k]), k=1..3)]; termit1 := [ e, 2, 1] > nolltermi1:= multiply(termit1, derivtt); nolltermi1 := + + d u( ) e d v( ) 2 w( ) d Tällöin derivtt on > yr1:= simplify(der1, {nolltermi1=0});
yr1 := u( ) e + 2 v( ) Edellä on käytetty komentoj trvittvn lisäehdon muodostmiseen j derivtn yksinkertistmiseen. Tämä on luontev kirjoitettess ohjelmkoodi Mplelle, mutt interktiivisess lskennss on yksinkertisemp poimi trvittvt termit hiirellä. Vstvll tvll muodostetn yritteen toinen derivtt, setetn toinen lisäehto j yksinkertistetn derivtt: > der2:= diff(yr1, ); der2 := + + + d u( ) e u( ) e 2 d v( ) 2 v( ) > termit2:= [seq(coeff(der2, derivtt[k]), k=1..3)]; termit2 := [ e, 2, 0] > nolltermi2:= multiply(termit2, derivtt); nolltermi2 := + d u( ) e 2 d v( ) > yr2:= simplify(der2, {nolltermi2=0}); yr2 := u( ) e + 2 v( ) Yritteen kolms derivtt sdn yksinkertisesti derivoimll; lisäehtoj ei enää setet: > yr3:= diff(yr2, ); yr3 := + + d u( ) e u( ) e 2 d v( ) Yritteen derivtt sijoitetn differentiliyhtälöön, jolloin sdn vin funktioiden u, v j w derivttoj koskev ehto. Funktiot itse supistuvt pois; tämä on seurust siitä, että yrite muodostetn homogeeniyhtälön rtkisujen vull. > ehto:= subs({diff(y(), $3)=yr3, diff(y(), $2)=yr2, diff(y(), )=yr1, y()=yr0}, diffyht): fctor(%); + = d u( ) e 2 d v( ) ( 1) 2) e( Derivtt sdn rtkistuiksi tästä ehdost j iemmin setetuist lisäehdoist: > derivrtk:= solve({ehto, nolltermi1=0, nolltermi2=0}, {derivtt[]}): d { =,, } d v( ) 1 e ( 2) d 1 e ( 2 ) w( ) = ( 2 + ) d = 2 2 + 1 + 2 d 2 2 + 1 + 2 d u( ) e ( ( 1) ) 2 + 1 + 2
Funktiot u, v j w sdn tämän jälkeen integroimll. Selkeintä on lske funktiot määrättyinä integrlein lrjn olless mielivltinen. Mpless listojen integrointi tehdään integroimll jokinen lkio erikseen mp-komennon vull: > integroitvt:= subs(=t, subs(derivrtk,derivtt)): t e ( t ( 1 + t) ),, 2 t + 1 + t 1 e ( t2) 1 t e ( t2 ) ( 2 + t ) 2 2 2 t + 1 + t 2 2 2 t + 1 + t 2 > fktrtk:= mp(int, integroitvt, t=..): t e ( t ( 1 + t )) dt, 1 e ( t2) dt, 1 t e ( t2 ) 2 t + 1 + t 2 2 2 t + 1 + t 2 Esiintyviä integrlej ei onnistut lusumn lkeisfunktioiden ti Mplen tuntemien funktioiden vull. Vkioiden vrioinnill on kuitenkin löydetty yksittäisrtkisu: > y0:= multiply(fktrtk, perusjrj): t e ( t ( 1 + t) ) dt e 1 e ( t2) dt 2 1 t e ( t2 ) + 2 t + 1 + t 2 Rtkisu voidn sijoitt differentiliyhtälöön j trkist, toteutuuko yhtälö: > subs(y()=y0, diffyht): Differentiliyhtälön yleinen rtkisu on siis > homogrtk+y0: > e ( 2 ) = e ( 2) e _C1 + 2 _C2 + _C3 + t e ( t ( 1 + t )) dt e 1 e ( t2) dt 2 1 + t e ( t2 ) 2 t + 1 + t 2
Nimittäjien nollkohdn tki trkstelulue on joko < 1 ti > 1. Integrlin lrj on vlittv siitä lueest, jot trkstelln. Lukij tutkikoon, miten Mple rtkisee edellä käsitellyn yhtälön suorn dsolve-komennoll. Linkit epähomogeenisen yhtälön rtkisujoukko vkioiden vriointi toisen kertluvun yhtälön tpuksess korkempien kertlukujen lineriyhtälöt SKK & MS 03.01.2001