在 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
基本上我们必须在割线方法中的每次迭代后更新 x1
和 y1
的值。您只更新 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
我是 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
基本上我们必须在割线方法中的每次迭代后更新 x1
和 y1
的值。您只更新 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