سلام.
من دنبال یه کد میگردم که یه ماتریس رو بگیره معکوسش رو نسبت به قطر اصلی ، نسبت به قطر فرعی ، و دترمینانش رو حساب کنه.
لطفا یکم راهنمایی کنید و یه کد ساده بذارین تا بشه یه چیزهایی ازش فهمید.
ممنون.
Printable View
سلام.
من دنبال یه کد میگردم که یه ماتریس رو بگیره معکوسش رو نسبت به قطر اصلی ، نسبت به قطر فرعی ، و دترمینانش رو حساب کنه.
لطفا یکم راهنمایی کنید و یه کد ساده بذارین تا بشه یه چیزهایی ازش فهمید.
ممنون.
معکوس کردن که فقط یه جابجایی ساده هست بین عناصر آرایه
مثلاً برای معکوس نسبت به قطر اصلی یه همچین کدی:
برای دترمینان هم باید با استفاده از قانون زیر:کد:for(int i=0;i<n;i++)
for(int j=0;j<i;j++)
swap(matrix[i],matrix[j]);
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مثلاً:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
تبدیل می شه به این:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
ماتریس رو همین طور کوچیک کنی تا مثلاً برسی به ماتریس های 2*2 که اونوقت محاسبه ماتریس دو در دو رو که بلدین و حساب می کنین:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
فرمول ریاضیش اینه:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
برگرفته از
کد:http://en.wikipedia.org/wiki/Determinant
کد:http://mathworld.wolfram.com/Determinant.html
از کمکتون ممنون.
میشه یکم بیشتر در مورد حساب کردن دترمینان یه ماتریس توضیح بدین.
چه جوری میشه ماتریس رو به ماتریس دو در دو تبدیل کرد و دترمینانش رو جساب کرد.
دترمینان یه ماتریس n*n رو میشه تبدیل به (n-1)*(n-1) کرد. (با استفاده از قانون بالا). سپس (n-1)*(n-1) رو تبدیل به (n-1)*(n-1) کرد. همین جور انقدر کوچیک می کنیم دترمینان رو تا با دترمینان های 2*2 تبدیل بشه.
تبدیل n*n به (n-1)*(n-1)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]