克服Legendre多边形的广播错误,scipy eval_legendre

时间:2015-04-23 10:30:54

标签: python numpy scipy

我试图用scipy的特殊函数来评估勒让德多项式P_n(x)

scipy.special.eval_legendre(n, x)

允许您在某些点评估勒让德。然后我想将这些勒让德多项式加在一起,\ Sigma_n P_n(x)。

首先在几个n值处评估P_n(x),让我们说10.定义一个数组

arr = np.arange(10) = array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

您可以在这些值处评估P_n(x)。

然而,我的论点是100乘100矩阵。所以,

eval_legendre(np.arange(10), matrix)

不起作用,因为有广播错误。这很容易克服。

但是,我想取所有这些勒让德多项式的总和

" Sum = P_0(x)+ P_1(x)+ P_2(x)+ ... + P_10(x)"

使用

import numpy as np
np.sum()

这更复杂,因为我在对每个P_n(x)求和。

我怀疑正确的方法就像

for i in arr:
    np.sum(i, matrix)

有更干净/整洁的方法吗?

1 个答案:

答案 0 :(得分:1)

这应该做的工作:

sum( [eval_legendre(x,matrix) for x in range(1,10)] )

每次调用eval_legendre函数都会返回传递给它的矩阵形状的矩阵。所以我们可以使用列表理解来列出这些矩阵,并按照你的建议加以总结。