2012-11-21 28 views
2

我願意計算一個不完全明確的函數的Frechet/Gateaux導數,我的問題是:什麼是最有效的方法?你會推薦我使用哪種語言?哪種語言可以計算抽象函數的Frechet/Gateaux導數?

準確地說,我的問題是我有一個函數,比如F,它是多維函數對(即從R^n到R^k)乘積之和的歐幾里得範數的平方。 AFAIK,如果我使用Maple或Maxima,他們會要求我明確公式中涉及的函數,但我想保留它們的抽象。然後,我需要計算一個Frechet/Gateaux導數,以保持表達式的簡單。事實上,當我以標準方式進行時,我開始將歐氏範數的平方展開爲平方和,並且有很多索引。我的目標是讓泰勒的積分餘數達到三階,根據我的觀點,這個表達式成爲人類不可行的(公式不止一頁A4)。

所以我寧願使用Frechet/Gateaux衍生物,它可以讓我保持標量產品而不是總和。

由於所涉及的函數與它們的導數有一些相似之處(由於指數的存在),只有少量規則需要知道。所以我認爲我可以自己製作這樣一個單一目的的計算機代數系統。

我開始學習LISP,因爲我讀到它對我的問題是有效的,但現在我有點失落,因爲這種語言是非常不同的,我仍然習慣於從C/Python/Perl ...

下面是另一個問題:你會有一些鏈接到課程或文章有關如何進行符號計算的代數系統(最好在LISP中)?歡迎任何建議。

非常感謝您的回答。

+0

太棒了!它似乎回答了我的大部分問題!我在這裏找到了全文[計算機程序的結構和解釋](http://mitpress.mit.edu/sicp/full-text/book/book.html)。雖然它處理的是Scheme而不是Lisp,但這些原則似乎已被很好地描述。 – nickjackolson

+1

Peter Norvig的「人工智能編程範式」[http://www.norvig.com/paip.html](http://www.norvig.com/paip.html)也有關於符號計算的章節。這本書正在使用Common Lisp。 –

+0

我設法弄到這本書!看起來不錯 !謝謝你們這些精彩的參考! – nickjackolson

回答

0

我的建議是使用Maxima。 Maxima受Lisp啓發,並在Lisp中實現,因此使用Maxima將爲您節省大量時間和麻煩。如果Lisp適合你的問題,Maxima更是如此。

Maxima將允許您在表達式中使用未定義的術語;沒有必要定義所有的術語。

向Maxima郵件列表發送郵件([email protected])以徵求特定建議。請詳細解釋你正在努力完成的事情。