以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于正态曲线函数的应用(已解决) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83930) |
||||
-- 作者:yyzlxc -- 发布时间:2016/4/19 20:26:00 -- [求助]关于正态曲线函数的应用(已解决) 网上找到一个正态曲线函数,已知标准偏差、均值和分组值,如何应用这个函数,计算正态曲线系数,并将其填充到正态分布表的概率系数列,请各位老师指教,谢谢!! 下面这个函数可以替代Excel中的NORMDIST函数。 \'均值mean,标准差sd的正态曲线函数 Function NormDist(ByVal x As Double, ByVal mean As Double, ByVal sd As Double) As Double Dim res As Double = 0.0 res = 1 / sd / Math.Sqrt(8 * Math.Atan(1)) res = Math.Exp((x - mean) ^ 2 / -2 / sd ^ 2) * res Return res End Function 式中: sd = 标准偏差 mean = 均值 X = 分组值
[此贴子已经被作者于2016/4/19 21:11:01编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2016/4/19 20:32:00 -- 什么怎么用,带入数据就行啊。
全局代码
Public Function NormDist(ByVal x As Double, ByVal mean As Double, ByVal sd As Double) As Double
Dim res As Double = 0.0
res = 1 / sd / Math.Sqrt(8 * Math.Atan(1))
res = Math.Exp((x - mean) ^ 2 / -2 / sd ^ 2) * res
Return res
End Function
调用
Dim d As Double = NormDist(1, 2, 3)
|
||||
-- 作者:yyzlxc -- 发布时间:2016/4/19 20:44:00 -- 谢谢大红袍老师,如果均值变量为“jz”,标准偏差变量为“bzpc”,分组值为dr("分组值"),如何计算正态曲线系数,并将其填充到正态分布表的概率系数列,概念不太清楚,请大红袍老师赐教,谢谢!! |
||||
-- 作者:大红袍 -- 发布时间:2016/4/19 20:56:00 -- 代入值,就算出和返回了啊 |
||||
-- 作者:yyzlxc -- 发布时间:2016/4/19 21:11:00 -- 谢谢大红袍老师,已经解决,代码如下: dr("概率系数") = NormDist(dr("分组值"), pjz, bzpc)
|
||||
-- 作者:playmal -- 发布时间:2021/6/1 12:46:00 -- Public Function NormDist(ByVal x As Double, ByVal mean As Double, ByVal sd As Double) As Double Dim x2 As Double = (x - mean) / sd If X2 = 0 Then Return 0.5 Else Dim oor2pi As Double = 1 / Math.Sqrt(2.0 * Math.PI) Dim t As Double = 1 / (1.0 + 0.2316419 * Math.Abs(x2)) t = t * oor2pi * Math.Exp(-0.5 * x2 * x2) * (0.31938153 + t * (-0.356563782 + t * (1.781477937 + t * (-1.821255978 + t * 1.330274429)))) If (x2>0) Return 1.0 - t Else Return t End If End If End Function
|
||||
-- 作者:playmal -- 发布时间:2021/6/1 12:46:00 -- 经过一上午的测试,证明原函数是错误的。正态分布计算分享给大家。 |