【数值分析】非线性方程求根,牛顿法,牛顿下山法,matlab实现

4. 牛顿法

收敛时牛顿法的收敛速度是二阶的,不低于二阶。如果函数有重根,牛顿法一般不是二阶收敛的。
x k + 1 = x k − f ( x k ) f ′ ( x k ) x_{k+1}=x_k- \frac{f(x_k)}{f'(x_k)} xk+1=xk−f′(xk)f(xk)

matlab实现

matlab 复制代码
%% 牛顿迭代例子
f = @(x) x.^2-2;
g = @(x) 2.*x;
x = newton(f,g,2,1e-7,100)

%% 牛顿迭代
function x = newton(f,g,x_0,eps,max_iter)
    x0 = x_0;
    for i = 1:max_iter
        x = x0 - f(x0)/g(x0)
        if abs(x-x0)<eps
            break
        end
        x0 = x;
    end
end

5. 牛顿下山法

实际上是对每次迭代跳跃步长的修正,试着少条一点距离,看是否在下山。

matlab编程实现

matlab 复制代码
%% 牛顿迭代例子
f = @(x) x.^2+sin(10*x)-1;
g = @(x) 2.*x+10*cos(10*x);
[x,i] = newtonD(f,g,30,1e-16,100)


%% 牛顿下山法
function [x,i] = newtonD(f,g,x_0,eps,max_iter)
    x0 = x_0;
    for i = 1:max_iter
        lbd = 1;
        x = x0 - f(x0)/g(x0)*lbd;
        while abs(f(x))>=abs(f(x0))
            lbd = lbd/2;
            x = x0 - f(x0)/g(x0)*lbd;
        end
        if abs(f(x))<eps
            break
        end
        x0 = x;
    end
end
相关推荐
项目申报小狂人2 小时前
算法应用上新!自适应更新策略差分进化算法求解球形多飞行器路径规划问题,附完整MATLAB代码
开发语言·算法·matlab
躺平都躺不明白2 小时前
数学建模-评价类问题-优劣解距离法(TOPSIS)
数学建模·matlab
壹Y.2 天前
MATLAB 绘图速查笔记
笔记·matlab
Evand J3 天前
【MATLAB例程】滑动窗口均值滤波、中值滤波、最小值/最大值滤波对比。附代码下载链接
开发语言·matlab·均值算法
一株月见草哇4 天前
Matlab(4)
人工智能·算法·matlab
2401_823868224 天前
织构表面MATLAB仿真
人工智能·机器学习·matlab·信号处理
霖004 天前
高级项目——基于FPGA的串行FIR滤波器
人工智能·经验分享·matlab·fpga开发·信息与通信·信号处理
小白的高手之路4 天前
三、非线性规划
数学建模·matlab
IT猿手5 天前
2025年最新原创多目标算法:多目标酶作用优化算法(MOEAO)求解MaF1-MaF15及工程应用---盘式制动器设计,提供完整MATLAB代码
算法·数学建模·matlab·多目标优化算法·多目标算法
MATLAB代码顾问5 天前
MATLAB实现遗传算法求解路网路由问题
开发语言·算法·matlab