با سلام به دوستان
برنامه که ماتریس n*n را گرفته ودترمینان و ماتریس معکوس آنرا در صورت وجود نمایش دهد لطفا هر کی بلده کمک کنه
با سلام به دوستان
برنامه که ماتریس n*n را گرفته ودترمینان و ماتریس معکوس آنرا در صورت وجود نمایش دهد لطفا هر کی بلده کمک کنه
با سلام
من این رو قبلاً نوشتم، میگردم پیدا کردم اینجا میگذارم (البته اگر کد C++ می خوای همین الان میتونم بگذارم؟)
امیدوارم این یکی رو دیگه پاک نکرده باشم
اینی که گذاشتم دترمینان یه ماتریس سه در سه رو حساب می کنه، قسمتی از کد یه برنامه بود که خیلی وقت پیش نوشتم، یه خورده تازه کارانه است!
ماتریس دو در دو خیلی راحت تره
[code]
Public Function deter(x1 As Integer, x2 As Integer, x3 As Integer, y1 As Integer, y2 As Integer, y3 As Integer) As integer
Dim mat(3, 3) As Integer, i As Integer
Dim a11A1 As Long, a12A2 As Long, a13A3 As Long
Dim A1 As Integer, A2 As Integer, A3 As Integer
mat(1, 1) = x1
mat(1, 2) = y1
mat(1, 3) = 1
mat(2, 1) = x2
mat(2, 2) = y2
mat(2, 3) = 1
mat(3, 1) = x3
mat(3, 2) = y3
mat(3, 3) = 1
For i = 1 To 3
Select Case i
Case 1
A1 = mat(2, 2) * mat(3, 3) - mat(2, 3) * mat(3, 2)
a11A1 = x1 * A1
Case 2
A2 = (mat(2, 1) * mat(3, 3) - mat(2, 3) * mat(3, 1))
a12A2 = mat(1, 2) * A2
Case 3
A3 = (mat(2, 1) * mat(3, 2) - mat(2, 2) * mat(3, 1))
a13A3 = mat(1, 3) * A3
End Select
Next
i = a11A1 - a12A2 + a13A3
deter=i
End Function
6 تا عدد رو می گیره، یکی از ستون ها رو کامل 1 می ذاره بعد دترمینان رو حساب می کنه
امیدوارم به دردتون بخوره
با سلام
این هم برنامه ای که قولش رو داده بودم
محاسبه ی دترمینان یک ماتریس 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
موفق باشید
با سلام
دوستان اگر نظری راجع به برنامه بالا دارید دریغ نکنید