mathematica 用什么指令能把复数表达式的实部虚部分开
对于一个复数字母表达式(不是数字表达式哈),用什么指令能把它的实部或虚部分开?你使劲上传图片,郭先强会生气的 用共轭函数,还要假定abcd都是实数。我觉得你这样表示隐含了这个条件而mathematica不知道。
Simplify[(#+Conjugate[#])/2&[(a+b I)/(c+d I)],Element[{a,b,c,d},Reals]] 在Mathematica里面,一切 都是表达式,一切表达式又都是 可以用树来表示。所以你的问题完全可以用树的一些操作函数来完成。
于是查看一下树形结构
ComplexExpand[(a + b I)/(c + d I)] // TreeForm
由此可以得知 ComplexExpand[(a + b I)/(c + d I)]的输出是一个Plus表达式,即该表达式的Head是Plus,参数是 三个子表达式。对于虚部,我们要取的是最后一个子表达式,所以只需Last即可。而该子表达式是带有I的,进一步递归之,取这个Times表达式的最后元素,所以最终答案就是
ComplexExpand[(a + b I)/(c + d I)] // Last // Last
==================================================
基于以上基础概念的认识,可以玩些花样:
取实部:
Take, 2]
取虚部:
Take, -1, -1] 居然把函数次序倒过来直接出结果了。
ComplexExpand] 然后…………Mathematica默认变量是实数?因为a、b、c、d替换成复数形式的话结果其实很美。
(FullSimplify[#/.I->0]+FullSimplify[#-(#/.I->0)])&] 下面的方法也很有用:
由 \( z = (a + b\,{i})/(c + d\,{i}) \)知 \(z\) 的共轭复数为 \( \overline{z}=(a - b\,{i})/(c - d\,{i}) \)
实部\( =(z +\overline{z})/2 \);
虚部\( =(z -\overline{z})/2 \);
\(z =\) 实部 + 虚部 ComplexExpand]
这个命令,可以把实部与虚部分开来,都当成实数
页:
[1]