Euler method: ODE with different initial conditions
2 次查看(过去 30 天)
显示 更早的评论
I want to solve an ODE by Euler method with different initial conditions.
I have used for y(1)=0.5:0.05:1.5; as the different initial conditions. But it given an error
for y(1)=0.5:0.05:1.5;
↑
Error: Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
How to modify the code so that I can able to run a loop for different values of y(1).
NB: Tried with
for v(1) = [0.05 0.01 0.15 0.2]
end
but got the error.
h=0.5;
x=0:h:4;
y=zeros(size(x));
for y(1)=0.5:0.05:1.5;
n=numel(y);
for i = 1:n-1
dydx= -2*x(i).^3 +12*x(i).^2 -20*x(i)+8.5 ;
y(i+1) = y(i)+dydx*h ;
fprintf('="Y"\n\t %0.01f',y(i));
end
figure;
plot(x,y);
end
2 个评论
Torsten
2023-1-21
Make the code a function and call the function in a loop for different initial values y(1).
采纳的回答
Torsten
2023-1-21
编辑:Torsten
2023-1-21
Y0 = 0.5:0.05:1.5;
hold on
for i = 1:numel(Y0)
y0 = Y0(i);
[x,y] = euler(y0);
plot(x,y)
end
hold off
function [x,y] = euler(y0)
h=0.5;
x=0:h:4;
n = numel(x);
y=zeros(1,n);
y(1) = y0;
for i = 1:n-1
dydx= -2*x(i).^3 +12*x(i).^2 -20*x(i)+8.5 ;
y(i+1) = y(i)+dydx*h ;
end
end
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!