2
我有以下表現:如何在Mathematica中將較大的表達式插入子表達式?
A = (-(e + p) pe v +
v ((1 + pe) u^2 + pe v^2) \[Rho])/(-(e + p) pe u +
u (-prho + (1 + pe) u^2 + pe v^2) \[Rho]);
,我想插在上面表達以下子表達式:
H = (e + p)/\[Rho]
我該怎麼辦呢? 我試過使用:
FullSimplify[A, H == (e + p)/\[Rho]]
Eliminate[{A, H = (e + p)/\[Rho]}, {e, p, \[Rho]}]
Eliminate[{A, H = (e + p)/\[Rho]}, {e, p}]
和一些其他解決方案。沒有工作。
我對「=」和「==」之間的區別也有點困惑,但我已經嘗試了兩種情況。
暫時忘記Mathematica,並用真正簡單的術語解釋「將以下子表達式插入上述表達式」的含義。你的意思是「找到每一串字符」(e + p)/ \ [Rho]「並用字符串」H「替換它們(我沒有在那裏看到任何字符串的例子。)現在, 「left = right」的意思是「計算右值並將其存儲在名爲left的框中。 「left == right」意思是計算左邊的值和右邊的值。如果那些完全相同,那麼結果是True,否則它是False。 (這更復雜,但這是一個好的開始) – Bill
謝謝比爾。如果你注意到,(e + p)在整個表達式中出現兩次,並用rho/rho乘以表達式得到兩次出現的(e + p)/ rho。我希望Mathematica認識到這一點,然後用H替換(e + p)/ rho。 我明白(在基本層面上)left = right(右側定義爲變量左側)並且左側==右側(檢查if他們是平等的,1或0)與其他編程。我被卡住的地方是什麼時候在FullSimplify或Eliminate case中使用「=」或「==」。我想從你的解釋中,「=」是正確的,「==」不會。 – john