PDA

View Full Version : جمع ضرب و تبفریق ماتریس سوال ؟



ali_fbi
پنج شنبه 25 خرداد 1391, 10:49 صبح
سلام دوستان

چند تا تابع ساده می خواهم بنویسم واسه جمع ضرب و تفریق دو ماتریس 3*3 اعداد ماتریس اول از ورودی گرفته می شه ولی ماتریس دوم ثابت هست اعدادش
2 3 5

4 8 11

-2 3 -9

حالا خواستم بدونم کسی فرمول های ضرب جمع و تفریق ماتریس را می دونه به بنده بگه

ممنون می شوم راهنمایی کنید

باتشکر
دوست دار شما

Ananas
پنج شنبه 25 خرداد 1391, 15:58 عصر
سلام.
http://www.cs.umb.edu/~mweiss/cs410_f04/ppts/cs410-7.pdf

jannatmakan
شنبه 27 خرداد 1391, 00:56 صبح
سلام . البته این سوال بیشتر ریاضی بود تا برنامه نویسی . :لبخندساده: اگر توضیحات زیر رو هم متوجّه نشدید به کتاب ریاضی عمومی دوران دبیرستان یا هنرستان مراجعه کنید. (همونی که روش عکس کندوی زنبور عسل داشت:لبخند:)
PDF ی که دوستمون معرّفی کرده هم مثال های خوبی داره. منتها از اونجایی که شما عملیات ریاضی روی ماتریس ها رو یادتون رفته، شاید گیجتون کنه. پس بهتره که شما توضیحات ریاضی و تئوری مربوط به ماتریس ها رو بدونید بعد خودتون برید سراغ کدنویسیش.

جمع و تفریق که خیلی سادست. باید درایه های نظیر به نظیر دو ماتریس رو باهم جمع یا تفریق کنید مثلا عنصر 1و2 ماتریس اولی با 1و2 ماتریس دوّمی جمع یا تفریق می شه.و حاصل جمعشون به آدرس 1و2 ماتریس جواب می ره. و قانونش هم اینه که دو ماتریس حتماً باید هم مرتبه باشند. (یعنی سطرهاشون باهم و ستون هاشون هم باهم برابر باشه) و جواب هم به لحاظ سطر و ستونی هم اندازه ی همون ماتریس هاست. یعنی :
اگر یک ماتریس 3*4 رو ضربدر یک 3*4 دیگه کنیم ، جواب هم 3*4 می شه. و طریقه ی برنامه نویسیش هم با استفاده از حلقه ی for متداخل به راحتی صورت می گیره :


// matrix 1,2 va result har 3 araye hastand
//rows=tedade satrha va columns=tedade sotoonha
for(i=0;i<rows;i++)
{
for(j=0;j<columns;j++)
{
result[i][j]=matrix1[i][j]+matrix2[i][j];
}
}


ضرب ماتریس هم توضیحش به طور کامل در همون کتاب اومده ولی این توضیح کلّی رو هم عرض کنم که در ضرب ماتریس ها، یک ماتریس را به صورت سطر به سطر تکه تکه می کنیم و یک ماتریس را به صورت ستون به ستون، و هر سطر ماتریس اوّلی ضربدر تمام ستون های ماتریس دوّمی می شود. که هر داریه ضربدر آدرس برعمس خودش می شه مثلاً درایه 0و1 ضربدر 1و0 می شه. و حاصلضرب هر سطر و ستون تشکیل فقط تشکیل یک درایه را می دهد.
قانون: تعداد سطر های ماتریس اول باید با تعداد ستون های ماتریس دوم برابر باشد.
حاصل ضرب هم یک ماتریس است که سطرهایش مساوی ماتریس اوّل و ستون هایش مساوی ماتریس دوّم است. مثلاً :
[0,0] = 5 [0,1] = 3 [0,2] = 2
[1,0] = 11 [1,1] = 8 [1,2] = 4
[2,0] = -9 [2,1] = 3 [2,2] = -2
*
[0,0] = 2 [0,1] = 4 [0,2] = -1
[1,0] = 3 [1,1] = 7 [1,2] = 9
[2,0] = 5 [2,1] = 3 [2,2] = 3
||
[0,0] =29 [0,1] =47 [0,2] =28
[1,0] =66 [1,1] =112 [1,2] =73
[2,0] =-19 [2,1] =-21 [2,2] =30