PDA

نسخه کامل مشاهده نسخه کامل : علت انتخاب Fortran به جای C برای کارهای محاسبات عددی....؟؟



siyasiya
07-11-2014, 10:23
دوستان عزیز

یک سئوالی که خیلی ذهن من رو مشغول کرده و جواب قانع کننده ای هم براش پیدا نکردم این هست که:

چرا برای کارهای محاسبات عددی سنگین (مثل شبیه سازی مکانیک سیالات و...) همیشه و همه جا حتی در بهترین دانشگاههای جهان، زبان Fortran انتخاب شده و به کار گرفته میشه، در حالی که تجزیه و تحلیل های انجام شده نشون میده که سرعت C اگر از Fortran بیشتر نباشه، لااقل کمتر نیست.
واقعا چرا اینطوریه؟

Msba
07-11-2014, 12:22
چرا برای کارهای محاسبات عددی سنگین (مثل شبیه سازی مکانیک سیالات و...) همیشه و همه جا حتی در بهترین دانشگاههای جهان، زبان Fortran انتخاب شده


مطمئنید؟ از نظر من در حال حاضر بهترین نرم افزار کارهای محاسباتی و ریاضی Matlab است که توانایی برنامه نویسی هم دارد. حتی قابلیت ساخت رابط گرافیکی هم دارد. توانایی شبیه سازی هم دارد. به درگاه ها هم به راحتی متصل می شود. از همه مهم تر HELP بسیار خوبی دارد از MSDN بهتر.
این نرم افزار آن قدر حجیم است که در صورتی که بخواهید همه ی پکیج های آن را نصب کنید بیشتر از نصب ویندوز طول می کشد!
می توانید سایت ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])آن را چک کنید. (البته تحریم است!)
لینک دانلود آخرین نسخه ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) تا این لحظه.
اطلاعات ویکی ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]).


موفق باشید.

afshin b
07-11-2014, 12:25
مطمئنید؟ از نظر من در حال حاضر بهترین نرم افزار کارهای محاسباتی و ریاضی Matlab است که توانایی برنامه نویسی هم دارد. حتی قابلیت ساخت رابط گرافیکی هم دارد. توانایی شبیه سازی هم دارد. به درگاه ها هم به راحتی متصل می شود. از همه مهم تر HELP بسیار خوبی دارد از MSDN بهتر.
این نرم افزار آن قدر حجیم است که در صورتی که بخواهید همه ی پکیج های آن را نصب کنید بیشتر از نصب ویندوز طول می کشد!
می توانید سایت ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])آن را چک کنید. (البته تحریم است!)
لینک دانلود آخرین نسخه ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) تا این لحظه.
اطلاعات ویکی ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]).


موفق باشید.

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

siyasiya
07-11-2014, 13:57
سرعت اجرای کدهای پیچیده در فورترن خیلی بالاتر از متلب هست. این مشکل بزرگه متلبه که سرعت پایینی داره

افشین جان
علت اینکه فرترن به جای C همه جا پیشنهاد میشه چی هست؟
من فکر نمیکنم سرعت فرترن از C هم بیشتر باشه، یعنی در واقع گزارش های منتشر شده در از تست های مختلف ای رو میگه
من واقعا نمیدونم چرا Fortran به جای C؟
چون فرترن خیلی کتابهای کمی داره، راهنماهای کمی داره. محیط برنامه نویسی یکپارچه درست و حسابی نداره و و و....

afshin b
07-11-2014, 14:01
واقعا نمیدونم. منم رشتم مکانیک سیالات هست و برای محاسبات عددی بیشتر همکلاسی ها با فرترن کار میکردن ولی من نمیتونستم باهاش ارتباط برقرار کنم و با متلب کدهام رو نوشتم. جز برای یه پروژه، مشکل کند بودن نداشتم چون کدها زیاد سنگین نبودن.

