用C写一个二分法求多项式方程根的程序
时间: 2023-10-20 08:11:08 浏览: 105
以下是用C语言实现二分法求多项式方程根的程序:
```c
#include <stdio.h>
#include <math.h>
double f(double x) {
// 定义多项式方程,这里以 x^3 + 2x^2 + 10x - 20 为例
return pow(x, 3) + 2 * pow(x, 2) + 10 * x - 20;
}
double bisection(double a, double b, double eps) {
double c;
while ((b - a) > eps) {
c = (a + b) / 2;
if (f(c) == 0.0) {
return c;
} else if (f(a) * f(c) < 0) {
b = c;
} else {
a = c;
}
}
return c;
}
int main() {
double a, b, eps, root;
printf("Enter the interval [a, b]: ");
scanf("%lf %lf", &a, &b);
printf("Enter the error tolerance: ");
scanf("%lf", &eps);
root = bisection(a, b, eps);
printf("The root is %lf\n", root);
return 0;
}
```
该程序首先定义了一个多项式方程 f(x),然后实现了一个 bisection 函数,该函数接受三个参数:区间左端点 a、区间右端点 b 和误差容限 eps。该函数使用二分法迭代计算多项式方程的根,并返回计算出的根。
在主函数中,程序要求用户输入区间 [a, b] 和误差容限 eps,然后调用 bisection 函数计算多项式方程的根,并输出结果。
阅读全文