欢迎来到天天文库
浏览记录
ID:37457643
大小:318.00 KB
页数:10页
时间:2019-05-24
《LU分解程序部分全部》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验报告2:线性方程组的求解姓名:祁晓学号:08012325班级:勘查三班姓名:惠婉婷学号:08014122班级:勘查三班一.上机题目已知方程组为:x1-2*x2+2*x3=-2;2*x1-3*x2-3*x3=4;4*x1+x2+6*x3=3;分别用矩阵的三角分解法和高斯列主元消去法求方程组的解二.目的要求掌握用矩阵的三角分解法和高斯列主元消去法设计程序,从而实现对线性方程组的求解。三.方法原理1.高斯消去法是通过逐步消元的方法把原方程组化为等价的上三角形方程组,然后回代的求解过程。高斯列主元消去法是在高斯消去法第k步时,不取a[k][k]作为主元,而是取满足
2、a[r][k]
3、
4、=max
5、a[i][k]
6、(k<=i<=n)的a[r][k]作为主元,若有多个r满足则取最小的,然后再去交换第r行与第k行;最后利用高斯消元法求解。2.矩阵的三角分解法是方程组的系数矩阵A可以分解为一个下三角阵L和一个上三角阵U的乘积,即A=LU,则AX=b为LUX=b,根据Ly=b和UX=y求出方程组的解。其中求L,U的过程为:先计算U的第一行和L的第一列U[1][j]=a[1][j](1<=j<=n),L[i][1]=a[i][1]/U[1][1];然后根据U[k][j]=a[k][j]-∑L[k][r]*U[r][j](1<=r<=k-1;j=k,k+1,…n)和L[i]
7、[k]=(a[i][k]-∑L[i][r]*U[r][k])/U[k][k](1<=r8、:i=2时a[2][j]=L[2][1]*U[1][j]+L[2][2]*U[2][j]L[2][2]=1则U[2][j]=a[2][j]–L[2][1]*U[1][j](j=2,3,…n);L的第二列:j=2时a[i][2]=L[i][1]*U[1][2]]+L[i][2]*U[2][2]则L[i][2]=(a[i][2]-L[i][1]*U[1][2])/U[2][2](i=3,4,…n);Step3:假设已经进行了(k-1)步,得到了U的前k-1行和L的前k-1列,则计算U的第k行和L的第k列U的第k行:i=k时U[k][j]=a[k][j]-∑L[k][r]*U[r][9、j](1<=r<=k-1;j=k,k+1,…n)L的第k列:j=k时L[i][k]=(a[i][k]-∑L[i][r]*U[r][k])/U[k][k](1<=r10、a[i][k]11、(k<=i<=n);Step2:判断方程组是否适合使用该方法求解若a[r][k]12、于k,交换r,k行Step4:高斯消元求解过程消元过程:当k=0,i=1时,令a[1][0]=a[1][0]/a[0][0];b[1]=b[1]-a[1][0]*b[1];j=1时a[1][1]=a[1][1]-a[1][0]*a[0][1]当消元进行到第k次时,令a[k][k-1]=a[k][k-1]/a[k-1][k-1];b[k]=b[k]-a[k][k-1]*b[k];j=k时a[k][k]=a[k][k]-a[k][k-1]*a[k][k-1]回代求解过程:b[n-1]=b[n-1]/a[n-1][n-1];当k=n-1时,b[k]=(b[k]-∑a[k][j]*b[13、j])/a[k][k](k+1<=j<=n;k=n-1,n-2,...1);返回值b[k]即为所求解。五.C语言程序及变量说明<1>利用矩阵的三角分解法即LU分解法求解线性方程组的解程序部分:/*矩阵的三角分解法即Lu分解法*/#include#includeinti,j,k,r;doublem=0,p=0;doublea[3][3];voidlu(doublea[3][3]){for(i=1;i<=2;i++){if(a[0][0]!=0)a[i][0]=
8、:i=2时a[2][j]=L[2][1]*U[1][j]+L[2][2]*U[2][j]L[2][2]=1则U[2][j]=a[2][j]–L[2][1]*U[1][j](j=2,3,…n);L的第二列:j=2时a[i][2]=L[i][1]*U[1][2]]+L[i][2]*U[2][2]则L[i][2]=(a[i][2]-L[i][1]*U[1][2])/U[2][2](i=3,4,…n);Step3:假设已经进行了(k-1)步,得到了U的前k-1行和L的前k-1列,则计算U的第k行和L的第k列U的第k行:i=k时U[k][j]=a[k][j]-∑L[k][r]*U[r][
9、j](1<=r<=k-1;j=k,k+1,…n)L的第k列:j=k时L[i][k]=(a[i][k]-∑L[i][r]*U[r][k])/U[k][k](1<=r10、a[i][k]11、(k<=i<=n);Step2:判断方程组是否适合使用该方法求解若a[r][k]12、于k,交换r,k行Step4:高斯消元求解过程消元过程:当k=0,i=1时,令a[1][0]=a[1][0]/a[0][0];b[1]=b[1]-a[1][0]*b[1];j=1时a[1][1]=a[1][1]-a[1][0]*a[0][1]当消元进行到第k次时,令a[k][k-1]=a[k][k-1]/a[k-1][k-1];b[k]=b[k]-a[k][k-1]*b[k];j=k时a[k][k]=a[k][k]-a[k][k-1]*a[k][k-1]回代求解过程:b[n-1]=b[n-1]/a[n-1][n-1];当k=n-1时,b[k]=(b[k]-∑a[k][j]*b[13、j])/a[k][k](k+1<=j<=n;k=n-1,n-2,...1);返回值b[k]即为所求解。五.C语言程序及变量说明<1>利用矩阵的三角分解法即LU分解法求解线性方程组的解程序部分:/*矩阵的三角分解法即Lu分解法*/#include#includeinti,j,k,r;doublem=0,p=0;doublea[3][3];voidlu(doublea[3][3]){for(i=1;i<=2;i++){if(a[0][0]!=0)a[i][0]=
10、a[i][k]
11、(k<=i<=n);Step2:判断方程组是否适合使用该方法求解若a[r][k]12、于k,交换r,k行Step4:高斯消元求解过程消元过程:当k=0,i=1时,令a[1][0]=a[1][0]/a[0][0];b[1]=b[1]-a[1][0]*b[1];j=1时a[1][1]=a[1][1]-a[1][0]*a[0][1]当消元进行到第k次时,令a[k][k-1]=a[k][k-1]/a[k-1][k-1];b[k]=b[k]-a[k][k-1]*b[k];j=k时a[k][k]=a[k][k]-a[k][k-1]*a[k][k-1]回代求解过程:b[n-1]=b[n-1]/a[n-1][n-1];当k=n-1时,b[k]=(b[k]-∑a[k][j]*b[13、j])/a[k][k](k+1<=j<=n;k=n-1,n-2,...1);返回值b[k]即为所求解。五.C语言程序及变量说明<1>利用矩阵的三角分解法即LU分解法求解线性方程组的解程序部分:/*矩阵的三角分解法即Lu分解法*/#include#includeinti,j,k,r;doublem=0,p=0;doublea[3][3];voidlu(doublea[3][3]){for(i=1;i<=2;i++){if(a[0][0]!=0)a[i][0]=
12、于k,交换r,k行Step4:高斯消元求解过程消元过程:当k=0,i=1时,令a[1][0]=a[1][0]/a[0][0];b[1]=b[1]-a[1][0]*b[1];j=1时a[1][1]=a[1][1]-a[1][0]*a[0][1]当消元进行到第k次时,令a[k][k-1]=a[k][k-1]/a[k-1][k-1];b[k]=b[k]-a[k][k-1]*b[k];j=k时a[k][k]=a[k][k]-a[k][k-1]*a[k][k-1]回代求解过程:b[n-1]=b[n-1]/a[n-1][n-1];当k=n-1时,b[k]=(b[k]-∑a[k][j]*b[
13、j])/a[k][k](k+1<=j<=n;k=n-1,n-2,...1);返回值b[k]即为所求解。五.C语言程序及变量说明<1>利用矩阵的三角分解法即LU分解法求解线性方程组的解程序部分:/*矩阵的三角分解法即Lu分解法*/#include#includeinti,j,k,r;doublem=0,p=0;doublea[3][3];voidlu(doublea[3][3]){for(i=1;i<=2;i++){if(a[0][0]!=0)a[i][0]=
此文档下载收益归作者所有