numpy.polynomial.legendre.legint#
- polynomial.legendre.legint(c, m=1, k=[], lbnd=0, scl=1, axis=0)[原始碼]#
積分勒讓德級數。
傳回從 lbnd 沿著 axis 積分 m 次的勒讓德級數係數 c。在每次迭代中,結果級數會乘以 scl,並加上積分常數 k。比例因子用於變數的線性變換。(“買家請注意”:請注意,根據人們正在做的事情,人們可能希望 scl 是人們可能期望的值的倒數;有關更多資訊,請參閱下面的「注意事項」部分。)引數 c 是沿著每個軸從低到高次數的係數陣列,例如,[1,2,3] 代表級數
L_0 + 2*L_1 + 3*L_2
,而 [[1,2],[1,2]] 代表1*L_0(x)*L_0(y) + 1*L_1(x)*L_0(y) + 2*L_0(x)*L_1(y) + 2*L_1(x)*L_1(y)
,如果 axis=0 是x
,而 axis=1 是y
。- 參數:
- carray_like
勒讓德級數係數的陣列。如果 c 是多維的,則不同的軸對應於不同的變數,每個軸的次數由對應的索引給出。
- mint,選用
積分階數,必須為正數。(預設值:1)
- k{[], list, scalar},選用
積分常數。在
lbnd
處的第一個積分值是列表中的第一個值,在lbnd
處的第二個積分值是第二個值,依此類推。如果k == []
(預設值),則所有常數都設定為零。如果m == 1
,則可以給定單個純量而不是列表。- lbndscalar,選用
積分的下限。(預設值:0)
- sclscalar,選用
在每次積分之後,結果會先乘以 scl,然後再加入積分常數。(預設值:1)
- axisint,選用
積分所沿著的軸。(預設值:0)。
- 傳回值:
- Sndarray
積分的勒讓德級數係數陣列。
- 引發:
- ValueError
如果
m < 0
、len(k) > m
、np.ndim(lbnd) != 0
或np.ndim(scl) != 0
。
另請參閱
注意事項
請注意,每次積分的結果都會乘以 scl。為什麼要注意這一點?假設在相對於 x 的積分中進行變數 \(u = ax + b\) 的線性變換。則 \(dx = du/a\),因此您需要將 scl 設定為等於 \(1/a\) - 也許不是人們首先想到的。
另請注意,一般而言,積分 C 級數的結果需要「重新投影」到 C 級數基底集上。因此,通常,此函式的結果是「違反直覺的」,但卻是正確的;請參閱下面的「範例」部分。
範例
>>> from numpy.polynomial import legendre as L >>> c = (1,2,3) >>> L.legint(c) array([ 0.33333333, 0.4 , 0.66666667, 0.6 ]) # may vary >>> L.legint(c, 3) array([ 1.66666667e-02, -1.78571429e-02, 4.76190476e-02, # may vary -1.73472348e-18, 1.90476190e-02, 9.52380952e-03]) >>> L.legint(c, k=3) array([ 3.33333333, 0.4 , 0.66666667, 0.6 ]) # may vary >>> L.legint(c, lbnd=-2) array([ 7.33333333, 0.4 , 0.66666667, 0.6 ]) # may vary >>> L.legint(c, scl=2) array([ 0.66666667, 0.8 , 1.33333333, 1.2 ]) # may vary