gpt4 book ai didi

recursion - F#中偏度的递归公式

转载 作者:行者123 更新时间:2023-12-04 06:17:38 26 4
gpt4 key购买 nike

我正在尝试使用 Knuth 的递归公式在 F# 中创建一个偏度函数,基于 Jon Harrop 的 F# 中的方差公式为科学家。

这是我的代码,(带有辅助功能)

let skewness_aux (m, m2, m3, k) x =
let m' = m + (x - m)/k
let m2' = m2 + ((x - m)*(x - m)*(k-1.0))/k
m', m2', m3 + (x-m)*(x-m)*(x-m)*(k-1.0)*(k-2.0)/(k*k)-(3.0*(x-m)*m2)/k, k + 1.0;;

let skewness xs =
let _, m2, m3, n2 = Seq.fold skewness_aux (0.0, 0.0, 0.0, 1.0) xs
(sqrt(n2) * m3)/(sqrt (m2*m2*m2));;

最后是一个小测试——
 skewness [|2.0; 2.0; 3.0|];;

哪个应该返回 1/(sqrt2) 大约 0.707107,而是给我 0.8164965809

任何比我更聪明的人都对为什么它不起作用有任何建议?公式看起来是正确的。我正在使用维基百科页面上关于更高矩函数的算法以及 Pebay 2008 年关于该主题的论文进行交叉检查。

非常感谢您提供的任何帮助。

最佳答案

您的 skewness_aux函数返回 m、m2、m3 和 k+1。因此,您需要使用 sqrt(n2-1),而不是 sqrt(n2)。

关于recursion - F#中偏度的递归公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7025818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com