yn+1=yn+h f(tn,yn)
> dy:=diff(y(t),t)=t*sqrt(y(t)); d 1/2 dy := ---- y(t) = t y(t) dt > y:='y':dy:='dy': > DY:=dy; d 1/2 DY := ---- y(t) = t y(t) dt # Tämä siksi, että DEplot näkyy tallettavan dy-muuttujaan jonkin DE-tietorakenteen -------------------------------------------------------------------------------- > with(DEtools): -------------------------------------------------------------------------------- > sk:=DEplot(dy,[t,y],t=0..2,y=2..5,arrows=THIN): # Maple V.3 -------------------------------------------------------------------------------- > -------------------------------------------------------------------------------- > f:=(t,y)->t*sqrt(y); f := (t,y) -> t sqrt(y) -------------------------------------------------------------------------------- > t[1]:=t[0]+h;y[1]:=y[0]+h*f(t[0],y[0]); t[1] := t[0] + h 1/2 y[1] := y[0] + h t[0] y[0] -------------------------------------------------------------------------------- > h:=0.1;t[0]:=1;y[0]:=2; h := .1 t[0] := 1 y[0] := 2 -------------------------------------------------------------------------------- > for i from 1 to 4 do t[i+1]:=t[i]+h;y[i+1]:=evalf(y[i]+h*f(t[i],y[i])) od; t[2] := 1.2 y[2] := 2.302390913 t[3] := 1.3 y[3] := 2.484474490 t[4] := 1.4 y[4] := 2.689383296 t[5] := 1.5 y[5] := 2.918974046 > for i from 1 to 10 do t[i+1]:=t[i]+h;y[i+1]:=evalf(y[i]+h*f(t[i],y[i])) od: -------------------------------------------------------------------------------- > eupts:=seq([t[i],y[i]],i=0..11); 1/2 eupts := [1, 2], [1.1, 2 + .1 2 ], [1.2, 2.302390913], [1.3, 2.484474490], [1.4, 2.689383296], [1.5, 2.918974046], [1.6, 3.175249125], [1.7, 3.460356785], [1.8, 3.776591367], [1.9, 4.126393540], [2.0, 4.512350541], [2.1, 4.937196421] -------------------------------------------------------------------------------- > eu:=plot([eupts],t=0..2,y=2..5): -------------------------------------------------------------------------------- > with(plots): -------------------------------------------------------------------------------- > display({sk,eu}); -------------------------------------------------------------------------------- > tarkka:=dsolve({DY,y(1)=2},y(t)); 2 1/2 2 tarkka := y(t) = (1/4 t - 1/4 + 2 ) -------------------------------------------------------------------------------- > z:=rhs(tarkka); 2 1/2 2 z := (1/4 t - 1/4 + 2 ) -------------------------------------------------------------------------------- > tarplot:=plot(z,t=1..2,color=magneta,title=`diff(y(t),t)=sqrt(y), ratkaisukayra ja Euler`): -------------------------------------------------------------------------------- > display({sk,eu,tarplot}); -------------------------------------------------------------------------------- >