2013-03-11 76 views
-1

下面的函数peval2给出了收敛于1的饱和曲线,这是正确的,例如,在枫树。然而,Python计算错误的总和值。任何人都可以给我一个提示,我做错了什么?为什么这个总和不会收敛在Python中

from numpy import * 
from scipy.optimize import leastsq 
import matplotlib.pyplot as plt 

def peval2(x, p): 
    b,c = p 
    err = 0 * x 
    for ii in range(0,30): 
     for jj in range(0,30): 
      for kk in range(0,30): 
       err += exp(-1.0*x*pi**2.0*(b*(((2.0*ii+1.0)/75.0)**2+((2.0*jj+1)/75.0))**2+c*((2.0*kk+1)/2.0)**2.0))/((2.0*ii+1)*(2.0*jj+1)*(2.0*kk+1))**2.0 
    print err 
    return 1.0-((8.0/pi**2)**3*err) 

rr = linspace(0,4000,100) 

plt.plot(rr,peval2(rr,[5e-7,2e-7])) 

plt.show() 
+0

这里有一个想法:为运营商的优先规则可能不会在Python和枫树一样。 – duffymo 2013-03-11 22:31:09

+0

舍入错误,也许? – Cairnarvon 2013-03-11 22:31:38

+1

我们应该如何知道您是否编写了正确的代码?告诉我们它应该做什么,或者更好,向我们展示正确的Maple代码。 – 2013-03-11 22:31:54

回答

2

您是否使用与Maple代码相同的参数?我改变了参数为:

plt.plot(rr,peval2(rr,[0.001, 0.002])) 

结果:

enter image description here