Реализация функции ошибок в Octave - PullRequest
0 голосов
/ 06 марта 2012

Я новичок в программировании, и у меня возникли проблемы с реализацией функции error для домашнего задания. Моя erf(x) отлично работает для значений x от 0 до 2,0, но не работает для более высоких значений, как и должно быть. Таблица правильных значений: здесь .

function y = erf (z) 
    konst = 2/(pi^0.5);
    vsota=0;

    n=0;
    while n <= 500;
        vsota = vsota + ((-1)^n)*(z^(2*n+1))/(factorial(n)*(2*n+1));
        n=n+1;
    end
    y=konst*vsota;
end

Пожалуйста, помогите мне переполниться стеком, вы моя единственная надежда!

1 Ответ

0 голосов
/ 06 марта 2012

Возможно, октава испытывает затруднения при оценке factorial() больших чисел.Я получил хорошие результаты, используя n <= 170 в Python.

...