2017-02-06 9 views
-1

私は、4変数x、v、eta(e)、beta(b)の式を持っています。私はxとvをさまざまな値に置き換え、得られたすべての項を乗算することによって方程式を作りたいと思います。 Image of Code in sympySYMPYを使用したMLE(Maximum Likelihood Estimation)方程式を解く

SYMPYを使用して、2つの変数(eとb)で得られた方程式を解いて、ログをとってeとbを微分する方法は? 私は 'ln'を取っていますので、乗法項は加法項に単純化され、指数項は消滅します。しかし、それは起こっていません。それはちょうど前にある単語ログを書き込みますが、プロパティLN(MN)= LN(M)+ LN(n)は

、以下のものを使用して展開しないコンソールで出力されます。

Output in console when I run code shown in previous image

+0

コピー貼り付け可能な形式でコードを提供してください。その間に、 'force = True'オプションを指定して' sp.expand_log'を呼び出してみてください。 – Stelios

+0

@Stelios、expand_logのforce = trueより指数項を除外できません。 PFBコード: sympy.solvers sympy.abcインポートX、Y、Z、sympyインポートIndexedBaseからsympyインポート* #からV 、IDX、シンボル、OO インポートsympy SPとして #からsympyインポート機能、差分、式 から.pdeインポートpdsolve インポートnumpy #from mpmath import * #sympy.tensor.array import配列 e、b、a = sp.symbols( 'eb a') 続き..... –

+0

X = sp.IndexedBase( 'X') V = sp.IndexedBase( 'V') I、J = sp.symbols( 'IJ'、CLS = IDX) デフF(X、V、E (x + v)/ e)**(sp.exp((v/e)** b - (x + v)/ e) ** B)) 戻りY ## n = 0でのIの範囲内の(0,6): X = X [i]は.subs(X [i]は、(2,3,4、 (v [i]、(1,2,3,4,5,6)) v = v [i](v [i]、(1,2,3,4,5,6)) o = sp.ln ]、v [i]、e、b)) n + = o pri NT(N) デフM(E、B): M = sp.expand_log(sp.ln(N)) 戻りM プリント(M(E、B)) 式=(sp.diff( N、E)、sp.diff(N、B)) プリント(式) プリント(sp.solve(式)) –

答えて

0

x = symbols('x', positive=True)のように、さまざまな記号を正の値に設定する必要があります。 log(x*y) == log(x) + log(y)log(exp(x)) == xのようなIDは、一般的に真実ではありませんが、変数が正の場合は真です。

関連する問題