2017-03-17 166 views
1

我嘗試使用其參數之一的約束來計算函數的限制。不幸的是,我陷入了參數約束。Sympy - 帶參數限制的限制

我用下面的代碼,其中0 <阿爾法< 1應當假定

import sympy 
sympy.init_printing() 
K,L,alpha = sympy.symbols("K L alpha") 
Y = (K**alpha)*(L**(1-alpha)) 
sympy.limit(sympy.assumptions.refine(Y.subs(L,1),sympy.Q.positive(1-alpha) & sympy.Q.positive(alpha)),K,0,"-") 

然而,這是行不通的。有沒有可能像Mathematica一樣處理假設?

最佳謝謝你, 費邊

回答

2

據我所知,在假設模塊所做的假設尚未被SymPy其餘的理解。但是limit可以理解的假設是imposed at the time a symbol is created

K, L = sympy.symbols("K L") 
alpha = sympy.Symbol("alpha", positive=True) 
Y = (K**alpha)*(L**(1-alpha)) 
sympy.limit(Y.subs(L, 1), K, 0, "-") 

的限制,現在的計算結果爲0。

沒有申報符號爲0和1之間的數字的方式,但人們可以能夠通過聲明一個正符號來解決這個問題,比如t,並讓L = t /(1 + t)。

+0

我喜歡你的解決方法,謝謝你的訣竅。正如你所寫的「尚未」,是否有計劃提出可能性來宣佈限制和其他操作的假設? – Fabian

+0

Sympy團隊無法說話(這是一個開源項目)。如果有人願意並能夠重寫微積分子模塊,以便他們使用新的假設......那麼就會發生。但自2013年以來沒有發生過,請參閱http://stackoverflow.com/a/16435975 – FTP

+0

是的,我們希望這樣做。我們只需要人們來實施它。 – asmeurer