Differential equation Eulers method plotting vs. Exact solution
6 次查看(过去 30 天)
显示 更早的评论
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 个评论
Torsten
2015-5-27
Then use a nested for-loop.
The outer loop changes n, the inner loop computes the solution for that particular n.
Best wishes
Torsten.
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Discrete Data Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!