四元数系列3——利用实表示来实施一些简单的数值算法

前面介绍了四元数的定义以及什么是四元数的实保结构算法,接下来,我将介绍几个简单的利用实保结构算法的数值算法。

Givens变换

在数值算法中有一种算法叫做Givens变换,先简单介绍一下:
Givens变换是指形如:
在这里插入图片描述
的矩阵,其中 c , s ∈ R c,s\in\mathbb{R} c,sR满足 ∣ c ∣ 2 + ∣ s ∣ 2 = 1 |c|^2+|s|^2=1 c2+s2=1。有时我们亦称Givens变换为 ( i , j ) (i,j) (i,j)平面的平面旋转变换。显然, T i j = G ( i , j ; c , s ) T_{ij}=G(i,j;c,s) Tij=G(i,j;c,s)是一个正交阵。
x = ( ξ 1 , ξ 2 , . . . , ξ n ) T ∈ C n x=(\xi_1,\xi_2,...,\xi_n)^T\in \mathbb{C}^n x=(ξ1,ξ2,...,ξn)TCn。并设 y = G ( i , j ; c , s ) , x = ( η 1 , η 2 , . . . , η n ) T y=G(i,j;c,s), x=(\eta_1,\eta_2,...,\eta_n)^T y=G(i,j;c,s),x=(η1,η2,...,ηn)T。容易验证,当 ∣ ξ i ∣ 2 + ∣ η j ∣ 2 ≠ 0 |\xi_i|^2+|\eta_j|^2\ne0 ξi2+ηj2=0时,若取
c = ∣ ξ i ∣ ∣ ξ i ∣ 2 + ∣ ξ j ∣ 2 , s = ξ j ‾ ∣ ξ i ∣ 2 + ∣ ξ j ∣ 2 ξ i ∣ ξ i ∣ , c=\frac{|\xi_i|}{\sqrt{|\xi_i|^2+|\xi_j|^2}}, s=\frac{\overline{\xi_j}}{\sqrt{|\xi_i|^2+|\xi_j|^2}}\frac{\xi_i}{|\xi_i|}, c=ξi2+ξj2 ξi,s=ξi2+ξj2 ξjξiξi,
则有
η k = ξ k , k ≠ i , η i = ξ i ∣ ξ i ∣ ∣ ξ i ∣ 2 + ∣ ξ j ∣ 2 , η j = 0 , \eta_k=\xi_k,k\ne i, \eta_i=\frac{\xi_i}{|\xi_i|}\sqrt{|\xi_i|^2+|\xi_j|^2},\eta_j=0, ηk=ξk,k=i,ηi=ξiξiξi2+ξj2 ,ηj=0,
即可以通过Givens变换把向量 x x x的第j个分量化为零。
上面是在复数域上的Givens变换,同样适用于实数域上,但是是否可以运用在四元数域上呢?答案是可以的,不过如果直接运用四元数去求解 c c c s s s的话,会比较复杂,这里,我们可以运用实表示的方法来运用四元数Givens变换。
这里,我就直接给出实表示的 G G G的构造形式。
在这里插入图片描述
乍一看,这还有点小复杂,不过仔细端详一下,大家就可以发现这是符合实表示矩阵的结构的,即满足:
在这里插入图片描述
其中 1 ≤ l ≤ n , α 0 , α 1 , α 2 , α 3 ∈ [ − π / 2 , π / 2 ) 1\le l \le n,\alpha_0,\alpha_1,\alpha_2,\alpha_3\in[-\pi/2,\pi/2) 1ln,α0,α1,α2,α3[π/2,π/2)并且 cos ⁡ 2 α 0 + cos ⁡ 2 α 1 + cos ⁡ 2 α 2 + cos ⁡ 2 α 3 = 1 \cos^2{\alpha_0}+\cos^2{\alpha_1}+\cos^2{\alpha_2}+\cos^2{\alpha_3}=1 cos2α0+cos2α1+cos2α2+cos2α3=1。上述矩阵是 J R S JRS JRS正交辛矩阵。
注意到当 α 2 ≡ α 3 ≡ 0 \alpha_2 \equiv \alpha_3 \equiv 0 α2α30时,上述Givens变换矩阵 G l G_l Gl为一个 4 n × 4 n 4n\times 4n 4n×4n的辛Givens旋转。

上述的四元数表示的Givens矩阵,可以将一个四元数向量的第 l l l个元素化为0。
是不是很神奇呢,这里建议大家可以去用MATLAB变成实现一下,对该算法的理解会更加直观。

Householder变换

