@dr_mamaev

Какая формула у функции НОРМСТРАСП?

Необходимо вычленить формулу из функции "НОРМСТРАСП" в виде текста, чтоб можно было воспользоваться ей в калькуляторе степеней и для последующего использования в программном коде на языке программирования Python. Она строит стандартное нормальное интегральное распределение для передаваемого значения.

Попробовал вычленить согласно формуле, описанной на сайте Microsoft, но почему-то значения не совпадают.

Вот преобразованная в текст формула, которая у меня получилась:
spoiler
(1/sqrt(2*pi))*exp(-1*((z*z)/2))


Если вместо z подставить 1.33333, то должно получиться 0.908788234, но почему-то значение получается другое
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
@dr_mamaev Автор вопроса
Потратил несколько часов на поиск информации и получилось реализовать следующий код на Python:
from math import exp
def normsdist2(z):

    # Защита от переполнения
    if (z > 6.0):
        return 1.0
    elif (z < -6.0):
        return 0.0

    b1 = 0.31938153
    b2 = -0.356563782
    b3 = 1.781477937
    b4 = -1.821255978
    b5 = 1.330274429
    p = 0.2316419
    c2 = 0.3989423

    a=abs(z)
    t = 1.0/(1.0+a*p)
    b = c2*exp((-z)*(z/2.0))
    n = ((((b5*t+b4)*t+b3)*t+b2)*t+b1)*t
    n = 1.0-b*n
    if (z < 0.0):
        n = 1.0-n
    return n
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы