C++ //习题 6.13 写一个用矩形法求定积分的通用函数,分别求。。。

2023-12-17 11:37:11

C++程序设计 (第三版) 谭浩强 习题6.13

习题 6.13 写一个用矩形法求定积分的通用函数,分别求 ∫ 0 1 s i n ? d x \int_{0}^{1} sin\ dx 01?sin?dx ∫ ? 1 1 c o s ? d x \int_{-1}^{1}cos\ dx ?11?cos?dx ∫ 0 2 e x ? d x \int_{0}^{2}e^x\ dx 02?ex?dx(说明:sin,cos,exp已在系统的数学函数库中,程序开头要用#include<cmath>)。

IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。

?

代码块
方法:使用函数指针,函数的模块化设计
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;

double definiteIntegral(int a, int b, double (*fun)(double)){
	double sum = 0.0;
	double dx = (double)(b - a) / 100000;
	for(double i = a; i < b; i += dx){
		sum += (*fun)(i) * dx;
	}
	return sum;
}

int main(){
	cout<<setiosflags(ios::fixed)<<setprecision(2);
	cout<<"Integral_{0}^{1} sin dx = "<<definiteIntegral(0, 1, sin)<<endl;
	cout<<"Integral_{-1}^{1} cos dx = "<<definiteIntegral(-1, 1, cos)<<endl;
	cout<<"Integral_{0}^{2} exp dx = "<<definiteIntegral(0, 2, exp)<<endl;

	system("pause");
    return 0;
}

文章来源:https://blog.csdn.net/navicheung/article/details/135041849
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。