实验六报告6LU分解

上传人:我*** 文档编号:136123455 上传时间:2020-06-24 格式:DOC 页数:6 大小:31KB
返回 下载 相关 举报
实验六报告6LU分解_第1页
第1页 / 共6页
实验六报告6LU分解_第2页
第2页 / 共6页
实验六报告6LU分解_第3页
第3页 / 共6页
实验六报告6LU分解_第4页
第4页 / 共6页
实验六报告6LU分解_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《实验六报告6LU分解》由会员分享,可在线阅读,更多相关《实验六报告6LU分解(6页珍藏版)》请在金锄头文库上搜索。

1、实验六 解线性方程组的直接法LU分解实验目的:1、了解LU分解的数学依据与基本原理; 2、能熟练地应用、构造矩阵的LU分解程序求解方程组。实验内容:根据LU分解的原理与公式自己填写实验题目: (1)编写程序写出下面系数矩阵的LU分解 (2) 编程序,分别用LU分解法与主元素消去法解方程组第一题: #include#includevoid main()float a33=2,2,3,4,5,7,-2,4,5;float L33,U33;int n=3;int k,i,j;float s,t;for(j=0;jn;j+)a0j=a0j;for(i=1;in;i+)ai0=ai0/a00;for(k

2、=1;kn;k+)for(j=k;jn;j+)s=0;for (i=0;ik;i+)s=s+aki*aij;akj=akj-s;for(i=k+1;in;i+)t=0;for(j=0;jk;j+)t=t+aij*ajk;aik=(aik-t)/akk;for(i=0;in;i+)for(j=0;jj) Lij=aij; Uij=0;else Uij=aij;if(i=j) Lij=1;else Lij=0;printf(L33=n);for(i=0;in;i+) for(j=0;jn;j+)printf( %0.0f,Lij);printf(n);printf(U33=n);for(i=0;i

3、n;i+) for(j=0;jn;j+)printf( %0.0f,Uij);printf(n);第二题:#include #include #define N 10 /矩阵大小范围 /求x回调函数float getmx(float aNN, float xN, int i, int n) float mx = 0; int r; for(r=i+1; rn; r+) mx += air * xr; return mx; /求y回调函数 float getmy(float aNN, float yN, int i, int n) float my = 0; int r; for(r=0; rN

4、) printf(矩阵过大!n); continue; flag=0; printf(请输入系数矩阵值:n); for(i=1; in+1; i+) for(j=1; jn+1; j+) printf(a%d%d: , i, j); scanf(%f, &aij); printf(请输入右端项数组:n); for(i=1; in+1; i+) printf(b%d: , i); scanf(%f, &bi); /初始化矩阵l for(i=0; in; i+) for(j=0; jn; j+) if(i=j) lij = 1; /LU分解 for(i=0; in; i+) u0i = (floa

5、t)(a0i/l00); for(i=0; in-1; i+) for(j=i+1; jn; j+) for(k=0,sum=0; kn; k+) if(k != i) sum += ljk*uki; lji = (float)(aji-sum)/uii); for(j=i+1; jn; j+) for(k=0,sum=0; kn; k+) if(k != i+1) sum += li+1k*ukj; ui+1j = (float)(ai+1j-sum); /回代方式计算数组 for(i=0; i=0; i-) xi = getx(u,y,x,i,n); /显示数组X即结果 printf(nn方程组解X:n); for(i=0; in; i+) printf(x%d = %0.3fn, i+1,xi);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号