在 Matlab 中执行割线法时没有得到结果

not getting a result while performing secant method in Matlab

我是 MATLAB 的新手,正在研究数值计算课程的正割法,但是我没有得到我在论文中解决的结果 sheet。我正在提供我的代码,请告诉我这段代码中缺少什么。

function x = mysecant(f,x0,x1,n)
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
y0 = f(x0);
y1 = f(x1);

for i = 1:n
    x = x1 - (x1 - x0)*y1/(y1-y0); %secant formula.
    y = f(x);
    x0 = x1;
    y0=y1;
    x1=x;
end

end

基本上我们必须在割线方法中的每次迭代后更新 x1y1 的值。您只更新 x1 而不是 y1,请添加 y1 = y。这将解决您的问题。

function x = mysecant(f,x0,x1,n)
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
y0 = f(x0);
y1 = f(x1);

for i = 1:n
    x = x1 - (x1 - x0)*y1/(y1-y0); %secant formula.
    y = f(x);
    x0 = x1;
    y0=y1;
    x1=x;
    y1=y;
end

end