【0】README
0.1)本文部分文字描述转自或译自 https://en.wikipedia.org/wiki/Simpson%27s_rule和 https://en.wikipedia.org/wiki/Numerical_integration#Methods_for_one-dimensional_integrals;旨在利用java求积分;(定积分和无穷限积分)
0.2)you can also refer to this link for source code: https://github.com/pacosonTang/postgraduate-research/tree/master/integration
0.3)o m g. CSDN编辑器掉链子,无法正常显示source code, 大家凑合着看吧。oh.
【1】求定积分
1)intro:由 wikepedia 上关于 辛普森法的intro 以及 《高等数学第6版上册同济版》p229 关于定积分的近似计算中提到的辛普森法,本文求定积分的方法采用了辛普森近似法;
2)下面引用《高等数学第6版上册同济版》p229 关于辛普森法的描述

3)计算函数定积分的源代码如下:
// compute the numeric integration.
public class Integration {public Integration(){}// apply simpson rule to approximately compute the integration. public double simpsonRule(double upper, double lower, int n, Function df) {double result = 0;double unit = (upper-lower)/n;double factor1 = unit / 3;double[] x = new double[n+1];for (int i = 0; i < x.length; i++) {x[i] = lower + unit*i;}for (int i = 0; i < x.length; i++) {if(i==0 || i==x.length-1) {result += df.fun(x[i]);}else if(i%2 == 0) { // if i is even num.result += 2*df.fun(x[i]);}else { // if i is odd num.  result += 4*df.fun(x[i]);}}                result *= factor1;return result;}// compute the standard normal distribution integration// refer to the integration table in p382 of "probability and statistics" from ZheJiang University.public double stdGaussValue(double realUpper) {Integration integration = new Integration();double upper = 1.0;double lower = 0.0;int n = 200; // splited into 200 subintervals.// double realUpper = 0.03;if(realUpper >= 5.0) {return 1.0;}double result = integration.simpsonRule(upper, lower, n, new Function() {@Overridepublic double fun(double x) {if(x==0) {return 0;}double t =  realUpper-(1-x)/x;return Math.pow(Math.E, -0.5*t*t) / (x*x);         }});result /= Math.pow(2*Math.PI, 0.5);result = new BigDecimal(result).setScale(6, RoundingMode.HALF_UP).doubleValue(); // save 6 decimal places.return result;}
}
public class IntegrationTest { //test case.public static void main(String[] args) {Integration integration = new Integration();double result = integration.stdGaussValue(4.42);System.out.println(result);}public static void main3(String[] args) {Integration integration = new Integration();double upper = 1.0;double lower = 0.0;int n = 50;double realUpper = 0.39;double result = integration.simpsonRule(upper, lower, n, new Function() {@Overridepublic double fun(double x) {if(x==0) {return 0;}double t =  realUpper-(1-x)/x;return Math.pow(Math.E, -0.5*t*t) / (x*x);           }});result /= Math.pow(2*Math.PI, 0.5);result = new BigDecimal(result).setScale(4, RoundingMode.HALF_UP).doubleValue();       System.out.println(result);}public static void main2(String[] args) {Integration integration = new Integration();double upper = 1.0;double lower = 0.0;int n = 10;double result = integration.simpsonRule(upper, lower, n, new Function() {@Overridepublic double fun(double x) {return Math.pow(Math.E, -x*x/2);         }});result /= Math.pow(2*Math.PI, 0.5);System.out.println(result);BigDecimal decimal = new BigDecimal(result).setScale(4, RoundingMode.HALF_UP);result = Double.valueOf(decimal.toString());System.out.println(result);}public static void main1(String[] args) {Integration integration = new Integration();double upper = 1.0;double lower = 0;int n = 10;double result = integration.simpsonRule(upper, lower, n, new Function() {@Overridepublic double fun(double x) {return 4 / (1+Math.pow(x,2.0));            }});System.out.println(result);}
}
Attention)
A1)以上测试用例中涉及到的积分函数来自 《高等数学第6版上册同济版》p230的例2;
A2)定积分表达式为
【2】求无穷限积分(本文以求标准正态分布的无穷下限反常积分为例)
1)求无穷限积分是基于定积分的;如何求定积分,本文在章节【1】中已经讲了;
2)所以标准正态分布的无穷下限反常积分函数可转化为:


3)计算标准正态分布无穷下限积分的测试用例如上所示。
Attention)
A1)上述求标准正态分布无穷下限积分的代码对realUpper 有要求,小于等于5.0;因为当realUpper>5的话,其value=1了;
A2)需要求标准正态分布的下限积分时,强烈建议使用 integration.stdGaussValue() 其精度要高些。

