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

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

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

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

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

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

    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 کاربر از emad_67 به خاطر این مطلب مفید تشکر کرده اند:


  4. #3
    کاربر تازه وارد آواتار amir_cpp
    تاریخ عضویت
    آذر 1385
    محل زندگی
    Tabriz
    پست
    88
    تشکر کردن
    11
    14 بار تشکر شده در 9 پست
    ممنون می شم اگه یه مثال بزنید.
    مثلا برای n=7 کد کامل چی می شه؟
    ممنون.
    ! !Call me when you need

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

  6. کاربرانی که به خاطر مطلب مفید emad_67 از وی تشکر کرده‌اند:


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

  8. #6
    کاربر دائمی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    1,486
    تشکر کردن
    217
    776 بار تشکر شده در 460 پست
    برای 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 ایجاد کردم و مقادیر رو در اون قرار دادم.

  9. 3 کاربر از emad_67 به خاطر این مطلب مفید تشکر کرده اند:


  10. #7
    کاربر جدید
    تاریخ عضویت
    آذر 1386
    پست
    3
    تشکر کردن
    2
    0 بار تشکر شده در 0 پست
    سلام
    emad جان ممنون میشم اگه کمکم کنی بدونم برنامه ی قابل اجرایدترمینان ماتریس n در nرو از کجا میتونم گیر بیارم.

  11. #8
    کاربر دائمی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    1,486
    تشکر کردن
    217
    776 بار تشکر شده در 460 پست

  12. کاربرانی که به خاطر مطلب مفید emad_67 از وی تشکر کرده‌اند:


  13. #9
    کاربر جدید
    تاریخ عضویت
    آذر 1386
    پست
    3
    تشکر کردن
    2
    0 بار تشکر شده در 0 پست
    سلام emad
    جون من یک برنامه ی قابل اجرا می خوام. ماتریس(nn )در زبان c
    اگه کمکم کنی خیلی ممنون میشم چون این سایت هایی که گفتی تو c
    نیستند.و من فقط این زبونو بلدم.خیلی خیلی ممنون.

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

  15. #11
    کاربر جدید آواتار hag narafte
    تاریخ عضویت
    اردیبهشت 1389
    پست
    2
    تشکر کردن
    3
    0 بار تشکر شده در 0 پست

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

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

  16. #12
    کاربر جدید
    تاریخ عضویت
    اردیبهشت 1391
    پست
    1
    تشکر کردن
    0
    0 بار تشکر شده در 0 پست

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

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

  17. #13
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    18
    پست
    1,505
    تشکر کردن
    1,948
    735 بار تشکر شده در 501 پست

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

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

  18. #14
    کاربر جدید
    تاریخ عضویت
    خرداد 1391
    پست
    1
    تشکر کردن
    0
    0 بار تشکر شده در 0 پست

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

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

بوک مارک کردن این تاپیک

بوک مارک کردن این تاپیک

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

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