Mathematica, Arg и Упростить - PullRequest
       17

Mathematica, Arg и Упростить

3 голосов
/ 04 декабря 2010

У меня проблемы с использованием Mathematica с комплексными числами. Я что-то не так делаю?

Два примера:

  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) Грех [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!

Заранее спасибо!

1 Ответ

5 голосов
/ 04 декабря 2010

Что касается второго, помните, что 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 = True

Но в общем, не ожидайте, что Mathematica отобразит комплексные числа так, как вы хотите ...

...