我试图绘制迭代vs error_delta,但它没有显示。 但它没有显示出密谋线。 我们假设将迭代绘制为error_delta在y轴上,其中error_delta = abs(root_delta-x);
% 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 %while loop to iterate
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);
答案 0 :(得分:0)
你遇到的问题是semilogy
works like plot
确实需要数组(每个轴一个)来绘制它们之间的一条线。在你的情况下,最好通过索引它们然后使用semilogy
函数在while循环中创建这些数组,这段代码适用于我(注意:定义it
和{{1}因为数组会在每个循环上改变大小,所以这被认为是不好的做法。如果你有办法知道它们在循环运行之前会有多大,请用zeros
函数初始化它们:
error_delta