$\newcommand{\N}{\mathbb N} \newcommand{\Z}{\mathbb Z} \newcommand{\Q}{\mathbb Q} \newcommand{\R}{\mathbb R} \newcommand{\C}{\mathbb C} \newcommand{\ba}{\mathbf{a}} \newcommand{\bb}{\mathbf{b}} \newcommand{\bc}{\mathbf{c}} \newcommand{\bd}{\mathbf{d}} \newcommand{\be}{\mathbf{e}} \newcommand{\bff}{\mathbf{f}} \newcommand{\bh}{\mathbf{h}} \newcommand{\bi}{\mathbf{i}} \newcommand{\bj}{\mathbf{j}} \newcommand{\bk}{\mathbf{k}} \newcommand{\bN}{\mathbf{N}} \newcommand{\bn}{\mathbf{n}} \newcommand{\bo}{\mathbf{0}} \newcommand{\bp}{\mathbf{p}} \newcommand{\bq}{\mathbf{q}} \newcommand{\br}{\mathbf{r}} \newcommand{\bs}{\mathbf{s}} \newcommand{\bT}{\mathbf{T}} \newcommand{\bu}{\mathbf{u}} \newcommand{\bv}{\mathbf{v}} \newcommand{\bw}{\mathbf{w}} \newcommand{\bx}{\mathbf{x}} \newcommand{\by}{\mathbf{y}} \newcommand{\bz}{\mathbf{z}} \newcommand{\bzero}{\mathbf{0}} \newcommand{\nv}{\mathbf{0}} \newcommand{\cA}{\mathcal{A}} \newcommand{\cB}{\mathcal{B}} \newcommand{\cC}{\mathcal{C}} \newcommand{\cD}{\mathcal{D}} \newcommand{\cE}{\mathcal{E}} \newcommand{\cF}{\mathcal{F}} \newcommand{\cG}{\mathcal{G}} \newcommand{\cH}{\mathcal{H}} \newcommand{\cI}{\mathcal{I}} \newcommand{\cJ}{\mathcal{J}} \newcommand{\cK}{\mathcal{K}} \newcommand{\cL}{\mathcal{L}} \newcommand{\cM}{\mathcal{M}} \newcommand{\cN}{\mathcal{N}} \newcommand{\cO}{\mathcal{O}} \newcommand{\cP}{\mathcal{P}} \newcommand{\cQ}{\mathcal{Q}} \newcommand{\cR}{\mathcal{R}} \newcommand{\cS}{\mathcal{S}} \newcommand{\cT}{\mathcal{T}} \newcommand{\cU}{\mathcal{U}} \newcommand{\cV}{\mathcal{V}} \newcommand{\cW}{\mathcal{W}} \newcommand{\cX}{\mathcal{X}} \newcommand{\cY}{\mathcal{Y}} \newcommand{\cZ}{\mathcal{Z}} \newcommand{\rA}{\mathrm{A}} \newcommand{\rB}{\mathrm{B}} \newcommand{\rC}{\mathrm{C}} \newcommand{\rD}{\mathrm{D}} \newcommand{\rE}{\mathrm{E}} \newcommand{\rF}{\mathrm{F}} \newcommand{\rG}{\mathrm{G}} \newcommand{\rH}{\mathrm{H}} \newcommand{\rI}{\mathrm{I}} \newcommand{\rJ}{\mathrm{J}} \newcommand{\rK}{\mathrm{K}} \newcommand{\rL}{\mathrm{L}} \newcommand{\rM}{\mathrm{M}} \newcommand{\rN}{\mathrm{N}} \newcommand{\rO}{\mathrm{O}} \newcommand{\rP}{\mathrm{P}} \newcommand{\rQ}{\mathrm{Q}} \newcommand{\rR}{\mathrm{R}} \newcommand{\rS}{\mathrm{S}} \newcommand{\rT}{\mathrm{T}} \newcommand{\rU}{\mathrm{U}} \newcommand{\rV}{\mathrm{V}} \newcommand{\rW}{\mathrm{W}} \newcommand{\rX}{\mathrm{X}} \newcommand{\rY}{\mathrm{Y}} \newcommand{\rZ}{\mathrm{Z}} \newcommand{\pv}{\overline} \newcommand{\iu}{\mathrm{i}} \newcommand{\ju}{\mathrm{j}} \newcommand{\im}{\mathrm{i}} \newcommand{\e}{\mathrm{e}} \newcommand{\real}{\operatorname{Re}} \newcommand{\imag}{\operatorname{Im}} \newcommand{\Arg}{\operatorname{Arg}} \newcommand{\Ln}{\operatorname{Ln}} \DeclareMathOperator*{\res}{res} \newcommand{\re}{\operatorname{Re}} \newcommand{\im}{\operatorname{Im}} \newcommand{\arsinh}{\operatorname{ar\,sinh}} \newcommand{\arcosh}{\operatorname{ar\,cosh}} \newcommand{\artanh}{\operatorname{ar\,tanh}} \newcommand{\sgn}{\operatorname{sgn}} \newcommand{\diag}{\operatorname{diag}} \newcommand{\proj}{\operatorname{proj}} \newcommand{\rref}{\operatorname{rref}} \newcommand{\rank}{\operatorname{rank}} \newcommand{\Span}{\operatorname{span}} \newcommand{\vir}{\operatorname{span}} \renewcommand{\dim}{\operatorname{dim}} \newcommand{\alg}{\operatorname{alg}} \newcommand{\geom}{\operatorname{geom}} \newcommand{\id}{\operatorname{id}} \newcommand{\norm}[1]{\lVert #1 \rVert} \newcommand{\tp}[1]{#1^{\top}} \renewcommand{\d}{\mathrm{d}} \newcommand{\sij}[2]{\bigg/_{\mspace{-15mu}#1}^{\,#2}} \newcommand{\abs}[1]{\lvert#1\rvert} \newcommand{\pysty}[1]{\left[\begin{array}{@{}r@{}}#1\end{array}\right]} \newcommand{\piste}{\cdot} \newcommand{\qedhere}{} \newcommand{\taumatrix}[1]{\left[\!\!#1\!\!\right]} \newenvironment{augmatrix}[1]{\left[\begin{array}{#1}}{\end{array}\right]} \newenvironment{vaugmatrix}[1]{\left|\begin{array}{#1}}{\end{array}\right|} \newcommand{\trans}{\mathrm{T}} \newcommand{\EUR}{\text{\unicode{0x20AC}}} \newcommand{\SI}[3][]{#2\,\mathrm{#3}} \newcommand{\si}[2][]{\mathrm{#2}} \newcommand{\num}[2][]{#2} \newcommand{\ang}[2][]{#2^{\circ}} \newcommand{\meter}{m} \newcommand{\metre}{\meter} \newcommand{\kilo}{k} \newcommand{\kilogram}{kg} \newcommand{\gram}{g} \newcommand{\squared}{^2} \newcommand{\cubed}{^3} \newcommand{\minute}{min} \newcommand{\hour}{h} \newcommand{\second}{s} \newcommand{\degreeCelsius}{^{\circ}C} \newcommand{\per}{/} \newcommand{\centi}{c} \newcommand{\milli}{m} \newcommand{\deci}{d} \newcommand{\percent}{\%} \newcommand{\Var}{\operatorname{Var}} \newcommand{\Cov}{\operatorname{Cov}} \newcommand{\Corr}{\operatorname{Corr}} \newcommand{\Tasd}{\operatorname{Tasd}} \newcommand{\Ber}{\operatorname{Ber}} \newcommand{\Bin}{\operatorname{Bin}} \newcommand{\Geom}{\operatorname{Geom}} \newcommand{\Poi}{\operatorname{Poi}} \newcommand{\Hyperg}{\operatorname{Hyperg}} \newcommand{\Tas}{\operatorname{Tas}} \newcommand{\Exp}{\operatorname{Exp}} \newcommand{\tdist}{\operatorname{t}} \newcommand{\rd}{\mathrm{d}}$

# $${}^*$$Numeerinen ratkaiseminen¶

Jos differentiaaliyhtälöä ei saada ratkaistua analyyttisesti, voidaan yhtälön ratkaisua kuitenkin yrittää arvioida numeerisesti. Tällöin puhutaan differentiaaliyhtälön numeerisesta ratkaisemisesta. Ratkaisukäyrän numeerinen arviointi onnistuu eri menetelmillä, ja seuraavaksi perehdytään yhteen yksinkertaiseen menetelmään.

Tarkastellaan yleistä alkuarvotehtävää

$y'=f(x,y),\qquad y(x_0)=y_0.$

Ratkaisukäyrän $$y=y(x)$$ kulmakerroin pisteessä $$(x_0,y_0)$$ on $$f(x_0,y_0)$$, joten lineaarinen funktio $$T(x) = y_0 + f(x_0, y_0)(x - x_0)$$ approksimoi ratkaisua $$y(x)$$ pisteen $$x_0$$ lähellä. Olkoon $$h>0$$ ja merkitään $$x_1=x_0+h$$, sekä

$y(x_1)\approx y_1 = y_0+f(x_0,y_0)h.$

Päädytään pisteeseen $$(x_1,y_1)$$, joka on likimain käyrällä $$y=y(x)$$, ja siitä voidaan tehdä vastaava siirtymä. Yleisesti pisteessä $$(x_n, y_n)$$ kulmakerroin on likimain $$f(x_n, y_n)$$, jolloin asetetaan

$x_{n+1}=x_n+h,\qquad y_{n+1}=y_n+f(x_n,y_n)h,$

missä $$n = 0, 1, 2, \ldots$$. Pisteiden toivotaan säilyvän riittävän lähellä arvioitavaa ratkaisua. Tätä numeerista alkuarvotehtävän ratkaisutapaa kutsutaan Eulerin menetelmäksi askelpituudella $$h>0$$.

Esimerkki 3.7.1

Arvioi alkuarvotehtävän

$y'=x+\frac{y}{5},\qquad y(0)=-3$

ratkaisua välillä $$[0,3]$$ käyttämällä Eulerin menetelmää askelpituudella $$h=0{,}5$$.

Piilota/näytä ratkaisu

Määritetään Eulerin menetelmän mukaiseen ratkaisuun kuuluvat pisteet.

\begin{split}\begin{aligned} x_0&=0 && y_0=-3\\ x_1&=0{,}5 && y_1=y_0+(x_0+y_0/5)\cdot0{,}5=-3{,}3\\ x_2&=1{,}0 && y_2=y_1+(x_1+y_1/5)\cdot0{,}5=-3{,}38\\ x_3&=1{,}5 && y_3=y_2+(x_2+y_2/5)\cdot0{,}5=-3{,}218\\ x_4&=2{,}0 && y_4=y_3+(x_3+y_3/5)\cdot0{,}5=-2{,}7898\\ x_5&=2{,}5 && y_5=y_4+(x_4+y_4/5)\cdot0{,}5=-2{,}0688\\ x_6&=3{,}0 && y_6=y_5+(x_5+y_5/5)\cdot0{,}5=-1{,}0257 \end{aligned}\end{split}

Kuvassa on ylimpänä tarkka ratkaisu ja alimpana edellä laskettu numeerinen ratkaisu askelpituudella $$h=0{,}5$$. Välissä on askelpituuksilla $$h=0{,}2$$ ja $$h=0{,}05$$ lasketut numeeriset ratkaisut.

Askelpituutta pienentämällä Eulerin menetelmä antaa yleensä tarkempia ratkaisuja. Se on kuitenkin numeerisesti erittäin huono käytännön sovelluksien tarpeisiin, eikä edes toimi jokaisen ongelman ratkaisemiseen. Menetelmää voidaan parantaa esimerkiksi laskemalla kulmakerroin $$f(x,y)$$ useassa pisteessä välillä $$[x_n,x_{n+1}]$$ ja ottamalla ne sopivasti huomioon ennen arvon $$y_{n+1}$$ määrittämistä. Eräs tällaisista menetelmistä on Runge-Kutta-menetelmä, jota käytetään esimerkiksi Matlabin ode45-funktiossa.

Esimerkki 3.7.2

Ratkaistaan :ref:esimerkin

3.7.1 <esim-diffyhtnumeerinen> alkuarvotehtävä numeerisesti Matlabilla.

odefun=@(x,y)x+y/5;
x0 = 0;
xf = 3;
y0 = -3;
[x,y] = ode45(odefun,[x0 xf],y0);
plot(x,y)

Mitä seuraavista voidaan pitää yhden muuttujan ensimmäisen kertaluvun differentiaaliyhtälönä?
Palautusta lähetetään...