3

Mathematica を複素数で使用する際に問題があります. 私は何か間違ったことをしていますか?

2 つの例:

  1. ComplexExpand[(x + I y)^(1/2)] (x^2 + y^2)^(1/4) Cos[1/2 Arg[x + I y]] + I (x^2 + y^2)^(1/4) Sin[1/2 Arg[x + I y]]

    そして、これまでのところ、より単純な結果を得る方法は見つかりませんでした(存在します!)

  2. ComplexExpand[Sqrt[x^2 + y^2] Cos[Arg[x + I y]] + I Sqrt[x^2 + y^2] Sin[Arg[x + I y]]]
    は、 ComplexExpand の引数ですが、明らかに x + I y である必要があります。

前もって感謝します!

4

1 に答える 1

5

2つ目は、Mathematicaがシンボルを仮定できないため、デフォルトでは「数値」が複雑であることを忘れないでください。

それがあなたが入るときの理由です:

a = Sqrt[x^2 + y^2] Cos[Arg[x + I y]] + I Sqrt[x^2 + y^2] Sin[Arg[x + I y]];
ComplexExpand@a

あなたが得る

Sqrt[x^2 + y^2] Cos[Arg[x + I y]] +  I Sqrt[x^2 + y^2] Sin[Arg[x + I y]]

またはあなたが入力した場合

FullSimplify@a

あなたが得る

E^(I Arg[x + I y]) Sqrt[x^2 + y^2]

MathematicaがXとYがREALSであることを知らないからといって。

しかし、明示的に宣言できるので、Mathematicaはそれらを実数として扱うことができます。

これを試して:

a = Sqrt[x^2 + y^2] Cos[Arg[x + I y]] + I Sqrt[x^2 + y^2] Sin[Arg[x + I y]];
$Assumptions = Element[x, Reals] && Element[y, Reals]
FullSimplify[a]

そして、あなたは得るでしょう

x + I y   

$Assumptionsをリセットする必要があるのは

$Assumptions = True

しかし、一般的に、Mathematicaが複素数を思い通りにレンダリングすることを期待しないでください...

于 2010-12-03T23:36:51.673 に答える