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

نام تاپیک: الگوریتم دترمینان ماتریس n در n

  1. #1
    کاربر تازه وارد آواتار amir_cpp
    تاریخ عضویت
    آذر 1385
    محل زندگی
    Tabriz
    پست
    88

    Tick الگوریتم دترمینان ماتریس n در n

    با سلام و عرض خسته نباشید خدمت برنامه نویسان محترم.
    می خواستم ببینم کسی می تونه در مورد الگوریتم دترمینان ماتریس n در n به من کمک کنه یا نه. راستش هم بازگشتی مدنظره هم غیر بازگشتی، با تشکر.

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    1,486
    الگوریتم بازگشتی اون به این شکله:
    دترمینان هر ماتریس مربعی ، با کمک دترمینان ماتریسهای همسازه مرتبه بالا تر بدست میاد. بنابراین دترمینان به صورت زیر محاسبه می شود:

    det(A) = A[i,1] * det(minor(A,i,1)) * pow (-1,0)+
    A[i,2] * det(minor (A,i,2)) * pow (-1,1)+
    A[i,3] * det(minor (A,i,3)) * pow (-1,2)+
    ...
    A[i,j] * det(minor (A,i,j)) * pow (-1,j-1)+
    ...
    A[i,n]] * det(minor (A,i,n)) * pow(-1,n-1)
    که در توی این فرمول i یک عدد طبیعی دلخواه بین 1 تا n و pow تابع توان و minor تابع به دست آوردن ماتریس همسازه است.

  3. #3
    کاربر تازه وارد آواتار amir_cpp
    تاریخ عضویت
    آذر 1385
    محل زندگی
    Tabriz
    پست
    88
    ممنون می شم اگه یه مثال بزنید.
    مثلا برای n=7 کد کامل چی می شه؟
    ممنون.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    1,486
    کدش که خودت باید بنویسی ولی از روش باز گشتی باید آرایه رو کوچیک کنی تا به 2*2 برسه یعنی مثلا یه آرایه 4*4 رو به 3*3 و سپس به 2*2 تبدیل کرده و دترمینان ماتریس 2*2 رو حساب میکنیم. در واقع مقدار کل دترمینان از مقداری که از دترمینان ماتریس 2*2 به دست میاد حساب میشه. طبق فرمولی که در بالا نوشتم تقریبا واضح هست که چیکار باید بکنی.

  5. #5
    کاربر تازه وارد آواتار amir_cpp
    تاریخ عضویت
    آذر 1385
    محل زندگی
    Tabriz
    پست
    88
    نه!
    منظورم کد واقعی نیست! منظورم تکه کد بود، یعنی این فرمول بالا به ازای مثلا 7 چه شکلی می شه؟
    ممنون.

  6. #6
    کاربر دائمی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    1,486
    برای 7 تا هر عدد دیگه هیچ فرقی نمیکنه، چون این الگوریتم برای ماتریس n*n هست.
    کد تابع محاسبه دترمینان:

    int det(int a[],int n)
    {
    int x=0;
    if(n==2)
    return a[0]*a[3]-a[2]*a[1];
    else
    {
    for(int i=0;i<n;i++)
    x+=a[i]*det(minor(a,i,n),n-1)*pow(-1,i);
    }
    return x;
    }

    این تابع به صورت باز گشتی دترمینان رو به ازای هر ماتریسی محاسبه میکنه.
    من توی این تابع آرایه رو 2 بعدی در نظر نگرفتم، چون محاسباتش پیچیده تر میشد بجاش یه ماتریس 1 بعدی با طول n*n ایجاد کردم و مقادیر رو در اون قرار دادم.

  7. #7
    سلام
    emad جان ممنون میشم اگه کمکم کنی بدونم برنامه ی قابل اجرایدترمینان ماتریس n در nرو از کجا میتونم گیر بیارم.

  8. #8

  9. #9
    سلام emad
    جون من یک برنامه ی قابل اجرا می خوام. ماتریس(nn )در زبان c
    اگه کمکم کنی خیلی ممنون میشم چون این سایت هایی که گفتی تو c
    نیستند.و من فقط این زبونو بلدم.خیلی خیلی ممنون.

  10. #10
    کاربر دائمی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    1,486
    من فقط این زبونو بلدم
    خوب مشکل اینه که من c بلد نیستم و بیشتر با C++‎ کار کردم :D

  11. #11

    نقل قول: الگوریتم دترمینان ماتریس n در n

    نقل قول نوشته شده توسط emad_67 مشاهده تاپیک
    خوب مشکل اینه که من c بلد نیستم و بیشتر با C++‎‎ کار کردم :D
    مشکل شما اینه که مهیچکدومو بلد نیستید وگرنه نمی گفتید c بلد نیستم

  12. #12

    نقل قول: الگوریتم دترمینان ماتریس n در n

    سلام با عرض خسته نباشید :
    من میخواهم دترمینان 2 ماتریس (3*2) و (4*3 ) را به زبان ++c بنویسم خواهشمندم کمکم کنید.

  13. #13
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: الگوریتم دترمینان ماتریس n در n

    نقل قول نوشته شده توسط joojoo_meysam مشاهده تاپیک
    سلام با عرض خسته نباشید :
    من میخواهم دترمینان 2 ماتریس (3*2) و (4*3 ) را به زبان ++c بنویسم خواهشمندم کمکم کنید.
    فقط ماتریس مربّعی دترمینان داره.

  14. #14

    نقل قول: الگوریتم دترمینان ماتریس n در n

    کد ماتریس معکوس رو برای C++‎ میخوام .........خیلی مهمه

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

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