2

次の表現があります。

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}]

および他の多くのソリューション。どれも機能していません。

「=」と「==」の違いについても少し混乱していますが、両方のケースを試しました。

4

1 に答える 1

0

Rojo からのこの素晴らしい回答は、そのトリックを行います:-

Clear[pe, e, v, u, prho, p, \[Rho], H, A];

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])

ここに画像の説明を入力

doThat[expr_, vars_List] := Expand[Simplify[expr /. Flatten[
      Solve[# == ToString@#, First@Variables@#] & /@ vars]],
   Alternatives @@ ToString /@ vars] /. Thread[ToString /@ vars -> vars];

done = doThat[A, {(e + p)/\[Rho]}];

ans = Simplify[done //. (e + p)/\[Rho] -> H]

上記により、必要な代数式が得られます。

ここに画像の説明を入力

今チェック中:-

H = (e + p)/\[Rho];

FullSimplify[A] == FullSimplify[ans]

真です。

また、さまざまな値でテストします:-

pe = 2; e = 3; v = 4; u = 5; prho = 6; p = 7; \[Rho] = 8;

A

836/985

H = (e + p)/\[Rho]

5/4

Clear[e, p, \[Rho]]

ans

836/985

だから同じ答え。驚くほどうまく機能しているようです。

于 2014-01-22T23:18:57.793 に答える