LU和QR分解法解线性方程组.doc

LU和QR分解法解线性方程组.doc

ID:49224996

大小:161.50 KB

页数:15页

时间:2020-03-01

LU和QR分解法解线性方程组.doc_第1页
LU和QR分解法解线性方程组.doc_第2页
LU和QR分解法解线性方程组.doc_第3页
LU和QR分解法解线性方程组.doc_第4页
LU和QR分解法解线性方程组.doc_第5页
资源描述:

《LU和QR分解法解线性方程组.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、LU和QR法解线性方程组一、问题描述求解方程组==,要求:1、编写用三角(LU)分解法求解线性方程组;2、编写用正交三角(QR)分解法求解线性方程组。二、问题分析求解线性方程组Ax=b,其实质就是把它的系数矩阵A通过各种变换成一个下三角或上三角矩阵,从而简化方程组的求解。因此,在求解线性方程组的过程中,把系数矩阵A变换成上三角或下三角矩阵显得尤为重要,然而矩阵A的变换通常有两种分解方法:LU分解法和QR分解法。1、LU分解法:将A分解为一个下三角矩阵L和一个上三角矩阵U,即:A=LU,其中L=,U=2、

2、QR分解法:将A分解为一个正交矩阵Q和一个上三角矩阵R,即:A=QR三、实验原理1、LU分解法解Ax=b的问题就等价于要求解两个三角形方程组: ⑴Ly=b,求y;   ⑵Ux=y,求x.设A为非奇异矩阵,且有分解式A=LU,L为单位下三角阵,U为上三角阵。L,U的元素可以有n步直接计算定出。用直接三角分解法解Ax=b(要求A的所有顺序主子式都不为零)的计算公式:①,,i=2,3,…,n.计算U的第r行,L的第r列元素(i=2,3,…,n): ②  ,i=r,r+1,…,n;③,i=r+1,…,n,且r≠

3、n.求解Ly=b,Ux=y的计算公式;④⑤1、QR分解法四、实验步骤1、LU分解法1>将矩阵A保存进计算机中,再定义2个空矩阵L,U以便保存求出的三角矩阵的值。利用公式①,②,③将矩阵A分解为LU,L为单位下三角阵,U为上三角阵。2>可知计算方法有三层循环。先通过公式①计算出U矩阵的第一行元素 和L矩阵的第一列元素。再根据公式②和③,和上次的出的值,求出矩阵其余的元素,每次都要三次循环,求下一个元素需要上一个结果。3>先由公式④,Ly=b求出y,因为L为下三角矩阵,所以由第一行开始求y.4>再由公式⑤,

4、Ux=y求出x,因为U为上三角矩阵,所以由最后一行开始求x.2、QR分解法四、程序流程图1、LU分解法2、QR分解法四、实验结果1、LU分解法2、QR分解法四、实验总结为了求解线性方程组,我们通常需要一定的解法。其中一种解法就是通过矩阵的三角分解来实现的,属于求解线性方程组的直接法。在不考虑舍入误差下,直接法可以用有限的运算得到精确解,因此主要适用于求解中小型稠密的线性方程组。1、三角分解法三角分解法是将A矩阵分解成一个上三角形矩阵U和一个下三角形矩阵L,这样的分解法又称为LU分解法。它的用途主要在简化

5、一个大矩阵的行列式值的计算过程,求反矩阵和求解联立方程组。不过要注意这种分解法所得到的上下三角形矩阵并非唯一,还可找到数个不同的一对上下三角形矩阵,此两三角形矩阵相乘也会得到原矩阵。2、QR分解法QR分解法是将矩阵分解成一个正规正交矩阵Q与上三角形矩阵R,所以称为QR分解法。在编写这两个程序过程中,起初遇到不少麻烦!虽然课上老师反复重复着:“算法不难的,It'ssoeasy!”但是当自己实际操作时,感觉并不是那么容易。毕竟是要把实际的数学问题转化为计算机能够识别的编程算法,所以在编写程序之前我们仔细认真

6、的把所求解的问题逐一进行详细的分析,最终转化为程序段。每当遇到问题时,大家或许有些郁闷,但最终还是静下心来反复仔细的琢磨,一一排除了错误,最终完成了本次实验。 回头一想原来编个程序其实也没有想象的那么复杂,只要思路清晰,逐步分析,就可以慢慢搞定了。通过这次实验,让我们认知到团队的作用力度是不容忽视的,以后不管干任何时都要注重团队合作,遇到不懂得不明白的大家一起讨论,越讨论越清晰,愈接近最优答案。这样不管干什么都能事半功倍。庆幸自己有这么个团队,也明白大家一起劳动的果实最珍贵。附源代码:LR分解法:#in

7、cludevoidinput_A();//输入矩阵Avoidinput_b();//输入矩阵bvoidoutput_x(floatx[4]);//输出方程组的根voidmain(){inti,k,r;floatA[4][4]={{4,2,1,5},{8,7,2,10},{4,8,3,6},{12,6,11,20}},b[4]={-2,-7,-7,-3},x[4],u[4][4],l[4][4],y[4];//给定的方程组//input_A();//input_b();//显示矩阵A、b

8、printf("矩阵A[4][4]:");for(i=0;i<4;i++){for(k=0;k<4;k++)printf("%-10f",A[i][k]);printf("");}for(i=0;i<4;i++)u[0][i]=A[0][i];for(i=0;i<4;i++){l[i][0]=A[i][0]/u[0][0];l[i][i]=1;}for(r=1;r<4;r++)//计算矩阵L和U{for(i=r;i<4;i++){f

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。