Differential equation Eulers method plotting vs. Exact solution

2 views (last 30 days)
I am trying to find the solutions to the differential equation 2*x*y*(1-y) using Euler's method and then comparing with the exact solution. I'm want to plot different sub-intervals (n value) so I can see the comparison. I'm having a hard time figuring out the Euler's solutions though. I feel like I'm very close but I've confused the hell out of myself with so many different variables and trying to think logically.
My eulers function looks like this right now:
function sequence = eulers(f,a,b,y0,n)
h=(b-a)/n; % interval length
x(1)=a;
y(1)=y0;
for K=1:n
x(n+1)=x(n)+h;
y(n+1)=y(n)+h*f(x(n),y(n));
end
sequence = [x(n),y(n)]
end
And I'm calling the eulers/exact solutions as well as plotting it like this:
clear;
S = [5, 10, 30, 200]; % n-values
numx = length(S);
Y = zeros(1,numx);
for T = 1:numx
Y(T) = eulers(@(x,y) 2*x*y*(1-y),0,2,2, S(T));
end
% calculate the exact solution
fdash = @(x,y) 2*x*y*(1-y);
tspan = [0,2];
yzero = 2;
[xexact,yexact] = ode45(fdash,tspan,yzero);
plot(x,y,'g',xexact,yexact, 'k')
title(['Eulers Method vs Exact Solution'])
legend('Approximate','Exact');
Another set of eyes would be greatly appreciated
  10 Comments
Eric
Eric on 26 May 2015
That code would only plot for one n value at a time. I'm trying to plot multiple n values on the same curve.
Torsten
Torsten on 27 May 2015
Then use a nested for-loop.
The outer loop changes n, the inner loop computes the solution for that particular n.
Best wishes
Torsten.

Sign in to comment.

Answers (0)

Categories

Find more on Discrete Data Plots in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!