Msba
07-11-2014, 17:37
درست است سرعت متلب کمتر است و آن هم علت دارد:
- متلب محیطی خط محور دارد یعنی تک تک اجرا می کند و این در صورتی است که زبانی مثل C برنامه اش کامپایل می شود و این خود تاثیر زیادی در سرعت دارد.
- توابع متلب General هستند اما شما در برنامه نویسی های دیگر توابع را خود می نویسید این عمل در بهینه سازی کد تاثیر دارد.
- متلب یک ابزار قدرتمند است در کنار این که می تواند برنامه نویسی باشد. این ابزار سرعت نتیجه گیری را در اکثر موارد افزایش می دهد و شما را نیازمند درگیری نوشتن توابع نمی کند حال فرض کنید می خواهید که FFT از یکسری داده بگیرید. مسلما استفاده از خانواده ی C دردناک است.حال که ابزار FFT در متلب آماده است.

قاعدتا پروژه ای خاص که پردازش نهایی زیادی دارد شاید بهتر باشد از اول توابع آن آماده گردد و در نهایت با همین زبان های برنامه نویسی پیاده شوند اما در غیر این صورت استفاده از متلب خالی از لطف نبوده و کم هزینه تر است.
نگاهی به این بررسی بیاندازید: تحلیل سایت ناسا ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) .



برای محاسبات عددی بیشتر همکلاسی ها با فرترن ....

اگر منظورتان درس محاسبات عددی است که با C هم می شود انجام داد و دیگر نیازی به فرترن نیست! خیلی هم ساده تر. با پیش زمینه ای که تقریبا همه دارند.
فرترن محاسباتی محض است حیف نیست برای درس محاسبات عددی! البته یک عده برای "جَو" ی که گرفتن شاید این کار را بکنند. متاسفانه برخی از استادان هم که یه چیز شنیده اند و یک چیز می گویند. ولی اگر واقعا در همین سطح باشد که اصلا مناسب نیست.


موفق باشید.

rahnema1
08-11-2014, 13:09
اینکه چرا فرترن در بعضی رشته ها استفاده میشه علتش اینه که در اون رشته ها از قبل جا افتاده بوده و اساتید هم به خودشون زحمت ندادند دانش خودشون را آپدیت کنند
یک خصوصیت فرترن اینه که میشه عملیات مثلا جمع و تفریق را همون طور که در متلب انجام می دهیم روی آرایه ها انجام بدیم اما در زبان c این قابلیت را با استفاده از تابع پیاده سازی می کنند
اما اگه شما با قابلیت های زبان ++c آشنا بشید میتونید عمگرهایی مثل جمع و تفریق را برای ماتریسها تعریف overload کنید
همچنین کتابخانه های جالبی به زبان ++C جهت عملیات جبری و ماتریس هست مثل Armadillo و .. که شبیه متلب عمل می کنه
من خودم دستور زبان c و ++c را نسبت به فرترن ترجیح می دهم ضمن اینکه آموزشها زبان ++c بیشتره و اینکه اگه جایی گیر کردید بالاخره یکی پیدا میشه به شما کمک کنه
یک نکته دیگه اینکه اگه جایی احساس می کنید زبان متلب خیلی کند هست و جواب نمیده میتونید با ++c فایل mex برای متلب ایجاد کنید که با سرعت بالا کد مورد نظر از طریق متلب فراخوانی بشه

saeed_136915
08-11-2014, 21:32
به نظر من که تنها دلیلش اساتید هستن... وگرنه فرترن برتری خاصی نداره نسبت به سی

siyasiya
08-11-2014, 22:12
آخه میگن در محاسبات عددی حجیم سرعتش از C بالاتره.
من خودم امتحان نکردم، اما در خیلی از سایت های خارجی اینطوری گفتن

rahnema1
09-11-2014, 08:07
به این سایت مراجعه کنید:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
انواع تست ها و مقایسه ها بین زبان های مختلف در کامپیوترهای مختلف انجام شده
در بیشتر تست ها زبان c سرعتش از فرترن بالاتره ( مخصوصا چند مورد که اختلاف خیلی زیاده) و یک موردی هم که سرعتش کمتره تفاوت جزئی هست