FORTRAN求解实数方阵的逆矩阵.doc

FORTRAN求解实数方阵的逆矩阵.doc

ID:55550385

大小:17.00 KB

页数:5页

时间:2020-05-16

FORTRAN求解实数方阵的逆矩阵.doc_第1页
FORTRAN求解实数方阵的逆矩阵.doc_第2页
FORTRAN求解实数方阵的逆矩阵.doc_第3页
FORTRAN求解实数方阵的逆矩阵.doc_第4页
FORTRAN求解实数方阵的逆矩阵.doc_第5页
资源描述:

《FORTRAN求解实数方阵的逆矩阵.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、PROGRAMMatrix_inv!定义动态数组REAL,ALLOCATABLE::X(:,:),L(:,:),U(:,:),y(:),z(:),inv_X(:,:)!定义矩阵的维数INTEGERN,I,JPRINT*,'请输入方阵的维数N'READ*,NALLOCATE(X(N,N))ALLOCATE(U(N,N))ALLOCATE(L(N,N))ALLOCATE(y(N))ALLOCATE(z(N))ALLOCATE(inv_X(N,N))!输入矩阵XPRINT*,'请确保矩阵可逆!'PRINT*,'请输入矩阵X',N,'行',N,'列'DOI=1,NPRINT*,'请输入第

2、',I,'行'READ*,X(I,:)ENDDO!将矩阵X进行LU分解CALLMatrix_LU(X,N,L,U)!求解逆矩阵DOI=1,NCALLcal_y(L,y,N,I)CALLcal_z(U,y,z,N)DOJ=1,Ninv_X(J,I)=z(J)ENDDOENDDO!打印结果DOI=1,NPRINT*,inv_X(I,:)ENDDO!======================================================================!!各子程序!!==========================================

3、============================!!子程序1=======LU分解CONTAINSSUBROUTINEMatrix_LU(X,N,L,U)REALL(N,N),U(N,N),X(N,N)INTEGERI,N,J,K,MDOI=1,NU(1,I)=X(1,I)L(I,1)=X(I,1)/U(1,1)ENDDO!求出U的第K行和U的第K列(K=2,3...N)DOK=2,NDOJ=K,NU(K,J)=X(K,J)DOM=1,K-1U(K,J)=U(K,J)-L(K,M)*U(M,J)ENDDOENDDOIF(N==2)THENEXITENDIFDOI=K+1,

4、NL(I,K)=X(I,K)DOM=1,K-1L(I,K)=L(I,K)-L(I,M)*U(M,K)ENDDOL(I,K)=L(I,K)/U(K,K)ENDDOENDDO!L矩阵的主对角线全为1DOI=1,NL(I,I)=1ENDDO!L为下三角,U为上三角DOI=1,NDOJ=1,NIF(IJ)THENU(I,J)=0ENDIFENDDOENDDOENDSUBROUTINEMatrix_LU!子程序2=======解Ly=b方程SUBROUTINEcal_y(L,y,N,K)REA

5、Ly(N),L(N,N),B(N)INTEGERI,J,N,KDOI=1,NB(I)=0ENDDOB(K)=1y(1)=B(1)DOI=2,Ny(I)=B(I)DOJ=1,I-1y(I)=y(I)-L(I,J)*y(J)ENDDOENDDOENDSUBROUTINEcal_y!子程序3=======解Uz=y方程SUBROUTINEcal_z(U,y,z,N)REALy(N),z(N),U(N,N)INTEGERI,J,Nz(N)=y(N)/U(N,N)DOI=N-1,1z(I)=y(I)DOJ=I+1,Nz(I)=z(I)-U(I,J)*z(J)ENDDOz(I)=z(I)/U

6、(I,I)ENDDOENDSUBROUTINEcal_zEND

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。