#include <stdio.h> #include <math.h> // 待求极值的函数 double f(double x) { return pow(x, 3) - 2 * pow(x, 2) + 3 * x - 1; } // 求函数在x处的导数 double df(double x, double h) { return (f(x + h) - f(x - h)) / (2 * h); } // 求函数的极值 double find_extremum(double a, double b, double eps) { double x0, x1, x2, h; x1 = a; x2 = b; h = 0.001; do { x0 = x1; x1 = x2; // 使用牛顿迭代法求解极值点 x2 = x1 - df(x1, h) / ((df(x1, h) - df(x0, h)) / (x1 - x0)); } while (fabs(x2 - x1) >= eps); return x2; } int main() { double a, b, eps; // 获取区间和精度 printf("请输入区间[a, b]和精度eps:\n"); scanf("%lf %lf %lf", &a, &b, &eps); // 调用函数求解 double x = find_extremum(a, b, eps); printf("函数的极值点为:%lf\n", x); printf("函数的极值为:%lf\n", f(x)); return 0; }。这段代码输入怎么输入
时间: 2024-01-04 07:04:30 浏览: 67
计算函数极值
这段代码需要输入一个区间和一个精度,区间用a、b表示,精度用eps表示,具体输入格式如下:
请输入区间[a, b]和精度eps:
a b eps
例如,如果你要求解区间[0, 1]内的函数极值,精度为0.0001,那么你需要输入:
请输入区间[a, b]和精度eps:
0 1 0.0001
然后程序会自动计算出在该区间内的极值点和极值。
阅读全文