想到求积分,我们第一步想到的可能是通过算出带求函数的不定积分,再将两个区间端点带进去做差。但是对于计算机而言计算一个函数的不定积分往往是很困难的,那么该如何实现呢?
这里我们就要回到定积分的最原始的定义,一切从定义出发就一定能算出来。
这篇我们先看一重的情况,对于二重积分,请参见https://blog.csdn.net/weixin_42612337/article/details/82894270
定积分的定义,不过是 分割、求和、取极限
当然,这里面影响定积分的精度的主要因素就是N的大小,N越大,计算结果越接近真实值, 但同时,N越大,计算时间也就越长。
下面是C语言的代码,我们以求 的定积分为例。
#include <stdio.h>
#include <math.h>
long double function(long double x)
{
long double y;
y = exp(x);
return y;
}
int main(void)
{
unsigned long long N = 100000000;
printf("Please enter the interval.\n"); //让用户输入积分区间
long double a , b;
scanf("%Lf %Lf" , &a , &b); //这里的 a 和 b 分别是积分上下界
long double integration;
for (unsigned long long i = 0 ; i <= N ; i++)
{
integration += function(a + ((b - a) / N) * i) * ((b - a) / N);
}
printf("The integration is %Lf\n" , integration);
return 0;
}
下面是终端运行结果