假設我有一個線性遞推*,並且我想要找到它的封閉形式'Binet'表示形式。有沒有在Mathematica中做到這一點的好方法?在Mathematica中查找Binet形式
這似乎是一個非常基本的要求,當然有很多自然的方法可以讓Mathematica爲我做。但到目前爲止,我嘗試過的所有東西都失敗了:它一直在攪動,直到內存使用量過高,操作系統不得不關閉它,或者它警告說它不知道如何簡化簡單表達式或類似內容。如果問題很難解決,我可以理解這一點,但這並不是—因素的特徵方程,找到根源,並解決線性系統。我最近一次嘗試這種方式(並且程序崩潰)是以9度爲例,我不認爲9乘9線性系統應該很難解決。
當然,我不是唯一一個不時需要這樣做的人!什麼是正確的方法來做到這一點?
我失去了我的會議,所以我沒有我試過的確切代碼。一個解決方案使用RSolve創建了一個包含重複和初始點的List。另一個發現並考慮了特徵方程,並且將適當的根用到乘以與C [i]產生的係數相關的多重度的多項式的n次冪。我也試過各種方式解決和減少。
*或者是一個合理的生成函數。實際上,我將從一個List
數字開始,這些數字是由不到一半長度的重複數字描述的,並且FindLinearRecurrence
或FindGeneratingFunction
可以執行不太難的轉換。例如,當我要求它解決一次復發時,它在計算過程中因sin^2(3pi/14)+ cos^2(3pi/14)而窒息,表示精度不夠。你會認爲它可以象徵性地簡化這樣的事情,但不會。
你的意思呢? http://mathworld.wolfram.com/BinetForms.html 如果是這樣,將不會有一個函數來爲你做,但它看起來不像一個程序太糟糕寫。 – Searke
@ Sekke:是的。對於某些列表多項式,任何線性遞歸都有形式爲'a [n_]:= Sum [polynomial [[i]] [n] * base [[i]]^n,{i,1,k}]'和長度爲k的基數。我想找到這些列表。我寫的四個程序都沒有給出答案:程序是正確的,但Mathematica無法解決上述原因導致的方程式。我正在尋找解決Mathemastica侷限性的方法。 – Charles
推動推動我可以從頭開始編寫一個程序來完成此任務,而不是使用Mathematica的符號功能,但在這種情況下,我將不會使用Mathematica - 爲什麼要支付性能成本,如果不能使用任何高級功能? – Charles