牛顿迭代法

您所在的位置:网站首页 简单迭代法解线性方程组 牛顿迭代法

牛顿迭代法

2023-03-17 19:20| 来源: 网络整理| 查看: 265

牛顿迭代法又称为牛顿切线法,采用方法求根:先任意设定一个与真实的跟接近的值x0作为第一次近似根,由x0求出f(x0),过(x0,f(x0))点做f(x)的切线,交x轴于x1作为第二次近似根,再由x1求出f(x1),过(x1,f(x1))点做f(x)的切线,交x轴于x2,再求出f(x2),再作切线......如此下去,直到接近真正的根x*为止。下面是解方程,求根代码

例子:

2x^3-4x^2+3x-6=0

解:

f(x)=2x^3-4x^2+3x-6

f(x)=((2x-4)x+3)x-6

f'(x)=6x^2-8x+3=(6x-8)x+3

c语言代码如下:

#include

#include

int main()

{

double x1, x0, f, f1;

x1 = 1.5;

do

{

x0 = x1;

f = ((2 * x0 - 4) * x0 + 3) * x0 - 6;

f1 = (6 * x0 - 8) * x0 + 3;

x1 = x0 - f / f1;

} while (fabs(x1 - x0) >= 1e-5);

printf("根为%5.2f\n", x1);

return 0;

}

python代码:

def sqrt():

x1=1.5

x0=x1

f=2*x0*x0*x0-4*x0*x0+3*x0-6

f1=6*x0*x0-8*x0+3

x1=x0-f/f1

while abs(x1-x0)>=1e-5:

x0=x1

f = 2 * x0 * x0 * x0 - 4 * x0 * x0 + 3 * x0 - 6

f1 = 6 * x0 * x0 - 8 * x0 + 3

x1 = x0 - f / f1

return x1

if __name__=='__main__':

x=sqrt()

print("根为x=%.2f"%x)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3