PDA

View Full Version : استراسن



Mega7000
پنج شنبه 18 اسفند 1384, 11:26 صبح
سلام
الگوریتم استراسن در مورد ضرب ماتریس های n*n رو بصورت بازگشتی چطور پیاده سازی می کنن؟

Kimia_Konjkav
دوشنبه 22 اسفند 1384, 05:52 صبح
کار ساده ای نیست. یا باید از آرایه های پویا استفاده کنی (خودت از بصورت پویا حافظه برداری) یا باید از فایل استفاده کنی. من فکر می کنم کار با فایل ها ساده تر باشه!
مثلا یک فایل از نوع رکورد بگیر که دارای 3 تا فیلد باشه : سطر ماتریس، ستون ماتریس و مقدار عنصر. حالا بیا این ماتریس رو ذخیره کن و بعد در بازگشت بعدی از تابع این فایل را مجددا بخون و از مقادیرش استفاده کن.

موفق باشید
کیمیا کنجکاو
kimia_konjkav@yahoo.com

Mega7000
دوشنبه 22 اسفند 1384, 21:21 عصر
ممنونم کیمیا جان
میشه بکم بیشتر واسم توضیح بدی

Mega7000
دوشنبه 29 اسفند 1384, 23:42 عصر
ضرب استراسن برای ماتریس ها بکار می رود و موجب کاهش پیچیدگی زمانی می شود :
t=8t(n/2)+18n^2/4
اگر A={a11,a12,a21,a22} و B={b11,b12,b21,b22}
آنگاه C={c11,c12,c21,c22}
که c11=M1+M4-M5+M7
C12=M3+M5
C21=M2+M4
C22=M1+M3-M2+M6
------------------------------------
M1=(A11+A22)*(B11+B22) و
M2=(A21-A22)*B11
M3=A12(B11-B22)
M4=A22(B21-B11)
M5=(A11+A12)*B22
M6=(A21-A11)*(B11+B12)
M7=(A12-A22)*(B21+B22)

coder
سه شنبه 01 فروردین 1385, 11:16 صبح
قوی ترین و در عین حال ساده ترین ابزار برای کار با ماتریسها زبان و محیط MATLAB هست که برای همه توابع و روشهای مورد استفاده در علوم و ریاضیات ابزار داره. اگر باهاش آشنایی ندارید پیشنهاد میکنم سری بزنید و از مستندات کمکی هم میتونید درمورد الگوریتمهاش استفاده کنید.

mahdy_cd
سه شنبه 28 آذر 1385, 09:41 صبح
از coderعزیز یه سوال دارم. نرم افزار matlabچه ربطی به الگوریتم داره؟