2012-03-05 72 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获得了很好的结果。