Reply
Reply
سلام
کسی می دونه چه طوری می شه یه ماتریس را به ماتریس بالا مثلثی تبدیل کرد
آخه می خوام دترمینان یه ماتریس را بدست بیارم اگه بشه بالا مثلثی اش کرد خیلی خیلی راحت تر می شه
خیلی خیلی ممنون
ماتریس 3*3 رو می گم برای ابعاد بیشتر خودت بسطش بده:
کد:
float a[3][3];
float temp[3] = {0};
int j = 0;
// ضریبی از سطر صفر با سطر یک و ضریبی از سطر صفرو با سطر 2 جمع می کنیم در نتیجه عضوهای اول سرهای 1و 2و صفر میشه
کد:
for( ; j<3; j++ )
{
temp[j] = ((float)-a[2][0]/a[0][0])*a[0][j];
a[2][j] += temp[j];
temp[j] = ((float)-a[1][0]/a[0][0])*a[0][j];
a[1][j] += temp[j];
}
// ضریبی از سطر 1 با سطر 2 جمع می کنیم در نتیجه عضو دوم سطر 2 نیز صفر میشه
کد:
for( ; j<3; j++ )
{
temp[j] = ((float)-a[2][1]/a[1][1])*a[1][j];
a[2][j] += temp[j];
}
حالا ماتریس 3*3 شما بالا مثلثی هستش.
با دو تا حلقه جدا نوشتم که ببینید چکار باید کرد ولی شما باید از دو حلقه طو در طو استفاده کنید تا ماتریس هایی با ابعاد دیگه رو هم بشه بالا مثلثی کردش.
