\[\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)