با سلام

این هم برنامه ای که قولش رو داده بودم

محاسبه ی دترمینان یک ماتریس n*n

با توجه به اینکه محاسبه ی دترمینان رو بصورت تابع نوشتم، محاسبه ی ماتریس معکوس هم کار ساده ای خواهد بود

این تابع بصورت recursive (بازگشتی) نوشته شده

تابع محاسبه دترمینان


Public Function Determinan(EMat() As Double) As Double

Dim i, j As Integer
Dim ClmCount As Integer

Dim EntMat() As Double
Dim Det As Double

EntMat() = EMat()

Dim newMat() As Double
ReDim newMat((UBound(EntMat) - 1), (UBound(EntMat) - 1))

Dim q As Integer


If UBound(EntMat()) > 2 Then

For ClmCount = 1 To UBound(EntMat)
q = 0
For i = 1 To UBound(EntMat)
For j = 1 To UBound(EntMat)
If (i <> 1) And (j <> ClmCount) Then
q = q + 1
newMat(i - 1, q) = EntMat(i, j)
End If
Next j
q = 0
Next i
Det = Det + EntMat(1, ClmCount) * ((-1) ^ (1 + ClmCount)) * Determinan(newMat())
Next ClmCount

ElseIf UBound(EntMat()) = 2 Then
Det = (EntMat(1, 1) * EntMat(2, 2)) - (EntMat(1, 2) * EntMat(2, 1))
End If


Determinan = Det

End Function





برنامه

Determinan.rar


موفق باشید