[問題] 如何解決複數相位微分會出現複數

作者: 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