从reflection和rotation为例看clifford algebra

STEM版,合并数学,物理,化学,科学,工程,机械。不包括生物、医学相关,和计算机相关内容。

版主: verdeliteTlexander

FoxMe
著名点评
著名点评
帖子: 3387
注册时间: 2022年 7月 26日 16:46
昵称(选填): 令狐

#21 Re: 从计算角度看clifford algebra

帖子 FoxMe »

记得正交群O_n(V)中的元素都可以用n次反射来实现,忘了为啥。

为啥要用两个反射代替旋转?一个不行吗?
Caravel 写了: 2024年 5月 4日 18:26 旋转的处理是clifford的精髓,用两个反射代替旋转的技巧是Hamilton想出来的。
Caravel楼主
论坛支柱
论坛支柱
Caravel 的博客
帖子: 12601
注册时间: 2022年 7月 24日 17:21

#22 Re: 从计算角度看clifford algebra

帖子 Caravel楼主 »

FoxMe 写了: 2024年 5月 4日 18:32 记得正交群O_n(V)中的元素都可以用n次反射来实现,忘了为啥。

为啥要用两个反射代替旋转?一个不行吗?
不行,你想象一下被旋转的是一个F,镜像的反的
TheMatrix
论坛支柱
论坛支柱
TheMatrix 的博客
帖子: 9835
注册时间: 2022年 7月 26日 00:35

#23 Re: 从计算角度看clifford algebra

帖子 TheMatrix »

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把V中的一个向量变成另一个向量,相当于旋转。那么在基向量表示下,spin group的元素什么样呢?比如是两个基向量e1e2,三个基向量e1e2e3,还是什么样。
Caravel楼主
论坛支柱
论坛支柱
Caravel 的博客
帖子: 12601
注册时间: 2022年 7月 24日 17:21

#24 Re: 从计算角度看clifford algebra

帖子 Caravel楼主 »

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
著名点评
著名点评
帖子: 3387
注册时间: 2022年 7月 26日 16:46
昵称(选填): 令狐

#25 Re: 从计算角度看clifford algebra

帖子 FoxMe »

对,不包括反射,这样spin group的名字就make sense了。还有群Spin(n)是群SO(n)的double cover,这里SO(n)是特殊正交群,只包括旋转,不包括反射。
Caravel 写了: 2024年 5月 4日 20:58 spin group是做旋转,反射不在里面吧?
FoxMe
著名点评
著名点评
帖子: 3387
注册时间: 2022年 7月 26日 16:46
昵称(选填): 令狐

#26 Re: 从计算角度看clifford algebra

帖子 FoxMe »

有道理
Caravel 写了: 2024年 5月 4日 19:07 不行,你想象一下被旋转的是一个F,镜像的反的
FoxMe
著名点评
著名点评
帖子: 3387
注册时间: 2022年 7月 26日 16:46
昵称(选填): 令狐

#27 Re: 从计算角度看clifford algebra

帖子 FoxMe »

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,”
TheMatrix 写了: 2024年 5月 4日 20:42 嗯。spin group把V中的一个向量变成另一个向量,相当于旋转。那么在基向量表示下,spin group的元素什么样呢?比如是两个基向量e1e2,三个基向量e1e2e3,还是什么样。
Caravel楼主
论坛支柱
论坛支柱
Caravel 的博客
帖子: 12601
注册时间: 2022年 7月 24日 17:21

#28 Re: 从计算角度看clifford algebra

帖子 Caravel楼主 »

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,”
属实,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把很多不同的数学概念统一在一个框架里面。
Caravel楼主
论坛支柱
论坛支柱
Caravel 的博客
帖子: 12601
注册时间: 2022年 7月 24日 17:21

#29 Re: 从计算角度看clifford algebra

帖子 Caravel楼主 »

继续开头的例子,谈一谈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/4 *e1e2
nm = epi/4 *e1e2

x -> e-pi/4 *e1e2 x epi/4 *e1e2

也就是只要找到旋转平面里面两个角度为 theta/2的向量,就可以用来旋转空间任意vector。MultiVector也可以, 比如

xy -> RxR^(-1) RyR^(-1) = RxyR^(-1)
上次由 Caravel 在 2024年 5月 6日 21:25,总共编辑 1 次。
FoxMe
著名点评
著名点评
帖子: 3387
注册时间: 2022年 7月 26日 16:46
昵称(选填): 令狐

#31 Re: 从计算角度看clifford algebra

帖子 FoxMe »

哦,以前对为啥叫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,即要转两圈才回到原先的位置。
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把很多不同的数学概念统一在一个框架里面。
Caravel楼主
论坛支柱
论坛支柱
Caravel 的博客
帖子: 12601
注册时间: 2022年 7月 24日 17:21

