mullter.m

来自「这是非线性方程(组)的数值解法」· M 代码 · 共 29 行

M
29
字号
function [x,n]=Mullter(f,x1,x2,x3,eps)
if nargin==4
    eps=1e-5;
end
r=(x3-x2)/(x2-x1);
d=1+r;
a=f(x1)*r^2+f(x2)*r*d+f(x3)*r;
b=f(x1)*r^2-f(x2)*d^2+f(x3)*(r+d);
c=f(x3)*d;
r4=-2*c/(b+sign(b)*sqrt(b^2-4*a*c));
x4=x3+r4*(x3-x2);
n=1;
while abs(r4*(x3-x2))>eps
    x1=x2;
    x2=x3;
    x3=x4;
    n=n+1;
    
    r=(x3-x2)/(x2-x1);
    d=1+r;
    a=f(x1)*r^2+f(x2)*r*d+f(x3)*r;
    b=f(x1)*r^2-f(x2)*d^2+f(x3)*(r+d);
    c=f(x3)*d;
    r4=-2*c/(b+sign(b)*sqrt(b^2-4*a*c));
    x4=x3+r4*(x3-x2);
end
x(1,1)=x4;
x(2,1)=conj(x4);
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?