oracle 如何实现excel的正态分布函数normdist

article/2025/9/18 10:19:50

oracle 如何实现excel的正态分布函数normdist

实现目标

EXCEL中的NORMDIST是指返回指定平均值和标准偏差的正态分布函数。此函数在统计方面应用范围广泛(包括假设检验)。
语法:
NORMDIST(x,mean,standard_dev,cumulative)
X 为需要计算其分布的数值。
Mean 分布的算术平均值。
Standard_dev 分布的标准偏差。
Cumulative 为一逻辑值,指明函数的形式。如果 cumulative 为 TRUE,函数 NORMDIST 返回累积分布函数;如果为 FALSE,返回概率密度函数。

如何在oracle中实现excel的NORMDIST函数?

实现思路分析

1、dbms_random.normal函数是用于生成一组正态分布的随机值。不满足要求;
2、java中可以通过apache-commons-math3.jar包实现正态分布函数计算;
3、oracle是否可通过函数调用Java代码?

java函数调用示例

import org.apache.commons.math3.distribution.NormalDistribution;public class normdist {/*** 计算正态分布值* * <pre>* 方法同excel NORMDIST 函数* </pre>* * @param x*            需要计算其分布的数值* @param mean*            分布的算术平均值* @param standard_dev*            标准偏差* @return 正态分布值*/public static double get(double x, double mean, double standard_dev) {return new NormalDistribution(mean, standard_dev).density(x);}public static void main(String[] args) {for (double d = 0; d < 1.0; d += 0.1) {System.out.println(String.format("%.1f\t %.5f", d, get(d, 0, 4)));}}
}

输出:

0.0	 0.09974
0.1	 0.09970
0.2	 0.09961
0.3	 0.09946
0.4	 0.09924
0.5	 0.09896
0.6	 0.09862
0.7	 0.09822
0.8	 0.09776
0.9	 0.09724
1.0	 0.09667

Oacle调用示例

oracle导入jar包

将jar包放到目录下:D:\dev\java_sources\commons-math3-3.0.jar
打开cmd命令窗口,加载jar包:commons-math3-3.0.jar 到oracle中

loadjava -r -f -o -user user/pwd@orcl commons-math3-3.0.jar

创建正态分布函数

-- 创建外部目录,存储jar包
create or replace directory class_dir  as 'D:\dev\java_sources';
-- 查看目录
select * from dba_directories;-- 创建java sources
create or replace and compile java source named normdist
as
import org.apache.commons.math3.distribution.NormalDistribution;
public class normdist
{/*** 计算正态分布值* * <pre>* 方法同excel NORMDIST 函数* </pre>* * @param x*            需要计算其分布的数值* @param mean*            分布的算术平均值* @param standard_dev*            标准偏差* @return 正态分布值*/public static double get(double x_in, double mean_in, double standard_dev_in) {return new NormalDistribution(mean_in, standard_dev_in).density(x_in);}
};-- 创建正态分布函数
create or replace function fn_normdist(x_in in number, mean_in in number, standard_dev_in number) 
return number 
as language java name 'normdist.get(double,double,double)
return double';-- 正态分布函数调用
select fn_normdist(0, 0, 4) as n0, fn_normdist(1, 0, 4) as n1 
from dual/*
清理代码
drop function fn_normdist;
drop java source normdist;
*/

调用截图:
在这里插入图片描述

参考

https://cloud.tencent.com/developer/ask/149846
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/jjdev/loadjava-tool.html#GUID-AEB08FAD-BE91-45D6-8338-031A70D97C59
https://www.cnblogs.com/mellowsmile/p/4602481.html


http://chatgpt.dhexx.cn/article/8dK1QsNg.shtml

相关文章

java 标准正态分布_Java如何设置标准正态分布函数?

满意答案 lmy1990052 2015.12.22 采纳率:56% 等级:8 已帮助:261人 * 标准正态分布分布函数。 * 入口参数u。 任意实数。 返回标准正态分布概率密度。 先是考虑把正态分布的那张表搞到程序中,通过查表的方式,小数点三位后面多出来的值使用公式来计算 正态分布中一些值得…

