Wolfram mathematica Mathematica、Arg和Simplify
我在使用复数的Mathematica时遇到了问题。我做错什么了吗 两个例子:Wolfram mathematica Mathematica、Arg和Simplify,wolfram-mathematica,complex-numbers,Wolfram Mathematica,Complex Numbers,我在使用复数的Mathematica时遇到了问题。我做错什么了吗 两个例子: ComplexExpand[(x+y)^(1/2)] 收益率(x^2+y^2)^(1/4)Cos[1/2 Arg[x+iy]]+I(x^2+y^2)^(1/4) Sin[1/2 Arg[x+I y]] 到目前为止,我还没有找到办法 更简单的结果(确实存在!) ComplexExpand[Sqrt[x^2+y^2]Cos[Arg[x+iy]]+isqrt[x^2+y^2]Sin[Arg[x+iy]] 产生与Complex
产生与ComplexExpand参数相同的结果,但它显然应该是x+iy
提前谢谢 对于第二个,请记住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]]
E^(I Arg[x + I y]) Sqrt[x^2 + y^2]
或者如果你进去
FullSimplify@a
你得到
Sqrt[x^2 + y^2] Cos[Arg[x + I y]] + I Sqrt[x^2 + y^2] Sin[Arg[x + I y]]
E^(I Arg[x + I y]) Sqrt[x^2 + y^2]
只是因为Mathematica不知道X和Y是实的
但是你可以显式地声明它,所以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会以您希望的方式呈现复数…您希望输出什么类型的表达式?
Simplify
和FullSimplify
都接受第二个参数来指定假设,因此您不必更改全局$assemptions
。另外,默认情况下,ComplexExpand
将第二个参数中未显式指定为复数的所有变量视为实数。Mathematica 7手册的内容如下:ComplexExpand[expr]扩展expr,假设所有变量都是实变量。因此,我期望x和y在没有任何进一步规范的情况下被视为实数,无论如何,第一个表达式(1)应该产生如下结果:w=((x^2+y^2)^(1/2)+x)/2^(1/2)+iy/(2((x^2+y^2)^(1/2)+x))^(1/2);这是(x+Iy)^(1/2)主值的代数形式