【发布时间】:2021-11-14 15:07:24
【问题描述】:
我编写了一个代码,它在函数间隔中给了我一个零。这段代码使用了牛顿法和二分法相结合的方法。
这是我的代码,
function p = newtonbisection(f, df, a, b, tol)
p = a;
while abs(f(p)) >= tol
if a <= p && b<= p
p = p - f(p)/df(p);
else
p = (a+b)/2;
end
if f(p)*f(b)<0
a = p;
else
b = p;
end
end
end
我已经测试了这段代码并且工作正常。但是,如果我想在 .txt 文件中创建一个表,其中包含每次迭代的输出 {用于每个迭代(牛顿或二分法)、a、b、p、f(p)} 的方法,我应该添加什么?
我可以在命令窗口中获得所需的数据(使用下面的代码),但我无法使用 Matlab 制作实际表格。
function p = newtonbisection(f, df, a, b, tol)
p = a;
iter = 0;
while abs(f(p)) >= tol
if a <= p && b<= p
p = p - f(p)/df(p);
iter = iter+1;
fprintf("newton\n")
else
p = (a+b)/2;
iter = iter+1;
fprintf("bisection\n")
end
if f(p)*f(b)<0
a = p;
else
b = p;
end
iter
a
b
p
disp(f(p))
end
end
我能得到一些帮助吗?
【问题讨论】: