admin 管理员组

文章数量: 887021

【C语言】用牛顿迭代法求根。方程为ax^3+bx^2+cx+d=0,系数a,b,c,d的值依次为1,2,3,4,由主函数输入。求x在1附近的一个实根。求出根由主函数输出

P216 12.用牛顿迭代法求根。方程为ax^3+bx^2+cx+d=0,系数a,b,c,d的值依次为1,2,3,4,由主函数输入。求x在1附近的一个实根。求出根由主函数输出

 牛顿迭代公式为:

 

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>int main() {float sout(float a, float b, float c, float d);float a, b, c, d;printf("请分别输入a,b,c,d的值:");scanf("%f,%f,%f,%f", &a, &b, &c, &d);printf("x=%f\n", sout(a, b, c, d));return 0;
}
float sout(float a, float b, float c, float d) {float x = 1, x0, f, f1;do {x0 = x;f = ((a * x0 + b) * x0 + c)*x0 + d;f1 = (3 * a * x0 + 2 * b) * x0 + c;x = x0 - f / f1;} while (fabs(x - x0) >= 1e-3);return x;}

运行结果:

 

本文标签: C语言用牛顿迭代法求根方程为ax3bx2cxd0 系数a b c d的值依次为1