正弦函数定积分

本文介绍了如何在C++中使用循环计算正弦函数的定积分,包括参数定义、公式实现以及针对非整数区间输入的特殊处理。同时提到可以扩展到余弦和正切函数,并提到了简单的优化建议。
摘要由CSDN通过智能技术生成

语言: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取相反数)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值