2012-03-05 70 views
0

我是一名完整的初學者,在編程時遇到了問題,我在爲作業分配實施error function時遇到了問題。我的erf(x)適用於從0到2.0的值爲x,但不適用於更高的值。該表的正確值是here在Octave中實現錯誤函數

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 

請幫幫我,我是唯一的希望!

+0

所以你應該_implement_錯誤函數,而不是隻使用內置的? http://octave.sourceforge.net/octave/function/erf.html – Dave 2012-03-05 21:30:32

+0

是的,我實際上需要做和比較錯誤函數的三個實現,實現的三個不同的方程是[** here **]( http://imageshack.us/photo/my-images/835/enacbepic.png/) 我有問題沒有。 1(在OP中描述)和2號 - (我不知道如何在第二個方程中獲得我需要的雙因數 - 我想我可以使用該部分任務的內置函數) ( T_T) – 2012-03-05 23:14:57

回答

0

可能八度音程在評估大量數字factorial()時遇到問題。我在Python中使用n <= 170獲得了很好的結果。