PDA

View Full Version : ماتریس nبعدی



leilav_1984
یک شنبه 21 خرداد 1385, 13:37 عصر
سلام
کسی منبعی راجع به کار با ماتریس های n بعدی سراغ نداره؟
من هرچی پیدا کردم فقط 2 بعدی بودن یعنی (n,n)
یا اگه ایده ای واسه طراحی classش دارین بگین
مرسی:گیج:

mehdik76
یک شنبه 21 خرداد 1385, 14:11 عصر
می تونی یه کلاس به اسم ماتریکس تعریف کنی و یک تابع سازنده براش تعریف کنی که ابعاد ماتریس را بع عنوان آرگومان گرفته و برای آن حافظه از سیستم بگیره. بعد عملگرهای [] را براش اورلود کنی. بعدش تمام عملگر های محاسباتی برای ماتریس از جمله + و - و * را براش اورلود کنی در آخر تمام توابع مربوط به ماتریس ها از جمله توابع معکوس ، دترمینان ، و ... را براش بنویسی.حالا می تونی با لذت از کلاست استفاده کنی ....

Amir Oveisi
یک شنبه 21 خرداد 1385, 22:45 عصر
به همین سادگی !!! lol

leilav_1984
دوشنبه 22 خرداد 1385, 14:17 عصر
می تونی یه کلاس به اسم ماتریکس تعریف کنی و یک تابع سازنده براش تعریف کنی که ابعاد ماتریس را بع عنوان آرگومان گرفته و برای آن حافظه از سیستم بگیره. بعد عملگرهای [] را براش اورلود کنی. بعدش تمام عملگر های محاسباتی برای ماتریس از جمله + و - و * را براش اورلود کنی در آخر تمام توابع مربوط به ماتریس ها از جمله توابع معکوس ، دترمینان ، و ... را براش بنویسی.حالا می تونی با لذت از کلاست استفاده کنی ....


ممنون از جوابتون
ولی فکر می کنم IQ ما رو زیادی دست بالا گرفتین :kaf:
مثلا فرمول ضرب ماتریس سه بعدی با ضرب ماتریس دوبعدی فرق میکنه .
کدوم را باید در تابع ضرب قرار داد تا هر دو عملیات را پشتیبانی کنه؟
بنابراین لطفا "ابعاد ماتریس را به عنوان آرگومان گرفته " را بیشتر توضیح بدین....

once4ever
دوشنبه 22 خرداد 1385, 15:27 عصر
سوالت مربوط میشه به ریاضیات
ببین دترمینان برای ماتریس n*n یک فرمول ثابت هست (الان یادم نیست) باید از یک استاد ریاضیات بپرسی!
اما درمورد ضرب که دیگه مشکلی نداره!
سطر i ماتریس A رو در ستون j ماتریس B ضرب میکنیم (نگی بلد نیستما!) که میشه عنصر (i,j) از ماتریس A*B
پس تابع دوتا ماتریس برای ورودی میگیره و با فرمول بالا شروع میکنه به ضرب کردن
فکر کن یکم - میفهمی چجوری بنویسیش!

mehdik76
دوشنبه 22 خرداد 1385, 20:05 عصر
من قبلا برای ماتریس دو بعدی همشو تو C++ نوشتم ولی برای سه بعدی نه...
در ضمن اگه به یه همچین چیزی احتیاج داری میتونم برات برنامه هایی رو معرفی کنم....


CenterSpace NMath Core 2.1
CenterSpace NMath Matrix 2.1

www.Centerspace.net (http://www.Centerspace.net)

در ضمن عملگر ضرب و ... رو می تونی هم برای دو بعدی و هم برای سه بعدی اورلود کنی ... این کامپایلر هستش که تشخیص میده از کدو استفاده کردی.

Amir Oveisi
دوشنبه 22 خرداد 1385, 22:58 عصر
ممنون از جوابتون
ولی فکر می کنم IQ ما رو زیادی دست بالا گرفتین :kaf:
مثلا فرمول ضرب ماتریس سه بعدی با ضرب ماتریس دوبعدی فرق میکنه .
کدوم را باید در تابع ضرب قرار داد تا هر دو عملیات را پشتیبانی کنه؟
بنابراین لطفا "ابعاد ماتریس را به عنوان آرگومان گرفته " را بیشتر توضیح بدین....

اینجوری که شما میگین من فکر میکنم که مشکل برنامه نویسی نیست بلکه مشکل ریاضیاته !!!

leilav_1984
سه شنبه 23 خرداد 1385, 14:36 عصر
از همه دوستان ممنونم
البته دوست عزیز مشکل تلفیق ریاضیات و برنامه نویسی بود :خجالت:
من قصد داشتم کلاس ماتریس رو طوری بنویسم که هر تعداد بعدی رو شامل بشه ولی وقتی از یه استاد ریاضی سوال کردم فهمیدم ممکن نیست چون با هم تفاوت بنیادی دارن :متعجب:
مثلا سه بعدی ها اصلا ضرب ندارن !!

once4ever
سه شنبه 23 خرداد 1385, 14:53 عصر
ولی وقتی از یه استاد ریاضی سوال کردم فهمیدم ممکن نیست چون با هم تفاوت بنیادی دارن
مثلا سه بعدی ها اصلا ضرب ندارن !!
:قهقهه:
بیخیال استاد شو :چشمک:
به من بگو ضرب ماتریس 2*2 چجوریه تا از روشی که یاد گرفتی
ضرب ماتریس n*n رو بهت یاد بدم
(اگه پست قبلیمو بخونی شاید متوجه بشی)

leilav_1984
چهارشنبه 24 خرداد 1385, 10:24 صبح
یعنی شما تا الان فکر می کردین n بعدی یعنی n*n ؟!!!
این که همون آرایه Array[,] خودمونه :قهقهه: مشکلی نداره
من که چند دفعه توضیح دادم
n بعدی یعنی n به توان n
که هر عنصرش یه "چندتایی مرتب" هست