牛顿迭代法

     牛顿迭代法Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。

牛顿迭代公式

    设r是f(x)=0的根,选取x0作为r的初始近似值,过点(x0,f(x0)) ,做曲线 y=f(x)的切线L,L的方程为y=f(x0)+f(x0)(xx0) ,求出L与x轴交点的横坐标

x1=x0f(x0)f(x0)

    称x1为r的一次近似值。过点(x1,f(x1)) 做曲线 y=f(x)的切线,并求该切线与x轴交点的横坐标

x2=x1f(x1)f(x1)

    称x2为r的二次近似值。重复以上过程,得r的近似值序列,其中,

xn+1=xnf(xn)f(xn)

    称为r的n+1次近似值,上式称为牛顿迭代公式

    用牛顿迭代法解非线性方程,是把非线性方程f(x)=0线性化的一种近似方法。把 f(x)在点 x0的某邻域内展开成泰勒级数

f(x)=f(x0)+f(x0)(xx0)+f(x0)(xx0)22!++f(n)(x0)(xx0)nn!+Rn(x)

     取其线性部分(即泰勒展开的前两项),并令其等于0,即 f(x0)+f(x0)(xx0)=0,以此作为非线性方程 f(x)=0的近似方程,若f(x0)0,则其解为

x1=x0f(x0)f(x0)

     这样,得到牛顿迭代法的一个迭代关系式:

xn+1=xnf(xn)f(xn)

    从下面的图中,我们可以看到牛顿迭代的几何意义,每次迭代,都会更加逼近f(x)=0的解。

     下面用牛顿迭代法在matlib解出方程x2+2xex+e2x=0的根,首先画出函数的图像,猜测根的大致位置。

函数图像如下图所示:

image

近似结果:

image

复制代码
x=-1:0.01:1;
y= x.^2+2*x.*exp(x)+exp(2*x)
plot(x,y);
grid on;
clc;clear;
%syms x;
%diff(x^2+2*x*exp(x)+exp(2*x),x,1)
%clear;
x=0.0
for i=1:100
    x1=x-(x^2+2*x*exp(x)+exp(2*x))/(2*x + 2*exp(2*x) + 2*exp(x) + 2*x*exp(x))
    if(abs(x1-x)>0.0001)
        x=x1;
    else
        break;
    end
end
i
View Code
复制代码

posted on   迈克老狼2012  阅读(2035)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示