[问题] 如何解决复数相位微分会出现复数

楼主: HeterCompute (异质运算)   2016-12-15 10:33:47
如题,复数的相位值域是在-pi到pi,
但是直接拿函数微分会出现复数,
并且并不是虚部远小于实部的那种误差,
请问这种状况要如何解决呢?谢谢。
以下是测试code,
n = 1.5;
d = 200*10^-9;
\[Theta] = 0;
r1 = (1 - n)/(1 + n);
\[Delta][\[Lambda]_] := (4 \[Pi])/\[Lambda] n d Cos[\[Theta]];
cc = 3*10^8;
\[Delta]w[\[Omega]] := \[Delta][(2 \[Pi] cc)/\[Omega]];
\[Omega]\[Omega][\[Lambda]_] := (2 \[Pi] cc)/\[Lambda];
GD[\[Omega]_] =
D[-Arg[(Exp[-I*\[Delta]w[\[Omega]]] - r1)/(
1 - r1 Exp[-I*\[Delta]w[\[Omega]]])], {\[Omega], 1}]
GD[\[Omega]\[Omega][400*10^-9]]
结果最后一行出现的结果是9.60569*10^-44 - 2.98719*10^-29 I,
虚部远大于实部,与答案明显不符。请问该如何解决这个问题呢?
作者: LPH66 (-6.2598534e+18f)   2016-12-15 16:37:00
问题可能是在 Arg 身上, 因为 Arg 有分支直接做符号运算的话会因为 Arg 无法微分被卡住啊, 找了一些资料好像说 Arg 本来就无法微分, 跟分支无关
作者: AmibaGelos (Amiba Gelos)   2016-12-15 20:56:00
取log微,虚部是phase shift

Links booklink

Contact Us: admin [ a t ] ucptt.com