Если вам нужно делать это только изредка, тогда вы можете просто определить функцию, такую как
In[1]:= ComplexToPolar[z_] /; z \[Element] Complexes := Abs[z] Exp[I Arg[z]]
так что
In[2]:= z = (-4)^(1/4);
In[3]:= ComplexToPolar[z]
Out[3]= Sqrt[2] E^((I \[Pi])/4)
In[4]:= ComplexToPolar[z] == z // FullSimplify
Out[4]= True
Для расширения функций (не то чтобы это было частью вашего вопроса) вы используете
In[5]:= ComplexExpand[, TargetFunctions -> {Abs, Arg}]
Наконец, если вы всегда хотите, чтобы комплексные числа записывались в полярной форме, тогда что-то вроде
In[6]:= Unprotect[Complex];
In[7]:= Complex /: MakeBoxes[Complex[a_, b_], StandardForm] :=
With[{abs = Abs[Complex[a, b]], arg = Arg[Complex[a, b]]},
RowBox[{MakeBoxes[abs, StandardForm],
SuperscriptBox["\[ExponentialE]",
RowBox[{"\[ImaginaryI]", MakeBoxes[arg, StandardForm]}]]}]]
сделает преобразование автоматическим
In[8]:= 1 + I
Out[8]= Sqrt[2]*E^(I*(Pi/4))
Обратите внимание, что это будет работать только с явно комплексными числами - то есть с FullForm
из Complex[a,b]
. Он не будет работать на z
, определенном выше, если вы не используете на нем что-то вроде Simpify
.