secant.m
来自「余向阳博士Matlab教程的源代码。 包括:1.非线性方程的解法;2.线性方程」· M 代码 · 共 21 行
M
21 行
function[p1,err,k,y]=secant(f1042,p0,p1,delta,max1)
% f是给定的非线性函数。
% p0,p1为初始值。
% delta为给定误差界。
% max1是迭代次数的上限。
% p1为所求得的方程的近似解。
% err为p1-p0的绝对值。
% k为所需的迭代次数。
% y=f(p1)
p0,p1,feval('f1042',p0),feval('f1042',p1),k=0;
for k=1:max1
p2=p1-feval('f1042',p1)*(p1-p0)/(feval('f1042',p1)-feval('f1042',p0));
err=abs(p2-p1);
p0=p1;
p1=p2;
p1,err,k,y=feval('f1042',p1);
if(err<delta)|(y==0),
break,
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?