MATH 134 -- Intensive Calculus for Science 2

An Euler's Method Example

April 5, 2006

We study the approximate solution of   y ' = x^2+y^2

with initial condition   y (0) = 1 .   First, we load the plotting

packages.  Then we do 10 steps of Euler's method with

Delta*x = .1   to approximate the solution:

>    with(DEtools):

>    with(plots):

>    xl[0]:=0; yl[0]:=1;

xl[0] := 0

yl[0] := 1

>    for i to 10 do xl[i]:=xl[i-1]+.1; yl[i]:= eval(yl[i-1]+(xl[i-1]^2+yl[i-1]^2)*(.1)); end do;

xl[1] := .1

yl[1] := 1.1

xl[2] := .2

yl[2] := 1.222

xl[3] := .3

yl[3] := 1.3753284

xl[4] := .4

yl[4] := 1.573481221

xl[5] := .5

yl[5] := 1.837065536

xl[6] := .6

yl[6] := 2.199546514

xl[7] := .7

yl[7] := 2.719347001

xl[8] := .8

yl[8] := 3.507831812

xl[9] := .9

yl[9] := 4.802320214

xl[10] := 1.0

yl[10] := 7.189548158

>    SField:=DEplot(diff(y(x),x)= x^2 + y(x)^2,[y(x)],x=-.1..1,y=0..10):

>   

>    Pts:=plot([seq([xl[i],yl[i]],i=0..10)],style=point,symbol=circle,color=blue):

>    Lines:=plot([seq([xl[i],yl[i]],i=0..10)],color=black):

>    display(SField,Pts,Lines);

[Maple Plot]

We would get a better approximation with smaller Delta*x .  For instance, with  .01:

>    xl[0]:=0: yl[0]:=1:

>    for i to 100 do xl[i]:=xl[i-1]+.01; yl[i]:= eval(yl[i-1]+(xl[i-1]^2+yl[i-1]^2)*(.01)); end do:

>    Pts:=plot([seq([xl[i],yl[i]],i=0..100)],style=point,symbol=circle,color=blue):

>    Lines:=plot([seq([xl[i],yl[i]],i=0..100)],color=black):

>    display(SField,Pts,Lines);

[Maple Plot]

>