1
表達我有以下表達式:代與sympy
p/l
我從基質中提取。我以後限定P和L具有以下代碼
from sympy.abc import c,G,M,J,l,u,v,w
us = (2*G*M/c**2)
a = (J/(M*c))
p = (u**2 + a**2*cos(v))
l = (u**2 - us*u + a**2)
我想替代表達p/l
並與所有上述的表達式描述它來代替。我試着做下面的事情。如果g是一個sympy.Matrix對象,第一個元素定義爲p/l
,然後
g[0,0].subs([(p,u**2 + a**2*cos(v)),(l,u**2 - us*u + a**2)])
應該做的伎倆,但不是我仍然得到p/l
,表達保持不變。如果我只是在IPython的會話中鍵入p/l
,我得到的輸出
(J**2*cos(v)/(M**2*c**2) + u**2)/(-2*G*M*u/c**2 + J**2/(M**2*c**2) + u**2)
這是我的願望。 (好吧,我寧願首先應用簡化,如:(J**2*cos(v) + M**2*c**2*u**2)/(-2*G*M**3*u + J**2 + M**2*c**2*u**2)
)。
感謝。我只想評論一下,因爲上面列出的表達式是相互依存的,所以我必須確保以正確的順序替換:'us,p,a,l = symbols('us,p,a,l' ); g = g.subs({p:u ** 2 + a ** 2 * cos(v)}); g = g.subs({l:u ** 2-us * u + a ** 2}); g = g.subs({us:2 * G * M/c ** 2}); g = g.subs({a:J /(M * c)}); g =簡化(g)' – imranal