




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——vb逆矩陣的求法逆矩陣的求法
?a11?設(shè)A?a21???a31a12a22a32a13?a23??是一個三階方陣,假使存在三階方陣B滿足AB=E,E是三階a33???1?1單位矩陣,那么B稱為A的逆矩陣,記為A。求矩陣A的逆矩陣A可以用初等變換,也可以用公式.
1,公式法
矩陣A的逆A可由公式1求得
?1A*(公式1)A?A?1在公式1中分母A是矩陣A的行列式,分子A是矩陣A的伴隨矩陣。矩陣的A的行列式
*
A可由公式2得到
a11a21a31a12a22a32a13a23?a11(a22a33?a23a32)?a13(a21a32?a22a31)?a22(a11a33?a13a31)a33a31(a12a23?a13a22)?a33(a11a22?a12a21)?[a12(a21a33?a23a31)(公式2)?a21(a12a33?a13a32)?a23(a11a32?a12a31)?a32(a11a23?a13a21)]矩陣A的伴隨矩陣A由以下公式3給出
*
b11b12b13b23(公式3)
b33A*?b21b22b31b32*
在如公式3中所示的伴隨矩陣A的每個元素計算公式如公式4所示,
b11?a22a33?a23a32b12??(a12a33?a13a32)b13?a12a23?a13a22b21??(a21a33?a23a31)b22?a11a33?a13a31b23??(a11a23?a13a21)b31?a21a32?a22a31b32??(a11a32?a12a31)b33?a11a22?a12a21''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''模塊名:MatrixModule.bas'函數(shù)名:MCinv
'功能:實矩陣求逆的全選主元高斯-約當法'參數(shù):n-Integer型變量,矩陣的階數(shù)
'mtxAR-Double型二維數(shù)組,體積為nxn。存放原矩陣A的實部;返回時存放其逆矩陣A-的實部。'mtxAI-Double型二維數(shù)組,體積為nxn。存放原矩陣A的虛部;返回時存放其逆矩陣A-的虛部。'返回值:Boolean型,失敗為False,成功為True
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''FunctionMCinv(nAsInteger,mtxAR()AsDouble,mtxAI()AsDouble)AsBoolean'局部變量
ReDimnIs(n)AsInteger,nJs(n)AsIntegerDimiAsInteger,jAsInteger,kAsInteger
DimdAsDouble,pAsDouble,sAsDouble,tAsDouble,qAsDouble,bAsDouble
'全選主元,消元Fork=1Tond=0#Fori=kTonForj=kTonp=mtxAR(i,j)*mtxAR(i,j)+mtxAI(i,j)*mtxAI(i,j)If(p>d)Thend=pnIs(k)=inJs(k)=jEndIfNextjNexti
'求解失敗
If(d+1#=1#)ThenMCinv=FalseExitFunction
(公式4)
EndIf
If(nIs(k)k)ThenForj=1Tont=mtxAR(k,j)
mtxAR(k,j)=mtxAR(nIs(k),j)mtxAR(nIs(k),j)=t
t=mtxAI(k,j)
mtxAI(k,j)=mtxAI(nIs(k),j)mtxAI(nIs(k),j)=tNextjEndIf
If(nJs(k)k)ThenFori=1Tont=mtxAR(i,k)mtxAR(i,k)=mtxAR(i,nJs(k))mtxAR(i,nJs(k))=tt=mtxAI(i,k)mtxAI(i,k)=mtxAI(i,nJs(k))mtxAI(i,nJs(k))=tNextiEndIf
mtxAR(k,k)=mtxAR(k,k)/dmtxAI(k,k)=-mtxAI(k,k)/dForj=1TonIf(jk)Thenp=mtxAR(k,j)*mtxAR(k,k)q=mtxAI(k,j)*mtxAI(k,k)s=(mtxAR(k,j)+mtxAI(k,j))*(mtxAR(k,k)+mtxAI(k,k))mtxAR(k,j)=p-qmtxAI(k,j)=s-p-qEndIfNextjFori=1TonIf(ik)ThenForj=1TonIf(jk)Then
p=mtxAR(k,j)*mtxAR(i,k)q=mtxAI(k,j)*mtxAI(i,k)
s=(mtxAR(k,j)+mtxAI(k,j))*(mtxAR(i,k)+mtxAI(i,k))t=p-qb=s-p-q
mtxAR(i,j)=mtxAR(i,j)-tmtxAI(i,j)=mtxAI(i,j)-bEndIfNextjEndIfNexti
Fori=1TonIf(ik)Thenp=mtxAR(i,k)*mtxAR(k,k)q=mtxAI(i,k)*mtxAI(k,k)s=(mtxAR(i,k)+mtxAI(i,k))*(mtxAR(k,k)+mtxAI(k,k))mtxAR(i,k)=q-pmtxAI(i,k)=p+q-sEndIfNextiNextk
'調(diào)整恢復(fù)行列次序Fork=nTo1Step-1If(nJs(k)k)ThenForj=1Tont=mtxAR(k,j)
mtxAR(k,j)=mtxAR(nJs(k),j)mtxAR(nJs(k),j)=tt=mtxAI(k,j)
mtxAI(k,j)=mtxAI(nJs(k),j)mtxAI(nJs(k),j)=tNextjEndIf
If(nIs(k)k)ThenFori=1Tont=mtxAR(i,k)mtxAR(i,k)=mtxAR(i,nIs(k))mtxAR(i,nIs(k))=tt=mtxAI(i,k)mtxAI(i,k)=mtxAI(i,nIs(k))mtxAI(i,nIs(k))=tNextiEndIfNextk
'求解成功MCinv=True
EndFunction
VBA來解決大數(shù)據(jù)量計算逆矩陣的問題
EXCEL2023中應(yīng)用minverse求逆矩陣,該函數(shù)在excel中的確存在計算范圍上的限制,可能最大的計算范圍是52*52。下面給出一個VBA的解法
PrivateDeclareSubCopyMemoryLib\ByValLengthAsLong)
SubSwap(ByRefsA,ByRefsB)DimrAsLong
CopyMemoryr,ByValVarPtr(sA),4
CopyMemoryByValVarPtr(sA),ByValVarPtr(sB),4CopyMemoryByValVarPtr(sB),r,4EndSub
Sub求逆矩陣(ByValrAsRange)
DimA()AsLong,B()AsLong,iAsLong,jAsLong,kAsLong,NAsLong,DAsDouble,ttAsDouble,matrixApplication.ScreenUpdating=Falsematrix=r.Value
Ifr.Rows.Countr.Columns.CountThenMsgBox\矩陣行數(shù)與列數(shù)不等\N=r.Rows.Counttt=TimerReDimA(N),B(N)Fork=1ToND=0#Fori=kToNForj=kToN
If(Abs(matrix(i,j))>D)Then
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)上市居間合同范本
- 2025年沈陽貨運資格證考試中心
- 農(nóng)資貨物銷售合同范本
- 出售桌球桌子合同范本
- 全手機購銷合同范本
- 勞動解約合同范本
- 劃線施工合同范例
- 《第一單元 參考活動1 唱響團歌》教學(xué)設(shè)計 -2023-2024學(xué)年初中綜合實踐活動蘇少版八年級上冊
- 內(nèi)墻翻新粉刷合同范本
- 3人合伙養(yǎng)殖合同范本
- 《魚類的骨骼系統(tǒng)》
- HBZ 131-2020 高溫合金母合金選用原材料技術(shù)要求
- 車輛工程畢業(yè)設(shè)計(論文)-電動叉車設(shè)計
- 生物化學(xué)緒論
- 公路工程項目隱隱蔽工程管理辦法
- 法蘭蝶閥螺栓配用表正式版
- PCCP安裝與水壓試驗
- 中國民間藝術(shù) ppt課件
- 景觀生態(tài)學(xué)教學(xué)大綱(共10頁)
- 電子舌技術(shù)在普洱茶品質(zhì)識別中應(yīng)用的研究
- 鍛件的結(jié)構(gòu)設(shè)計與工藝性分析
評論
0/150
提交評論