Householder变换是指如下形式的矩阵
H ( w ) = I − 2 w w ∗ , H(w)=I-2ww^*, H(w)=I2ww,
其中 w ∈ C n w\in\mathbb{C}^n wCn满足 w ∗ w = 1 w^*w=1 ww=1。容易验证Householder变换具有如下基本性质:

  1. d e t H ( w ) = − 1 detH(w)=-1 detH(w)=1;
  2. H ( w ) ∗ = H ( w ) = H ( w ) − 1 H(w)^*=H(w)=H(w)^{-1} H(w)=H(w)=H(w)1;
  3. 对任意 u ∈ w ⊥ u\in w^\bot uw,有
    H ( w ) ( u + β w ) = u − β w , β ∈ C ; H(w)(u+\beta w) = u-\beta w, \beta\in \mathbb{C}; H(w)(u+βw)=uβw,βC;
  4. a , b ∈ C n , a ≠ b a,b\in \mathbb{C}^n,a\ne b a,bCn,a=b,则存在Householder变换 H ( w ) H(w) H(w)使得 H ( w ) a = b H(w)a=b H(w)a=b成立的充分必要条件是
    a ∗ a = b ∗ b , a ∗ b = b ∗ a ; a^*a=b^*b, a^*b=b^*a; aa=bb,ab=ba;

并且在上述条件成立时,所需的向量w可取作
w = e i θ a − b ( a − b ) ∗ ( a − b ) , w=e^{i\theta}\frac{a-b}{\sqrt{(a-b)^*(a-b)}}, w=eiθ(ab)(ab) ab,
其中, θ \theta θ为任意实数。
**注:**有Householder变换的性质 ( 4 ) (4) (4)可知,对任给的
a = ( α 1 , α 2 , . . . , α n ) T ≠ 0 , a=(\alpha_1,\alpha_2,...,\alpha_n)^T\ne0, a=(α1,α2,...,αn)T=0,
若令
δ = { 1 , 当 α 1 = 0 时 , α 1 ‾ / ∣ α 1 ∣ , 当 α 1 时 , \delta=\left\{ \begin{matrix} 1, & \text{当}\alpha_1=0\text{时},\\ \overline{\alpha_1}/|\alpha_1|, & \text{当}\alpha_1\text{时}, \end{matrix} \right. δ={1,α1/α1,α1=0,α1,
并取
w = δ a + ∣ ∣ a ∣ ∣ 2 e 1 ( δ a + ∣ ∣ a ∣ ∣ 2 e 1 ) ∗ ( δ a + ∣ ∣ a ∣ ∣ 2 e 1 ) = δ a + ∣ ∣ a ∣ ∣ 2 e 1 2 ∣ ∣ a ∣ ∣ 2 ( ∣ ∣ a ∣ ∣ 2 + ∣ α 1 ∣ ) , w=\frac{\delta a+||a||_2e_1}{\sqrt{(\delta a+||a||_2e_1)^*(\delta a+||a||_2e_1)}}=\frac{\delta a+||a||_2e_1}{\sqrt{2||a||_2(||a||_2+|\alpha_1|)}}, w=(δa+a2e1)(δa+a2e1) δa+a2e1=2a2(a2+α1) δa+a2e1,
则有 H ( w ) a = − δ ‾ ∣ ∣ a ∣ ∣ 2 e 1 . H(w)a=-\overline{\delta}||a||_2e_1. H(w)a=δa2e1.而且当a是实向量时,这样得到的 H ( w ) H(w) H(w)是实对称正交矩阵。

好了,上面就是对于复数域以及实数域上的Householder变换的一个描述以及具体的求解方法,接下来,我们就看看如何运用实表示方法来表示四元数矩阵的Householder变换。
这里我们直接给出实表示的Householder矩阵:
在这里插入图片描述
其中 v v v是一个长度为 n n n且第 l − 1 l-1 l1个元素为0的向量, β \beta β是一个标量满足 β ( β v T v − 2 ) = 0 \beta(\beta v^Tv-2)=0 β(βvTv2)=0.

通过对该矩阵的观察,我们可以看到该矩阵是四个 n × n n\times n n×n的Householder矩阵的直和,同样的,该矩阵也是 J R S JRS JRS正交辛矩阵,且满足实表示矩阵的结构。

总结

到这里,我们就是简单介绍了如何用实表示的方法来对四元数矩阵来实施Givens变换和Householder变换,这两种变换在我看来是非常基础的,在后面的诸如保结构特征分解,保结构QR分解中都会用到。建议感兴趣的可以自己去编程实现一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值