با سلام و عرض خسته نباشید خدمت برنامه نویسان محترم.
می خواستم ببینم کسی می تونه در مورد الگوریتم دترمینان ماتریس n در n به من کمک کنه یا نه. راستش هم بازگشتی مدنظره هم غیر بازگشتی، با تشکر.
با سلام و عرض خسته نباشید خدمت برنامه نویسان محترم.
می خواستم ببینم کسی می تونه در مورد الگوریتم دترمینان ماتریس n در n به من کمک کنه یا نه. راستش هم بازگشتی مدنظره هم غیر بازگشتی، با تشکر.
الگوریتم بازگشتی اون به این شکله:
دترمینان هر ماتریس مربعی ، با کمک دترمینان ماتریسهای همسازه مرتبه بالا تر بدست میاد. بنابراین دترمینان به صورت زیر محاسبه می شود:
که در توی این فرمول i یک عدد طبیعی دلخواه بین 1 تا n و pow تابع توان و minor تابع به دست آوردن ماتریس همسازه است.
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)
ممنون می شم اگه یه مثال بزنید.
مثلا برای n=7 کد کامل چی می شه؟
ممنون.
کدش که خودت باید بنویسی ولی از روش باز گشتی باید آرایه رو کوچیک کنی تا به 2*2 برسه یعنی مثلا یه آرایه 4*4 رو به 3*3 و سپس به 2*2 تبدیل کرده و دترمینان ماتریس 2*2 رو حساب میکنیم. در واقع مقدار کل دترمینان از مقداری که از دترمینان ماتریس 2*2 به دست میاد حساب میشه. طبق فرمولی که در بالا نوشتم تقریبا واضح هست که چیکار باید بکنی.
نه!
منظورم کد واقعی نیست! منظورم تکه کد بود، یعنی این فرمول بالا به ازای مثلا 7 چه شکلی می شه؟
ممنون.
برای 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 ایجاد کردم و مقادیر رو در اون قرار دادم.
سلام
emad جان ممنون میشم اگه کمکم کنی بدونم برنامه ی قابل اجرایدترمینان ماتریس n در nرو از کجا میتونم گیر بیارم.
توی همین سایت بگردی فکر کنم باشه.
https://barnamenevis.org/showth...86%D8%A7%D9%86
https://barnamenevis.org/showth...86%D8%A7%D9%86
https://barnamenevis.org/showth...86%D8%A7%D9%86
سلام emad
جون من یک برنامه ی قابل اجرا می خوام. ماتریس(nn )در زبان c
اگه کمکم کنی خیلی ممنون میشم چون این سایت هایی که گفتی تو c
نیستند.و من فقط این زبونو بلدم.خیلی خیلی ممنون.
خوب مشکل اینه که من c بلد نیستم و بیشتر با C++ کار کردم :Dمن فقط این زبونو بلدم
سلام با عرض خسته نباشید :
من میخواهم دترمینان 2 ماتریس (3*2) و (4*3 ) را به زبان ++c بنویسم خواهشمندم کمکم کنید.
کد ماتریس معکوس رو برای C++ میخوام .........خیلی مهمه