牛顿迭代法 |
您所在的位置:网站首页 › 简单迭代法解线性方程组 › 牛顿迭代法 |
牛顿迭代法又称为牛顿切线法,采用方法求根:先任意设定一个与真实的跟接近的值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 |