目录
矩形积分
1.优点:计算量小;缺点:不够精确
2.公式:
若在嵌入式应用过程中,则自变量为时间t,则公式可写为:
式中Ts为嵌入式系统程序执行间隔Ts。
代码实现:
sum +=f(N)*Ts;
梯形积分
1.与矩形积分计算量、精度均无明显差别
2.公式:
若自变量为时间t,则公式可写为:,Ts为程序采样间隔。
代码:
sum += (f(N)+f(N-1))*Ts/2; f(N)N时刻的采样值,f(N-1)上一时刻的采样值。
辛普森积分
1.优点:更准确;缺点,计算量大,占用CPU资源,适用于对某一性能指标精度要求较高的场合。
2.公式:
其中h=(b-a)/n,n是子区间数目,且为偶数。
n的具象示意:嵌入式系统程序调用时间间隔为T,积分调用时间间隔为T/2,则n=T/(T/2)=2;
实际举例:当n=2时,
3.程序代码:
// function
double f(double x) {
return 1/(1+x*x);
}
// Simpson's rule
double simpson(double a, double b, int n) {
double h = (b-a)/n; // width of each subinterval
double sum = f(a) + f(b); // first and last terms
for (int i = 1; i < n; i += 2) {
sum += 4*f(a+i*h); // odd terms
}
for (int i = 2; i < n-1; i += 2) {
sum += 2*f(a+i*h); // even terms
}
return sum*h/3; // final result
}