矩陣求逆的VB程序
專注于為中小企業(yè)提供做網(wǎng)站、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)梁平免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
Private Function MRinv(N As Integer, mtxA() As Double) As Boolean
'****************************************************************************************
' 功能: 實(shí)現(xiàn)矩陣求逆的全選主元高斯-約當(dāng)法
' 參數(shù): n - Integer型變量,矩陣的階數(shù)
' mtxA - Double型二維數(shù)組,體積為n x n。存放原矩陣A;返回時存放其逆矩陣A-1。
' 返回值:Boolean型,失敗為False,成功為True
'****************************************************************************************
ReDim nIs(N) As Integer, nJs(N) As Integer
Dim i As Integer, j As Integer, k As Integer
Dim D As Double, p As Double
' 全選主元,消元
For k = 1 To N
D = 0#
For i = k To N
For j = k To N
p = Abs(mtxA(i, j))
If (p D) Then
D = p
nIs(k) = i
nJs(k) = j
End If
Next j
Next i
' 求解失敗
If (D + 1# = 1#) Then
MRinv = False
Exit Function
End If
If (nIs(k) k) Then
For j = 1 To N
p = mtxA(k, j)
mtxA(k, j) = mtxA(nIs(k), j)
mtxA(nIs(k), j) = p
Next j
End If
If (nJs(k) k) Then
For i = 1 To N
p = mtxA(i, k)
mtxA(i, k) = mtxA(i, nJs(k))
mtxA(i, nJs(k)) = p
Next i
End If
mtxA(k, k) = 1# / mtxA(k, k)
For j = 1 To N
If (j k) Then mtxA(k, j) = mtxA(k, j) * mtxA(k, k)
Next j
For i = 1 To N
If (i k) Then
For j = 1 To N
If (j k) Then mtxA(i, j) = mtxA(i, j) - mtxA(i, k) * mtxA(k, j)
Next j
End If
Next i
For i = 1 To N
If (i k) Then mtxA(i, k) = -mtxA(i, k) * mtxA(k, k)
Next i
Next k
' 調(diào)整恢復(fù)行列次序
For k = N To 1 Step -1
If (nJs(k) k) Then
For j = 1 To N
p = mtxA(k, j)
mtxA(k, j) = mtxA(nJs(k), j)
mtxA(nJs(k), j) = p
Next j
End If
If (nIs(k) k) Then
For i = 1 To N
p = mtxA(i, k)
mtxA(i, k) = mtxA(i, nIs(k))
mtxA(i, nIs(k)) = p
Next i
End If
Next k
' 求解成功
MRinv = True
End Function
來源:
逆矩陣求法:
方法有很多如(伴隨矩陣法,行(列)初等變換等)。以伴隨矩陣法來求其逆矩陣。
1、判斷題主給出的矩陣是否可逆。
2、求矩陣的代數(shù)余子式,A11、A12、A13、A21、A22、A32、A31、A32、A33。
3、求伴隨矩陣。
4、得到逆矩陣。
相關(guān)性質(zhì)
(1)A與B的地位是平等的,故A、B兩矩陣互為逆矩陣,也稱A是B的逆矩陣。
(2)單位矩陣E是可逆的。
(3)零矩陣是不可逆的,即取不到B,使OB=BO=E。
(4)如果A可逆,那么A的逆矩陣是唯一的。事實(shí)上,設(shè)B、C都是A的逆矩陣,則有B=BE =B(AC)=(BA)C=EC=C。
給你一個函數(shù) Public Sub Vect1XtoVect2(ByVal x1 As Double, ByVal y1 As Double, ByVal z1 As Double, _ ByVal x2 As Double, ByVal y2 As Double, ByVal z2 As Double, _ ByRef xNew As Double, ByRef yNew As Double, ByRef zNew As Double) '矢量叉積 xNew = y1 * z2 - z1 * y2 yNew = z1 * x2 - x1 * z2 zNew = x1 * y2 - y1 * x2 End Sub其中x1,y1,z1為第一個矢量,x2,y2,z2為第二個矢量xnew,ynew,znew為得到的新矢量
1采用二維數(shù)組存放矩陣各元素值
2根據(jù)數(shù)矩陣運(yùn)算規(guī)則進(jìn)行相應(yīng)計(jì)算
文章標(biāo)題:vb.net矩陣求逆函數(shù) 求逆矩陣的編程
URL地址:http://muchs.cn/article2/doeiiic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站建設(shè)、網(wǎng)站營銷、企業(yè)網(wǎng)站制作、網(wǎng)站收錄、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)