从reflection和rotation为例看clifford algebra
版主: verdelite, TheMatrix
-
- 论坛元老
Caravel 的博客 - 帖子互动: 535
- 帖子: 24114
- 注册时间: 2022年 7月 24日 17:21
#1 从reflection和rotation为例看clifford algebra
一般的材料谈clifford algebra都是从抽象代数的角度,看了没有什么直观的感受。
这里我们从一个具体的算例来展示一下clifford algebra的用法。
clifford algebra,又称geometry algebra,指的是在一个vector space V,上面定义了一个geometry product,结果会在一个更大的vector space上面闭合。
开始举例,假设初始的vector space是二维的,有一组正交基 {e1, e2}, 则对于空间中的两个向量a, b可以定义geometry product
ab = a.b + a ^ b
根据这个定义,e1e1 = e2e2 = 1, 相同的单位矢量相乘为1
还有anti communitive 关系, e1e2 = -e2e1
新的空间有下面的basis, {1, e1, e2, e1e2}
rule定义完了,开始计算。
这里想计算的是reflection。clifford algebra声称自己可以非常自然的生成发射和旋转操作。假设有单位向量n,则空间中任意的向量x,可以被下面的操作对n做反射。
x -> nxn
这里面所有的product都是geometry product。
带入数字,假设n是 (1/sqrt(2) , 1/sqrt(2)) , x 是 (1,0),关于45度线反射之后应该是(0,1),看看这个公式行不行。
n = 1/sqrt(2) e1 + 1/sqrt(2) e2
x = e1
则xn = e1(1/sqrt(2) e1 + 1/sqrt(2) e2 )
= 1/sqrt(2) e1e1 + 1/sqrt(2) e1 e2
= 1/sqrt(2) + 1/sqrt(2) e1 e2
nxn = (1/sqrt(2) e1 + 1/sqrt(2) e2 ) (1/sqrt(2) + 1/sqrt(2) e1 e2 )
= 1/2 e1 + 1/2 e2 + 1/2e1 e1 e2 + 1/2 e2 e1 e2
= 1/2 e1 + 1/2 e2 + 1/2 e2 - 1/2 e1
= e2
看来是对的。
这个计算看上去并没有什么优势,但是好处是非常容易机械化,可以推广到高维空间的向量反射。旋转也是类似的情形。只要知道了旋转把一个矢量A转动到B,就可以空间中任意矢量的旋转表示出来。
就这么多,大家再议议。
这里我们从一个具体的算例来展示一下clifford algebra的用法。
clifford algebra,又称geometry algebra,指的是在一个vector space V,上面定义了一个geometry product,结果会在一个更大的vector space上面闭合。
开始举例,假设初始的vector space是二维的,有一组正交基 {e1, e2}, 则对于空间中的两个向量a, b可以定义geometry product
ab = a.b + a ^ b
根据这个定义,e1e1 = e2e2 = 1, 相同的单位矢量相乘为1
还有anti communitive 关系, e1e2 = -e2e1
新的空间有下面的basis, {1, e1, e2, e1e2}
rule定义完了,开始计算。
这里想计算的是reflection。clifford algebra声称自己可以非常自然的生成发射和旋转操作。假设有单位向量n,则空间中任意的向量x,可以被下面的操作对n做反射。
x -> nxn
这里面所有的product都是geometry product。
带入数字,假设n是 (1/sqrt(2) , 1/sqrt(2)) , x 是 (1,0),关于45度线反射之后应该是(0,1),看看这个公式行不行。
n = 1/sqrt(2) e1 + 1/sqrt(2) e2
x = e1
则xn = e1(1/sqrt(2) e1 + 1/sqrt(2) e2 )
= 1/sqrt(2) e1e1 + 1/sqrt(2) e1 e2
= 1/sqrt(2) + 1/sqrt(2) e1 e2
nxn = (1/sqrt(2) e1 + 1/sqrt(2) e2 ) (1/sqrt(2) + 1/sqrt(2) e1 e2 )
= 1/2 e1 + 1/2 e2 + 1/2e1 e1 e2 + 1/2 e2 e1 e2
= 1/2 e1 + 1/2 e2 + 1/2 e2 - 1/2 e1
= e2
看来是对的。
这个计算看上去并没有什么优势,但是好处是非常容易机械化,可以推广到高维空间的向量反射。旋转也是类似的情形。只要知道了旋转把一个矢量A转动到B,就可以空间中任意矢量的旋转表示出来。
就这么多,大家再议议。
上次由 Caravel 在 2024年 5月 5日 14:55 修改。
#2 Re: 从计算角度看clifford algebra
总结的很好。我也有两点体会:
1. 向量空间中,一般向量不能相乘(不包括平凡的点积)。如果实在想要相乘怎么办?最简单的方法是用tensor product,所以n维空间上定义的Clifford algebra的维数是2^n;但是这样乘法太没章法了,就加个条件,这就是geometry product。
2. Clifford algebra用来研究向量空间的正交群,看起来高大上。但是正交群的东西都可以用反射或旋转来实现,而这些操作也可以在向量空间内部实现,那么为啥还要搞Clifford algebra这么复杂的怪物呢?
1. 向量空间中,一般向量不能相乘(不包括平凡的点积)。如果实在想要相乘怎么办?最简单的方法是用tensor product,所以n维空间上定义的Clifford algebra的维数是2^n;但是这样乘法太没章法了,就加个条件,这就是geometry product。
2. Clifford algebra用来研究向量空间的正交群,看起来高大上。但是正交群的东西都可以用反射或旋转来实现,而这些操作也可以在向量空间内部实现,那么为啥还要搞Clifford algebra这么复杂的怪物呢?
-
- 论坛元老
Caravel 的博客 - 帖子互动: 535
- 帖子: 24114
- 注册时间: 2022年 7月 24日 17:21
#3 Re: 从计算角度看clifford algebra
tensor product太大,e1e1e1,e1e2e3也是一个基,于是往回收一收,两个相同的ei ei = 1,新空间的基不会太多。wiki上把clifford algebra叫做tensor代数的quotient algebra。FoxMe 写了: 2024年 5月 3日 17:59 总结的很好。我也有两点体会:
1. 向量空间中,一般向量不能相乘(不包括平凡的点积)。如果实在想要相乘怎么办?最简单的方法是用tensor product,所以n维空间上定义的Clifford algebra的维数是2^n;但是这样乘法太没章法了,就加个条件,这就是geometry product。
2. Clifford algebra用来研究向量空间的正交群,看起来高大上。但是正交群的东西都可以用反射或旋转来实现,而这些操作也可以在向量空间内部实现,那么为啥还要搞Clifford algebra这么复杂的怪物呢?
-
- 论坛支柱
2024年度优秀版主
TheMatrix 的博客 - 帖子互动: 262
- 帖子: 13199
- 注册时间: 2022年 7月 26日 00:35
#4 Re: 从计算角度看clifford algebra
新的空间({1, e1, e2, e1e2})是四维的啊。Caravel 写了: 2024年 5月 3日 16:40 一般的材料谈clifford algebra都是从抽象代数的角度,看了没有什么直观的感受。
这里我们从一个具体的算例来展示一下clifford algebra的用法。
clifford algebra,又称geometry algebra,指的是在一个vector space V,上面定义了一个geometry product,结果会在一个更大的vector space上面闭合。
开始举例,假设初始的vector space是二维的,有一组正交基 {e1, e2}, 则对于空间中的两个向量a, b可以定义geometry product
ab = a.b + a ^ b
根据这个定义,e1e1 = e2e2 = 1, 相同的单位矢量相乘为1
还有anti communitive 关系, e1e2 = -e2e1
新的空间有下面的basis, {1, e1, e2, e1e2}
rule定义完了,开始计算。
这里想计算的是reflection。clifford algebra声称自己可以非常自然的生成发射和旋转操作。假设有单位向量n,则空间中任意的向量x,可以被下面的操作对n做反射。
x -> nxn
这里面所有的product都是geometry product。
带入数字,假设n是 (1/sqrt(2) , 1/sqrt(2)) , x 是 (1,0),关于45度线反射之后应该是(0,1),看看这个公式行不行。
n = 1/sqrt(2) e1 + 1/sqrt(2) e2
x = e1
则xn = e1(1/sqrt(2) e1 + 1/sqrt(2) e2 )
= 1/sqrt(2) e1e1 + 1/sqrt(2) e1 e2
= 1/sqrt(2) + 1/sqrt(2) e1 e2
nxn = (1/sqrt(2) e1 + 1/sqrt(2) e2 ) (1/sqrt(2) + 1/sqrt(2) e1 e2 )
= 1/2 e1 + 1/2 e2 + 1/2e1 e1 e2 + 1/2 e2 e1 e2
= 1/2 e1 + 1/2 e2 + 1/2 e2 - 1/2 e1
= e2
看来是对的。
这个计算看上去并没有什么优势,但是好处是非常容易机械化,可以推广到高维空间的向量反射。旋转也是类似的情形。只要知道了旋转把一个矢量A转动到B,就可以空间中任意矢量的旋转表示出来。
就这么多,大家再议议。
你的reflection的例子好像是二维的。剩下的两维哪去了?
-
- 论坛元老
Caravel 的博客 - 帖子互动: 535
- 帖子: 24114
- 注册时间: 2022年 7月 24日 17:21
-
- 论坛支柱
2024年度优秀版主
TheMatrix 的博客 - 帖子互动: 262
- 帖子: 13199
- 注册时间: 2022年 7月 26日 00:35
-
- 论坛元老
Caravel 的博客 - 帖子互动: 535
- 帖子: 24114
- 注册时间: 2022年 7月 24日 17:21
-
- 论坛支柱
2024年度优秀版主
TheMatrix 的博客 - 帖子互动: 262
- 帖子: 13199
- 注册时间: 2022年 7月 26日 00:35
#9 Re: 从计算角度看clifford algebra
以正交基{e1,e2,...}的方式来看Clifford algebra,看来是正确的打开方式。Caravel 写了: 2024年 5月 3日 16:40 一般的材料谈clifford algebra都是从抽象代数的角度,看了没有什么直观的感受。
这里我们从一个具体的算例来展示一下clifford algebra的用法。
clifford algebra,又称geometry algebra,指的是在一个vector space V,上面定义了一个geometry product,结果会在一个更大的vector space上面闭合。
开始举例,假设初始的vector space是二维的,有一组正交基 {e1, e2}, 则对于空间中的两个向量a, b可以定义geometry product
ab = a.b + a ^ b
根据这个定义,e1e1 = e2e2 = 1, 相同的单位矢量相乘为1
还有anti communitive 关系, e1e2 = -e2e1
新的空间有下面的basis, {1, e1, e2, e1e2}
rule定义完了,开始计算。
这里想计算的是reflection。clifford algebra声称自己可以非常自然的生成发射和旋转操作。假设有单位向量n,则空间中任意的向量x,可以被下面的操作对n做反射。
x -> nxn
这里面所有的product都是geometry product。
带入数字,假设n是 (1/sqrt(2) , 1/sqrt(2)) , x 是 (1,0),关于45度线反射之后应该是(0,1),看看这个公式行不行。
n = 1/sqrt(2) e1 + 1/sqrt(2) e2
x = e1
则xn = e1(1/sqrt(2) e1 + 1/sqrt(2) e2 )
= 1/sqrt(2) e1e1 + 1/sqrt(2) e1 e2
= 1/sqrt(2) + 1/sqrt(2) e1 e2
nxn = (1/sqrt(2) e1 + 1/sqrt(2) e2 ) (1/sqrt(2) + 1/sqrt(2) e1 e2 )
= 1/2 e1 + 1/2 e2 + 1/2e1 e1 e2 + 1/2 e2 e1 e2
= 1/2 e1 + 1/2 e2 + 1/2 e2 - 1/2 e1
= e2
看来是对的。
这个计算看上去并没有什么优势,但是好处是非常容易机械化,可以推广到高维空间的向量反射。旋转也是类似的情形。只要知道了旋转把一个矢量A转动到B,就可以空间中任意矢量的旋转表示出来。
就这么多,大家再议议。
正交基的角度也比较接近组合的角度:一个n维欧几里得空间,固定一组正交基,也可以看成是n个symbol {e1,e2,...}。这n个symbol的组合空间
{
{e1,e2},
{e1,e2,e3},
...
}
总共有2n = Cn0+Cn1+Cn2...个元素。
这n个symbol的组合空间可以定义乘法:两个组合相乘,用换序和相消的规则:
(e1e2)(e1e2e3)
=e1e2e1e2e3
=-e1e1e2e2e3
=-e3
换序和相消的规则是从两个symbol之间的规则来的:
ab = a.b + a ^ b
比如e1.e1=1,e1^e1=0,所以e1e1=1
而e1.e2=0,e1^e2=-e2^e1,所以e1e2=-e2e1
然后n个symbol的组合空间,可以再加上系数进行线性组合,和polynomial很像:
5e1e2-3e1e2e3+4e1e3+...
这些元素在n个symbol的组合空间的乘法基础上可以相加和相乘,也和polynomial的相加相乘很像。这就构成了代数。这就是Clifford algebra。
-
- 论坛元老
Caravel 的博客 - 帖子互动: 535
- 帖子: 24114
- 注册时间: 2022年 7月 24日 17:21
#10 Re: 从计算角度看clifford algebra
这个规则很简单,可以推广到任意维度,用python实现估计200行就行了。Hamilton,Grassman这些人当初就是用简单的方式打开,后来才搞得越来越抽象。TheMatrix 写了: 2024年 5月 4日 13:06 以正交基{e1,e2,...}的方式来看Clifford algebra,看来是正确的打开方式。
正交基的角度也比较接近组合的角度:一个n维欧几里得空间,固定一组正交基,也可以看成是n个symbol {e1,e2,...}。这n个symbol的组合空间
{
{e1,e2},
{e1,e2,e3},
...
}
总共有2n = Cn0+Cn1+Cn2...个元素。
这n个symbol的组合空间可以定义乘法:两个组合相乘,用换序和相消的规则:
(e1e2)(e1e2e3)
=e1e2e1e2e3
=-e1e1e2e2e3
=-e3
换序和相消的规则是从两个symbol之间的规则来的:
ab = a.b + a ^ b
比如e1.e1=1,e1^e1=0,所以e1e1=1
而e1.e2=0,e1^e2=-e2^e1,所以e1e2=-e2e1
然后n个symbol的组合空间,可以再加上系数进行线性组合,和polynomial很像:
5e1e2-3e1e2e3+4e1e3...
这些元素在n个symbol的组合空间的乘法基础上可以相加和相乘,也和polynomial的相加相乘很像。这就构成了代数。这就是Clifford algebra。
里面的e1^e2^e2称为一个n-blade,最一般的形式是所有n-blade加起来,称之为multivector。一般的multivector不能写成n-blade的形式,这个和量子纠缠态的精神一样。
-
- 论坛元老
Caravel 的博客 - 帖子互动: 535
- 帖子: 24114
- 注册时间: 2022年 7月 24日 17:21
#11 Re: 从计算角度看clifford algebra
除了空间的维度,inner product也很重要,决定了是欧几里得空间,还是闵可夫司机时空。TheMatrix 写了: 2024年 5月 4日 13:06 以正交基{e1,e2,...}的方式来看Clifford algebra,看来是正确的打开方式。
正交基的角度也比较接近组合的角度:一个n维欧几里得空间,固定一组正交基,也可以看成是n个symbol {e1,e2,...}。这n个symbol的组合空间
{
{e1,e2},
{e1,e2,e3},
...
}
总共有2n = Cn0+Cn1+Cn2...个元素。
这n个symbol的组合空间可以定义乘法:两个组合相乘,用换序和相消的规则:
(e1e2)(e1e2e3)
=e1e2e1e2e3
=-e1e1e2e2e3
=-e3
换序和相消的规则是从两个symbol之间的规则来的:
ab = a.b + a ^ b
比如e1.e1=1,e1^e1=0,所以e1e1=1
而e1.e2=0,e1^e2=-e2^e1,所以e1e2=-e2e1
然后n个symbol的组合空间,可以再加上系数进行线性组合,和polynomial很像:
5e1e2-3e1e2e3+4e1e3+...
这些元素在n个symbol的组合空间的乘法基础上可以相加和相乘,也和polynomial的相加相乘很像。这就构成了代数。这就是Clifford algebra。
-
- 论坛支柱
2024年度优秀版主
TheMatrix 的博客 - 帖子互动: 262
- 帖子: 13199
- 注册时间: 2022年 7月 26日 00:35
#12 Re: 从计算角度看clifford algebra
嗯。x和n都必须是最开始的vector space V中的向量。也就是Clifford algebra中的一阶元素,也就是不能包含形如e1e2这样的分量。在这种条件下,nxn仍然回到V中,也就是nxn在Clifford algebra中仍然是一阶元素。Caravel 写了: 2024年 5月 3日 16:40
这里想计算的是reflection。clifford algebra声称自己可以非常自然的生成发射和旋转操作。假设有单位向量n,则空间中任意的向量x,可以被下面的操作对n做反射。
x -> nxn
这里面所有的product都是geometry product。
#13 Re: 从计算角度看clifford algebra
量子和Clifford有联系,感觉Clifford代数(2^n维)的操作可以用量子计算机实现(n个量子比特)。
Caravel 写了: 2024年 5月 4日 13:14 这个规则很简单,可以推广到任意维度,用python实现估计200行就行了。Hamilton,Grassman这些人当初就是用简单的方式打开,后来才搞得越来越抽象。
里面的e1^e2^e2称为一个n-blade,最一般的形式是所有n-blade加起来,称之为multivector。一般的multivector不能写成n-blade的形式,这个和量子纠缠态的精神一样。
#15 Re: 从计算角度看clifford algebra
n不一定在向量空间内,也可以在Clifford内。这样的n有一个专有名词: even Clifford algebra, 即它的偶部分(修改:只在quaternion的情况成立,一般情况只是偶部分的子集):
{n : n x n^{-1} \in V, for all x \in V}. (如果n的norm为1,那么n=n^{-1}, 也可以写成nxn)
比如上面的quaternion就是偶部分,可以用来做三维空间的旋转。在计算机图形学中,比用三维矩阵来做旋转要快。
感觉Clifford algebra的好处就这么一点点?用2^n维的工具来操作n维向量,杀鸡用牛刀?因为你能做的旋转/反射,我也能在向量空间内做,不需要Clifford algebra完全也能做到。感觉Clifford algebra的好处会随着n 增大而消失,因为2^n维实在太大了,除非你用量子计算机。
{n : n x n^{-1} \in V, for all x \in V}. (如果n的norm为1,那么n=n^{-1}, 也可以写成nxn)
比如上面的quaternion就是偶部分,可以用来做三维空间的旋转。在计算机图形学中,比用三维矩阵来做旋转要快。
感觉Clifford algebra的好处就这么一点点?用2^n维的工具来操作n维向量,杀鸡用牛刀?因为你能做的旋转/反射,我也能在向量空间内做,不需要Clifford algebra完全也能做到。感觉Clifford algebra的好处会随着n 增大而消失,因为2^n维实在太大了,除非你用量子计算机。
TheMatrix 写了: 2024年 5月 4日 16:10 嗯。x和n都必须是最开始的vector space V中的向量。也就是Clifford algebra中的一阶元素,也就是不能包含形如e1e2这样的分量。在这种条件下,nxn仍然回到V中,也就是nxn在Clifford algebra中仍然是一阶元素。
上次由 FoxMe 在 2024年 5月 5日 09:44 修改。
-
- 论坛元老
Caravel 的博客 - 帖子互动: 535
- 帖子: 24114
- 注册时间: 2022年 7月 24日 17:21
-
- 论坛支柱
2024年度优秀版主
TheMatrix 的博客 - 帖子互动: 262
- 帖子: 13199
- 注册时间: 2022年 7月 26日 00:35
#17 Re: 从计算角度看clifford algebra
Clifford algebra 的偶部分怎么定义的?是Clifford algebra的偶subalgebra,还是某一个偶subspace?FoxMe 写了: 2024年 5月 4日 17:13 n不一定在向量空间内,也可以在Clifford内。这样的n有一个专有名词: even Clifford algebra, 即它的偶部分:
even Clifford algebra = {n : n x n^{-1} \in V, for all x \in V}. (如果n的norm为1,那么n=n^{-1}, 也可以写成nxn)
比如上面的quaternion就是偶部分,可以用来做三维空间的旋转/反射。在计算机图形学中,比用三维矩阵来做旋转要快。
感觉Clifford algebra的好处就这么一点点?用2^n维的工具来操作n维向量,杀鸡用牛刀?因为你能做的旋转/反射,我也能在向量空间内做,不需要Clifford algebra完全也能做到。感觉Clifford algebra的好处会随着n 增大而消失,因为2^n维实在太大了,除非你用量子计算机。
even Clifford algebra = {n : n x n^{-1} \in V, for all x \in V}. 这个是定义还是定理?
#18 Re: 从计算角度看clifford algebra
就是偶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完整地刻画了上面那个子集。
>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日 17:27 Clifford algebra 的偶部分怎么定义的?是Clifford algebra的偶subalgebra,还是某一个偶subspace?
even Clifford algebra = {n : n x n^{-1} \in V, for all x \in V}. 这个是定义还是定理?
上次由 FoxMe 在 2024年 5月 5日 09:44 修改。
-
- 论坛元老
Caravel 的博客 - 帖子互动: 535
- 帖子: 24114
- 注册时间: 2022年 7月 24日 17:21
#19 Re: 从计算角度看clifford algebra
-
- 论坛元老
Caravel 的博客 - 帖子互动: 535
- 帖子: 24114
- 注册时间: 2022年 7月 24日 17:21
#20 Re: 从计算角度看clifford algebra
旋转的处理是clifford的精髓,用两个反射代替旋转的技巧是Hamilton想出来的。FoxMe 写了: 2024年 5月 4日 17:13 n不一定在向量空间内,也可以在Clifford内。这样的n有一个专有名词: even Clifford algebra, 即它的偶部分(修改:只在quaternion的情况成立,一般情况只是偶部分的子集):
{n : n x n^{-1} \in V, for all x \in V}. (如果n的norm为1,那么n=n^{-1}, 也可以写成nxn)
比如上面的quaternion就是偶部分,可以用来做三维空间的旋转/反射。在计算机图形学中,比用三维矩阵来做旋转要快。
感觉Clifford algebra的好处就这么一点点?用2^n维的工具来操作n维向量,杀鸡用牛刀?因为你能做的旋转/反射,我也能在向量空间内做,不需要Clifford algebra完全也能做到。感觉Clifford algebra的好处会随着n 增大而消失,因为2^n维实在太大了,除非你用量子计算机。