Givens變換


摘抄自《數值線性代數(徐樹方)》

Givens變換是一種將n維向量x在第(i,k)兩個維度確定的坐標平面內進行旋轉(從而將其中一個分量化0)的變換,因此它又叫平面旋轉變換。

Householder變換將一個向量中的若干個分量化0相比,Givens變換將向量的其中一個分量化0。

本篇先介紹Givens變換的定義及其性質,再推導一種用於求Givens變換的數值化方法

一、Givens變換的定義及性質

 定義:Givens變換有以下形式:

 

 

        公式1

 

 

 

 

其中:c=cosθ,s=sinθ ,易證G(i,k,θ)是一個正交矩陣。

公式1看起來有些復雜,但其實可以注意到G(i,k,θ)的構成十分簡單:將n×n的單位矩陣I在(i,i),(i,k),(k,i),(k,k)位置的元素替換成c,s,-s,c,從數值上看,G(i,k,θ)x的結果y

\[\left\{ \begin{array}{l}
{y_i} = c{x_i} + s{x_k}\\
{y_k} = - s{x_i} + c{x_k}\\
{y_j} = {x_j},j \ne i,k
\end{array} \right.\]

從幾何上看,G(i,k,θ)的效果實際上是將向量x沿k→i的角度旋轉了θ角度。

若要yk=0,只需取:

$c = \frac{{{x_i}}}{{\sqrt {x_i^2 + x_k^2} }},s = \frac{{{x_k}}}{{\sqrt {x_i^2 + x_k^2} }}$  公式2

為了避免溢出,實際上並不是按照公式2計算c和s,而是按照以下公式:

\[\left[ {\begin{array}{*{20}{c}}
c&s\\
{ - s}&c
\end{array}} \right]\left[ \begin{array}{l}
a\\
b
\end{array} \right] = \left[ \begin{array}{l}
r\\
0
\end{array} \right]\]

二、用於計算Givens變換的算法

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM