Alkuehtoa vastaavan yksittäisratkaisun etsiminen

Muodostamalla ensin yleinen ratkaisu

Olkoon annettuna differentiaaliyhtälö alkuehtoineen:

diffyht =  
      x^2 y''[x]  -  3 x y'[x]  +  4 y[x]  ==  
        x^3

ehto1 =  y[2]  ==  3

ehto2  =  y'[2]  ==  4

Yleinen ratkaisu funktion muodossa saadaan DSolve-funktiolla:

ratkaisu =  DSolve[diffyht, y, x]

Sijoittamalla tämä alkuehtoihin saadaan algebralliset yhtälöt vakioiden C[1] ja C[2] määrittämiseksi:

yht1 =  ehto1 /. First[ratkaisu]

yht2 =  ehto2 /. First[ratkaisu]

Näistä voidaan ratkaista vakioiden arvot:

vakiot =  Solve[{yht1, yht2}, {C[1], C[2]}]

Sijoittamalla vakiot yleiseen ratkaisuun saadaan alkuehtoa vastaava yksittäisratkaisu:

y0 =  y /. First[ratkaisu] /. First[vakiot]

Sievennettynä ratkaisun lauseke on

y0[x] // Simplify

Tämä toteuttaa differentiaaliyhtälön ja alkuehdot:

{diffyht, ehto1, ehto2} /. y -> y0 // Simplify

Ratkaisemalla suoraan DSolve-komennolla

Alkuehdot voidaan yhtälön ohella antaa DSolve-komennolle, jolloin yksittäisratkaisu saadaan suoraan:

ratkaisu =  
      DSolve[{diffyht, ehto1, ehto2}, y, x]

Ratkaisufunktio ja sen lauseke ovat tällöin

y0 =  y /. First[ratkaisu]

y0[x] // Simplify

SKK 27.04.2001