3

Mathematicaを使って代数式を便利な形に改良して、記号を落としたり、その他の些細なことをしたりしないようにしています。何度も宣誓した後、これは決定論的なプロセスではなく、段階的に実行する必要があり、代数操作パレットが私の友人であることを受け入れるようになりました。しかし、私を悩ませていることがまだ1つあります。時々、数学はこれらの一見無関係な主要なもので表現を吐き出します。たとえば、今私が見ているのは:

0.5*(1.*Log[-1.*a^2 + 1.*bigr^2] - 1.*Log[1.*a^2 - 2.*a*bigr + 1.*bigr^2])

私がむしろ見たいと思うとき:

0.5*(Log[-a^2 + bigr^2] - Log[a^2 - 2.*a*bigr + bigr^2])

上記の式の明らかな2次因数分解のいくつかに適用しようとすると、Factor []が混乱するため、これは単なる見た目の問題ではありません。クリーンな修正はありますか?

4

2 に答える 2

6
your = 0.5*(1.*Log[-1.*a^2 + 1.*bigr^2] - 1.*Log[1.*a^2 - 2.*a*bigr + 1.*bigr^2])
your  /. {1. -> 1, -1. -> -1}

(* -> 0.5 (Log[-a^2 + bigr^2] - Log[a^2 - 2. a bigr + bigr^2]) *)

後のドットは、1その数を不正確な量として扱うようにmathematicaに指示します。だから例えば

1. * 1/2
(* -> .5 *)

しかし

1 * 1/2
(* -> 1/2 *)

正確な結果が必要な場合は、10進数(1.、2.、0.5)ではなく、正確な数量(1、2、1 / 2)を計算に使用してください

于 2012-09-25T15:06:50.197 に答える
2
expr =  0.5*(1.*Log[-1.*a^2 + 1.*bigr^2] - 1.*Log[1.*a^2 - 2.*a*bigr + 1.*bigr^2]);

すべての概数を正確に変換します。

expr // Rationalize
1/2 (Log[-a^2 + bigr^2] - Log[a^2 - 2 a bigr + bigr^2])

選択的に:

expr /. x_ /; x == 1 -> 1
0.5 (Log[-1. a^2 + bigr^2] - 1. Log[a^2 - 2. a bigr + bigr^2])
于 2012-09-26T10:05:48.990 に答える