0
点赞
收藏
分享

微信扫一扫

C++ 求指定函数的定积分问题

往复随安_5bb5 2022-03-16 阅读 79

 sinx cosx exp定积分 

#include <iostream>
using namespace std;

float function1(float); //函数f(x)1
float function2(float); //函数f(x)2
float function3(float); //函数f(x)3
float integration(float f(float), float, float); //求定积分方法,参数为,函数fx,区间[a,b]的两个点
int main() {
	
	int result_a = integration(function1, 2 * 3.1415926, 0);
	int result_b = integration(function2, 2 * 3.1415926, 0);
	int result_c = integration(function3, 2, 0);

}

float integration(float f(float), float endPos, float startPos) //求定积分方法,参数为,函数fx,区间[a,b]的两个点
{


	float x;
	float totalArea = 0; //totalArea,所有矩形的总面积
	float n = 1000; //将函数曲线下方划为n个矩形,n值越大,精确值越高
	float width; //单个矩形宽度
	float area = 0; //单个矩形面积
	width = (endPos - startPos) / n; //求单个矩形宽度,既是函数总长度除以矩形数量

	for (float i = 1; i <= n; i++) //计算每个矩形的面积
	{
		x = startPos + width * i; //转入到xy平面, 通过i的递增,得出每个矩形底部x的值,以求矩形高度
		area = f(x) * width; //用x做实参调用函数进一步求出y值,既矩形的高度,再用底乘高得出面积
		totalArea = totalArea + area; //各个矩形面积相加

	}

	printf("the value of function is %f\n", totalArea);
	return totalArea;
	//printf("the value of function is %f", t2);

}

float function1(float x) { //函数f(x)1

	float y;
	y = sin(x);
	return y;
}

float function2(float x) { //函数f(x)2

	float y;
	y = cos(x);
	return y;

}

float function3(float x) { //函数f(x)3
	float y;
	y = exp(x);
	return y;
}
举报

相关推荐

0 条评论