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

{yi=cxi+sxkyk=sxi+cxkyj=xj,ji,k

从几何上看,G(i,k,θ)的效果实际上是将向量x沿k→i的角度旋转了θ角度。

若要yk=0,只需取:

c=xixi2+xk2,s=xkxi2+xk2  公式2

为了避免溢出,实际上并不是按照公式2计算c和s,而是按照以下公式:

[cssc][ab]=[r0]

二、用于计算Givens变换的算法

 

 

posted @   Reasno  阅读(7721)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示