givens.m
来自「Givens transformation是向量的旋转变换。它可将被变换向量旋转」· M 代码 · 共 42 行
M
42 行
function [c,s,p] = givens(x)
% 本程序的功能是将二元列向量x的坐标平面旋转,使x(2)=0,即:
% [c s][x(1)] [r]
% [-s c][x(2)]=[0], r = (x(1)^2 + x(2)^2)^0.5
%
% Data: 2/4/2008
% Version 1.0
% Copyright (C) 2008, Yang Chun
%
% 输入 - x 为二元列向量
% 输出 - c 为坐标平面逆时针旋转角度θ的余弦cos(θ)
% - s 为坐标平面逆时针旋转角度θ的正弦sin(θ)
if x(2) == 0
c = 1;
s = 0;
else
if abs(x(2))>abs(x(1))
r = x(1)/x(2);
s = 1/(1+r^2)^0.5;
c = s*r;
else
r = x(2)/x(1);
c = 1/(1+r^2)^0.5;
s = c*r;
end
end
% 计算Givens变换存储因子
if c == 0
p = 1;
elseif abs(s) < abs(c)
p = sign(c)*s/2;
else
p = 2*sign(s)/c;
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?