نمایش نتایج 1 تا 7 از 7

نام تاپیک: بدست آوردن ماتریس معکوس و دترمینان

  1. #1

    Question بدست آوردن ماتریس معکوس و دترمینان

    با سلام به دوستان
    برنامه که ماتریس n*n را گرفته ودترمینان و ماتریس معکوس آنرا در صورت وجود نمایش دهد لطفا هر کی بلده کمک کنه

  2. #2
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    تهران
    سن
    35
    پست
    158

    نقل قول: بدست آوردن ماتریس معکوس و دترمینان

    با سلام

    من این رو قبلاً نوشتم، میگردم پیدا کردم اینجا میگذارم (البته اگر کد C++‎ می خوای همین الان میتونم بگذارم؟)
    امیدوارم این یکی رو دیگه پاک نکرده باشم

  3. #3
    کاربر دائمی
    تاریخ عضویت
    مهر 1387
    محل زندگی
    قزوین
    پست
    158

    نقل قول: بدست آوردن ماتریس معکوس و دترمینان

    اینی که گذاشتم دترمینان یه ماتریس سه در سه رو حساب می کنه، قسمتی از کد یه برنامه بود که خیلی وقت پیش نوشتم، یه خورده تازه کارانه است!
    ماتریس دو در دو خیلی راحت تره


    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
    [code]
    6 تا عدد رو می گیره، یکی از ستون ها رو کامل 1 می ذاره بعد دترمینان رو حساب می کنه
    امیدوارم به دردتون بخوره

  4. #4
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    تهران
    سن
    35
    پست
    158

    نقل قول: بدست آوردن ماتریس معکوس و دترمینان

    با سلام

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

    محاسبه ی دترمینان یک ماتریس 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


    موفق باشید

  5. #5
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    تهران
    سن
    35
    پست
    158

    نقل قول: بدست آوردن ماتریس معکوس و دترمینان

    با سلام

    دوستان اگر نظری راجع به برنامه بالا دارید دریغ نکنید

  6. #6

    نقل قول: بدست آوردن ماتریس معکوس و دترمینان

    نقل قول نوشته شده توسط hamed aj مشاهده تاپیک
    با سلام

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

    محاسبه ی دترمینان یک ماتریس 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


    موفق باشید
    دوست عزیز اگه کدشو با زبان C#‎ هم بذاری ممنون میشم

  7. #7

    نقل قول: بدست آوردن ماتریس معکوس و دترمینان

    نقل قول نوشته شده توسط hamed aj مشاهده تاپیک
    با سلام

    دوستان اگر نظری راجع به برنامه بالا دارید دریغ نکنید
    با سلام،
    برنامه ی شما همیشه صفر برمیگردونه.
    لطفا راهنمایی کنید.
    با تشکر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •