用c语言写以下程序 二分法求函数f(x)=x^2-3x+1的根 二分法求最大值最小值 牛顿切线法求函数f(x)=x^2-3x+1的根。
时间: 2024-09-23 17:13:39 浏览: 66
首先,让我们分别介绍这些算法并提供相应的C语言代码。
### 1. 二分法求函数f(x) = x^2 - 3x + 1 的根
二分法(也叫折半查找)适用于在一个已排序区间内找到一个特定元素。对于寻找方程的零点,我们可以将其转化为找函数值为0的区间。这里是一个简单的二分查找函数的示例:
```c
#include <stdio.h>
// 函数 f(x) 的定义
double func(double x) {
return pow(x, 2) - 3 * x + 1;
}
// 二分查找函数根
double binary_search(double a, double b, double epsilon) {
if (a == b)
return a;
double mid = (a + b) / 2.0;
double f_mid = func(mid);
// 如果mid处的函数值接近于0,则返回mid
if (fabs(f_mid) < epsilon)
return mid;
// 否则,根据f(a)*f(mid)<0或f(b)*f(mid)<0决定下一步查找范围
else if (f_mid * func(a) < 0)
return binary_search(a, mid, epsilon);
else
return binary_search(mid, b, epsilon);
}
int main() {
double left = -10.0; // 右端点设为一个足够小的大数
double right = 10.0; // 左端点设为一个足够大的负数
double epsilon = 1e-6; // 设置精度
double root = binary_search(left, right, epsilon);
printf("Root of the function is approximately: %.6lf\n", root);
return 0;
}
```
阅读全文