Having problem with empty matrix...Can anyone help?
Show older comments
here is the code..
disp('dy/dx=1+xy');
h=0.2;
xfinal=0.6;
y(1)=2;
x(1)=0;
f=@(x,y) 1+x*y;
for i=1:ceil(xfinal/h)
x(i+1)=x(i)+h;
k1=f((x(i)),y(i));
k2=f((x(i)+.5*h),(y(i)+.5*h*k1));
k3=f((x(i)+.5*h),(y(i)+.5*h*k2));
k4=f((x(i)+h),(y(i)+k3*h));
y(i+1)=y(i)+((1/6)*(k1+(2*k2)+(2*k3)+k4)*h);
end
plot(x,y);
xlabel('x');
ylabel('y');
grid on;
idx1=find(x==0.2);
y1=y(idx1)
idx2=find(x==0.4);
y2=y(idx2)
idx3=find((x==0.6))
y3=y(idx3)disp('dy/dx=1+xy');
it returns an empty matrix error for y3...what should i do?
Accepted Answer
More Answers (1)
Walter Roberson
on 20 Nov 2016
2 votes
Do not compare floating point numbers for exact equality. Compare them with a tolerance instead. Two different ways of calculating the same result can give different results with floating point. For example 1 + 1E200 - 1E200 will not give 1
Categories
Find more on Numerical Integration and Differential Equations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!