legendre函数matlab,MATLAB的Legendre函数的Python等价物

好吧,我想你在用这个模块复制这些结果时会遇到麻烦,因为从名字上判断,只处理勒让德多项式(这些是勒让德方程的解,其中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

我希望这对你有用,如果我搞砸了什么就告诉我

    原文作者:常晓锁
    原文地址: https://blog.csdn.net/weixin_32557421/article/details/116091472
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