How to include a negative number in initial conditions for Eulers method code?
Mostrar comentarios más antiguos
clear
close all
h=0.1; % step size
x=-1:h:2; % x interval define here
y=zeros(size(x));
y(-1)=8; % intial condition
n=numel(y);
for i = 1:n-1
dydx=((2.*x.*y.^2+4)/(2.*(3-y.*x.^2)))
y(i+1) = y(i)+dydx*h;
end
plot(x,y,'ro');
hold on
f1=exp(x);
plot(x,f1,'b');
grid on;
I'm writing some code for Eulers method and my initial condition is y(-1)=8. However when I run this it comes up with the error message saying array indicies must be positive integers or logical values. Any advice on how i can include my intial condition without these error messages?
3 comentarios
Torsten
el 13 de Dic. de 2023
-1 is not an array index, but a function argument. You got confused by these two things.
Or do you want y(i) to be interpreted as y at x = i instead of y at x(i) ?
Alex
el 13 de Dic. de 2023
y(i) means the value of the function y at x(i).
It does not mean the value of the function y at x = i.
Since
x=-1:h:2; % x interval define here
you thought you could use y(-1) for y (x=-1).
But you must use y(1) for y @ x(1) = -1.
Respuestas (1)
Les Beckham
el 13 de Dic. de 2023
It is always better to post example code as text rather than a screenshot. Nevertheless...
Since the first element of x is -1 and you want to specify the value of y when x is -1, just define the first element of y, y(1), with your initial condition
y(1) = 8;
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!