Wolfram mathematica Mathematica:以极坐标形式显示复数
我想以三角形式显示复数。例如:Wolfram mathematica Mathematica:以极坐标形式显示复数,wolfram-mathematica,complex-numbers,Wolfram Mathematica,Complex Numbers,我想以三角形式显示复数。例如: z = (-4)^(1/4); 我不确定这是什么命令,写这样的话很愚蠢: 我想,这个命令是ExpToTrig,但解决方案不可能仅仅是1+I(或者它可以,我误用了它?)。如何以三角形式显示复数 编辑: 命令是ExpToTrig,它只是没有给出所有的解决方案(或者我没有找到解决方案的方法)。最终解决了我编写纯函数的问题NrootZpolar[n][z]: NrootZpolar := Function[x, Function[y, ( A
z = (-4)^(1/4);
我不确定这是什么命令,写这样的话很愚蠢:
我想,这个命令是ExpToTrig
,但解决方案不可能仅仅是1+I
(或者它可以,我误用了它?)。如何以三角形式显示复数
编辑:
命令是ExpToTrig
,它只是没有给出所有的解决方案(或者我没有找到解决方案的方法)。最终解决了我编写纯函数的问题NrootZpolar[n][z]
:
NrootZpolar :=
Function[x,
Function[y,
( Abs[y] ^ (1/x) *
( Cos[((Arg[y] + 360° * Range[0, x - 1]) / x)] +
I*Sin[((Arg[y] + 360° * Range[0, x - 1]) / x)]))
]
]
和使用:
In[689]:= FullSimplify[NrootZpolar1[4][-4]]
Out[689]= {1 + I, -1 + I, -1 - I, 1 - I}
要可视化:
ComplexListPlot[list_] := ListPlot[Transpose[{Re[list], Im[list]}], AxesLabel -> {Re, Im}, PlotLabel -> list, PlotMarkers -> Automatic]
Manipulate[ComplexListPlot[FullSimplify[NrootZpolar1[n][z]]], {z, -10, 10}, {n, 1, 20}]
可以用极坐标形式r(cosθ+i sinθ)表示复数z,其中r=Abs[z]和θ=Arg[z]。因此,您只需要使用Abs[]和Arg[]这两个Mathematica命令。如果您只需要偶尔执行,那么您可以定义如下函数
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[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))
请注意,这只适用于显式复数——即具有复数[a,b]
的完整形式的数字。除非在上面定义的z
上使用类似于Simpify
的东西,否则它将失败。从数学上讲,(-1)^(1/4)是对符号的滥用。没有这样的数字
你用那个讨厌的(:)表达的是一个等式的根:
z^4 == 1
在Mathematica中(通常在数学中)使用弧度比使用度更方便。以弧度表示,例如,您可以定义
f[z1_,n_] := Abs[z] (Cos[Arg[z]] + I Sin[Arg[z]]) /.Solve[z^n+z1 == 0, z,Complex]
或
根据您的符号偏好(三角或指数…但最后一个是首选)
要获得所需的(-4)^(1/5)
表达式,只需键入
g[4,5] or f[4,5]
你的答案是唯一解决OP可能存在的潜在问题的答案。i、 e.w=z的n个不同根^n@Simon我想问题不在于Mathematica本身,而在于将“基数”操作符理解为指数运算的多值逆。我试图解决这个问题……您的最后一段代码没有给出您期望的答案的原因是/4
位于错误的位置。它不应该碰到Arg[x]
术语。将右括号)
移到右边的字符处,所有操作都正常。在您提供的图像中也会出现相同的错误。顺便说一句,要写出漂亮的公式,你不应该使用普通的输入
单元格。相反,右键单击笔记本并选择Insert New Cell>DisplayFormula
另请参见
g[z1_,n_] := Abs[z] (Exp [I Arg[z]]) /.Solve[z^n+z1 == 0, z,Complex]
g[4,5] or f[4,5]