好吧,我想你在用这个模块复制这些结果时会遇到麻烦,因为从名字上判断,只处理勒让德多项式(这些是勒让德方程的解,其中mu=0,或者称为0阶解)
我不知道matlab,但是看一下文档,你输入的是计算勒让德函数的结果,达到指定的阶数。在
在python中,您所做的似乎是创建一个由zeroeth一阶和二阶legendre多项式组成的组合
0*l*0+1*l*1+2*l*2
可以在指定点处计算勒让德多项式:l0 = np.polynomial.legendre.Legendre([0,1])
你可以验证一下
^{pr2}$
我希望这是有用的-随时问更多的问题
编辑:def coefficients(order):
for i in range(1, order):
base = np.zeros(order)
base[i] = 1
yield base
def a(n, m):
return 1.0*(2*n+1) / ((n*(n+1))**m)
def g(const_dist, m, order):
legendres = [np.polynomial.legendre.Legendre(n) for n in coefficients(order)]
terms = [a(n+1,m)*legendres[n](const_dist) for n,_ in enumerate(legendres)]
return sum(terms)
>>> g(0.4, 4, 6)
0.073845698737654328
我希望这对你有用,如果我搞砸了什么就告诉我