矩阵lu分解求逆详细分析与c语言实现

矩阵lu分解求逆详细分析与c语言实现

ID:14478006

大小:658.00 KB

页数:13页

时间:2018-07-28

矩阵lu分解求逆详细分析与c语言实现_第1页
矩阵lu分解求逆详细分析与c语言实现_第2页
矩阵lu分解求逆详细分析与c语言实现_第3页
矩阵lu分解求逆详细分析与c语言实现_第4页
矩阵lu分解求逆详细分析与c语言实现_第5页
资源描述:

《矩阵lu分解求逆详细分析与c语言实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、题目要求给定一个多维矩阵,实现该矩阵的求逆运算。1、理论分析矩阵的一种有效而广泛应用的分解方法是矩阵的LU三角分解,将一个n阶矩阵A分解为一个下三角矩阵L和一个上三角矩阵U的乘积。所以首先对矩阵进行三角分解,这里采用Doolittle分解,即分解为一个下三角矩阵(对角元素为1),和一个上三角矩阵的乘积。再进行相应的处理。所以,矩阵求逆的算法流程可表述如下:图1矩阵求逆流程图1)进行LU分解;132)对分解后的L阵(下三角矩阵)和U阵(上三角矩阵)进行求逆;;3)L阵的逆矩阵和U阵的逆矩阵相乘,即可求得原来矩阵的逆。即:(1)1.1矩阵的LU分解若n阶方阵的各阶顺序主子式不等于零,即:(2)则A

2、的LU分解存在且唯一。(3)由矩阵的乘法原理,可推导出LU分解的迭代算法(4)(5)(6)13(7)矩阵的LU分解是一个循环迭代的过程,U矩阵是从第1行迭代到第n行,而L矩阵则是从第1列迭代到第n列,且U矩阵先于L矩阵一个节拍。1.2L矩阵和U矩阵求逆首先假设下三角矩阵L的逆矩阵为,不失一般性,考虑4阶的情况,利用,有:(1),,;(2)(3)(4)。从而求得下三角矩阵L的逆矩阵R式如下:,(8)上三角矩阵U的逆矩阵可以由下式得到:。13,(9)矩阵求逆是一个迭代的过程,依次循环,迭代次,求出整个逆矩阵。其中U矩阵的循环迭代时按行顺序,列倒序进行,L矩阵的循环迭代按列顺序,行顺序进行,直到计算

3、出整个矩阵的所有结果为止。1.3矩阵相乘上三角矩阵U的逆矩阵u与下三角矩阵L的逆矩阵相乘,最终得到原始矩阵A的逆矩阵,完成整个矩阵求逆的过程。对于n阶矩阵相乘的迭代形式可表示如下:(10)1.4实例分析例:给定一4阶矩阵,通过LU分解求逆矩阵。解:算法过程为:,第一步:求LU矩阵13设,通过(4)~(7)式可逐步进行矩阵L和U中元素的计算,如下所示:经迭代计算,最后得到L和U矩阵为:13第二步:求L和U矩阵的逆,(1)求U矩阵的逆由式(9)可得矩阵U的逆的各元素计算如下:(2)求L矩阵的逆13由(8)式可得L矩阵的逆的各元素计算如下所以得到L和U的逆矩阵为:(3)求A的逆矩阵由式(10)可计算

4、得到矩阵A的逆,如下:13由程序计算出的结果如下:2、C语言程序设计及测试2.1算法c程序实现13#include#include#defineN4voidmain(){floata[N][N];floatL[N][N],U[N][N],out[N][N],out1[N][N];floatr[N][N],u[N][N];memset(a,0,sizeof(a));memset(L,0,sizeof(L));memset(U,0,sizeof(U));memset(r,0,sizeof(r));memset(u,0,sizeof(u));intn=N;int

5、k,i,j;intflag=1;floats,t;////////////////////inputamatrix////printf("inputA=");for(i=0;i

6、;j++)a[0][j]=a[0][j];//计算U矩阵的第一行for(i=1;i

7、(i=0;ij){L[i][j]=a[i][j];U[i][j]=0;}//如果i>j,说明行大于列,计算矩阵的下三角部分,得出L的值,U的//为0else{U[i][j]=a[i][j];if(i==j)L[i][j]=1;//否则如果i

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

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

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