云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 矩阵LU分解求逆详细分析与C语言实现

矩阵LU分解求逆详细分析与C语言实现

  • 62 次阅读
  • 3 次下载
  • 2025/6/8 3:09:46

(3)求A的逆矩阵

由式(10)可计算得到矩阵A的逆,如下:A?1?u?l??0.25?0.166667?0.125?4.5????00.3333300???000.5?2??1?2?????0004???3??1.916667??8.833334?3.666675.5?4.5????0.666670.3333300???5.333333?2.666673?2????7.6666673.33333?54??由程序计算出的结果如下:

01?20.8333300?00?10???1.251??9

2、C语言程序设计及测试 2.1 算法c程序实现

#include #include #define N 4 void main() { float a[N][N];

float L[N][N],U[N][N],out[N][N], out1[N][N];

float r[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)); int n=N; int k,i,j; int flag=1; float s,t;

////////////////////input a matrix//// printf(\ for(i=0;i

scanf(\//////////////////figure the input

matrix////////////////////////// printf(\输入矩阵:\\n\for(i=0;i

for(j=0;j

a[0][j]=a[0][j]; //计算U矩阵的第一行

for(i=1;i

a[i][0]=a[i][0]/a[0][0]; //计算L矩阵的第1列

for(k=1;k

for(j=k;j

for (i=0;i

10

s=s+a[k][i]*a[i][j]; //累加 a[k][j]=a[k][j]-s; //计算U矩阵的其他元素 }

for(i=k+1;i

for(j=0;j

t=t+a[i][j]*a[j][k]; //累加 a[i][k]=(a[i][k]-t)/a[k][k]; //计算L矩阵的其他元素 } }

for(i=0;ij)

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

{ U[i][j]=a[i][j];

if(i==j) L[i][j]=1; //否则如果i

if(U[1][1]*U[2][2]*U[3][3]*U[4][4]==0){

flag=0;

printf(\逆矩阵不存在\ if(flag==1){

/////////////////////求L和U矩阵的逆

for (i=0;i

for (k=i-1;k>=0;k--) {s=0;

for (j=k+1;j<=i;j++) s=s+U[k][j]*u[j][i];

u[k][i]=-s/U[k][k];//迭代计算,按列倒序依次得到每一个值, } }

for (i=0;i

for (k=i+1;k

r[k][i]=r[k][i]-L[k][j]*r[j][i]; //迭代计算,按列顺序依次得到每一个值 } }

/////////////////绘制矩阵LU分解后的L和U矩阵///////////////////////

printf(\分解后L矩阵:\ for(i=0;i

printf(\ }

printf(\分解后U矩阵:\ for(i=0;i

printf(\ }

printf(\

////////绘制L和U矩阵的逆矩阵 printf(\矩阵的逆矩阵:\ for(i=0;i

printf(\ }

printf(\矩阵的逆矩阵:\ for(i=0;i

printf(\ }

printf(\

//验证将L和U相乘,得到原矩阵 printf(\矩阵和U矩阵乘积\\n\ for(i=0;i

11

}

for(i=0;i

for(j=0;j

{out[i][j]+=L[i][k]*U[k][j];} } }

for(i=0;i

for(j=0;j

printf(\ }

//////////将r和u相乘,得到逆矩阵 printf(\原矩阵的逆矩阵:\\n\ for(i=0;i

2.2 数据测试 (1)非满秩矩阵

1>、整数矩阵

for(j=0;j

for(i=0;i

for(i=0;i

printf(\ } } }

12

搜索更多关于: 矩阵LU分解求逆详细分析与C语言实现 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

(3)求A的逆矩阵 由式(10)可计算得到矩阵A的逆,如下:A?1?u?l??0.25?0.166667?0.125?4.5????00.3333300???000.5?2??1?2?????0004???3??1.916667??8.833334?3.666675.5?4.5????0.666670.3333300???5.333333?2.666673?2????7.6666673.33333?54??由程序计算出的结果如下: 01?20.8333300?00?10???1.251??9 2、C语言程序设计及测试 2.1 算法c程序实现 #include #include #define N 4 void

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com