360 views (last 30 days)

George Papazafeiropoulos
on 23 May 2014

A simple application of Euler method:

Define the function:

function E=euler(f,a,b,ya,M)

h=(b-a)/M;

Y=zeros(1,M+1);

T=a:h:b;

Y(1)=ya;

for j=1:M

Y(j+1)=Y(j)+h*f(T(j));

end

E=[T' Y'];

end

where - f is the function entered as function handle

- a and b are the left and right endpoints

- ya is the initial condition E(a)

- M is the number of steps

- E=[T' Y'] where T is the vector of abscissas and Y is the vector of ordinates

Then run the code:

f=@(x) x^2;

a=0;

b=10;

ya=0;

M=200;

YY=euler(f,a,b,ya,M)

You can adjust your problem according to the above algorithm.

Rachel Lee
on 6 Aug 2020 at 2:03

Rachel Lee
on 6 Aug 2020 at 2:04

%------------------------------------Functions

function [E] = odeEuler(f,a,b,ya,M)

%M is the no of steps taken

h=(b-a)/M;

Y=zeros(1,M+1);

T=a:h:b;

Y(1)=ya; %this value is 4 for this problem

for j=1:M

Y(j+1)=Y(j)+h*f(T(j));

end

E=[T' Y'];

end

%------------------------------------Executable

%goal print out three iterations of this soln

y0 = 4; %initial y value

t = [0 2 4]'; %this is our specific system of t

size = length(t);

fn = @(t)(4/1.3)*(exp(0.8*t) - exp(-0.5*t))+2*exp(-0.5*t);

dfn = @(t) 4*exp(0.8*t) - 0.5 * fn;

h = 2; err = 0; %initial conditions

a = t(1,:);%0

b = t(size,:);%4

[Soln] = odeEuler(fn,a,b,y0,h);

A = t;

B = Soln(:,2);

C = fn(t);

%producing the graph

plot(t,B,t,C);

title('Comparing Linearization Methods')

legend('Eulers Method','Exact Soln: 4/1.3)*(exp(0.8*t) - exp(-0.5*t))+2*exp(-0.5*t)')

%producing a Table with M iterations

Data = [A B C];

VarNames = {'time domain','Eulers Method','Exact Soln'};

T = table(Data(:,1),Data(:,2),Data(:,3),'VariableNames',VarNames)

SkyRazor
on 23 May 2014

hello, could you please post your equation and give us some explanations?

ahmed abdelmageed
on 4 May 2020

function E=euler(f,a,b,ya,M)

h=(b-a)/M;

Y=zeros(1,M+1);

T=a:h:b;

Y(1)=ya;

for j=1:M

Y(j+1)=Y(j)+h*f(T(j));

end

E=[T' Y'];

end

Opportunities for recent engineering grads.

Apply Today
## 1 Comment

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/130653-code-of-euler-s-method#comment_215287

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/130653-code-of-euler-s-method#comment_215287

Sign in to comment.