PDA

View Full Version : به دست آوردن دترمینان ماتریس



ahmad abdoli
شنبه 03 آبان 1393, 12:44 عصر
سلام
من از این کد برای بدست آوردن دترمینان ماتریس n*n استفاده می‌کنم ولی فقط مقدار صفر رو برمی گردونه :افسرده:
اگه میشه راهنمایی بفرمایید.

Private Sub build(a() As Double, b1() As Double, i As Integer, n As Integer)
Dim j As Integer, l As Integer
Dim h As Integer, k As Integer
h = 0
k = 0
For l = 1 To n
For j = 0 To n
If j = i Then GoTo Continue
b1(h, k) = a(l, j)
k = k + 1
If k = n - 1 Then
h = h + 1
k = 0
End If
Continue:
Next j
Next l
End Sub

Public Function det(ByRef a() As Double, n As Integer) As Double
Dim i As Integer
Dim b1(10, 10) As Double

If n = 2 Then
det = a(0, 0) * a(1, 1) - a(0, 1) * a(1, 0)
Exit Function
Else

For i = 0 To n
build b1, a, i, n

det = det + a(0, i) * (-1 ^ i) * det(b1, (n - 1))
Next i
End If

End Function

Private Sub Command2_Click()
MsgBox "دترمینان برابر:" & det(a, System_Dim)
End Sub


اگر از دوستان روشی دیگر برای بدست آوردن دترمینان دارند لطفا بزارن یا همین کد رو اصلاح بفرمایند.
با تشکر فراوان.

ahmad abdoli
یک شنبه 04 آبان 1393, 07:44 صبح
یعنی سوال من اینقد سخته که کسی جواب نمیده؟:متعجب: