Java实现Excel中的NORMSDIST函数和NORMSINV函数
由于工作中需要将Excel中的此两种函数转换成java函数,从而计算内部评级的资本占用率和资本占用金额。经过多方查阅资料和整理,总结出如下两个转换方法
标准正态分布累计函数NORMSDIST:
- public static double NormSDist(double z) {
- // this guards against overflow
- if (z > 6)
- return 1;
- if (z < -6)
- return 0;
- double gamma = 0.231641900,
- a1 = 0.319381530,
- a2 = -0.356563782,
- a3 = 1.781477973,
- a4 = -1.821255978,
- a5 = 1.330274429;
- double x = Math.abs(z);
- double t = 1 / (1 + gamma * x);
- double n = 1
- - (1 / (Math.sqrt(2 * Math.PI)) * Math.exp(-z * z / 2))
- * (a1 * t + a2 * Math.pow(t, 2) + a3 * Math.pow(t, 3) + a4
- * Math.pow(t, 4) + a5 * Math.pow(t, 5));
- if (z < 0)
- return 1.0 - n;
- return n;
- }
标准正态分布累计反函数NORMSINV:
- public static double normsinv(double p) {
- double LOW = 0.02425;
- double HIGH = 0.97575;
- double a[] = { -3.969683028665376e+01, 2.209460984245205e+02,
- -2.759285104469687e+02, 1.383577518672690e+02,
- -3.066479806614716e+01, 2.506628277459239e+00 };
- double b[] = { -5.447609879822406e+01, 1.615858368580409e+02,
- -1.556989798598866e+02, 6.680131188771972e+01,
- -1.328068155288572e+01 };
- double c[] = { -7.784894002430293e-03, -3.223964580411365e-01,
- -2.400758277161838e+00, -2.549732539343734e+00,
- 4.374664141464968e+00, 2.938163982698783e+00 };
- double d[] = { 7.784695709041462e-03, 3.224671290700398e-01,
- 2.445134137142996e+00, 3.754408661907416e+00 };
- double q, r;
- if (p < LOW) {
- q = Math.sqrt(-2 * Math.log(p));
- return (((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4])
- * q + c[5])
- / ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
- } else if (p > HIGH) {
- q = Math.sqrt(-2 * Math.log(1 - p));
- return -(((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4])
- * q + c[5])
- / ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
- } else {
- q = p - 0.5;
- r = q * q;
- return (((((a[0] * r + a[1]) * r + a[2]) * r + a[3]) * r + a[4])
- * r + a[5])
- * q
- / (((((b[0] * r + b[1]) * r + b[2]) * r + b[3]) * r + b[4])
- * r + 1);
- }
- }
不足之处,敬请指出
Java实现Excel中的NORMSDIST函数和NORMSINV函数的更多相关文章
- JAVA将Excel中的报表导出为图片格式(一)问题背景
如题所示,先抛出一个问题,如何使用JAVA将Excel中的报表导出为图片格式? 首先说一下这个问题的背景,也就是为什么博主会碰到这个问题 随着微信,易信之流大行其道,企业内部的办公交流.绩效考评甚至考 ...
- Java处理Excel中的日期格式
Java处理Excel中的日期格式 2011-12-23 17:34:03| 分类: java |举报 |字号 订阅 下载LOFTER 我的照片书 | 在Excel中的日期格式,其数值为距离1 ...
- java程序转换excel中科学记数法的数据为date类型
今天出于某些原因从mongodb数据库中导出了一些数据,为了更直观的发送给其他人查阅,便使用mongoVUE的导出为excel功能. 但是导出后出现了一个问题,里边有一列存储时间的,存储的是lon ...
- JAVA将Excel中的报表导出为图片格式(三)换一种实现
上一篇介绍了使用Java的Robot机器人实现截图,然后将剪贴板上的数据流生成PNG图片 但是经过博主的不断测试,在完全依赖远程桌面的没有终端显示器的服务器上 使用截图方式是不可行的,因为一旦使用了远 ...
- Java将Excel中科学计数法解析成数字
需要注意的是一般的科学表达式是1.8E12 1.8E-12 而在Excel中的科学表达式是1.8E+12 1.8E-12 我写的科学计数法的正则表达式是(-?\d+\.?\d*)[Ee]{1}[\+- ...
- java 在Excel中插入图片 POI实现
一.POI简介 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97- ...
- Java 为 Excel 中的行设置交替背景色
在制作Excel表格时,通过将数据表中上下相邻的两行用不同的背景色填充,可以使各行的数据看起来更清楚,避免看错行,同时也能增加Excel表格的美观度.本文将介绍如何在Java程序中为 Excel 奇数 ...
- Java 在Excel中添加分离型饼图、环形图
一.概述 Excel中可支持多种不同类型的图表,本文介绍如何绘制分离型饼图和环形图.其中,分离型饼图的绘制可分为整体分离型(即设置饼图分离程度)和局部分离(即设置点爆炸型值)两种情况.下面将以Java ...
- Java 在Excel中添加水印(单一水印、平铺水印)
在Excel中没有直接添加水印的功能,但依旧可以通过一定方式来实现类似水印效果.本文通过Java程序代码介绍具体实现方法.可添加单一水印效果,即水印是以单个文本字样来呈现:也可添加多个平铺水印效果,即 ...
随机推荐
- ASP.NET Core 之 Identity 入门(一)
前言 在 ASP.NET Core 中,仍然沿用了 ASP.NET里面的 Identity 组件库,负责对用户的身份进行认证,总体来说的话,没有MVC 5 里面那么复杂,因为在MVC 5里面引入了OW ...
- [原]CentOS7.2部署node-mapnik
转载请注明表作者think8848及出处(http://think8848.cnblogs.com) node-mapnik依赖项中要求g++ >= 5, toolchain (>= GL ...
- Node.js:dgram模块实现UDP通信
1.什么是UDP? 这里简单介绍下,UDP,即用户数据报协议,一种面向无连接的传输层协议,提供不可靠的消息传送服务.UDP协议使用端口号为不同的应用保留其各自的数据传输通道,这一点非常重要.与TCP相 ...
- Android Studio —— 重装 HAXM
Android Studio -- 重装 HAXM 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. Android SDK 自带模拟器一直以慢.卡 ...
- Spring中Bean的实例化
Spring中Bean的实例化 在介绍Bean的三种实例化的方式之前,我们首先需要介绍一下什么是Bean,以及Bean的配置方式. 如果 ...
- JavaWeb——Listener
一.基本概念 JavaWeb里面的listener是通过观察者设计模式进行实现的.对于观察者模式,这里不做过多介绍,大概讲一下什么意思. 观察者模式又叫发布订阅模式或者监听器模式.在该模式中有两个角色 ...
- 【干货分享】流程DEMO-借款申请
流程名: 借款申请 业务描述: 当员工个人在工作中需要进行借款时,通过此项流程提交借款申请,审批通过后,财务部进行款项支付. 流程相关文件: 流程包.xml WebService业务服务.xm ...
- Android Studio快捷键
一.android studio 默认快捷键 刚开始接触一款开发软件,想必很想了解它的快捷方式,这会对你的编程起到很好的帮助,提高工作效率,接下来给你介绍下Android Studio一些常用的快 ...
- Android 添加ActionBar Buttons
一.在res/menu文件夹下创建Xml文件 跟标签为menu,设置item <?xml version="1.0" encoding="utf-8"?& ...
- C#事件-使用事件需要的步骤
事件是C#中另一高级概念,使用方法和委托相关.奥运会参加百米的田径运动员听到枪声,比赛立即进行.其中枪声是事件,而运动员比赛就是这个事件发生后的动作.不参加该项比赛的人对枪声没有反应. 从程序员的角度 ...