24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 836  |  回复: 3
当前主题已经存档。

lianyicheng

金虫 (小有名气)

[交流] 【求助】求QR分解的源程序! 已有2人参与

求QR分解的源程序!谢谢!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anyuezhiji

银虫 (正式写手)

星空行者


小木虫(金币+0.5):给个红包,谢谢回帖交流
建议多用用Google百度等搜索引擎
很多问题在网上都有答案的
引用回帖:
function [Q,R]=qrgv(A)
% 基于Givens变换,将方阵A分解为A=QR,其中Q为正交矩阵,R为上三角阵
%
% 参数说明
% A:需要进行QR分解的方阵
% Q:分解得到的正交矩阵
% R:分解得到的上三角阵
%
% 实例说明
% A=[-12 3 3;3 1 -2;3 -2 7];
% [Q,R]=qr(A) % 调用MATLAB自带的QR分解函数进行验证
% [q,r]=qrgv(A) % 调用本函数进行QR分解
% q*r-A % 验证 A=QR
% q'*q % 验证q的正交性
% norm(q) % 验证q的标准化,即二范数等于1
%
% 线性代数基础知识
% 1.B=P*A*inv(P),称A与B相似,相似矩阵具有相同的特征值
% 2.Q*Q'=I,称Q为正交矩阵,正交矩阵的乘积仍为正交矩阵
%
% by dynamic of Matlab技术论坛
% see also http://www.matlabsky.com
% contact me matlabsky@gmail.com
% 2010-01-17 22:51:18
%
n=size(A,1);
R=A;
Q=eye(n);
for i=1:n-1
    for j=2:n-i+1
        x=R(i:n,i);
        rt=givens(x,1,j);
        r=blkdiag(eye(i-1),rt);
        Q=Q*r';
        R=r*R;
    end
