Differential equation Eulers method plotting vs. Exact solution
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Torsten
am 27 Mai 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.
Antworten (0)
Siehe auch
Kategorien
Mehr zu Discrete Data Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!