逆矩阵两种解法

逆矩阵两种解法

ID:19911017

大小:38.50 KB

页数:4页

时间:2018-10-07

逆矩阵两种解法_第1页
逆矩阵两种解法_第2页
逆矩阵两种解法_第3页
逆矩阵两种解法_第4页
资源描述:

《逆矩阵两种解法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、初等行变换求逆矩阵'******************************************************************************'初等变换法求逆矩阵'A()数组为输入变量,存放输入的矩阵'A1()数组为输出变量,存放A()的逆矩阵SubInverseMatrix(A(),A1())IfUBound(A,1)<>UBound(A,2)ThenMsgBox"逆矩阵不存在",vbInformation,"提示":ExitSub'判断矩阵是否为方阵,若不是则退出过程DimB(),N'B()存放A()矩阵与单位矩阵的增广矩阵N=UBoun

2、d(A)ReDimB(N,2*N)'求A与单位矩阵的增广矩阵Fori=1ToNForJ=1To2*NIfJ<=NThenB(i,J)=A(i,J)ElseIfJ-N=iThenB(i,J)=1ElseB(i,J)=0EndIfNextNext'将增广矩阵化为行最简形矩阵Fori=1ToN'判断增广矩阵左边的n阶矩阵的对角线上的元素,是否为零,若为零则进行行交换IfB(i,i)=0Then'若为零,则与该列的非零元素所对应的行进行交换ForJ=i+1ToNIfB(J,i)<>0Then'若该列有非零元素,则进行行交换ForI1=1To2*NC=B(i,I1)B(i,I1)=B(J,

3、I1)B(J,I1)=CNextExitForEndIfNext'若该列没有一个非零元素,即该列的元素全为零,则可知逆矩阵不存在IfJ=N+1ThenMsgBox"逆矩阵不存在",vbInformation,"提示":ExitSubEndIf'将每列,非对角线上的元素化为零ForJ=1ToNIfJ<>iThenIfB(J,i)<>0ThenH1=B(J,i)/B(i,i)ForJ1=iTo2*NB(J,J1)=B(J,J1)-H1*B(i,J1)NextEndIfEndIfNextNexti'将增广矩阵化为行最简形矩阵,并将其右边的逆矩阵赋给A1()数组Fori=1ToNk=B(

4、i,i)B(i,i)=B(i,i)/kForJ=N+1To2*NB(i,J)=B(i,J)/kA1(i,J-N)=B(i,J)NextNextEndSub'****************************************************************************二、伴随矩阵法求逆矩阵'****************************************************************************'本过程的作用是,求N阶矩阵的逆矩阵SubInverseMatrix1(A(),B())'A()存放n

5、阶矩阵,B()存放n阶矩阵的逆矩阵Dimi,J,I1,J1,C(),k,K1,HFori=1ToUBound(A)'求n阶矩阵每行上的元素ForJ=1ToUBound(A)'求n阶矩阵每列上的元素ReDimC(UBound(A)-1,UBound(A)-1)'C()存放n阶矩阵的余子式'一下代码作用是,去除n阶矩阵中第j行,第i列,并把其余子式存放在C()中ForI1=1ToUBound(A)IfI1=JThenk=1ElseForJ1=1ToUBound(A)IfJ1=iThenK1=1ElseC(I1-k,J1-K1)=A(I1,J1)EndIfNextK1=0EndIfNe

6、xtB(i,J)=(-1)^(i+J)*valOfDet(C)/valofDet(A)'B()存放N阶矩阵的逆矩阵中的各元素k=0:K1=0EraseCNextNextEndSub'*****************************************************************************'*****************************************************************************FunctionvalOfDet(A())'A()为存放n阶行列式的二维数组,valOfDet

7、存放行列式的值Dimg,i,J,N,B(),k,H,A1()'N为行列式的阶数N=UBound(A)ReDimA1(N,N)Fori=1ToNForJ=1ToNA1(i,J)=A(i,J)NextNext'对行列式的对角线下三角的每一行化零Forg=NTo2Step-1'求出第g行中有多少个不为零的数据,并把它存放在B()数组里Fori=1Tog-1IfA1(g,i)<>0ThenReDimPreserveB(k+1)B(k+1)=i'记录数据不为零的列数k=k+1EndIfNe

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

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

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