トピック:
任意の関数の定積分を計算する関数を設計します。
この関数には 3 つのパラメータがあります: 1 つ目は積分対象の関数を指す関数へのポインタ、2 番目と 3 番目のパラメータは定積分の区間です。戻り値は計算された整数値です。定積分は長方形法を使用して計算されます。
コード:
#include <iostream>
using namespace std;
double f1(double);
double f2(double(*f)(double), double, double);
int main()
{
double x1, x2;
cout << "用矩形法计算函数y=x*x-2*x+1的定积分" << endl << endl;
cout << "请输入左边界x1:";
cin >> x1;
cout << "请输入右边界x2:";
cin >> x2;
cout << "定积分为:" << f2(f1, x1, x2) << endl << endl;
system("pause");
return 0;
}
double f1(double x)
{
return x * x - 2 * x + 1;
}
double f2(double(*f)(double), double x1, double x2)
{
double e = (x2 - x1) / 100000; //为了得到更高的精度,100000可改为更大的值
double sum = 0;
for (double i = x1; i <= x2; i = i + e) sum = sum + (*f)(i) * e;
return sum;
}