#21 Re: 从计算角度看clifford algebra
发表于 : 2024年 5月 4日 18:32
记得正交群O_n(V)中的元素都可以用n次反射来实现,忘了为啥。
为啥要用两个反射代替旋转?一个不行吗?
为啥要用两个反射代替旋转?一个不行吗?
不行,你想象一下被旋转的是一个F,镜像的反的
嗯。spin group把V中的一个向量变成另一个向量,相当于旋转。那么在基向量表示下,spin group的元素什么样呢?比如是两个基向量e1e2,三个基向量e1e2e3,还是什么样。FoxMe 写了: 2024年 5月 4日 17:58 就是偶subalgebra。
>even Clifford algebra = {n : n x n^{-1} \in V, for all x \in V}.
这里记错了,只对quaternion成立。{n : n x n^{-1} \in V, for all x \in V}是一个子集,但好像没有专门取名字,已修正。
这里又牵扯出两个名词:
spin group = {以上的n, 并且n 的norm=1};所以我说的那个集合基本上是spin group: 这也好理解,这个群就是用来做旋转/反射的。
还有spinor norm = n的norm,基本上。
大致上spin group + spinor norm完整地刻画了上面那个子集。
spin group是做旋转,反射不在里面吧?FoxMe 写了: 2024年 5月 4日 17:58 就是偶subalgebra。
>even Clifford algebra = {n : n x n^{-1} \in V, for all x \in V}.
这里记错了,只对quaternion成立。{n : n x n^{-1} \in V, for all x \in V}是一个子集,但好像没有专门取名字,已修正。
这里又牵扯出两个名词:
spin group = {以上的n, 并且n 的norm=1};所以我说的那个集合基本上是spin group: 这也好理解,这个群就是用来做旋转/反射的。
还有spinor norm = n的norm,基本上。
大致上spin group + spinor norm完整地刻画了上面那个子集。
TheMatrix 写了: 2024年 5月 4日 20:42 嗯。spin group把V中的一个向量变成另一个向量,相当于旋转。那么在基向量表示下,spin group的元素什么样呢?比如是两个基向量e1e2,三个基向量e1e2e3,还是什么样。
属实,spin(n) 只包括rotation,加上reflections的group叫 pin(n). Rotation在Clifford的里面也非常简洁,FoxMe 写了: 2024年 5月 5日 09:49 Spin group在CL(3,0)的情况下,刚好对应于(unit) quaternion,一般情况下是偶子代数的子群,但是到底长得啥样?我也很困惑。感觉Clifford的主要作用之一就是来定义Spin group(一种巨复杂的方式)。
“quaternion则对应于3d vector space clifford代数CL(3,0)的偶子代数
{1, e1, e2, e3, e1e2, e2e3,
e1e3, e1e2e3}
偶子代数
{1, e1e2, e2e3,e1e3}
不难看出其中可以对应到quaternion的symbol i,j, k, 并且满足 i^2 = j^2= k^2 = ijk = -1,”
Caravel 写了: 2024年 5月 5日 11:52 属实,spin(n) 只包括rotation,加上reflections的group叫 pin(n). Rotation在Clifford的里面也非常简洁,
基本型是
x - > RxR^(-1)
R是两个vector a, b 的geometry product ab, 也叫Versor. a,b的平面是旋转平面,比较奇怪的是a,b的夹角不是 theta 而是 theta/2.
x可以推广到clifford 代数里面一般的multi-vector。
这个旋转的idea可能是从四元数借鉴来的,但是clifford把很多不同的数学概念统一在一个框架里面。
double cover是因为两边夹逼,所以同时R取负不影响最后的rotation。FoxMe 写了: 2024年 5月 5日 15:58 哦,以前对为啥叫pin(n)摸不着头脑,原来是把spin的s去掉:
“Pin is to O(n) as Spin is to SO(n)”
为啥是theta/2,我感觉是因为spin/pin是SO(n)/O(n)的double cover,即要转两圈才回到原先的位置。
学习了。这的确是CA的正确打开方式。Caravel 写了: 2024年 5月 5日 14:53 继续开头的例子,谈一谈rotation in clifford algebra (CA)
开头的例子举的例子是关于一条直线的反射,通常的reflection定义一般是指关于一个平面的reflection。假设平面的单位法向量是n, 则一个vectorx 关于平面的反射是
x -> -nxn
和之前的差不多。CA里面处理旋转是用两次reflections来实现,用3d情形举例。比如ex 旋转 90度到ey,可以看出下面两次反射的结果
1. 关于45度线1/sqrt(2)(e1 + e2 ) 定义的平面反射到 -ey
2. 然后关于e2定义的xz平面反射回到e2
两个comment
1. 这是一个简单的例子,第二部完全是多余的,直接乘以-1就可以。但是如果第二个平面不是xz平面结果并不是显然。
2. 最终矢量转动了90度,但是这两条法向量的夹角45度,只有一般。
借助于这种两次反射的方法,可以实现任意角度的旋转。 在CA里面rotation总是在一个平面里面进行,和通常的认为绕一根轴的rotation等价。 假设平面里面有两个单位向量m,n,那就可以定义旋转为
x -> -m(-nxn)m = mn x nm = R x R^ (-1)
如果mn的夹角为theta,最终x旋转的结果是2 * theta。和普通的向量代数处理不一样,这里的旋转用两个geometry product夹逼来实现。再回到上面的例子。
n = 1/sqrt(2)(e1 + e2 )
m = e2
mn = 1/sqrt(2)(e2e1 + e2e2)
= 1/sqrt(2)(1 - e1e2) = ( cos(45) - sin(45) e1e2)
nm = 1/sqrt(2)(1 + e1e2) = ( cos(45) + sin(45) e1e2)
再进一步如果我们意识到 (e1e2)^2 = -1, 类似于复数i,那么上面的结果可以写成指数形式
mn = e-pi/2 *e1e2
nm = epi/2 *e1e2
x -> e-pi/2 *e1e2 x epi/2 *e1e2
也就是只要找到旋转平面里面两个角度为 theta/2的向量,就可以用来旋转空间任意vector。MultiVector也可以, 比如
xy -> RxR^(-1) RyR^(-1) = RxyR^(-1)
旋转等于反射再反射,又等于一个“复”反射。有点玄妙。Caravel 写了: 2024年 5月 5日 14:53 继续开头的例子,谈一谈rotation in clifford algebra (CA)
开头的例子举的例子是关于一条直线的反射,通常的reflection定义一般是指关于一个平面的reflection。假设平面的单位法向量是n, 则一个vectorx 关于平面的反射是
x -> -nxn
和之前的差不多。CA里面处理旋转是用两次reflections来实现,用3d情形举例。比如ex 旋转 90度到ey,可以看出下面两次反射的结果
1. 关于45度线1/sqrt(2)(e1 + e2 ) 定义的平面反射到 -ey
2. 然后关于e2定义的xz平面反射回到e2
两个comment
1. 这是一个简单的例子,第二部完全是多余的,直接乘以-1就可以。但是如果第二个平面不是xz平面结果并不是显然。
2. 最终矢量转动了90度,但是这两条法向量的夹角45度,只有一般。
借助于这种两次反射的方法,可以实现任意角度的旋转。 在CA里面rotation总是在一个平面里面进行,和通常的认为绕一根轴的rotation等价。 假设平面里面有两个单位向量m,n,那就可以定义旋转为
x -> -m(-nxn)m = mn x nm = R x R^ (-1)
如果mn的夹角为theta,最终x旋转的结果是2 * theta。和普通的向量代数处理不一样,这里的旋转用两个geometry product夹逼来实现。再回到上面的例子。
n = 1/sqrt(2)(e1 + e2 )
m = e2
mn = 1/sqrt(2)(e2e1 + e2e2)
= 1/sqrt(2)(1 - e1e2) = ( cos(45) - sin(45) e1e2)
nm = 1/sqrt(2)(1 + e1e2) = ( cos(45) + sin(45) e1e2)
再进一步如果我们意识到 (e1e2)^2 = -1, 类似于复数i,那么上面的结果可以写成指数形式
mn = e-pi/2 *e1e2
nm = epi/2 *e1e2
x -> e-pi/2 *e1e2 x epi/2 *e1e2
也就是只要找到旋转平面里面两个角度为 theta/2的向量,就可以用来旋转空间任意vector。MultiVector也可以, 比如
xy -> RxR^(-1) RyR^(-1) = RxyR^(-1)
高维应该是成立的,这时候的旋转还是一个二维平面上的旋转。cos(theta)可以用两个vector内积表示.TheMatrix 写了: 2024年 5月 5日 22:02 旋转等于反射再反射,又等于一个“复”反射。有点玄妙。
这只在三维旋转中有效吧?SO(3)可以看成是以某一单位向量为旋转轴旋转一角度theta。SO(n)中有theta这个概念吗?
维度上好像也不成立:SO(n)是n(n-1)/2维。而两次反射需要找两个单位向量作为反射超平面的法向量,两个单位向量的维度是2(n-1),维度不够。
不是用一对矢量cover整个SO(n). 刚好有n(n-1)/2独立的矢量对, 就是n(n-1)/2独立的角度。TheMatrix 写了: 2024年 5月 5日 22:18 维度上好像也不成立:SO(n)是n(n-1)/2维。而两次反射需要找两个单位向量作为反射超平面的法向量,两个单位向量的维度是2(n-1),维度不够。
Caravel 写了: 2024年 5月 5日 11:52 属实,spin(n) 只包括rotation,加上reflections的group叫 pin(n). Rotation在Clifford的里面也非常简洁,
基本型是
x - > RxR^(-1)
R是两个vector a, b 的geometry product ab, 也叫Versor. a,b的平面是旋转平面,比较奇怪的是a,b的夹角不是 theta 而是 theta/2.
x可以推广到clifford 代数里面一般的multi-vector。
这个旋转的idea可能是从四元数借鉴来的,但是clifford把很多不同的数学概念统一在一个框架里面。
都是共轭形式,但是旋转是定义在一个2d平面上的,需要两个向量确定,R是一个even grade member,2d空间的情形等价于复数,3d空间等价4元数。n是一个单位向量FoxMe 写了: 2024年 5月 6日 10:35 反射:x -> -nxn
旋转:x - > RxR^(-1),R是两个vector a, b 的geometry product ab
这里有点怪:x - > axa^(-1)不也是旋转吗(这里对a有限制,要保证axa^(-1)还在向量空间内)?为啥要两个向量a,b?对a,b有限制吗?
Caravel 写了: 2024年 5月 5日 14:53 继续开头的例子,谈一谈rotation in clifford algebra (CA)
开头的例子举的例子是关于一条直线的反射,通常的reflection定义一般是指关于一个平面的reflection。假设平面的单位法向量是n, 则一个vectorx 关于平面的反射是
x -> -nxn
和之前的差不多。CA里面处理旋转是用两次reflections来实现,用3d情形举例。比如ex 旋转 90度到ey,可以看出下面两次反射的结果
1. 关于45度线1/sqrt(2)(e1 + e2 ) 定义的平面反射到 -ey
2. 然后关于e2定义的xz平面反射回到e2
两个comment
1. 这是一个简单的例子,第二部完全是多余的,直接乘以-1就可以。但是如果第二个平面不是xz平面结果并不是显然。
2. 最终矢量转动了90度,但是这两条法向量的夹角45度,只有一般。
借助于这种两次反射的方法,可以实现任意角度的旋转。 在CA里面rotation总是在一个平面里面进行,和通常的认为绕一根轴的rotation等价。 假设平面里面有两个单位向量m,n,那就可以定义旋转为
x -> -m(-nxn)m = mn x nm = R x R^ (-1)
如果mn的夹角为theta,最终x旋转的结果是2 * theta。和普通的向量代数处理不一样,这里的旋转用两个geometry product夹逼来实现。再回到上面的例子。
n = 1/sqrt(2)(e1 + e2 )
m = e2
mn = 1/sqrt(2)(e2e1 + e2e2)
= 1/sqrt(2)(1 - e1e2) = ( cos(45) - sin(45) e1e2)
nm = 1/sqrt(2)(1 + e1e2) = ( cos(45) + sin(45) e1e2)
再进一步如果我们意识到 (e1e2)^2 = -1, 类似于复数i,那么上面的结果可以写成指数形式
mn = e-pi/2 *e1e2
nm = epi/2 *e1e2
x -> e-pi/2 *e1e2 x epi/2 *e1e2
也就是只要找到旋转平面里面两个角度为 theta/2的向量,就可以用来旋转空间任意vector。MultiVector也可以, 比如
xy -> RxR^(-1) RyR^(-1) = RxyR^(-1)
写错了了,45度是pi/4FoxMe 写了: 2024年 5月 6日 17:42 这里有个问题:
x -> e-pi/2 *e1e2 x epi/2 *e1e2, (e1e2)^2 = -1, 类似于复数i。那么不还是x吗?还是左乘右乘旋转方向不同,得90度?