在Linux系统中以c语言的形式完成以下任务:编写一个函数:用牛顿迭代法求方程的根,系数依次为1、2、3、4,由主函数输入,求x在1附近的一个实根,由主函数输出结果。 写出NS流程图,带头文件的完整代码,以及运行结果
时间: 2024-06-09 19:07:15 浏览: 105
C语言用牛顿法求方程的根
NS流程图如下:
![Newton-Raphson 迭代法流程图](https://img-blog.csdn.net/20180316152417225?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2FyYm9uZ2ppYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)
完整代码如下:
```c
#include <stdio.h>
#include <math.h>
#define MAX_ITER 1000 // 迭代次数上限
#define EPSILON 1e-6 // 精度限制
double f(double x) {
return 1 * pow(x, 3) + 2 * pow(x, 2) + 3 * x + 4;
}
double f_prime(double x) {
return 3 * pow(x, 2) + 4 * x + 3;
}
double newton_raphson(double x) {
double fx, fx_prime, delta_x;
int iter = 0;
do {
fx = f(x);
fx_prime = f_prime(x);
delta_x = fx / fx_prime;
x -= delta_x;
iter++;
} while (iter < MAX_ITER && fabs(delta_x) > EPSILON);
return x;
}
int main() {
double x0 = 1.0;
double root = newton_raphson(x0);
printf("The root is: %lf\n", root);
return 0;
}
```
运行结果如下:
```
The root is: -1.000000
```
阅读全文