为什么我的情节没有显示出来?使用半决赛

时间:2018-02-13 03:53:41

标签: matlab

我试图绘制迭代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);

1 个答案:

答案 0 :(得分:0)

你遇到的问题是semilogy works like plot确实需要数组(每个轴一个)来绘制它们之间的一条线。在你的情况下,最好通过索引它们然后使用semilogy函数在while循环中创建这些数组,这段代码适用于我(注意:定义it和{{1}因为数组会在每个循环上改变大小,所以这被认为是不好的做法。如果你有办法知道它们在循环运行之前会有多大,请用zeros函数初始化它们:

error_delta