mysql 正态分布函数_C++ normal_distribution高斯正态分布函数用法详解

图 1 显示的是正态(或高斯)分布。它是一条连续的贝尔曲线,期望两边的值是相等的,可以理解为期望就是平均值。它是一个概率分布,因此曲线下方的面积是1。正态分布是由两个参数完全定义的:期望和标准差,它们是衡量期望两边的值如何分布的一种方式。 图 1 正态分布 期望和标准…

正态分布函数

1&#xff09;使用MatLab画出正态分布的概率密度函数图像。x[-10:0.01:10];ynormpdf(x,0,1);%正态分布函数。figure;axes1axes(Pos,[0.1 0.1 0.85 0.85]);plot(x,y);set(axes1,YLim,[-0.01 0.43],XLim,[-3 3]); 图1&#xff1a; 2&#xff09;验证概率密度函数在区间(-∞,∞)上…

正态分布的理解

一、概念 概念&#xff1a;正态分布&#xff0c;又称高斯分布。其特征为中间高两边低左右对称。 特性&#xff1a; 1&#xff09;集中性&#xff1a;曲线的最高峰位于正中央&#xff0c;且位置为均数所在的位置。 2&#xff09;对称性&#xff1a;正态分布曲线以均数所在的位置…

正态分布(Normal distribution)

目录 概念 性质 标准正态分布 "3σ"法则 参考资料 概念 若连续性随机变量X的概率密度为 其中 为平均数&#xff0c; 为标准差&#xff0c; 为常数&#xff0c;则称X服从参数为 的正态分布(Normal distribution)或高斯(Gauss)分布&#xff0c;记为. X的分布函…

正态分布(高斯分布)、Q函数、误差函数、互补误差函数

1.正态分布&#xff08;高斯分布&#xff09; 若随机变量 XX 服从一个位置参数为 μμ 、尺度参数为 σσ 的概率分布&#xff0c;且其概率密度函数为 f(x)12π−−√σe−(x−μ)22σ2f(x)12πσe−(x−μ)22σ2 则这个随机变量就称为正态随机变量&#xff0c;正态随机变量服…

向量点乘(内积)和叉乘(外积)

向量是由n个实数组成的一个n行1列&#xff08;n*1&#xff09;或一个1行n列&#xff08;1*n&#xff09;的有序数组。 1、向量点乘&#xff08;内积&#xff09; 向量的点乘&#xff0c;也叫内积&#xff0c;是对两个向量对应位一一相乘之后求和的操作&#xff0c;点乘的结果…

Unity向量点乘和叉乘实例应用

#1.基本概念 两个向量的点乘&#xff08;Dot&#xff09;&#xff0c;就是我们说的数量级 ab|a||b|cosθ 结果是一个标量&#xff0c;如果0&#xff0c;则两个向量夹角等于90度&#xff0c;垂直关系 小于0&#xff0c;则两个向量夹角大于90度 大于0&#xff0c;则两个向量夹角小…

向量点乘与向量叉乘的几何意义

向量点乘&#xff08;内积&#xff09; 向量点乘公式为&#xff1a; a * b |a| * |b| * cosθ 点乘的结果是是标量&#xff0c;点乘也被称为内积&#xff0c;是a向量在b向量上投影的长度与b向量的长度的乘积&#xff0c;反映了两个向量之间的相似度&#xff0c;两向量越相似…

DirectX 向量点乘和叉乘

使用 Length()函数获取向量的长度&#xff1b; 运行一下&#xff1b;还是 不是有效的win32应用程序 错误&#xff1b;下回再整&#xff1b; 然后看一下向量的乘法&#xff1b; 可以调用Add()函数实现两个向量相加&#xff1b; 调用Multiply()实现数乘向量&#xff1b;结果还是…

向量点乘和叉乘的区别