#32 Re: 从计算角度看clifford algebra

帖子 Caravel楼主 »

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,即要转两圈才回到原先的位置。
double cover是因为两边夹逼,所以同时R取负不影响最后的rotation。
TheMatrix
论坛支柱
论坛支柱
TheMatrix 的博客
帖子: 9835
注册时间: 2022年 7月 26日 00:35

#33 Re: 从计算角度看clifford algebra

帖子 TheMatrix »

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)
学习了。这的确是CA的正确打开方式。
TheMatrix
论坛支柱
论坛支柱
TheMatrix 的博客
帖子: 9835
注册时间: 2022年 7月 26日 00:35

#34 Re: 从计算角度看clifford algebra

帖子 TheMatrix »

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)
旋转等于反射再反射,又等于一个“复”反射。有点玄妙。

这只在三维旋转中有效吧?SO(3)可以看成是以某一单位向量为旋转轴旋转一角度theta。SO(n)中有theta这个概念吗?
Caravel楼主
论坛支柱
论坛支柱
Caravel 的博客
帖子: 12601
注册时间: 2022年 7月 24日 17:21

#35 Re: 从计算角度看clifford algebra

帖子 Caravel楼主 »

TheMatrix 写了: 2024年 5月 5日 22:02 旋转等于反射再反射,又等于一个“复”反射。有点玄妙。

这只在三维旋转中有效吧?SO(3)可以看成是以某一单位向量为旋转轴旋转一角度theta。SO(n)中有theta这个概念吗?
高维应该是成立的,这时候的旋转还是一个二维平面上的旋转。cos(theta)可以用两个vector内积表示.
TheMatrix
论坛支柱
论坛支柱
TheMatrix 的博客
帖子: 9835
注册时间: 2022年 7月 26日 00:35

#36 Re: 从计算角度看clifford algebra

帖子 TheMatrix »

Caravel 写了: 2024年 5月 5日 22:12 高维应该是成立的,这时候的旋转还是一个二维平面上的旋转。cos(theta)可以用两个vector内积表示.
维度上好像也不成立:SO(n)是n(n-1)/2维。而两次反射需要找两个单位向量作为反射超平面的法向量,两个单位向量的维度是2(n-1),维度不够。
Caravel楼主
论坛支柱
论坛支柱
Caravel 的博客
帖子: 12601
注册时间: 2022年 7月 24日 17:21

#37 Re: 从计算角度看clifford algebra

帖子 Caravel楼主 »

TheMatrix 写了: 2024年 5月 5日 22:18 维度上好像也不成立:SO(n)是n(n-1)/2维。而两次反射需要找两个单位向量作为反射超平面的法向量,两个单位向量的维度是2(n-1),维度不够。
不是用一对矢量cover整个SO(n). 刚好有n(n-1)/2独立的矢量对, 就是n(n-1)/2独立的角度。

另外CA是用bivector表示旋转,这在高维有很大的优势,3d的情形也可以用旋转轴矢量表示,但是4d的时候,旋转轴就不唯一了,bivector更体现了旋转的本质。
FoxMe
著名点评
著名点评
帖子: 3387
注册时间: 2022年 7月 26日 16:46
昵称(选填): 令狐

#38 Re: 从计算角度看clifford algebra

帖子 FoxMe »

反射: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日 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把很多不同的数学概念统一在一个框架里面。
Caravel楼主
论坛支柱
论坛支柱
Caravel 的博客
帖子: 12601
注册时间: 2022年 7月 24日 17:21

#39 Re: 从计算角度看clifford algebra

帖子 Caravel楼主 »

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有限制吗?
都是共轭形式,但是旋转是定义在一个2d平面上的,需要两个向量确定,R是一个even grade member,2d空间的情形等价于复数,3d空间等价4元数。n是一个单位向量
FoxMe
著名点评
著名点评
帖子: 3387
注册时间: 2022年 7月 26日 16:46
昵称(选填): 令狐

#40 Re: 从计算角度看clifford algebra

帖子 FoxMe »

这里有个问题:

x -> e-pi/2 *e1e2 x epi/2 *e1e2, (e1e2)^2 = -1, 类似于复数i。那么不还是x吗?还是左乘右乘旋转方向不同,得90度?
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楼主
论坛支柱
论坛支柱
Caravel 的博客
帖子: 12601
注册时间: 2022年 7月 24日 17:21

#41 Re: 从计算角度看clifford algebra

帖子 Caravel楼主 »

FoxMe 写了: 2024年 5月 6日 17:42 这里有个问题:

x -> e-pi/2 *e1e2 x epi/2 *e1e2, (e1e2)^2 = -1, 类似于复数i。那么不还是x吗?还是左乘右乘旋转方向不同,得90度?
写错了了,45度是pi/4
回复

回到 “STEM”