من معمولا از پایتون برای برنامهنویسی استفاده میکنم، چون پایتون آزاده، رایگانه و یه حالت آچار فرانسهطوری داره که کارهای مختلف میشه باهاش کرد. همینطور پایتون کتابخونههای زیادی داره که برای کارهای مختلف علمی (محاسباتی) میشه ازشون استفاده کرد. خوبی این کتابخونهها اینه که به زبانهای سطح پایینتری نوشته شدن به همین خاطر به قدر کافی سریع هستند! اگر هم کسی قصد کارهای تحلیل داده و یادگیری ماشین داشته باشه هم پایتون گزینه اوله، دست کم برای شروع! خلاصه همیشه به همه پیشنهاد میکنم که با پایتون شروع کنید و اگه کار دانشگاهی میکنید با پایتون ادامه بدین! از همه مهمتر وقتی شما با پایتون کد میزنید معمولا آدمهایی رو پیدا میکنید که مثل شما روی پروژه یا مسئله مشابهی کار کردن یا کار میکنند و از تجربیاتشون میتونید استفاده کنید یا ازشون سوال بپرسین.
با این وجود گاهی پیش میاد که آدم مجبور به استفاده از زبانهای دیگه بشه. تجربه شخصی من اینه که عمده دانشگاهیها به این دلیل مجبور میشن از یک زبان خاص استفاده کنند که به قدر کافی آدمهای حرفهای در تیمشون نیست! گاهی استاد و تیمی که پروژهای رو پیش برده سالها با یک زبان خاص کد زدند و ترجیحشون اینه که آدمهای جدید هم با همون زبون ادامه بدن. راه کمدردسرتری هست معمولا، هر چند که گاهی میتونه به شدت احمقانه باشه! خلاصه ممکنه که هر کسی مجبور بشه سراغ زبانها یا محیطهای دیگه برنامهنویسی بره. یکی از این محیطها متلب هست. توی لینوکس میتونید از Octave به جای متلب استفاده کنید و لذتش رو ببرید!
متلب یک محیط نرمافزاری برای انجام محاسبات عددی و یک زبان برنامهنویسی نسل چهارم است. واژهٔ متلب هم به معنی محیط محاسبات رقمی و هم به معنی خود زبان برنامهنویسی مورد نظر است که از ترکیب دو واژهٔ MATrix (ماتریس) و LABoratory (آزمایشگاه) ایجاد شدهاست. این نام حاکی از رویکرد ماتریس محور برنامه است، که در آن حتی اعداد منفرد هم به عنوان ماتریس در نظر گرفته میشوند.
گنو اُکتاو ( GNU Octave) زبان برنامهنویسی سطح بالایی است که بیشتر برای محاسبات عددی به کار میرود. این برنامه امکانات زیادی را از طریق رابط خط فرمان برای حل عددی مسائل خطی و غیر خطی میدهد. این برنامه را میتوان جایگزین مناسبی برای همتای غیر آزاد خود متلب به حساب آورد.
ویکیپدیا
در ادامه یک سری منبع برای یادگیری متلب و اکتاو رو معرفی میکنم.
برای شروع
از بین این دورهها، ببینید کدوم یکی به مذاقتون بیشتر خوش میاد:
- Introduction to Programming with MATLAB, Vanderbilt University
- Introduction To MATLAB Programming, MIT OCW
- MATLAB and Octave for Beginners, EPFLx
برای محسابات عددی
- Learn Differential Equations: Up Close with Gilbert Strang and Cleve Moler, MIT OCW for MATLAB® ODE suite
- Differential Equations: Linear Algebra and NxN Systems of Differential Equations, MITx
- MATLAB Programming for Numerical Computation, IIT Madras
به طور کلی
پیشنهاد من اینه که کلیات متلب رو یاد بگیرین و از منابع مختلف مربوط به کارتون استفاده کنید. مخصوصا از مثالهای خود Mathworks استفاده کنید. مثلا اینجا ۵۰۰ تا مثال خیلی خوب برای ریاضیات، آمار و یادگیری ماشین هست. خوبه به اینها حتما نگاه کنید. حواستون باشه که به روی ایران بستهس و شما نیاز به چیزی برای دور زدن تحریم دارین که حتما راههای مختلفی بلدین براش!
- Numerical Computing with MATLAB, 2nd Edition
این کتاب پر از مثالهای خیلی قشنگه و اساسا آموزشش بر پایه مثال زدن. فصل اولش هم برای کسایی که آشنایی با متلب ندارن یک سری مثال آموزشی خوب داره.
- Scientific Computing with MATLAB and Octave, 4th ed. 2014 Edition
خوبی این کتاب اینه که جواب تمرینها رو هم داره و میشه به عنوان کتاب کمکی برای تدریس ازش استفاده کرد.
به عنوان پیشنهاد به دوستانی که معلم این درس یا درسهای دیگه میشن : میتونید به جای حلتمرین سنتی پایه کلاسهاتون رو بر همچین چیزی بذارید. همین کار کوچیک میتونه تغییر محسوسی توی آموزش فیزیک بهوجود بیاره. این کتاب نسخه پایتونی هم داره!