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

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

Два примера:

  • ComplexExpand [(x + я y) ^ (1/2)] дает (x ^ 2 + y ^ 2) ^ (1/4) Cos [1/2 Arg [x + я y]] + я (x ^ 2 + y ^ 2) ^ (1/4) Грех [1/2 Arg [x + я y]]

    и я до сих пор не нашел более простой результат (который существует!)

  • ComplexExpand [Sqrt [x ^ 2 + y ^ 2] Cos [Arg [x + я y]] + я Sqrt [x ^ 2 + y ^ 2] Sin [Arg [x + я y]] ] дает тот же результат аргумента ComplexExpand, в то время как он должен, очевидно, быть x + я y!

Спасибо заранее!

1 ответ

Для второго помните, что 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 будет отображать сложные номера так, как вы хотите их...

licensed under cc by-sa 3.0 with attribution.