PDA

View Full Version : دترمینان



rana_fereshteh
جمعه 24 فروردین 1386, 10:32 صبح
سلام
دترمینان ماتریس n*n به روش بازگشتی را برایم بگویید.

emad_67
یک شنبه 26 فروردین 1386, 12:22 عصر
الگوریتم برنامه به شکل زیر است:
دترمینان هر ماتریس مربعی ، با کمک دترمینان ماتریسهای همسازه مرتبه بالا تر بدست می‌آید. بنابراین دترمینان به صورت زیر محاسبه می شود:


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 تابع به دست آوردن ماتریس همسازه است.
توجه:ماتریس همسازه ماتریسی است که از حذف یک سطر و ستون از ماتریس به دست می آید
این الگوریتم به صورت بازگشتی است و پیچیدگی آن n!/2 است یعنی برای یک ماتریس به تعدادn!/2 تابع فراخوانی میشود. به همین دلیل در تعداد سطر های بالا مثلا 20*20 ممکن است کامپیوتر هنگ کند یا دادن جواب خیلی وقت گیر شود
ضمنا من دو فایل گذاشتم که در فایل شماره 1 با دادن تعداد سطر های ماتریس به طور رندوم یه ماتریس تولید و دترمینان آن گرفته میشود و در فایل شماره 2 میتوانید اعداد را خودتان وارد کنید
فایل هم میتونی از ادرس زیر دانلود کنی
http://toppc.persiangig.com/download/source/determinan.zip
http://toppc.persiangig.com