2011-05-26 26 views
1

檢查數學表達式中的參數是否增加或減少整個表達式(在Python中,最好是SymPy)的最佳方法是什麼?參數和數學表達式的比例

假設:所有參數都是正數(即> 0)。

示例A*B/(A+C):應該找到A與表達式成正比,應該找到C爲反比例。

一個顯而易見的解決辦法是分別分配1所有參數,1和100〜C和應用eval(),但是這是非常粗糙,可能會產生錯誤(例如與(A-B)/C在最好的情況下會給出錯誤信息,而不是錯誤結果)。

回答

1

我不認爲這可以在一般情況下解決。一個簡單的反例是sin(A),它可以是正比例的,也可以是反比例的,具體取決於您評估的A值。

但是,您可以使用自動差異化工具(如PyDX或Theano)來計算各種參數值下函數的導數。

+0

謝謝你的回答。差異化是一個好主意,但是我更喜歡數值方法,因爲它們在計算上花費較少。 – 2011-05-26 19:55:57

+0

對於一次性計算,是的。如果您要在多個參數值下測試單個函數,那麼AD可能同樣有效。 – 2011-05-26 20:23:57

+0

是的,但是:在我的情況下,我只需要測試每個表達式;-)任何建議這樣做的工具,作爲一個班輪? – 2011-05-26 20:37:01