Euler method: ODE with different initial conditions

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 comentarios

Torsten
Torsten el 21 de En. de 2023
Make the code a function and call the function in a loop for different initial values y(1).
Atom
Atom el 21 de En. de 2023
How to do that? Please suggest...

Iniciar sesión para comentar.

 Respuesta aceptada

Torsten
Torsten el 21 de En. de 2023
Editada: Torsten el 21 de En. de 2023
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

Más respuestas (0)

Etiquetas

Preguntada:

el 21 de En. de 2023

Editada:

el 21 de En. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by