欢迎来到天天文库
浏览记录
ID:44934762
大小:116.75 KB
页数:7页
时间:2019-11-05
《列主元LU消去法报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、列主元LU消去法实验报告专业班级学号姓名一、实验内容和要求用列主元LU消去法解线性方程组Ax=b,其中A是非奇异矩阵。用编织出来的程序,求解线性方程组Ax=b方程如下:1-132-464-92x1x2x2=141;二、算法说明LU分解算法步骤(1)forj=1ton+1//计算U的第一行元素u1j=a1j(2)fori=2ton//计算L的第一列元素li1=ai1/u11(3)fork=2ton{forj=kton+1//计算U的第k行元素ukj=akj-q=1k-1lkquqjFori=k+1
2、ton//计算L的第K列元素lik=lik-q=1k-1liquqkuik}//完成LU分解并计算出y(4)fork=nto1//解方程组Ux=yxk=uik-q=1k-1liquqkuik(5)参数传递:方程组阶数,系数矩阵和常向量forj=1ton+1//计算U的第1行元素fori=2ton//计算L的第1列元素 fork=2ton{ if时{,//列主元forj=k+1ton+1//计算U的第k行元素 }else//k=n,只有 不需选主元 forj=n
3、ton+1//计算U的第n行元素 fori=k+1ton//计算L的第k列元素}//完成LU分解并计算出yfork=nto1//解方程组 返回方程组的解一、源程序#include#include#defineN10floatgetmx(floata[N][N],floatx[N],inti,intn){floatmx=0;intr;for(r=i+1;r4、tgetmy(floata[N][N],floaty[N],inti,intn){floatmy=0;intr;for(r=0;r5、,x,i,n))/a[i][i]);returnresult;}floatgety(floata[N][N],floatb[N],floaty[N],inti,intn){floatresult;if(i==0)result=float(b[i]/a[i][i]);elseresult=float((b[i]-getmy(a,y,i,n))/a[i][i]);returnresult;}voidmain(){floatl[N][N]={0};floatu[N][N]={0};floaty[N]=6、{0};floatx[N]={0};floata[N][N];floatb[N];floatsum=0;inti,j,k;intn;intflag=1;while(flag){printf("请输入系数矩阵的大小:");scanf("%d",&n);if(n>N){printf("矩阵过大!");continue;}flag=0;}printf("请输入系数矩阵值:");for(i=0;i7、tf("请输入右端项数组:");for(i=0;i8、l[j][i]=(float)((a[j][i]-sum)/u[i][i]);}for(j=i+1;j=0;i--){x[i]=getx(u,y,x,i,n);}printf("数组X:
4、tgetmy(floata[N][N],floaty[N],inti,intn){floatmy=0;intr;for(r=0;r5、,x,i,n))/a[i][i]);returnresult;}floatgety(floata[N][N],floatb[N],floaty[N],inti,intn){floatresult;if(i==0)result=float(b[i]/a[i][i]);elseresult=float((b[i]-getmy(a,y,i,n))/a[i][i]);returnresult;}voidmain(){floatl[N][N]={0};floatu[N][N]={0};floaty[N]=6、{0};floatx[N]={0};floata[N][N];floatb[N];floatsum=0;inti,j,k;intn;intflag=1;while(flag){printf("请输入系数矩阵的大小:");scanf("%d",&n);if(n>N){printf("矩阵过大!");continue;}flag=0;}printf("请输入系数矩阵值:");for(i=0;i7、tf("请输入右端项数组:");for(i=0;i8、l[j][i]=(float)((a[j][i]-sum)/u[i][i]);}for(j=i+1;j=0;i--){x[i]=getx(u,y,x,i,n);}printf("数组X:
5、,x,i,n))/a[i][i]);returnresult;}floatgety(floata[N][N],floatb[N],floaty[N],inti,intn){floatresult;if(i==0)result=float(b[i]/a[i][i]);elseresult=float((b[i]-getmy(a,y,i,n))/a[i][i]);returnresult;}voidmain(){floatl[N][N]={0};floatu[N][N]={0};floaty[N]=
6、{0};floatx[N]={0};floata[N][N];floatb[N];floatsum=0;inti,j,k;intn;intflag=1;while(flag){printf("请输入系数矩阵的大小:");scanf("%d",&n);if(n>N){printf("矩阵过大!");continue;}flag=0;}printf("请输入系数矩阵值:");for(i=0;i7、tf("请输入右端项数组:");for(i=0;i8、l[j][i]=(float)((a[j][i]-sum)/u[i][i]);}for(j=i+1;j=0;i--){x[i]=getx(u,y,x,i,n);}printf("数组X:
7、tf("请输入右端项数组:");for(i=0;i8、l[j][i]=(float)((a[j][i]-sum)/u[i][i]);}for(j=i+1;j=0;i--){x[i]=getx(u,y,x,i,n);}printf("数组X:
8、l[j][i]=(float)((a[j][i]-sum)/u[i][i]);}for(j=i+1;j=0;i--){x[i]=getx(u,y,x,i,n);}printf("数组X:
此文档下载收益归作者所有