删除0的行向量而且从R0中删除对应的列向量然后
Q0中每个非0的行向量再除以其2
orm而R0中对应的列向量乘上此值则可得到Q单位垂直矩阵ortho
ormalmatrix与R上三角矩阵
uppertria
gular
例分解A1201
第三章第10
f113211321131
使得AQR
A1201113211321131m
sizeArkra
kARzerosrk
Qzerosmrki0给一些初值给一些初值fork11
vA1mkifvzerosm1ii1Rik
ormv填入上三角矩阵主对角上的元素填入上三角矩阵填入上三角矩阵主对角上的元素Q1miv
ormv填入垂直矩阵第i行向量填入垂直矩阵第forjk11
RijQ1miA1mj填入上三角矩阵第ij的元素填入上三角矩阵第ij的元素填入上三角矩阵第ijA1mjA1mjRijQ1mi计算Q第j行向量计算e
d内回圈for结束内回圈e
difblocke
d外回圈for结束外回圈QR列印QR列印QR
Q05000050000500005000R200000500002598100a
s1201131131134500025981012211000017321244950866002887028870288700000040820408208165
从a
sQR的结果得知我们分解成功
fu
ctio
函数函数Matlab的mfile与fu
ctio
函数
由于我们解题的指令趋于复杂因此亦可类似于写程式的方式将所需的指令存成一个档案即Matlab所谓的mfile然后再执行这个档案若发生错误则file修改档案之后再来执行例如我们把刚才利用GramSchmidtprocess分解Gram矩阵A的方法存成一个mfile其file
ame是qrdecompm在档案夹
第三章第11
fcmym_file之中下列指令说明其使用的方法c将档案夹cpathpathcmym_file将档案夹cmym_file加入在目前搜寻的路径中typeqrdecompm显示档案qrdecompm的内容在萤幕上执行档案qrdecomp注意不要打mqrdecomp注意不要打m注意
pathpathdmatlabprojmym_filetypeqrdecompm显示档案的内容
这个mfile采用GramSchmidtprocess来分解矩阵A使得QRAA1201113211321131m
sizeArkra
kARzerosrk
Qzerosmrki0给一些初值fork11
vA1mkifvzerosm1ii1Rik
ormv填入上三角矩阵主对角上的元素Q1miv
ormv填入垂直矩阵第i行向量forjk11
RijQ1miA1mj填入上三角矩阵第ij的元素A1mjA1mjQ1miRij计算Q第j行向量e
d内回圈for结束e
difblocke
d外回圈for结束QR
qrdecompQ05000050000500005000R20000000500025981008660028870288702887
执r