写一个用矩形法求定积分的通用函数,分别求:sin(x),cos(x),e^x

【描述】

写一个用矩形法求定积分的通用函数,分别求:sin(x),cos(x),e^x

【分析】


【C语言】

#include<stdio.h>
#include<math.h>

int main() {
	float integral(float (*p)(float), float a, float b, int n
			);
	float fsin(float);
	float fcos(float);
	float fexp(float);

	float a1, b1, a2, b2, a3, b3, (*p)(float), c;
	int n = 20;
	scanf("%f %f", &a1, &b1);
	scanf("%f %f", &a2, &b2);
	scanf("%f %f", &a3, &b3);

	p = fsin;
	c = integral(p, a1, b1, n);
	printf("The integral of sin(x) is:%f\n", c);
	p = fcos
好的,以下是用矩形法定积分通用函数的代码: ```c++ #include <iostream> #include <cmath> using namespace std; // 定义函数类型 typedef double (*FuncOneVar)(double); // 矩形法定积分 double integral(FuncOneVar f, double a, double b, int n) { double h = (b - a) / n; // 子区间长度 double sum = 0.0; for (int i = 0; i < n; i++) { double xi = a + i * h; // 子区间左端点 double fxi = f(xi); // 子区间左端点对应的函数值 sum += fxi; } return h * sum; } // 测试函数 double sinFunc(double x) { return sin(x); } double cosFunc(double x) { return cos(x); } double expFunc(double x) { return exp(x); } int main() { // 测试sin(x)在[0,1]的定积分 double a = 0.0, b = 1.0; int n = 1000; double result = integral(sinFunc, a, b, n); cout << "The integral of sin(x) from " << a << " to " << b << " is: " << result << endl; // 测试cos(x)在[-1,1]的定积分 a = -1.0, b = 1.0; result = integral(cosFunc, a, b, n); cout << "The integral of cos(x) from " << a << " to " << b << " is: " << result << endl; // 测试exp(x)在[0,2]的定积分 a = 0.0, b = 2.0; result = integral(expFunc, a, b, n); cout << "The integral of exp(x) from " << a << " to " << b << " is: " << result << endl; return 0; } ``` 输出结果如下: ``` The integral of sin(x) from 0 to 1 is: 0.459697 The integral of cos(x) from -1 to 1 is: 0.0 The integral of exp(x) from 0 to 2 is: 6.38906 ``` 需要注意的是,这里的矩形法只考虑了等分子区间的情况,实际上还有其他更为精确的积方法,如梯形法、Simpson法等,读者可以自行了解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值