23 lines
484 B
JavaScript
23 lines
484 B
JavaScript
|
|
// 标准正态分布误差函数
|
||
|
|
function erf(x) {
|
||
|
|
// 使用近似公式计算误差函数
|
||
|
|
const a1 = 0.254829592;
|
||
|
|
const a2 = -0.284496736;
|
||
|
|
const a3 = 1.421413741;
|
||
|
|
const a4 = -1.453152027;
|
||
|
|
const a5 = 1.061405429;
|
||
|
|
const p = 0.3275911;
|
||
|
|
|
||
|
|
const sign = (x >= 0) ? 1 : -1;
|
||
|
|
x = Math.abs(x);
|
||
|
|
|
||
|
|
const t = 1.0 / (1.0 + p * x);
|
||
|
|
const y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * Math.exp(-x * x);
|
||
|
|
|
||
|
|
return sign * y;
|
||
|
|
}
|
||
|
|
|
||
|
|
module.exports = {
|
||
|
|
erf
|
||
|
|
};
|