why is my plot not showing?

1 view (last 30 days)
Luis Garcia
Luis Garcia on 13 Feb 2018
Commented: Luis Garcia on 13 Feb 2018
Im trying to plot iteration on the x-axis vs error_delta on the y-axis, but nothing shows, they are inside the while loop.
%root for f(x) = cos(x)
paso = 0.5e-10;
N = 100;
x= 1.0; %initial guess.
i = 0;
eps = 1;
root_delta = 4.6;
figure(1);
hold on;
while eps >= paso && i <= N
y = x - (cos(x)/(-sin(x)));
eps = abs(y-x);
x= y;
error_delta = abs(root_delta - x);
i = i+1;
disp(' root iteration');
disp([x',i',error_delta']);
semilogy(i,error_delta);
xlabel('iterations');
ylabel('error Delta');
end
disp(y);
disp(i);

Accepted Answer

Walter Roberson
Walter Roberson on 13 Feb 2018
i = i+1;
error_delta(i) = abs(root_delta - x);
semilogy(1:i,error_delta);
drawnow()
  1 Comment
Luis Garcia
Luis Garcia on 13 Feb 2018
Thank you so much! I gladly appreciate it.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 13 Feb 2018
You need to index x and y. You're just overwriting the same scalar values so there is never an array to plot.
  1 Comment
Luis Garcia
Luis Garcia on 13 Feb 2018
so error_delta = 0; but x is the i(for this plot), and I taught i was index at 0 already.

Sign in to comment.

Categories

Find more on Graphics Performance 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!