📄 newtonmethod.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -