作者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/cn.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