看板 Mathematica 關於我們 聯絡資訊
如題,複數的相位值域是在-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, 虛部遠大於實部,與答案明顯不符。請問該如何解決這個問題呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.7.214 ※ 文章網址: https://www.ptt.cc/bbs/Mathematica/M.1481769230.A.1B9.html
LPH66: 問題可能是在 Arg 身上, 因為 Arg 有分支 12/15 16:37
LPH66: 直接做符號運算的話會因為 Arg 無法微分被卡住 12/15 16:38
LPH66: 啊, 找了一些資料好像說 Arg 本來就無法微分, 跟分支無關 12/15 16:44
AmibaGelos: 取log微,虛部是phase shift 12/15 20:56
感謝A大,這個方法有效! ※ 編輯: HeterCompute (140.112.7.214), 12/16/2016 14:53:43