误差函数的模拟给出错误的图

时间:2018-01-24 12:09:32

标签: debugging plot fortran fortran90

我正在尝试编写一个Fortran程序,该程序将模拟错误函数并为不同的x值提供其值的列表。它确实给出了一个最初正确的列表。但是,当我扩展域时,我看到它收敛到0.885,而它应该收敛到1。

代码如下:

  Program erf_func_calc
    Real:: y,z,h,w
    Integer:: i,a
    h=0.0001
    open(1,file='error_function_calculator.txt',status='unknown')
    write(1,*) 'x','                  ','erf(x)'
    write(1,*) '0','                   ','0.00'
    z=0.0
    Do a=1,40000
      y=a*h
      w=-y*y
      z=z+h*exp(w)
      write(1,*) y,'                ',z,'               ',exp(w)
    End do
    close(1)
  End program erf_func_calc

如果您愿意,我可以为您提供收集汇总列表的快照。

这是我从这些值中获得的图表:

screenshot with the graph

我的程序在哪里出错?

1 个答案:

答案 0 :(得分:2)

您没有计算错误函数:您正在计算错误函数scaled by half the square root of pi。此缩放系数约为0.886

Fortran 2008引入了内在函数erf,如果您想更详细地检查答案。