如何在 Moodle 中模拟 erf and/or 正态反函数?

How to emulate erf and/or the Normal Inverse function in Moodle?

[这个问题原发于on Math Education SE,但我不确定哪个地方最好。您仍然可以查看它以提高 MathJax 的可读性。]

我刚刚在 Moodle 中发现 "calculated questions",我正在尝试创建一个简单的方法,我会要求学生找出来自标准正态人口的观察结果大于变量的概率{z}.

然后我定义{z}的范围为[-3,3],小数点后2位。

既然 Moodle 没有实现 erf,我一直在尝试使用 Jack D'Aurizio 的回答 here, and otherwise Abramowitz and Stegun's first approximation given here 来模拟它,结果是 $$P(z_i> z)\approx \frac{1-\sqrt{1-e^{-0.619495805z^2}}}2$$ 对于前者,例如(如果您有 MathJax [=46=,将其留在 MathJax 中可以节省您一些时间] 手头)。

我遇到的问题是当 z 小于 2 时 Moodle 拒绝计算这个(我得到输出 NaN) 至于输出值,输出似乎不太依赖于 z,我只得到四种不同的可能输出分别为 0、0.005、0.035 和 0.102。

从 Moodle 复制粘贴的两个示例:

1-(1+sqrt(1-exp(-0.619495805*((40.14-11.7)/4.3)^2)))/2 = 0.035

1-(1+sqrt(1-exp(-0.619495805*((33.18-13)/4.1)^2)))/2 = 0.102

这里的z实际上是通过z=(x-m)/s计算出来的

有谁知道如何解决这个问题并获得正常反函数的实际正确值?

@user1527 在 Math Education SE 上找到了答案:问题来自使用 ^ 的幂。这不是正确的 Moodle 语法,它应该是 pow(number, exponent)。解决这个问题解决了所有问题。

它仍然不能解释为什么 Moodle 在某些情况下确实会计算一些东西,这可能是 Moodle 中的一个错误。