利用java求积分(定积分和无穷限积分)相关推荐

  1. python做积分_利用python求积分的实例

    python的numpy库集成了很多的函数.利用其中的函数可以很方便的解决一些数学问题.本篇介绍如何使用python的numpy来求解积分. 代码如下: # -*- coding: utf-8 -*- ...

  2. python怎么算积分_利用python求积分的实例

    利用python求积分的实例 python的numpy库集成了很多的函数.利用其中的函数可以很方便的解决一些数学问题.本篇介绍如何使用python的numpy来求解积分. 代码如下: # -*- co ...

  3. matlab计算积分负无穷到正无穷,无穷限积分的Matlab实现(转)

    计算无穷限积分(广义积分)的函数,用Matlab实现,发给大家参考. 1.函数quadFromInf用于计算从负无穷大到一个确定值a的积分. 2.函数quadToInf用于计算从一个确定值a到正无穷大 ...

  4. MATLAB中积分命令【计算无穷限积分(广义积分)的函数】

    1.函数quadFromInf用于计算从负无穷大到一个确定值a的积分. 2.函数quadToInf用于计算从一个确定值a到正无穷大的积分. ------------------------------ ...

  5. 求积分方法及积分知识点-----专升本

    求积分 一般(常见)求不定积分方法 一般(常见)定积分方法 带三角函数的求积分 凑微分法,拆开,三角代换,分部积分,整体法, 倒三角变正三角,奇拆偶降 几分之一圆的面积,点火公式 积分例题 积分知识点 ...

  6. Java反梯形图案_梯形法求定积分(一)设计梯形法求积分的类模板,梯形法

    /*设计梯形法求积分的类模板,梯形法求积分的函数被定义为成员函数,可以求任意函数的定积分,用积分类的模板参数T引入被积函数*/ #include #include #include using nam ...

  7. 人工智能数学基础---定积分6:无穷限函数的反常积分计算

    一.引言 在前面几篇文章中介绍了定积分的相关概念.性质和计算方法,具体文档请参考<人工智能数学基础专栏目录>导数.微分与积分部分的介绍.前面介绍的定积分都是基于有限固定区间来介绍的,但在实 ...

  8. 人工智能数学基础---定积分8:无穷限反常积分审敛法

    一.引言 在<人工智能数学基础-定积分6:无穷限函数的反常积分计算>介绍了无穷限函数的反常积分概念.计算方法以及收敛性的判断方法,通过求被积函数的原函数,然后按定义取极限,根据极限的存在与 ...

  9. matlab用辛普森公式求积分_变限积分函数求导以及高阶导数求法的一些总结

    感谢 @聚创考研 的张帆老师,给我上了一堂生动的课.特此总结一下课上求导数的方法(怕自己忘了). 1.变限积分函数求导 变限积分函数求导简单的分为三类: 第一类(或者形如 这种)可以直接得到 ,第二. ...

最新文章

  1. java表或视图不存在_Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在...
  2. MySQL系列:性能优化
  3. 分离Exchange的OWA和Microsoft-Server-Activesync手机访问
  4. 七牛云图片--Java文档
  5. java中位运算传参_java基础之位运算讲解于实战
  6. IOT物联网观察之物联网建设为什么是供给侧改革的重要途径?
  7. 程序员,建立你的商业意识
  8. 动态规划时间复杂度_算法分析与设计之动态规划
  9. java详细教程_java超详细教程适合初学者深入掌握Java知识.ppt
  10. 开箱:阿里技术人在读什么书?
  11. 1小时赚300块,不打代码帮人做个吃鸡网页 [IVX实战第3篇]
  12. linux管道只能运输参数吗,oeasy教您玩转 linux 010212 管道 pipe
  13. OpenCV这么简单为啥不学——1.5、解决putText中文乱码问题
  14. 思科光交MDS9710绑定WWN并激活新的wwn
  15. Win11安装VScode详细教程、配置Anaconda与python环境
  16. 使用weui调用年月日时分
  17. 怎么在线识别图片内容?识别原理是什么
  18. PowerBI-日期和时间函数-YEARFRAC
  19. 科研工具-R-META分析与【文献计量分析、贝叶斯、机器学习等】多技术融合实践
  20. 面试官让我滚,我用了20分钟,狠狠装了一回逼!

热门文章

  1. 思维--找规律--Codeforces Round #645 (Div. 2) c题
  2. 【每日一题】8月11日题目精讲—矩阵消除游戏
  3. [CF/AT]各大网站网赛 体验部部长第一季度工作报告
  4. P4173-残缺的字符串【FFT】
  5. jzoj5699-[GDOI2018day1]涛涛接苹果【树套树】
  6. P1941-飞扬的小鸟【dp】
  7. jzoj4669-[NOIP2016提高A组模拟7.19]弄提纲【LCA,KMP,字符串】
  8. P1768-天路【负环,SPFA,01分数规划,二分答案】
  9. nssl1247-A【dp】
  10. 开关灯(jzoj 3926)