基本上是靠定义来求的,而且代码也简明扼要,精度为1/1000;
如下:
- #include"iostream"
- #include"cstdlib"
- #include"cmath"
- #define N 1000
- using namespace std;
- double f(double x)
- {
- return x*x*x;
- }
- double
intergrate(double(*fp)(double), double a, double b) - {
- fp = f;
- int N = (b - a) * N;
- double dx = (double)1/N;
- double s = 0;
- for (int i = 1; i <= N; i++)
- {
- s += f(a + dx)*dx;
- a += dx;
- }
- return s;
- }
- int main()
- {
- cout << "f(x)=x^3" << endl;
- cout << "f(x)在(0,1)的积分:" << intergrate(f, 0, 1);
- system("pause");
- return 0;
- }
想要更改精度的话可以直接修改N的值