算法基础系列——牛顿迭代法

本文介绍了牛顿迭代法的基本原理,并通过一个具体的例子展示了如何使用该方法求解二次方程 x^2 + 3x + 1 = 0。通过设置初始值并迭代,直到解的差值小于1e-4,从而找到方程的近似解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法基础系列——牛顿迭代法

1、介绍

牛顿迭代法介绍

2、例题

求解: x 2 + 3 ∗ x + 1 = 0 x^2+3*x+1=0 x2+3x+1=0

使用牛顿迭代法进行近似值的计算,解题思路如下所示
等式写为
x 2 + 3 ∗ x + 1 − C = 0 x^2+3*x+1-C=0 x2+3x+1C=0
得到交点坐标为
( x i , x i 2 + 3 ∗ x i + 1 − C ) (xi,xi^2+3*xi+1-C) (xi,xi2+3xi+1C)
对等式进行求导得到直线斜率为
2 ∗ x i + 3 2*xi+3 2xi+3
代入点斜式直线方程中得
y = ( 2 ∗ x i + 3 ) ∗ x − x i 2 + 1 − C y=(2*xi+3)*x-xi^2+1-C y=(2xi+3)xxi2+1C
令该式子为0,得到解的表达式为
x = ( x i 2 + C − 1 ) / ( 2 ∗ x i 2 + 3 ) x=(xi^2+C-1)/(2*xi^2+3) x=(xi2+C1)/(2xi2+3)
接下来不断迭代该解析解的表达式,给初始值赋值一个比较大的数,当两个解的差值小于1e-4的时候就可以停止迭代,得到方程解。

double C=10,x0=10;
while(true){
    double xi=-(Math.pow(x0,2)+C-1)/(2*Math.pow(x0,2)+3);
    if(Math.abs(x0-xi)<1e-4) break;
    x0=xi;
}
System.out.println(x0);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值