symnum.nb |
Differentiaaliyhtälön numeerisen ratkaisemisen edellytyksenä on, että kyseessä on alkuarvoprobleema, ts. annettuna on sekä differentiaaliyhtälö että alkuehto. Etsittävä ratkaisu on yksikäsitteinen eikä sisällä määräämättömiä vakioita.
Tarkoitusta varten on NDSolve-komento, jonka syntaksi on hyvin samanlainen kuin algebrallisen ratkaisemisen DSolve-komennon. Ainoana erona on, että viimeisessä argumentissa on annettava myös muuttujan väli, jolla ratkaisua etsitään. Ratkaisu on mahdollista saada lausekkeen tai funktion muodossa.
![[Graphics:Images/symnum_gr_2.gif]](Images/symnum_gr_2.gif)
![[Graphics:Images/symnum_gr_4.gif]](Images/symnum_gr_4.gif)
![[Graphics:Images/symnum_gr_6.gif]](Images/symnum_gr_6.gif)
![[Graphics:Images/symnum_gr_8.gif]](Images/symnum_gr_8.gif)
Ratkaisu saadaan tarkkaa ratkaisua approksimoivana interpolaatiofunktiona. Hieman erikoisesta esitystavasta huolimatta tämä on kuin mikä tahansa muuttujan sisältävä lauseke:
![[Graphics:Images/symnum_gr_11.gif]](Images/symnum_gr_11.gif)
![[Graphics:Images/symnum_gr_13.gif]](Images/symnum_gr_13.gif)
![[Graphics:Images/symnum_gr_15.gif]](Images/symnum_gr_15.gif)
![[Graphics:Images/symnum_gr_17.gif]](Images/symnum_gr_17.gif)
![[Graphics:Images/symnum_gr_20.gif]](Images/symnum_gr_20.gif)
![[Graphics:Images/symnum_gr_22.gif]](Images/symnum_gr_22.gif)
Kyseessä on aito funktio:
![[Graphics:Images/symnum_gr_24.gif]](Images/symnum_gr_24.gif)
![[Graphics:Images/symnum_gr_26.gif]](Images/symnum_gr_26.gif)
![[Graphics:Images/symnum_gr_28.gif]](Images/symnum_gr_28.gif)
Mathematican funktio NDSolve käyttää alkuarvoprobleeman numeeriseen ratkaisemiseen erilaisia numeerisia algoritmeja yhtälöstä riippuen. Näiden avulla saadaan ratkaisufunktion arvoille approksimaatiot sopivasti valituissa pisteissä
.
Elementti InterpolatingFunction on interpoloiva funktio, joka perustuu Lagrangen ja Hermiten interpolaatiopolynomeihin. Näiden laskeminen pohjautuu ratkaisua approksimoivaan pisteistöön . Tarkemman käsityksen interpoloivan funktion sisältämästä informaatiosta saa komennolla FullForm:
![[Graphics:Images/symnum_gr_33.gif]](Images/symnum_gr_33.gif)
Tämän tulostus on huomattavan pitkä. Sen saa näkyviin poistamalla puolipisteen edellä olevan syötteen lopusta ja ajamalla syötteen uudelleen.