[問題] 矩陣資料格式

作者: FTICR (FT-ICR)   2014-10-19 23:08:48
各位板友好 小弟Mathematica新手有個問題想請教
(Mathematica截圖在這邊
敘述如下)
設旋轉operator
Cos[\[Theta]z] -Sin[\[Theta]z] 0
Rz[C_]:= ( Sin[\[Theta]z] Cos[\[Theta]z] 0 ).C// MatrixForm // N
0 0 1
1 0 0
Rx[A_]:= ( Cos[\[Theta]z] -Sin[\[Theta]z] 0 ).A// MatrixForm // N
Sin[\[Theta]z] Cos[\[Theta]z] 0
在計算時出現的狀況為:
\[Theta]z = 30 \[Degree] ;
\[Theta]x = 45 \[Degree] ;
10
Rz[(20)]
30
-1.33
輸出 (22.3205)
30
到目前為止完全正確
但如果要算
10
Rx[Rz[(20)]] (先在z方向轉再在x方向轉)
30
-1.33
輸出卻變為 {{1,0,0},{0,0.707,-0.707},{0,0.707,0.707}}. (22.3205)
30
兩個矩陣卻無法相乘
如果是
10
Rz[(20)]
30
-1.33
輸出 (22.3205)
30
再算
Rx[%]
又可以正確算出結果
a
請問要如何解決才有辦法算 Rx[Rz[(b )]] 這類的運算呢?
c
感謝
作者: LPH66 (-6.2598534e+18f)   2014-10-19 23:43:00
把 MatrixForm 拿掉, 雖然我覺得這應該不影響計算才對...那個在你實際算東西時再加上就好唔嗯, 用 FullForm 看了一下有問題的結果確實是 MatrixForm卡在中間的關係...看來當計算結果是這種 Form 物件時, Out[] 會取內容存起來
作者: FTICR (FT-ICR)   2014-10-19 23:49:00
感謝L大 去掉MatrixForm確實就可以算了
作者: LPH66 (-6.2598534e+18f)   2014-10-19 23:49:00
所以就把 MatrixForm 拿掉就沒問題了
作者: FTICR (FT-ICR)   2014-10-19 23:50:00
只是要輸出矩陣的話就要 最後面再加MatrixForm請問有沒有辦法直接在operator裡面弄好MatrixForm而不需要每算一次都打MatrixForm呢?
作者: leo80042 (嗯嗯啊啊去洗澡)   2014-10-20 02:13:00
MatrixForm很危險,會讓整個計算爛掉,通常都是在計算結束後要快速瀏覽結果才用
作者: FTICR (FT-ICR)   2014-10-20 17:37:00
了解 感謝講解!!

Links booklink

Contact Us: admin [ a t ] ucptt.com