newtonmethod.m

来自「用牛顿迭代的方法」· M 代码 · 共 31 行

M
31
字号
function NewtonMethod(x0,f,epsi,N)
%该函数用牛顿迭代法求解非线性方程
%x0表示迭代初值,此方程是局部收敛,初值选择要恰当
%f表示所求解方程的函数,是字符型
%epsi表示精度指标
%N表示最大迭代次数
%x表示所求近似解
%n表示迭代次数

k=1;%迭代次数初值定义为1
syms x %把x符号型
y=diff(f); %diff(f) 传回f对预设独立变数的一次微分值
while k<=N %迭代次数比最大迭代次数大结束循环
    ff=inline(f);%创建局部函数
    fx0=ff(x0);  %把x0代到ff函数中
    Dfx0=subs(y,{x},{x0});%返回微分值
    x1=x0-fx0/Dfx0;%通过迭代求解x1
    if abs(x1-x0)<epsi %当前后两个数的差小于精度时,输出近似解以及迭代次数
        x1
        n=k
        return
    else
        k=k+1;%迭代次数增加
    end
    x0=x1;%重新给x0赋值
end
'Method failed after N iterations',N
    
    
    
    

⌨️ 快捷键说明

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