📄 givens.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -