برنامه محاسبه دترمینان determinate

برنامه محاسبه دترمینان یک ماتریس

محاسبه دترمینان به صورت بازگشتی

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

کد برنامه محاسبه دترمینان یک ماتریس به زبان سی پلاس پلاس

برای نوشتن این برنامه ابتدا باید بدانیم دترمینان یک ماتریس چطور حساب می شود .در شکل زیر محاسبه دترمینان را برای ماتریس ۳*۳ می بینید برای ماتریس های دیگر هم به همین طور است مشاهده می شود که برای محاسبه ماتریس ۳*۳ این گونه عمل کرده ایم درایه سطر اول را ضرب در دترمینان ماتریس جدید حاصل از حذف سطر اول و ستون اول کرده ایم و بعد منهای درایه سطر اول و ستون دوم ضرب در دترمینان ماتریس جدید حاصل از حذف سطر اول و ستون دوم کرده ایم و در مرحله بعد به علاوه درایه سطر اول و ستون سوم ضرب در  دترمینان ماتریس حاصل از حذف سطر اول و ستون سوم کرده ایم.

به هر یک از این ماتریس های جدید یک کهاد می گوییم. برای سایر ماتریس ها با اندازه های مختلف می توان همین روش را بسط داد.

کد برنامه محاسبه دترمینان یک ماتریس به زبان سی پلاس پلاس

خوب ما چطور این روش ریاضی را به برنامه کامپیوتری تبدیل کنیم .ما فرض می کنیم یک ماتریس ۴*۴ داریم که می خواهیم دترمینانش را حساب کنیم اگر از روش بالا استفاده کنیم ۴ تا ماتریس جدید به وجود می آید که ۳*۳ اند ما یکی از آن ها را در نظر می گیریم برای محاسبه دترمینان ماتریس ۳*۳ طبق فرمول بالا عمل کرده و در این مرحله هم ۳ ماتریس جدید ۲*۲ به دست می آید و ما هم می دانیم دترمینان ماتریس ۲*۲ برابر می شود با حاصل ضرب درایه های قطر اصلی منهای حاصل ضرب درایه های قطر فرعی .یعنی هر ماتریس چند در چندی دادندآن را مرتب خرد می کنیم و با ماتریس های کوچک تر جایگزین می کنیم تا به ماتریس های ۲*۲ برسیم .به این استدلال روش بازگشتی می گویند.

در کد نوشته شده تابع inter (درستش Enter است) درایه های ماتریس را می خواند و ماتریس را ایجاد می کند و تایع show ماتریس را نشان می دهد و تابع build کار ساختن کهاد(ماتریس ها جدید) را انجام می دهد و تابع det دترمینان را محاسبه می کند و دارای ساختار بازگشتی است و شرط محدود کننده n=2 است که می گوید اگر طول ماتریس برابر ۲ بود ضرب درایه های قطر اصلی منهای ضرب درایه های قطر فرعی را برگردان و اگر n>2  از فرمول ریاضی استفاده می شود و تابع دترمینان دوباره فراخوانده می شود.

کد برنامه محاسبه دترمینان ماتریس به زبان سی :

 

کد برنامه محاسبه دترمینان ماتریس به زبان سی پلاس پلاس :

 

 

 

۲۴ نظر

  • سلام
    ببخشید اگه درایه ها اعشاری باشن یعنی float باشن، در این صورت در قسمت دترمینان چه تغییری باید به وجود بیاریم؟
    چون همین برنامه رو نوشتم ولی دترمینان غلط درومد. ممنون میشم اگر سریع تر جواب بدید خیلی ضروریه

    • حامد آهنگری

      سلام
      فقط کافیه که در تابع main ماتریس a رو به جای int به صورت float تعریف کنید
      موفق باشید

  • مگه ماتریس ما n*n نیست پس. اون صد صدی ک اول نوشتین چیه

    • حامد آهنگری

      نخیر. n*n نیست.
      کد فعلی این مطلب برای ماتریسی به حداکثر بزرگی ۱۰۰*۱۰۰ جواب میده

  • سلام

    بسیار عالی بود.

    خیلی ممنون.

  • امیر مسعود

    خیلی عالی است لطفا در صورت امکان برنامه های دیگری را نیز قرار دهید ممنون

  • با سلام.این برنامه واسه دترمینان رو به زبان متلب هم بنویسید.

    • فرهاد دلیرانی

      خود متلب دترمینان داره، کدش رو راحت می تونی ببینی

  • با سلام وتشکر از زحمتهای شما
    لطفا پارامترهای k و h را در برنامه تعیین دترمینال توضیح دهید
    خیلی ممنون میشم زود جواب بدهید

    • فرهاد دلیرانی

      ماتریس A را با L و j پیمایش می کنیم و تک تک خانه هایش رو دسترسی پیدا می کنیم، حالا قرار است که سطر اول و ستون I را از ماتریس a حذف کنیم و در b بریزیم, برای این کار h و k را تعریف کرده ام، h به سطر ها در ماتریس b اشاره داره و k به ستون ها در ماتریس b.

  • سلام اگه میشه برنامه ترانهاده یک دترمینانم بنویسید

    • فرهاد دلیرانی

      الان نمی تونم ولی تا آخر این ماه حتما می گذارم.

    • این ک خیلی اسونه i و j ماتریسو بخونه بعد i,j = j,i تو ماتریس جدید بذاره

  • سلام دوست عزیز من برای ساختن دترمینال ماتریس ۵در۵ سی پلاس پلاس باید از همین استفاده کنیم ممنون میشم سریع پاسخ دهید

  • خیلی ممنون از برنامه ی خوبتون

  • douste aziz agar barname sari baste mishe,bade return0:
    charecter begir ba dastoure;
    getch(); hamin

  • man ye soal az in ghesmat daram ke ta farda javabesho mikham
    mamnun misham age mailetuno bedid baratun mail konamm.

  • تو صفحه ی ران نمیماند که جواب دترمینان را مشاهده کینم

    • فرهاد دلیرانی

      در خط آخر main برنامه یک چیزی از ورودی بخون مثلا یک کاراکتر رو بخون، اون موقع دیگه صفحه سریع بسته نمی شه!

    • douste aziz agar barname sari baste mishe,bade return0:
      charecter begir ba dastoure;
      getch(); hamin

  • خیلیییییییییی ممنون از برنامه ای که گذاشتید

  • خیلی عالیه خیلی کم پیش میاد سایت های برنا مه نویسی حرفه ای کار کنن ولی شما واقعا حرفه ای هستین به کارتون ادامه بدید مرسی

نظرتان را برای ما بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *