为啥要用两个反射代替旋转?一个不行吗?
从reflection和rotation为例看clifford algebra
版主: verdelite, Tlexander
-
- 论坛支柱
Caravel 的博客 - 帖子: 12601
- 注册时间: 2022年 7月 24日 17:21
-
- 论坛支柱
TheMatrix 的博客 - 帖子: 9835
- 注册时间: 2022年 7月 26日 00:35
#23 Re: 从计算角度看clifford algebra
嗯。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完整地刻画了上面那个子集。
-
- 论坛支柱
Caravel 的博客 - 帖子: 12601
- 注册时间: 2022年 7月 24日 17:21
#24 Re: 从计算角度看clifford algebra
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完整地刻画了上面那个子集。
-
- 著名点评
- 帖子: 3387
- 注册时间: 2022年 7月 26日 16:46
- 昵称(选填): 令狐
-
- 著名点评
- 帖子: 3387
- 注册时间: 2022年 7月 26日 16:46
- 昵称(选填): 令狐
-
- 著名点评
- 帖子: 3387
- 注册时间: 2022年 7月 26日 16:46
- 昵称(选填): 令狐
#27 Re: 从计算角度看clifford algebra
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,”
“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 的博客 - 帖子: 12601
- 注册时间: 2022年 7月 24日 17:21
#28 Re: 从计算角度看clifford algebra
属实,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,”
基本型是
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 的博客 - 帖子: 12601
- 注册时间: 2022年 7月 24日 17:21
#29 Re: 从计算角度看clifford algebra
继续开头的例子,谈一谈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)
开头的例子举的例子是关于一条直线的反射,通常的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 次。
-
- 著名点评
- 帖子: 3387
- 注册时间: 2022年 7月 26日 16:46
- 昵称(选填): 令狐
#31 Re: 从计算角度看clifford algebra
哦,以前对为啥叫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,即要转两圈才回到原先的位置。
“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 的博客 - 帖子: 12601
- 注册时间: 2022年 7月 24日 17:21
-
- 论坛支柱
TheMatrix 的博客 - 帖子: 9835
- 注册时间: 2022年 7月 26日 00:35
#33 Re: 从计算角度看clifford algebra
学习了。这的确是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)
-
- 论坛支柱
TheMatrix 的博客 - 帖子: 9835
- 注册时间: 2022年 7月 26日 00:35
#34 Re: 从计算角度看clifford algebra
旋转等于反射再反射,又等于一个“复”反射。有点玄妙。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 的博客 - 帖子: 12601
- 注册时间: 2022年 7月 24日 17:21
-
- 论坛支柱
TheMatrix 的博客 - 帖子: 9835
- 注册时间: 2022年 7月 26日 00:35
-
- 论坛支柱
Caravel 的博客 - 帖子: 12601
- 注册时间: 2022年 7月 24日 17:21
-
- 著名点评
- 帖子: 3387
- 注册时间: 2022年 7月 26日 16:46
- 昵称(选填): 令狐
#38 Re: 从计算角度看clifford algebra
反射:x -> -nxn
旋转:x - > RxR^(-1),R是两个vector a, b 的geometry product ab
这里有点怪:x - > axa^(-1)不也是旋转吗(这里对a有限制,要保证axa^(-1)还在向量空间内)?为啥要两个向量a,b?对a,b有限制吗?
旋转: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 的博客 - 帖子: 12601
- 注册时间: 2022年 7月 24日 17:21
-
- 著名点评
- 帖子: 3387
- 注册时间: 2022年 7月 26日 16:46
- 昵称(选填): 令狐
#40 Re: 从计算角度看clifford algebra
这里有个问题:
x -> e-pi/2 *e1e2 x epi/2 *e1e2, (e1e2)^2 = -1, 类似于复数i。那么不还是x吗?还是左乘右乘旋转方向不同,得90度?
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 的博客 - 帖子: 12601
- 注册时间: 2022年 7月 24日 17:21