gaijinnewton.m

来自「用改进newton法求解非线性方程的程序」· M 代码 · 共 28 行

M
28
字号
syms f x;
f=input('请输入f(x)=');
df=diff(f);
x0=input('请输入迭代初值x0=');
e1=input('请输入奇异判断e1=');
e2=input('请输入根的误差限e2=');
N=input('请输入迭代次数限N=');
k=1;
while (k<N)
    x=x0;
    if abs(eval(f))<e1
        fprintf('奇异!\nx=%.6f\n迭代次数为:%d\n',x0,k)
        break
    else
        x1=x0-2*eval(f)/eval(df);
        if abs(x1-x0)<e2
            fprintf('x=%.6f\n迭代次数为:%d\n',x1,k)
            break
        else
            x0=x1;
            k=k+1;
        end
    end
end
if k>=N
    fprintf('失败\n')
end

⌨️ 快捷键说明

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