Asked by John
on 27 Mar 2011

Using the Euler method solve the following differential equation. At x = 0, y = 5.

y' + x/y = 0

Calculate the Numerical solution using step sizes of .5; .1; and .01

From my text book I have coded Euler's method

function [t,y] = eulode(dydt, tspan, y0, h) %eulode: Euler ODE solver % [t,y] = eulode(dydt, tspan, y0, h, p1, p2,...) % ` uses EULER'S method to INTEGRATE an ODE % (uses the slope at the beginning of the stepsize to graph the % function.) %Input: % dydt = name of hte M-file that evaluates the ODE % tspan = [ti,tf] where ti and tf = initial and final values of % independent variables % y0 = initial value of dependent variable % h = step size % p1,p2 = additional parameter used by dydt %Output: % t = vector of independent variable % y = vector of solution for dependent variable

if nargin<4, error('at least 4 input arguments required'), end ti = tspan(1); tf = tspan(2); if ~ (tf>ti), error('upper limit must be greater than lower limit'), end

t = (ti:h:tf)'; n = length(t); %if necessary, add an additional value of t %so that range goes from t=ti to tf

if t(n)<tf t(n+1) = tf; n = n+1; t(n)=tf; end

y = y0*ones(n,1); %preallocate y to improve efficiency

for i = 1:n-1 %implement Euler's Method y(i+1) = y(i) + dydt(t(i),y(i))*(t(i+1)-t(i)); end

plot(t,y)

I have made another m-file to run Eulode, what I am confused with is where do I input my different step sizes and where do I input x=0 and y=5. However since the analytical solution yields:

simplify(dsolve('Dy=-x/y','y(0)=5','x'))

ans =

(-x^2+25)^(1/2)

and when x=0 the value is 5 so I have coded my Euler's Method like the following and the final values are close to 5 so I think it is correct can someone just verify.

dydx=@(x,y) -(x/y); [x1,y1]=eulode(dydx, [0 1],5,.5); [x2,y2]=eulode(dydx,[0 1],5,.1); [x3,y3]=eulode(dydx,[0 1],5,.01); disp([x1,y1]) disp([x2,y2]) disp([x3,y3])

Answer by Walter Roberson
on 27 Mar 2011

Yup, you have provided the values in the correct positions according to the documentation for eulode.

Matt Tearle
on 28 Mar 2011

Opportunities for recent engineering grads.

## 0 Comments