如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
矩阵的LU分解(完整版)实用资料(可以直接使用,可编辑完整版实用资料,欢迎下载)矩阵的LU分解/**矩阵的LU分解**TofactorthenbynmatrixA=(A(I,J))intotheproductofthe*lowertriangularmatrixL=(L(I,J))andU=(U(I,J)),thatis*A=LU,wherethemaindiagonalofeitherLorUconsistsofallones:**INPUT:dimensionn;theentriesA(I,J),1<=I,J<=n,ofA;*thediagonalL(1,1),...,L(N,N)ofLorthediagonal*U(1,1),...,U(N,N)ofU.**OUTPUT:theentriesL(I,J),1<=J<=I,1<=I<=nofLandtheentries*U(I,J),I<=J<=n,1<=I<=nofU.*/1.C语言版***************************************************************************************#include#include#defineZERO1.0E-20#definetrue1#definefalse0doubleabsval(double);voidINPUT(int*,double[][10],int*,int*);voidOUTPUT(int,double[][10],int);main(){doubleA[10][10],XL[10];doubleS,SS;intN,M,I,J,ISW,JJ,K,KK,OK;INPUT(&OK,A,&N,&ISW);if(OK){for(I=1;I<=N;I++)XL[I-1]=1.0;/*STEP1*/if(absval(A[0][0])<=ZERO)OK=false;else{/*theentriesofLbelowthemaindiagonalwillbeplacedinthecorrespondingentriesofA;theentriesofUabovethemaindiagonalwillbeplacedinthecorrespondingentriesofA;themaindiagonalwhichwasNOTinputwillbecomethemaindiagonalofA;theinputmaindiagonalofLorUis,ofcourse,placedinXL.*/A[0][0]=A[0][0]/XL[0];/*STEP2*/for(J=2;J<=N;J++){if(ISW==0){/*firstrowofU*/A[0][J-1]=A[0][J-1]/XL[0];/*firstcolumnofL*/A[J-1][0]=A[J-1][0]/A[0][0];}else{/*firstrowofU*/A[0][J-1]=A[0][J-1]/A[0][0];/*firstcolumnofL*/A[J-1][0]=A[J-1][0]/XL[0];}}/*STEP3*/M=N-1;I=2;while((I<=M)&&OK){/*STEP4*/KK=I-1;S=0.0;for(K=1;K<=KK;K++)S=S-A[I-1][K-1]*A[K-1][I-1];A[I-1][I-1]=(A[I-1][I-1]+S)/XL[I-1];if(absval(A[I-1][I-1])<=ZERO)OK=false;else{/*STEP5*/JJ=I+1;for(J=JJ;J<=N;J++){SS=0.0;S=0.0;for(K=1;K<=KK;K++){SS=SS-A[I-1][K-1]*A[K-1][J-1];S=S-A[J-1][K-1]*A[K-1][I-1];}if(ISW==0){/*IthrowofU*/A[I-1][J-1]=(A[I-1][J-1]+SS)/XL[I-1];/*IthcolumnofL*/A[J-1][I-1]=(A[J-1][I-1]+S)/A[I-1][I-1];}else{/*IthrowofU*/A[I-1][J-1]=(A[I-1][J-1]+SS)/A[I-1][I-1];/*IthcolumnofL*/A[J-1][I-1]=(A[J-1][I-1]+S)/XL[I-1];}}}I++;}if(OK){/*S