2011-05-16 83 views
2

這是一個例子。我想知道是否有一種通用的方法來處理這類問題。總結一個可變的整數:如何獲得係數?

假設我有一個功能(ε ℜ):

f[a_, n_Integer, m_Integer] := Sum[a^i k[i],{i,0,n}]^m 

enter image description here

我需要爲係數a^P的封閉形式。有什麼更好的方法可以繼續?

注1:在這種特殊情況下,人們可以手動去試圖通過Multinomial[ ]代表的總和,但是似乎很難寫下多項條款的參數個數可變,而且,我想MMA的到做到這一點。

注2:當然

Collect[f[a, 3, 4], a] 

會做,但只在一定的mn

注3:此問題與this other one有關。我的應用程序是不同的,但可能應用相同的方法。所以,隨時用一個鏡頭來回答這兩個問題。

注4

您可以將多項定理就像一個函數模型:

f[n_, m_] := 
    Sum[KroneckerDelta[m - Sum[r[i], {i, n}]] 
    (Multinomial @@ [email protected][r, n]) 
    Product[x[i]^r[i], {i, n}], 
    [email protected](Sequence @@ Table[{r[i], 0, m}, {i, 1, n}])]; 

因此,例如

f[2,3]  

是一個二項式

立方體
x[1]^3+ 3 x[1]^2 x[2]+ 3 x[1] x[2]^2+ x[2]^3 
+0

你知道結果多項式的根嗎?如果是這樣,答案是微不足道的。 – abcd 2011-05-16 15:11:57

+0

@Yoda k [i]是我希望稍後使用來自其他近似值的這些係數的關係發現的一般函數。所以,不,根不知道:( – 2011-05-16 15:14:11

+0

'收集[f [a,3,4],a]'什麼都不做,因爲你已經定義了f把'Real'作爲第一個參數,而不是符號 – 2011-05-16 15:25:29

回答

5

a^k的係數可以視爲訂單k的零的衍生物,零點除以k!。在版本8中,有一個函數BellY,該函數允許在單個組件的導數之外構造函數組合點的導數。基本上,f[g[x]]和周圍x==0擴大我們發現Derivative[p][Function[x,f[g[x]]][0]作爲

BellY[ Table[ { Derivative[k][f][g[0]], Derivative[k][g][0]}, {k, 1, p} ] ]/p! 

這也被稱爲廣義貝爾多項式,見wiki

在手邊的情況下:

f[a_, n_Integer, m_Integer] := Sum[a^i k[i], {i, 0, n}]^m 

With[{n = 3, m = 4, p = 7}, 
    BellY[ Table[{FactorialPower[m, s] k[0]^(m - s), 
     If[s <= n, s! k[s], 0]}, {s, 1, p}]]/p!] // Distribute 

(* 
Out[80]= 4 k[1] k[2]^3 + 12 k[1]^2 k[2] k[3] + 12 k[0] k[2]^2 k[3] + 
12 k[0] k[1] k[3]^2 
*) 

With[{n = 3, m = 4, p = 7}, Coefficient[f[a, n, m], a, p]] 

(* 
Out[81]= 4 k[1] k[2]^3 + 12 k[1]^2 k[2] k[3] + 12 k[0] k[2]^2 k[3] + 
12 k[0] k[1] k[3]^2 
*) 

這樣做,這樣比構建整個表達式並提取係數計算上更高效。


編輯這裏列出將用於符號訂單nm工作方法,但需要明確的p價值。在這種情況下使用它時,最好用其Piecewise模擬(例如)模擬替換IfBoole

With[{p = 2}, 
BellY[Table[{FactorialPower[m, s] k[0]^(m - s), 
    Boole[s <= n] s! k[s]}, {s, 1, p}]]/p!] 

(* 1/2 (Boole[1 <= n]^2 FactorialPower[m, 2] k[0]^(-2 + m) 
    k[1]^2 + 2 m Boole[2 <= n] k[0]^(-1 + m) k[2]) *) 
+0

@Sasha:我認爲belisarius想要一個表達式來處理一個未知的'm'和'n',而不是用值代替 – abcd 2011-05-16 18:34:25

+0

@yoda I認識到'm'和'n'不一定是明確的,只有'p'必須是,例如'With [{p = 7}, BellY [Table [{FactorialPower [m,s] k [0] ^(m-s), Boole [s = s] s [k]},{s,1,p}]]/p!]/ FactorialPower [m_,k_Integer]:>產品[m - i,{i,0,k - 1}]' – Sasha 2011-05-16 18:38:00

+0

@Sasha:這真的很整潔。我無法嘗試,因爲我沒有mma8,但我刪除了我的答案,因爲我的聲稱它可能無法完成是不正確的 – abcd 2011-05-16 18:55:51