语言:C++
//sin的定积分
float integration_sin(float a, float b, float n){
float sub_interval = (b - a) / n; //记录子区间长度
float result = 0, i;
for(i = 1; i < n; ++i){
//定积分公式
result += sub_interval * sin(a + sub_interval * (i - 0.5));
}
//若n非整数,再加上最后一个区间的值
result += sub_interval * sin( (b + (--i)) / 2);
return result;
}
函数与参数
integration_sin()
参数有:
a
: 上界b
: 下界n
: 划分区间数
此处函数类型与参数类型定义为float
,若要追求更高精度,可用double
变量
定义 sub_interval
: 浮点型 用于记录子区间长度,便于计算
定义 result
: 浮点型 记录定积分结果
循环
for(i = 1; i < n; ++i){
result += sub_interval * sin(a + sub_interval * (i - 0.5));
}
定积分公式的实现(对着题目抄就行)
注意:循环结束标志为i < n
,目的可见:补充
非标准输入处理
result += sub_interval * sin( (b + (--i)) / 2);
- 输入的
n
为整数:
最后加上的部分为最后一个区间,区间长为1 - 输入的
n
非整数:
最后加上的部分为最后一个区间,区间长度小于1
(eg. 输入的n
为:5.89,计算方法为:通过for循环
计算前5个区间,再加上最后一个长度为0.89的区间)
补充
- 余弦、正切函数同理
- 该代码语言为C++,可自行修改为目标语言
- 该代码较为基础简单,若有更高要求可自行修改(例如:若
n
输入为负数,可对n
取相反数)