作者fragmentwing (片翼碎夢)
看板Math
標題[其他] ABC三軸互不垂直 求兩面角公式
時間Sat Oct 24 16:48:11 2020
其實是想解triclinic的問題
雖然實際執行上是用stereonet去畫,而且好像最難就考到(100)、(010)、(001)而已
(只是把它畫出個大概,並沒有要求到多精準的數字)
這是出於個人興趣想問問
方便起見,就以硫酸銅來假設好了
α(b軸與c軸夾角):97.5度
β(a軸與c軸夾角):107度
γ(a軸與b軸夾角):77.5度
試求(432)與(111)兩面夾角
補充說明:三斜晶系中,面(100)指的是與b、c兩軸平行之面,其法向量並不等於a軸
(010)、(001)同理
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.214.127 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Math/M.1603529294.A.8ED.html
1F:推 LPH66 : (111) 是點還是向量還是? 10/24 17:32
面(111),但兩面角等於兩面垂直法向量夾角這規則理當仍適用於三斜晶系
我稍微增加一點說明好了,避免混淆
※ 編輯: fragmentwing (111.71.214.127 臺灣), 10/24/2020 18:03:17
2F:→ LPH66 : 所以是不是可以理解成 (pqr) 為所有 xa+yb+zc 形成 10/24 18:20
3F:→ LPH66 : 的平面, 其中 px+qy+rz=0 ? 10/24 18:21
4F:→ LPH66 : 你提的性質理論上當然也通, 但就真的要算法向量出來 10/24 18:22
5F:→ LPH66 : 而不是直接利用基底正交的關係推 10/24 18:22
6F:→ LPH66 : 計算上可能可以直接把 a b c 當成 (不正交的) 基底 10/24 18:23
後來想到可以假設三軸長度為1去硬解
算了半小時才算出(001)和c軸夾20.36度......太不實際了
※ 編輯: fragmentwing (111.71.214.127 臺灣), 10/24/2020 19:16:24
7F:推 walkwall : 如果不是求公式解 退而求其次 用矩陣設計速算法 10/24 19:48
8F:→ walkwall : 比如說將三個角度填入矩陣 兩個給定向量可由矩陣 10/24 19:48
9F:→ walkwall : 轉成直角座標系的向量 再求兩向量夾角就簡單了 10/24 19:49
10F:→ walkwall : 這種解法方向能接受嗎 10/24 19:50
11F:推 LPH66 : 如果我查到的三斜晶系資料沒錯的話, a b c 長度為 1 10/24 19:50
12F:→ LPH66 : 應該不算三斜... 10/24 19:50
13F:→ LPH66 : 所以我才會說計算上大概直接當 a b c 為基底去算了 10/24 19:51
14F:→ LPH66 : 就把它當成一個最 general 的基底下去求 10/24 19:51
15F:→ LPH66 : 嘛, 我覺得我好像有點太糾結這個定義了 (思 10/24 19:55
線上一定有距離中心點1的點 這點跟它是不是三斜無關
16F:→ hwanger : 令t1為ab夾角 t2為ac夾角 t3為bc夾角 考慮一特別座 10/24 20:35
17F:→ hwanger : 標系(直角座標系) 使得a=(1,0,0) 10/24 20:36
18F:→ hwanger : b=(cos(t1),sin(t1),0) 解下面方程式之x 10/24 20:38
19F:→ hwanger : cos(t1)cos(t2)+sin(t1)sin(t2)x=cos(t3) 10/24 20:39
20F:→ hwanger : 則c=(cos(t2),sin(t2)x,sin(t2)√(1-x^2)) 10/24 20:42
21F:→ hwanger : 至此我們就有一個直角座標系和斜角座標系的線性轉換 10/24 20:43
22F:→ hwanger : 將一個通過原點的平面Γ視作一個linear functional 10/24 20:45
23F:→ hwanger : f的kernel 那我們就可以得到f在直角座標系下的表示 10/24 20:47
24F:→ hwanger : 也因此可以很輕易得到在直角座標系的法向量 不同平 10/24 20:48
25F:→ hwanger : 面的法向量都可以如此得到 自然而然就可以求平面角 10/24 20:49
26F:→ hwanger : 上面用的abc都是單位向量 10/24 20:51
※ 編輯: fragmentwing (111.71.214.127 臺灣), 10/24/2020 21:15:24
27F:→ fragmentwing: 有點不太懂x方程式怎麼來的 是把b當作1然後分別往t1 10/24 21:32
28F:→ fragmentwing: t2和t3弄嗎? 10/24 21:32
29F:→ hwanger : 是用繞a軸的cone去算的 不過沒差 你直接check下面 10/24 21:44
30F:→ fragmentwing: 話說回來 這倒是提醒了我 要從三軸算起 之後再求(1 10/24 21:45
31F:→ fragmentwing: 00)那些基礎值會比直接算要好 10/24 21:46
32F:→ hwanger : 這些事就好了 a,b,c如果是那三個座標 則(i)a,b,c的 10/24 21:46
33F:→ hwanger : 長度皆為1 (ii)ab夾角為t1 ac夾角為t2 bc夾角為t3 10/24 21:48
34F:→ fragmentwing: 你是指如果abc三軸座標是(100) (010) (001)? 可是向 10/24 21:52
35F:→ fragmentwing: 量並不一樣喔。如果把這些通通放到正常座標系統上, 10/24 21:52
36F:→ fragmentwing: 則會得到一個有原本三個正常座標系的向量+abc三軸向 10/24 21:52
37F:→ fragmentwing: 量+(001)等三軸向量,一共九種向量的圖喔 10/24 21:52
38F:→ hwanger : 而所謂考慮cone是指與a夾角t2的向量都長成 10/24 21:53
39F:→ hwanger : (cos(t2),sin(t2)cos(s),sin(t2)sin(s))的樣子 10/24 21:54
40F:→ fragmentwing: 更正 八個向量 按慣例會選c軸和一般系統的(001)重合 10/24 21:55
41F:→ hwanger : 我其實不太懂你(pqr)的意思 但你的a軸b軸c軸都可以 10/24 21:56
42F:→ hwanger : 考慮成現實空間中的三個向量不是嗎 10/24 21:57
43F:→ hwanger : 那我在空間中就會有兩個座標系 所以問題就變成同一 10/24 21:59
44F:→ hwanger : 平面在不同座標系下的表示如何轉換不是嗎 10/24 21:59
45F:→ fragmentwing: 不行 因為三軸互不垂直 10/24 22:00
46F:→ fragmentwing: 這樣講好了 以下正常座標系的(pqr)就以(pqr)形 10/24 22:00
47F:→ fragmentwing: 式,三斜體系下的(hkl)就寫成t(hkl)的形式區分 10/24 22:00
48F:→ hwanger : 所以(pqr)到底是什麼 就是px+qy+rz=0嗎 10/24 22:01
49F:→ fragmentwing: 首先 你要以a軸去和(100)重合也可,但慣例是選c軸 10/24 22:02
50F:→ fragmentwing: 與(001)重合當作基準。因為abc三軸互不垂直,當以 10/24 22:02
51F:→ fragmentwing: c軸為基準,ab軸都不會與(100),(010)兩軸重合 10/24 22:02
52F:→ fragmentwing: 再來 t(100)是bxc得出的 面t(100)是與bc兩軸平行的 10/24 22:04
53F:→ fragmentwing: 面,注意這兩軸本身就不與正常的三軸座標重合 10/24 22:04
54F:→ hwanger : ??? 我將a軸和(1,0,0)重合 b軸與(cos(t1),sin(t1),0 10/24 22:05
55F:→ hwanger : 重合 將c軸與(cos(t2),sin(t2)x,sin(t2)√(1-x^2)) 10/24 22:06
56F:→ hwanger : 重合 我從來就不是要將b軸與(0,1,0)重合 c軸與(0,0, 10/24 22:07
57F:→ hwanger : 1)重合 所以我會有XYZ座標系 和abc座標系 10/24 22:08
58F:→ hwanger : 你要知道這兩者之間的座標轉換 就先需要知道abc在 10/24 22:10
59F:→ fragmentwing: 那段應該沒問題 但你後來說如果abc是那三個座標指的 10/24 22:10
60F:→ fragmentwing: 是那段看起來很複雜的座標系嗎? 如果是應該是沒問題 10/24 22:10
61F:→ hwanger : XYZ下的座標是什麼 而我算出來的就是其中一組 使得 10/24 22:10
62F:→ fragmentwing: 我可以理解為 目前並沒有任何算到t(hkl)的步驟嗎 10/24 22:11
63F:→ hwanger : a與X軸重疊 b在XY平面上 c在Z>0的半空間中 10/24 22:11
64F:→ fragmentwing: 那我瞭解了 我剛剛誤解了你的說法才會有疑問 10/24 22:13
65F:→ hwanger : 對 因為我需要兩個座標系間的基底轉換矩陣 10/24 22:14
66F:→ hwanger : 假設XYZ的基底是B={e1,e2,e3} abc的基底是C={a,b,c} 10/24 22:17
67F:→ hwanger : 如果在abc下的平面方程式是hA+kB+lC=0 10/24 22:19
68F:→ hwanger : (A,B,C)是abc裡的座標 則考慮這個linear functional 10/24 22:20
69F:→ hwanger : f(A,B,C)=hA+kB+lC 則矩陣表示為[f]_C=[h,k,l] 10/24 22:22
70F:→ hwanger : 則[p,q,r]=[f]_B=[f]_C*[Id]^C_B=[h,k,l]*[Id]^C_B 10/24 22:26
71F:→ hwanger : 所以px+qy+rz=0和hA+kB+lC=0是不同座標系下的同一平 10/24 22:28
72F:→ hwanger : 面 因為(p,q,r)是在XYZ座標下的 所以他是真正意義上 10/24 22:29
73F:→ hwanger : 的法向量 10/24 22:29
74F:→ fragmentwing: 我在想 你這樣是不是把abc三軸當成三斜座標系的軸了 10/24 22:37
75F:→ fragmentwing: ?對,他們是軸,可是數字上參照的軸並非abc三軸而是 10/24 22:37
76F:→ fragmentwing: 由bxc axc axb分別得出的(100)(010)(001) 10/24 22:37
77F:→ fragmentwing: 這樣轉換矩陣轉的到底是對照abc的數字還是對照(100) 10/24 22:39
78F:→ fragmentwing: ,(010),(001)的數字? 10/24 22:39
79F:→ hwanger : 冏 所以我才會問(pqr)的意義 所謂bxc是指b和c在正常 10/24 22:47
80F:→ fragmentwing: bxc應該是指 b c在正常座標系下的狀態做出來的 10/24 22:48
81F:→ hwanger : 空間下的外積嗎 10/24 22:49
82F:→ fragmentwing: 對 因為是指對bc兩軸平行的面垂直的法向量 10/24 22:49
83F:→ fragmentwing: 所以如果要求bxc結果在正常座標系統下的結果 要用正 10/24 22:50
84F:→ fragmentwing: 常座標下的b,c去求外積 10/24 22:50
85F:→ fragmentwing: 所以我在想應該把你目前矩陣中的參數更改為bxc axc 10/24 22:55
86F:→ fragmentwing: axb就行得通了 10/24 22:55
87F:→ fragmentwing: 謝謝h大願意陪我這樣子燒腦 居然快11點了 10/24 22:57
88F:→ hwanger : 再讓我問一個問題 這樣(100)是向量不是平面? 10/24 22:58
89F:→ fragmentwing: (100)是面 有法向量[100] 剛剛在講的(100)如果要 10/24 23:01
90F:→ fragmentwing: 求嚴格點應該是要用[100]表示 10/24 23:01
91F:→ fragmentwing: 如果剛剛有講到軸或向量的話是要用[]表示才對 10/24 23:02
92F:→ hwanger : Ok 那我們已經有abc在XYZ下的座標了 bxc axc axb在 10/24 23:12
93F:→ hwanger : XYZ下的座標就直接乘出來就可以了 那該有的基底轉換 10/24 23:12
94F:→ hwanger : 矩陣也就有了 如你所說 就做類似的事就好了 10/24 23:13
95F:推 Vulpix : (pqr)應該是倒晶格的基底展開? 10/24 23:14
96F:→ Vulpix : 我是不是攪屎了XD 10/24 23:15
97F:→ hwanger : 看起來一樣(差一個volume而已) 不過我對diffraction 10/24 23:36
98F:→ hwanger : 和crystallography都不熟就是了 冏 10/24 23:37
99F:推 Vulpix : 嗯對,是差一個volume沒錯。感覺這個問題只要把內 10/24 23:55
100F:→ Vulpix : 積用的那個對稱矩陣算出來就好了吧,g_ij那個。 10/24 23:55
101F:→ hwanger : 一時間沒意識到V大講的gij的意思 以為是晶格學的術 10/25 11:35
102F:→ hwanger : 語 冏 就是算Riemann metric沒錯 因為現在 10/25 11:36
103F:→ hwanger : transition map是線性的 微分就是求基底轉換矩陣 10/25 11:39
104F:→ hwanger : 所以gij就是由(基底轉換矩陣)^t*Id*(基底轉換矩陣) 10/25 11:40
105F:→ hwanger : 來計算 上面我在算的時候就有想說這件事了 不過後來 10/25 11:41
106F:→ hwanger : 想想算了 冏 10/25 11:43
107F:→ hwanger : 不過如果知道目標三軸的長度和彼此的夾角 也可以直 10/25 15:38
108F:→ hwanger : 接算gij 冏 10/25 15:38
109F:推 Vulpix : 而且我記得應該是原本三軸的g的函數,好像是反矩陣 10/25 23:34
110F:→ Vulpix : ? 10/25 23:34
111F:→ hwanger : ???誰的反矩陣? 10/25 23:51
112F:→ hwanger : 是指a,b,c和倒晶格的g互為反矩陣嗎 有空再推推看 10/25 23:57
113F:推 Vulpix : a,b,c各自成行,倒晶格基底各自成列,應該很簡單就 10/26 00:31
114F:→ Vulpix : 能看出來是反矩陣。分母那個volume就是反矩陣公式 10/26 00:31
115F:→ Vulpix : 裡的那個行列式值。g又是A'A這種形式,所以是反矩 10/26 00:31
116F:→ Vulpix : 陣沒錯。 10/26 00:31
118F:→ Vulpix : 請忽略那些高中物理。 10/26 00:43
119F:→ Vulpix : 然後放進矩陣的時候,向量都已經在標準基底上展開 10/26 00:44
120F:→ Vulpix : 過了。 10/26 00:44
121F:→ hwanger : 了解 10/26 08:35