⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 牛顿迭代解方程g(x)=0.m

📁 拉格朗日插值多项式拟合,牛顿插值多项式,欧拉方程解偏微分方程,使用极限微分求解导数(微分),微分方程组的N=4龙格库塔解法,雅可比爹迭代法解方程AX=B,最小二乘多项式拟合,组合辛普生公式求解积分,用
💻 M
字号:
%牛顿迭代法解方程g(x)=0的解法
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%该方法的优点:是求解非线性方程的单,实,复,重,根
%        缺点:是收敛性严重依赖于初值的选取
%       运用定理:若方f(x)=0;在(a,b)区间上有二级连续导数,且满足条件f(a)*f(b)<0;
%                                                 f(x)'!=0;x属于(a,b)
%                                                 f(x)''在(a,b)上不变号则任取初值x0属于(a,b)               
%                                                 只要满足f(x0)f(x)''>0  由x0作为初始值的牛顿迭代法必收敛于唯一实根                
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%__________________________________________________________________________
%调用方法:先设置好函数和函数的导数即g和dg
%          function y=g(x)
%                   y=x.^2-5;
%          function z=dg(x)
%                   z=2*x;
%再用[x,err,k,y]=newton(‘g’,‘dg’,x0,delta,epsion,max1)进行调用
%_________________________________________________________________________
function  [x,err,k,y]=newton(g,dg,x0,delta,epsion,max1)
%_________________________________________________________________________
%参数的含义:   输入值     g和dg为函数和函数的导数;
%                          x0为初始迭代值
%                          delta和epsion为x的最小范围和y的最小范围
%                          max1最大迭代次数
%               输出值     x为最后的解,err为其出现的绝对误差,k为迭代次数,y为对应x的数值
%________________________________________________________________________
for k=1:max1
    x=x0-feval(g,x0)/feval(dg,x0);
    err=abs(x-x0);
    relerr=2*err/(abs(x)+delta);
    x0=x;
    y=feval(g,x0);
    if (err<delta)|(relerr<delta)|abs(y)<epsion,break,end
end

⌨️ 快捷键说明

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