logo资料库

矩阵LU分解c语言实现源码.doc

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
C 语言课程设计 设计题目:矩阵 LU 分解 1、设计内容 用 C 语言实现矩阵的 lu 分解,该程序主要应用于矩阵分解,包括输 入一个方阵、输出输入的方针、对输入的方阵进行 ldu 分解、输出分解后 的结果。 2、设计目的 我的课题为《矩阵 lu 分解》,要求为输入一个方阵、输出输入的方针、 对输入的方阵进行 lu 分解、输出分解后的结果。 做这次设计是为了进一步巩固《C 语言程序设计》所学的知识,特别 加强数组,指针,结构体,文件数据类型的应用,熟悉面向过程的结构化 和面向对象可视化程序设计方法,培养结构化程序设计的思想,加深对高 级语言基本语言要素和控制结构的理解,锻炼程序设计的能力,以及 C 语 言解决实际问题的能力,为以后后续课程的学习打好基础。 3、设计思路
3.1、程序主要功能模块 3.1.1 输入一个方阵 应用二维数组输入一个方阵,并应用一个二维数组输出这个输入 的矩阵 3.1.2、计算过程 程序会对使用者输入的矩阵进行 LDU 分解,分别输出进行 LDU 分解后 的 L.D.U 可视性强。 程序由多个 for 语句组成,条理清晰,方便扩展,各个功能模块被主 函数组织起来,逐步进行,输出地结果清晰明了。 3.2、输出结果 3.3、调试分析 3.3.1、编写程序要规范 3.3.2、输入矩阵 输入矩阵时给让使用者有清晰的、明确的视觉感受,让使用者能够知 道自己输入的数据在矩阵中的位置,不至于输入错误! 4、程序代码 #include #define N 4 void main() { double a[N][N];//={{4,2,1,5},{8,7,2,10},{4,8,3,6},{12,6,11,20}}; double L[N][N],U[N][N],D[N][N]; int n=4; 1
int k,i,j; double s,t; printf("请输入一个方阵\n"); for(i=0;i
{ } a[0][j]=a[0][j];///////////////输出第一行作为 U 的第一行 for(i=1;i
t=t+a[k][j]*a[j][i]; } a[k][i]=(a[k][i]-t)/a[i][i]; } } for(i=0;ij) { L[i][j]=a[i][j]; U[i][j]=0; D[i][j]=0; } else { if(i
else L[i][j]=1; D[i][j]=a[i][j]; U[i][j]=1; { } } } } printf("\nL[N][N]="); ////////////////////////////输出 L 矩阵 for(i=0;i
5.2、输入一个 4*4 的矩阵,运行结果为: 5.3、进行 LDU 分解后,运行结果为: 7
分享到:
收藏