symnum.mws |
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.
Dsolve -komennolle voidaan antaa useita erilaisia parametreja ja yksi niistä on type=numeric , joka laskee ratkaisun numeerisesti. Toinen hyödyllinen parametri on output=listprocedure , joka käskee Maple a antamaan ratkaisun sijoitusjoukkona. Lisää tietoa parametreista löytyy Maple n ohjeesta komennolla ?dsolve[numeric] .
> diffyht:= diff(y(x), x)=x^2-y(x)^2;
> alkuehto:= y(0)=1;
> numratk:= dsolve({diffyht, alkuehto}, y(x), type=numeric, output=listprocedure);
Maple n numeerinen ratkaisumenetelmä muodostaa proseduurin, jonka avulla tarkkaa ratkaisua lähellä olevia ratkaisuapproksimaatioita voidaan laskea. Proseduurilla voidaan laskea arvoja kuten funktiolla.
> numratk(0.8);
Toisinaan on hyödyllistä poimia proseduurista jonkin tietyn tuntemattoman ratkaisu. Poimitaan y( x ) ja käytetään sitä kuten funktiota.
> yratk:= subs(numratk,y(x));
> yratk(0.8);
> plot(yratk, 0..5);
Maple käyttää oletuksena alkuarvoprobleeman numeeriseen approksimointiin rkf45 -algoritmia. Tuloksena on proseduuri proc ( x ) ... end proc , jolle voidaan antaa jokin arvo ja se palauttaa approksimaation ratkaisusta tällä arvolla.
Ratkaisualgoritmeja on useita ja Maple voidaan tarvittaessa käskeä käyttämään jotakin tiettyä algoritmia. Tietoa Maple n numeerisen approksimoinnin algoritmeista löytyy ohjeesta komennolla ?dsolve[numeric] .
Dsolve -komennon toimintaa ratkaisun aikana on mahdollista seurata komennolla infolevel[dsolve]:=3 . Oletusarvoisesti infolevel -arvo on 0. Vastaavasti voidaan seurata myös minkä tahansa muun komennon toimintaa.