C/C++计算一重定积分和二重定积分(纯暴力算法实现)
来源:互联网 发布:推理游戏 知乎 编辑:程序博客网 时间:2024/05/29 03:10
最近在复习考研数学,复习到积分这一块的时候手痒了,就手撸了计算定积分的算法程序
//============================================================================// Name : Integration.cpp// Author : xycode// Version :// Copyright : Your copyright notice// Description : caculate integration//============================================================================#include <iostream>#include <iomanip>#include <math.h>#define EPS 1e-7using namespace std;bool isEqual(double a,double b){if(fabs(a-b)<EPS){return true;}return false;}double function(double x){return x*x;}double function_2D(double x,double y){return x*y;}//计算一元函数的定积分/** * a:积分下限 * b:积分上限 * 为了简便起见,保证b>a * f:积分函数 * precision:精度等级,默认为100 */double caculate_integration(double a,double b,double(*f)(double x),int precision=100){double len=b-a;double interval=1.0/precision;unsigned long N=(unsigned long)len/interval;double result=0;for(unsigned long i=0;i<N;++i){result+=f(a+i*interval)*interval;}return result;}//计算二元函数的定积分,原理同上double caculate_integration_2D(double ax,double bx,double ay,double by,double(*f)(double x,double y),int precision=1000){double lenx=bx-ax,leny=by-ay;double interval=1.0/precision;unsigned long Nx=lenx/interval,Ny=leny/interval;double result=0;for(unsigned long i=0;i<Nx;++i){for(unsigned long j=0;j<Ny;++j){result+=f(ax+i*interval,ay+j*interval)*(interval*interval);}}return result;}int main() {cout<<fixed<<setprecision(6);//理论值:791.66666666666666666666666666667cout<<caculate_integration(10.0,15.0,function)<<endl;cout<<caculate_integration(10.0,15.0,function,1000)<<endl;cout<<caculate_integration(10.0,15.0,function,10000)<<endl;cout<<caculate_integration(1.0,10.0,exp,10000)<<endl;//理论值:3,906.25cout<<caculate_integration_2D(10.0,15.0,10.0,15.0,function_2D)<<endl;return 0;}
0 0
- C/C++计算一重定积分和二重定积分(纯暴力算法实现)
- Romberg积分法计算定积分(C语言)
- 用C语言程序实现黎曼和求定积分
- C语言实现定积分求解方法
- c语言实现求定积分
- 数值作业:龙贝格算法计算积分C语言实现
- (C)定积分解决问题
- C语言求定积分
- C语言求定积分
- 计算定积分
- 【C】求函数的定积分
- 定积分算法
- 0042算法笔记——【随机化算法】计算π值和计算定积分
- 0042算法笔记——【随机化算法】计算π值和计算定积分
- 数值作业:变步长梯形求积算法计算积分C语言实现
- 数值积分C语言算法
- C语言实现龙贝格积分
- 计算定积分的值
- Java的优点
- HDU 1789 Doing Homework again
- Pandas数值计算与排序
- 浅谈BitMap
- 大数据的解决方案--------批量读取和延迟修改
- C/C++计算一重定积分和二重定积分(纯暴力算法实现)
- 中国计算机学会CCF推荐国际学术会议和期刊目录
- 谷哥的小弟学后台(36)——MyBatis的原始Dao开发方式
- C#7.0之ref locals and returns (局部变量和引用返回,之前欠大家的,现在补上)
- 测鬼记(上)——入职(三)
- Leaks 内存泄漏检测工具使用
- 大一下
- HDU 1671 Phone List(字典树模板)
- 多线程_同步代码块的方式解决线程安全问题