用牛顿迭代法求方程f(x)=x*x*x+x*x-3x-3=0在1.5附近的根的C语言程序
时间: 2024-05-12 21:15:29 浏览: 102
以下是使用牛顿迭代法求解方程的C语言程序:
```c
#include <stdio.h>
#include <math.h>
#define EPSILON 0.0001
double f(double x) {
return x * x * x + x * x - 3 * x - 3;
}
double fprime(double x) {
return 3 * x * x + 2 * x - 3;
}
double newton_raphson(double x) {
double h = f(x) / fprime(x);
while (fabs(h) >= EPSILON) {
h = f(x) / fprime(x);
x = x - h;
}
return x;
}
int main() {
double x0 = 1.5;
double root = newton_raphson(x0);
printf("The root is: %0.4lf\n", root);
return 0;
}
```
程序中的 `f(x)` 和 `fprime(x)` 函数分别表示方程的函数和导数,`newton_raphson()` 函数进行迭代计算,直到满足精度要求。在 `main()` 函数中调用 `newton_raphson()` 函数求解方程在 1.5 附近的根,并输出结果。
注意,牛顿迭代法求解方程的收敛性是需要保证的,否则可能会得到错误的结果。
阅读全文