end
function [R,y]=givens(x,i,j)
% 求解标准正交的Given变换矩阵R,使用Rx=y,其中y(j)=0,y(i)=sqrt(x(i)^2+x(j)^2)
%
% 参数说明
% x:需要进行Givens变换的列向量
% i:变为sqrt(x(i)^2+x(j)^2)的元素下标
% j:变为0的元素的下标
% R:Givens变换矩阵
% y:Givens变换结果
%
% 实例说明
% x=[1 3 5 9 6]'; % 将3等效到9上
% [R,y]=givens(x,4,2) % 注意3的下标为2,9的下标为4
% R*x-y % 验证Rx=y
% R'*R % 验证正交性
% norm(R) % 验证标准性,就是范数为1
%
% 关于Givens变换说明
% 1.Givens矩阵是标准正交矩阵,也叫平面旋转矩阵,它是通过坐标旋转的原理将元素j的数值等效到元素i上
% 2.Givens变换每次只能将一个元素变为0,而Householder变换则一次可以将任意个元素变为0
% 3.Givens变换常用于将矩阵A变为对角阵
%
xi=x(i);
xj=x(j);
r=sqrt(xi^2+xj^2);
cost=xi/r;
sint=xj/r;
R=eye(length(x));
R(i,i)=cost;
R(i,j)=sint;
R(j,i)=-sint;
R(j,j)=cost;
y=x(;
y([i,j])=[r,0];

暗月下没有留下风的痕迹,但它已经寂然飘逝。。By<暗月之寂>:tiger38:
2楼2010-04-21 13:27:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anyuezhiji

银虫 (正式写手)

星空行者

这里还有个参考
引用回帖:
本帖由Matlab技术论坛原创,原帖参见http://www.matlabsky.com/thread-4851-1-1.html,转载请注明Matlab技术论坛原创

如果有任何问题、建议,或者更多资源、代码、视频,欢迎您访问专业的Matlab技术交流平台——Matlab技术论坛http://www.matlabsky.com

Wish my dear girl,healthy pretty and oveliness

2010-1-17 22:53:19

引用回帖:
function [Q,R]=qrhs(A)
% 基于Householder变换,将方阵A分解为A=QR,其中Q为正交矩阵,R为上三角阵
%
% 参数说明
% A:需要进行QR分解的方阵
% Q:分解得到的正交矩阵
% R:分解得到的上三角阵
%
% 实例说明
% A=[-12 3 3;3 1 -2;3 -2 7];
% [Q,R]=qr(A) % 调用MATLAB自带的QR分解函数进行验证
% [q,r]=qrhs(A) % 调用本函数进行QR分解
% q*r-A % 验证 A=QR
% q'*q % 验证q的正交性
% norm(q) % 验证q的标准化,即二范数等于1
%
% 线性代数基础知识
% 1.B=P*A*inv(P),称A与B相似,相似矩阵具有相同的特征值
% 2.Q*Q'=I,称Q为正交矩阵,正交矩阵的乘积仍为正交矩阵
%
% 注意:我们也可以基于Givens变换,对方阵A进行QR分解,但是相对繁琐些,参见http://www.matlabsky.com/thread-4850-1-1.html
%
% by dynamic of Matlab技术论坛
% see also http://www.matlabsky.com
% contact me matlabsky@gmail.com
% 2010-01-17 22:49:51
%
n=size(A,1);
R=A;
Q=eye(n);
for i=1:n-1
    x=R(i:n,i);
    y=[1;zeros(n-i,1)];
    Ht=householder(x,y);
    H=blkdiag(eye(i-1),Ht);
    Q=Q*H;
    R=H*R;
end
function [H,rho]=householder(x,y)
% 求解正交对称的Householder矩阵H,使Hx=rho*y,其中rho=-sign(x(1))*||x||/||y||
%
% 参数说明
% x:列向量
% y:列向量,x和y必须具有相同的维数
%
% 实例说明
% x=[3 5 6 8]';
% y=[1 0 0 0]';
% [H,rho]=householder(x,y);
% H*x-rho*y % 验证Hx=rho*y
% H'*H % 验证正交
%
% 关于HouseHolder变换
% 1.H=I-2vv',其中||v||=1,我们称H为反射(HouseHolder)矩阵,易证H对称且正交
% 2.如果||x||=||y||,那么存在HouseHolder矩阵H=I-2vv,其中v=±(x-y)/||x-y||,使Hx=y
% 3.如果||x||≠||y||,那么存在HouseHolder矩阵H,使Hx=rho*y,其中rho=-sign(x(1))*||x||/||y||
% 4.Householder矩阵,常用于将一个矩阵A通过正交变换对角阵
%
x=x(;
y=y(;
if length(x)~=length(y)
    error('The Column Vectors X and Y Must Have The Same Length!');
end
rho=-sign(x(1))*norm(x)/norm(y);
y=rho*y;
v=(x-y)/norm(x-y);
I=eye(length(x));
H=I-2*v*v';

暗月下没有留下风的痕迹,但它已经寂然飘逝。。By<暗月之寂>:tiger38:
3楼2010-04-21 13:30:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lianyicheng

金虫 (小有名气)

非常感谢啊!
4楼2010-04-21 14:03:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lianyicheng 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 265求调剂 +13 梁梁校校 2026-04-01 13/650 2026-04-03 08:55 by zhangdingwa
[考研] 285求调剂 +6 AZMK 2026-04-02 7/350 2026-04-03 08:53 by zhangdingwa
[考研] 一志愿南开大学0710生物学359求调剂 +6 兔兔兔111223314 2026-03-29 8/400 2026-04-02 22:37 by louise0220
[考研] 372分材料与化工(085600)一志愿湖南大学求调剂 +5 蓝笺片 2026-04-02 6/300 2026-04-02 21:37 by dongzh2009
[考研] 土木304求调剂 +4 兔突突突, 2026-04-02 5/250 2026-04-02 21:16 by 兔突突突,
[考研] 266分,一志愿电气工程,本科材料,求材料专业调剂 +7 哇呼哼呼哼 2026-04-02 7/350 2026-04-02 20:13 by yulian1987
[考研] 275学硕081000服从调剂到其他专业,保不住本专业了 +7 一只小小水牛 2026-04-02 8/400 2026-04-02 14:23 by alice-2022
[考研] 初试301,代码085701环境工程,本硕一致,四六级已过,有二区一作,共发表5篇论文 +6 axibli 2026-04-01 6/300 2026-04-02 13:42 by Ecowxq666!
[考研] 材料化工340求调剂 +5 jhx777 2026-03-30 5/250 2026-04-02 12:45 by smileboy2006
[考研] 一志愿北京理工大学本科211材料工程294求调剂 +8 mikasa的围巾 2026-03-28 9/450 2026-04-02 12:09 by ms629
[考研] 292分,材料与化工,申请调剂 +19 程晴之 2026-04-01 23/1150 2026-04-02 11:59 by 程晴之
[考研] 一志愿346上海大学生物学 +3 上海大学346调剂 2026-04-01 3/150 2026-04-02 08:36 by w虫虫123
[考研] 生物与医药考研调剂 +5 铁憨憨123425 2026-03-31 5/250 2026-04-01 18:01 by syh9288
[考研] 291求调剂 +3 迷蒙木木 2026-04-01 4/200 2026-04-01 11:07 by 逆水乘风
[考研] 318求调剂 +8 七忆77 2026-04-01 8/400 2026-04-01 10:37 by Jaylen.
[考研] 301求调剂 +8 axibli 2026-04-01 8/400 2026-04-01 09:51 by 我的船我的海
[考研] 求收留 +8 1943443204 2026-03-28 8/400 2026-03-31 15:00 by -迷了路啊路
[考研] 一志愿中海洋材料357 +4 麦恩莉. 2026-03-30 4/200 2026-03-31 14:35 by 记事本2026
[考研] 一志愿大连理工大学材料求调剂 +6 Gymno 2026-03-30 6/300 2026-03-31 07:26 by 无际的草原
[考研] 求佛 +7 迷人的哈哈 2026-03-28 7/350 2026-03-28 16:47 by 催化大白
信息提示
请填处理意见