我使用此代码创建从1阶到7阶的Legendre多项式。
N = 4000
xvals = np.linspace(-1, 1, N)
def Legendre(x, n):
leg = legendre(n)
P_n = leg(x)
return P_n
for i in range(1, 8):
func = Legendre(xvals, i)
plt.plot(xvals, func, '--', label="n =" + str(i))
它运作良好,但是现在我正在努力从这些函数中派生出东西。 我决定切换到numpy来执行此操作,但是它描述得很差,因此我坚持了这个问题。
代码如下:
for i in range(1, 8):
func = np.polynomial.legendre.Legendre.deriv(i)
print func
更新:感谢@James C。
我使用了他的建议:
le = np.polynomial.legendre.Legendre((1,2,3,4,5,6,7))
for i in range(1,8):
print le.deriv(i)
我得到的是这样的东西:
leg([12. 45. 50. 84. 54. 77.])
leg([206. 312. 805. 378. 693.])
leg([ 690. 4494. 1890. 4851.])
leg([ 9345. 5670. 24255.])
leg([ 5670. 72765.])
leg([72765.])
leg([0.])
不幸的是我不是数学家,但这是正确的结果吗?我需要这些方程式的导数,而现在我还不知道如何将这些数组放入。
答案 0 :(得分:1)
它看起来类似于以下内容:
Python Unbound Method TypeError
您首先需要该类的实例:
le = np.polynomial.legendre.Legendre((1,2,3,4,5))
le.deriv(4)
刚刚测试过:
import numpy as np
for i in range(1, 8):
le = np.polynomial.legendre.Legendre((1,2,3,4,5,6,7,8,9))
print le.deriv(i)