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 + -
显示快捷键?