Re: [問題] 關於微分的計算
試了好半天總算看懂你的問題了....
你這個問題麻煩的點在於你的次方是非交換性的
所以不能直接套有交換性的結果來用
不過要拐些彎的話可以這麼做:
(※注意:下面這個做法真的拐了好多彎
也就是其實是我東拼西湊湊出來的做法
如果版友們有更好的做法也可提供)
(1a) 先建立級數 這可以用 Series 做到: (以 U 為例)
Normal[Series[Exp[I Sqrt[2] \[CurlyPhi]/F], {\[CurlyPhi], 0, 10}]]
這裡我貼在這裡是 \[CurlyPhi] 的東西其實會顯示成 φ
你可以從 BasicMathInput 點出來或用 [Esc]cphi[Esc] 輸入
加 Normal 是為了下一步的代換
(1b) 上面這個的級數它的次方我們要換成非交換性的乘方
所以加上這一串:
/. Power[\[CurlyPhi], n_] :>
NonCommutativeMultiply @@ Table[\[CurlyPhi], {n}]
把所有長得像 φ^n 的換成 n 個 φ 用非交換性乘給乘起來
(1c) 然後就可以取微分了:
Dt[ ... , Constants->F]
其中 ... 就換進 (1a) (1b) 這一大串
所以全部就長這樣:
U = Dt[
Normal[Series[Exp[I Sqrt[2] \[CurlyPhi]/F], {\[CurlyPhi], 0, 10}]]
/. Power[\[CurlyPhi], n_] :>
NonCommutativeMultiply @@ Table[\[CurlyPhi], {n}],
Constants -> F];
這樣就把 U 的級數給建立起來了
加上 Constants->F 讓 Dt 知道你的 F 是常數
記得加個 ; 不然那一長串你不會想看的...
(1d) 依樣畫葫蔖建立 U+:
UP = Dt[
Normal[Series[Exp[-I Sqrt[2] \[CurlyPhi]/F], {\[CurlyPhi], 0, 10}]]
/. Power[\[CurlyPhi], n_] :>
NonCommutativeMultiply @@ Table[\[CurlyPhi], {n}],
Constants -> F];
(2) 於是我們就能做 U * U+
不過這裡有個問題是 NonCommutativeMultiply 沒有內建分配律
所以我們得要自己生一個
好在 Help 的範例裡已經有了我們要的東西:
(摘自 ref/NonCommutativeMultiply 當中 Application 的第二個範例)
Build a function to expand non-commutative products. Distributivity with
respect to Plus:
ExpandNCM[(h : NonCommutativeMultiply)[a___, b_Plus, c___]] :=
Distribute[h[a, b, c], Plus, h, Plus, ExpandNCM[h[##]] &]
Handling the commutative product inside the non-commutative one:
ExpandNCM[(h : NonCommutativeMultiply)[a___, b_Times, c___]] :=
Most[b] ExpandNCM[h[a, Last[b], c]]
Fall-back operation applied to everything else:
ExpandNCM[a_] := ExpandAll[a]
有了這個之後我們就可以展開了:
UUP = Expand[ExpandNCM[U**UP]];
同樣記得加上 ; 因為也是很長一串...
(3) 接下來我們要取出其中的項了
我在上一項中先加了 Expand 的用意是讓它拆成獨立一項一項的
因為你想要的是同樣次方數合起來做為一項
(像是 δφ*φ 和 φ*δφ 要合起來看
φ*δφ*δφ 和 δφ*δφ*φ 和 ... 等等要合起來看)
所以我們得要一次找出所有一樣個數的項
當已經用 Expand 全部乘開之後就可以這麼做: (以第二項的三次方項為例)
Select[UUP,
MatchQ[#, _*NonCommutativeMultiply[a__] /; Length[{a}] == 3] &]
去找什麼東西乘上恰有三個東西非交換乘起來這樣的玩意
在這題的情形中會找出這樣的東西:
I√2 φ**Dt[φ,Constants->{F}]**Dt[φ,Constants->{F}]
----------------------------------------------------- -
F^3
I√2 Dt[φ,Constants->{F}]**Dt[φ,Constants->{F}]**φ
-----------------------------------------------------
F^3
這代表三次方項是長成這個樣子的:
(i√2/F^3)(φ*δφ*δφ)-(i√2/F^3)(δφ*δφ*φ)
(4) 所以接下來就知道該怎麼做了:
(* 把φ代入矩陣 把**換成矩陣乘法 然後求 Trace 後乘上前面的項 *)
Tr[
%/.\[CurlyPhi]->{{πo/Sqrt[2], πp},
{πm , -πo/Sqrt[2]}}
/.NonCommutativeMultiply->Dot
] * (F^2/4) // Expand
這裡我用 πo πp πm 分別代替 π^o π^+ π^-
因為直接寫 π^+ π^- 產生的 SuperPlus 和 SuperMinus 好像和 Dt 互動不良
當然你也可以把 (3) 代進這裡的 % 這個地方
就可以省一個計算結果
這樣求出來的就是你所想要的項了
如果覺得分母很討厭也可以 Together 一下讓它"提"出去
我這裡計算出來的結果 二次項可以求出你手算的結果
它會寫成 (略去 Constants->{F})
1
--- Dt[πo]^2 + Dt[πm] Dt[πp]
2
o 2 - +
這就表示這一項的結果是 (1/2)(δπ ) +(δπ )(δπ )
和你的手算結果相符
然後三次項是 0
四次項是(用你的記法)
+ 2 - 2 + - + - - 2 + 2
(1/6F^2)[(π ) (δπ ) - 2(π )(π )(δπ )(δπ ) + (π ) (δπ ) ]
要注意的是 你最前面的 Series 切的地方關係到你後面正確答案可以算到第幾項
如果像這個例子給的 10 的話 因為 U 和 UP 最多是 10 次項
所以 UUP 到 11 次項都是對的 也就是可以求出到第 10 項 (11 次項) 的展開結果
(相信知道手算過程的你一定知道這是為什麼)
要更多項就前面 Series 的地方切多一點就好
--
いああオレたちには見えてるモノがあるbデ きっと誰にも奪われないモノがあるはずさ
け 開口一番一虚一実跳梁跋扈形影相弔yュL羊頭狗肉東奔西走国士無双南柯之夢 歪も
ぶ 意味がないと思えるコトがある ラPきっとでも意図はそこに必ずある んの
く 依依恋恋空前絶後疾風怒濤有無相生 ラH急転直下物情騷然愚者一得相思相愛 だが
ろ 無意味じゃない ラ6あの意図が 恋た
で 有為転変死生有命蒼天已死黄天當立 !!6五里霧中解散宣言千錯万綜則天去私 のり
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.230.62
推
07/09 05:45, , 1F
07/09 05:45, 1F
推
07/09 05:53, , 2F
07/09 05:53, 2F
推
07/09 10:57, , 3F
07/09 10:57, 3F
討論串 (同標題文章)
Mathematica 近期熱門文章
PTT數位生活區 即時熱門文章