如何看待向量之间的叉乘和点乘 首先明显的区别在于&#xff1a;两个向量点乘的结果是一个标量&#xff0c;而两个向量叉乘的结果则还是一个向量。如下面的例子&#xff1a; 点乘&#xff1a; 向量a (a1, a2, a3), 是一个1行3列的向量。向量b(b1, 是一个3行1列的向量。两者点…

向量点乘\叉乘,矩阵向量乘法

向量 点乘 公式&#xff1a;a b |a| * |b| * cosθ 点乘又叫向量的内积、数量积&#xff0c;是一个向量和它在另一个向量上的投影的长度的乘积&#xff1b;是标量。 点乘反映着两个向量的“相似度”&#xff0c;两个向量越“相似”&#xff0c;它们的点乘越大。 例&#xff…

自己动手证明向量点乘和叉乘的几何意义

目标 对于游戏行业程序员来说&#xff0c;向量“点乘”和“叉乘”是非常熟悉的运算。从代码上看他们运算过程并不复杂&#xff1a;&#xff08;以下代码选自UE4的“Vector.h”&#xff09; 点乘就是各分量逐项相乘&#xff0c;最终得到了一个标量&#xff1a; FORCEINLINE f…

向量点乘、叉乘几何意义、python实现、应用

文章目录 数学表达式几何意义python应用求三角形面积判断点O与直线的关系判断点O与凸多边形关系判断凸多边形 数学表达式 点乘&#xff1a; a ⋅ b a 1 b 1 a 2 b 2 . . . a n b n a \cdot b a_1b_1a_2b_2...a_nb_n a⋅ba1​b1​a2​b2​...an​bn​ a ⋅ b ∣ a ∣ ∣…

[基础]-向量点乘和叉乘

向量的点乘(内积、数量积)和叉乘(外积、向量积) 文章目录 向量的点乘(内积、数量积)和叉乘(外积、向量积)[TOC]0.绪论1.向量点乘&#xff08;内积&#xff09;1.代数角度看2.从几何方面看3.常用公式&#xff1a; 2.向量叉乘(外积)1.代数角度看&#xff1a;2.几何角度看&#xf…

向量点乘相关公式推导及 几何解释

1.向量点乘公式推导和几何解释 01.向量点乘(dot product)是其各个分量乘积的和&#xff0c;公式&#xff1a; 用连加号写&#xff1a; 向量a(a1*e1, a2*e2,a3*e3........an*en)其中e1&#xff0c;e2&#xff0c;e3.......en为正交规范基&#xff08;俩俩正交&#xff0c;每个…

向量点乘相关公式推导

1.向量点乘公式推导和几何解释 一般来说&#xff0c;点乘结果描述了两个向量的“相似”程度&#xff0c;点乘结果越大&#xff0c;两向量越相近。 01.向量点乘(dot product)是其各个分量乘积的和&#xff0c;公式&#xff1a; 用连加号写&#xff1a; 02.几何解释&#xff1a;…

向量点乘和叉乘的应用

一、向量的点乘 1、点乘的计算公式 其中 表示的是向量a的模即长度&#xff0c;为向量a与向量b形成的夹角 2、点乘的矩阵表示 3、应用 (1) 计算两个向量之间的夹角&#xff0c;如下&#xff1a; &#xff0c;得出 为45度 在cocosCreator中&#xff0c; 情况1&am…

向量点乘和叉乘

title: 向量点乘和叉乘 categories: Math tags: MathKnowledge 向量点乘和叉乘 假设存在向量a和向量b:$ a[a_{1},a_{2},a_{3}],b[b_{1},b_{2},b_{3}] $ 点乘 向量a和向量b的点乘公式如下: $ a\bullet ba_{1}b_{1}a_{2}b_{2}a_{3}b_{3} $ 要求是向量a和向量的b的维度要…

向量点乘的图形学意义

向量的点乘是入门图形学的重要基础&#xff0c;本身并不复杂&#xff0c;但因为总与叉乘(图形学前期用不着)放在一起讲&#xff0c;搞得新手都很混乱&#xff0c;本文单独讲解一些点乘的图形学意义&#xff0c;新手先忘掉叉乘吧。 1.向量 向量即空间中的一个点到另一个点。 二维…