牛顿迭代法以及求平方根的应用

牛顿迭代法以及求平方根的应用

xx∗ 是一元非线性方程的根,函数 f(x)f(x)xx∗ 的某领域内连续可微, xx∗ 是某个迭代的近似根,且 f(xk)0f′(xk)≠0f(xk)f′(xk)在点 xkxk处进行一阶泰勒展开,可得

f(xk)f(xk)+f(xk)(xxk)f(xk)≈f(xk)+f′(xk)(x−xk)

则方程f(x)=0f(x)=0可近似表示为:
f(xk)+f(xk)(xxk)=0f(xk)+f′(xk)(x−xk)=0

这是一个线性方程,可解得
x=xkf(xk)f(xk)x=xk−f(xk)f′(xk)

将其右项作为新的迭代值xK+1xK+1,则可得迭代公式:

xk+1=xkf(xk)f(xk),k=0,1,2...xk+1=xk−f(xk)f′(xk),k=0,1,2...

求平方根的分析

若要求x=cx=c,即求等价方程 f(x)=xc2=0,f(x)=2xf(x)=x−c2=0,f′(x)=2x。由牛顿迭代公式可得:

xk+1=12(xk+cxk),k=0,1,2...xk+1=12(xk+cxk),k=0,1,2...

Java代码用牛顿迭代法求平方根

public static double sqrt(double c){
    if(c<0)
        return Double.NaN;
    double err=1e-15;
    double t=c;
    while(Math.abs(t-c/t)>err*t)
        t=(c/t+t)/2.0;
    return t;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值