
دانلود نمونه سوالات امتحانی کنترل چند متغیره دکتر خاکی صدیق
9 اردیبهشت 1393
مقایسه کتیا و سالیدورکس
29 تیر 1397زبانهای برنامهنویسی، یکی از اساسیترین بخشهای «علوم کامپیوتر» (Computer Science) محسوب میشوند. به عبارت دیگر، یکی از مهمترین ابزارهای در دسترس برنامهنویسان و توسعهدهندگان برای پیشبرد اهداف مرتبط با «خودکارسازی وظایف» (Task Automation) و توسعه برنامههای کاربردی هستند. همچنین، زبانهای برنامهنویسی ابزاری حیاتی جهت رسیدن به اهداف کلان سازمانی در صنایع و شرکتهای تجاری به شمار میآیند. انتخاب پایتون یا متلب به عنوان زبان برنامهنویسی مقصد (به ویژه برای افرادی که آشنایی کافی با مفاهیم برنامهنویسی ندارند و به نوعی، تازهواردان عرصه برنامهنویسی محسوب میشوند)، سؤالی است که ذهن بسیاری از فعالان و علاقهمندان به حوزه برنامهنویسی را به خود معطوف کرده است. انتخاب بهترین زبان برنامهنویسی برای افراد مختلف، معمولا فرایندی بسیار گیجکننده است. در این مطلب، برای اینکه مشخص شود کدام یک از زبانهای برنامهنویسی پایتون یا متلب انتخاب مناسبتری برای برنامهنویسان و توسعهدهندگان محسوب میشود، ویژگیهای کلیدی و همچنین، مزایا و معایب هر کدام از این دو زبان برنامهنویسی با یکدیگر مقایسه خواهند شد. علاوه بر این، جهت سهولت انتخاب زبان پایتون یا متلب برای برنامهنویسان مبتدی، ویژگیهایی نظیر سادگی یادگیری، آینده شغلی و گستره دامنه کاربردی این دو زبان برنامهنویسی نیز با یکدیگر مقایسه خواهند شد.
فهرست مطالب
متلب در مقابل پایتون
متلب راحت ترین و مؤثرترین محیط محاسبه برای مهندسین و پژوهشگران را دارد که شامل زبان برنامه نویسی متلب است، تنها زبان برنامه نویسی معتبر مخصوص محاسبه های ریاضی و تکنیکی. در مقابل، پایتون یک زبان برنامه نویسی با هدف عمومی است که حتی برای اجرای پایه ترین عملیات ریاضی نیازمند افزودن دستورات از کتابخانه می باشد.
«با متلب، من میتوانم کدنویسی کنم و به کمک قابلیتهای بسیار زیاد متلب، سریعتر از زبان های دیگر از کدم اشکالزدایی کنم. نصف شدن زمان توسعه کد با متلب، با توجه به زمان محدود ما بسیار سودمند است. مشتری ما زمانی که نتایج را دید ، باور کرده بود که من 70 ساعت در هر هفته بر روی پروژه او کار کرده ام.»
بانکرافت هندرسون ، شرکت نرم افزاری EM Solutions
زبان ماتریکسی متلب به شما اجازه می دهد فرمول های ریاضی را مستقیماً بیان کنید. مهندسین و پژوهشگران نیازمند یک زبان برنامه نویسی هستند که بتواند ماتریکس و دیگر آرایههای ریاضی را به راحتی و بدون نیاز به استفاده از کتابخانهها تعریف کنند. به عنوان مثال عملیات ماتریسی در پایتون نیازمند دستورات عملکردی است – نه اپراتورهای عادی – و شما چه در آرایه های یک بعدی و چه دو بعدی باید حواستان به تفاوت اعداد و ارقام باشد. حتی نوشتن ساده ترین کد پایتون میتواند سخت باشد. متلب راه سرراست تری برای تعریف ریاضیات محاسباتی دارد. جبر خطی در متلب همانند جبر خطی روی کاغذ است. همین سادگی برای هندسه تحلیلی خطی، سیگنال خطی و بررسی تصاویر و اشکال طراحی کنترل کننده و دیگر برنامه ها صدق می کند. به همین دلیل است که بیش از 1800 کتاب درسی نحوه استفاده از متلب را یاد میدهند. مهندسین و پژوهشگران مستحق ابزاری هستند که متناسب روش کارشان باشد. آنها نباید روش کارشان را با ابزارهای موجود وفق دهند. توابع پایتون معمولاً بر اساس برنامههای پیشرفته برای برنامه نویسان و مهندسان نرم افزار با تجربه بالای برنامه نویسی شده است. محیط های توسعه دهنده پایتون برای محاسبات علمی اعتبار و یکپارچگی صفحه نمایش متلب را ندارند.
مزایایی که متلب برای مهندسان و پژوهشگران دارد:
- اسامی و اشکال توابع آشنا و به یاد ماندنی هستند، که باعث میشود هم خواندن و هم نوشتن آنها ساده شود.
- واسط توابع جدید طراحی برنامه سنگینی دارد که معمولاً شامل ساعت ها وقت برای توسعه دهی هر تابع میباشد.
- محیط صفحه نمایش در متلب برای برنامه های مهندسی و علمی تنظیم شده است.
- ابزار های یکپارچه، شناسایی همزمان از داده و برنامه پشتیبانی میکند، اجازه میدهد در زمان کمتری ایدههای بیشتری را شناسایی کند.
- فایل راهنما برای مهندسان و دانشمندان در همه رشته ها نوشته شده است، نه برای دانشجویان کامپیوتر.
«برای یک پروژه مهندسی فرایند، من هیچ تجربهای در کار با شبکههای عصبی یا زبان ماشین نداشتم ، من مثال های متلب را بررسی کردم تا بهترین تابع زبان ماشین را برای پروندهی اندازهگیری یپیشگویانه پیدا کنم.اگر من میخواستم اینکار را با پایتون انجام دهم بسیار طول می کشید.
امیل اشمیت ویور ، شرکت ASML
جعبه ابزارهای ثابت شده متلب توابع و قابلیتهای مورد نیازتان را فراهم میکند. یک زبان برنامه نویسی باید با جعبه ابزارهای تخصصی در حوزه تخصصی شما را پشتیبانی کند، چه شما داده های اقتصادی را مدلسازی کنید، چه یک دنباله شکلی را تحلیل کنید، و چه یک دستگاه خودکار را کار بیاندازید، آن ابزارها نیاز دارند کار کنند و نیز با هم سازگار باشند. پایتون برای عملکرد مهندسی و علمی به پکیج تعریف شده عمومی بستگی دارد. پکیج های پایتون از نظر کیفیت و قابلیت بسیار متفاوتند. هر پکیج مستندات خاص خود را دارد، و این مسئولیت را بر دوش شما میگذارد که یک راه حل بسازید. بر خلاف پایتون ، جعبه ابزار های متلب بصورت متخصصانه توسعه یافته، چندین بار تست شده ، میدانی ساخته شده و کاملاً مستند سازی شده را برای برنامه های علمی و مهندسی ارائه میدهد. جعبه ابزار ها برای کار با یکدیگر ساخته شده اند، و آنها با محیط های محاسباتی موازی، واحد پردازنده گرافیک (GPU) و نسل خودکار زبان c همگام میشوند. آنها با هم بروز رسانی میشوند ، پس شما هیچ وقت با ورژن کتابخانه های نا مناسب سر و کله نمی زنید.
«ما باید دادههایمان را فیلتر کنیم ، پایانها و شروعها را بررسی کنیم ، بهینهسازی غیر خطی را اجرا کنیم و بسیاری دستورات دیگر را انجام دهیم. در متلب ، همه این کارها یکپارچه ، استوار و از نظر تجاری تأیید شده اند»
̶ بوریلاو ساوکویچ ، مدیر گروه علمی داده ، شرکت نرم افزاری BulidingIQ
برنامه های متلب اجازه می دهد دستورات را راحت تر از برنامه نویسی دستی انجام دهید. پایتون برنامه های جاری یکپارچه برای پروژه های مهندسی و علمی ارائه نمی دهد، بجای آن نیاز به برنامه نویسی دستی دارد. این کار سرعت کشف و بررسی را پایین می آورد، خصوصاً برای جریان های کاری تکراری. برنامه متلب به شما اجازه می دهد سریع دست بکار شوید. این برنامه های فعل و انفعالی، دسترسی سریع به مجموعه ای از الگوریتم ها با بازخورد سریع را با هم ترکیب میکند. شما میتوانید یک الگوریتم با ظاهر مناسب، تکنیک طراحی فیلتر یا یک الگوریتم رده بندی یادگیری ماشین را امتحان کنید و سریعاً طریقه کار آن را با داده های خود ببینید. تکرار کنید تا نتیجه هایی که میخواهید را بگیرید، سپس بصورت خودکار یک برنامه متلب برای بازتولید یا خودکار کردن کار شما فعال می شود.

متلب کمک میکند کل راه را خودکار کنید ؛ از تحقیق تا تولید چالش های بزرگ علمی و مهندسی نیاز به هماهنگی وسیع بین تیم ها برای اجرای ایده های نو دارد. هر تماسی در بین راه خطر اضافه کردن خطا و تأخیر را بیشتر میکند. برخلاف پایتون ، متلب میتواند به تیمها در کل جریان کاری کمک کند:
- از متلب با بیش از 1000 دستگاه سخت افزاری سازگار و بیش از 130 فروشنده سخت افزاری استفاده کنید.
- متلب را با برنامه های تحلیل تولید خود همگام کنید.
- الگوریتم ها را سریعتر و با داده های بیشتر اجرا کنید بوسیله گروه ها ، داده و واحد های پردازنده گرافیک (GPUs)
- به سیمولینک (Simulink) و استیت فلو (Stateflow) برای طراحی بر اساس مدل و شبیه سازی متصل شوید.
- کدهای متلب را به کدهای جیگزین c و HDL تبدیل کنید.
متلب برنامه های شما را سریعتر اجرا میکند ؛ یعنی شما میتوانید ایده های بیشتری را اجرا و مشکلات بیشتری را حل کنید. جدای از اینها ، متلب برای دستورات محاسباتی تکنیکی عمومی در آمار ، محاسبات مهندسی و تجسم داده از پایتون سریعتر است. کدهای پایتون نیازمند ضمایم پوشانده شده و مغایرت داده شده است تا بتواند امتیازات حرفه ای مانند تلفیق بلافاصله و یا برنامه نویسی صریح موازی داشته باشد. این راه حل ها معمولاً ناتمام مانده یا برنامه نویسان خبره را هدف قرار می دهند. متلب کار سخت را با سریع کردن زبان برنامه نویسی شما انجام میدهد. دستورات ریاضی در هسته های محاسبه گر شما توزیع شده اند، دستورات کتابخانه بسیار دقیق تنظیم شده اند ، و تمام کدها بلافاصله گردآوری میشوند. شما میتوانید با تبدیل فورلوپ (for-loop) به فورلوپ موازی ، الگوریتم های خود را بصورت موازی اجرا کنید ، که بسادگی با اضافه کردن سه کاراکتر ((por)) به ((for)) ، یا با تبدیل آرایه های گرافیکی انجام میشود. شما میتوانید بدون هیچ تعویض کدی الگوریتم های موازی خود را در یک ابر داده عمومی یا خصوصی بینهایت اجرا کنید.

شما میتوانید به نتایجی که در متلب میگیرد اعتماد کنید. مهندسان و دانشمندان در مواردی همچون فرستادن یک فضاپیما به خورشید ، تطبیق بیمار پیوندی با اهدا کننده عضو ، یا حتی فقط گردآوری یک گزارش برای مدیریت به متلب اعتماد می کنند. این اعتماد بر پایه قطع کردن ساقه از ریشه های قوی متلب در انجمن تحقیق تحلیل عددی صورت می گیرد. یک تیم از مهندسان شرکت Mathworks بطور مداوم با اجرای روزانه میلیون ها تست بر روی زبان پایه متلب تأیید کیفیت میکنند.
بررسی دلایل اینکه مهندسان و دانشمندان متلب را به پایتون ترجیح میدهند:
مقایسه زبان
قابلیت مورد بررسی) ترکیب ریاضی(: ترکیب طبیعی برنامه ها برای خواندن و نوشتن آسانتر ، ارتباط را تقویت و اشتباهات را کاهش میدهد.
در متلب :
- زبان برنامه نویسی پایه ریزی شده بر اساس ریاضیات و ماتریکس
در پایتون :
- زبان برنامه نویسی با هدف عمومی
- آرایه های عددی و انواع داده ها جزوی از هسته زبان نیستند
قابلیت مورد بررسی( راحتی یادگیری برای محسبات علمی): برنامه نویسی نیاز اصلی برای تکمیل کار اکثر مهندسین و دانشمندان است. یک برنامه با یادگیری آسان تمرکز بر روی حوزه تحت بررسی را باز میگذارد ، نه برنامه نویسی. در متلب :
- تازه واردان ریاضی را همانطور که بر روی کاغذ مینویسند در متلب وارد میکنند.
- کسانی که برنامه نویسی نمی دانند بر مبنای نیازهایشان یاد میگیرند.
در پایتون :
- تازه واردان با یادگیری دستورات پیشرفته برنامه نویسی شروع میکنند.
- کاربران قبل ار آنکه بتوانند مولد باشند ، باید برنامه نویس شوند.
مقایسه کتابخانه ها
قابلیت مورد بررسی( تجسم داده علمی): تجسم آسان نه تنها به شما اجازه میدهد
نتیجه تجزیه و تحلیل یا الگوریتم خود را ببینید، بلکه می توانید رفتار
برنامه خود را نیز بررسی کنید.
در متلب :
- تجسم در هسته زبان متلب و صفحه نمایش جمع شده است.
- تفسیر و شناسایی محاوره ای
در پایتون :
- ابزار ناقص برای تجسم
- بدون یک فصل مشترک رایج
قابلیت مورد بررسی( جعبه ابزارهایی که فقط کار می کنند): ضمیام با طراحی مناسب برای برنامه های تخصصی بلوک های سازنده ضروری را بوجود می آورند. وقت خود را برای جمع آوری ضمایم مختلف و مجزا تلف نکنید. در متلب :
- جعبه ابزارهای تحت سرپرستی، پوشش برنامه های رایج مهندسی و علمی را تأمین میکنند.
- جعبه ابزارها برای کار با یکدیگر طراحی شده اند.
- جعبه ابزارها توسط نویسندگان حرفه ای در دسته های مخصوص حوزه، دسته بندی شده اند.
در پایتون :
- کیفیت ، جامعیت و بقای پکیج ها بسیار متفاوتند.
- دسته بندی ها توسط توسعه دهندگان نوشته شده و گاهی توانایی توسعه دهنده نرم افزار را پیش فرض میگیرد.
- دسته بندی ها میان کتابخانه ها یکپارچه نشده اند.
مقایسه اجرا
قابلیت مورد بررسی( اجرای فرایند): محاسبات علمی نیازمند تکرار متوالی است، که این کار از همه بهتر با برنامه های بدون بهینه سازی مضاعف صورت می گیرد. در متلب :
- جبر خطی ، گرافیک و آمار با سرعت پردازش بالا
- دستورات کتابخانه بهینه سازی شده
- چند جانبگی قطعی
- تکمیل بلافاصله برای حلقه ها و دستورات عملگری
- کارایی پیشرفته نیازمند نصب، گرد آوری، تأیید و پذیرش ضمائم توسعه دهندگان است.
در پایتون : قابلیت مورد بررسی( پردازش موازی و داده بزرگ برای غیر حرفه ای ها): شما مجبور نیستید که در برنامه نویسی موازی به یک حرفه ای تبدیل شوید، فقط چون مشکلات شما برای یک پردازشگر سنگین است. در متلب :
- ویژگی های یکپارچه نوشته شده برای کمک به الگوریتم های سنگین و موازی در پردازشگر ها و گرافیک های عادی.
- الگوریتم های موازی از صفحه نمایش چند هسته ای به گروه ها و ابر داده ها تبدیل میشوند.
- یکپارچگی قابلیت های موازی با ضمائم
در پایتون :
- انتخاب های بسیار زیاد غیر همسان و مخالف یکدیگر برای موازی سازی محاسبات علمی
- بیشتر کتابخانه های موازی برای متخصصان محاسبه ی موازی ساخته شده
مقایسه محیط
قابلیت مورد بررسی( صفحه نمایش محاسبه علمی): یک محیط توسعه دهنده ی عالی میتواند با در دسترس گذاشتن تمام چیزهای مورد نیاز کارهای رایج را سرعت بخشد. در متلب :
- محیط توسعه برای کمک به شناسایی و اکتشاف درست شده است.
- محیط، زبان و کتابخانه های توسعه دهنده همگام شده اند تا همه چیز با هم کار کند.
- ابزار شناسایی داده تحلیل و اشکال یابی جریانات کاری را بهتر میکند.
- اشکال یاب، بخش کننده و آنالیزگر کد برای بهبود کیفیت برنامه با هم یکی شده اند.
در پایتون :
- بیشتر محیط های توسعه یکپارچه شده (IDEs) برای توسعه دهندگان نرم افزار حرفه ای طراحی شده است.
- بسیاری از سطوح متفاوت همگام سازی برای آی دی ای ها و کتابخانه ها می باشند.
قابلیت مورد بررسی(مستندسازی): مستندات باید جامع، قابل درک و قابل دسترسی سریع باشد. در متلب :
- ارجاع جامع و سندسازی کاربرپسند
- بخش دیداری مستندات با جریانات کاری صفحه نمایش همگام شده
- سندسازی مخصوص مهندسین و دانشمندان
- هزاران مثال
در پایتون :
- مستندسازی کاربر اغلب در یک میزان محدود میشود.
- مستندات برای کتابخانه های مختلف در سایت های مختلف پراکنده است.
- مستندسازی اغلب نیاز به دانش برنامه نویسی پیشرفته دارد.
قابلیت مورد بررسی (برنامه ها): دستورات مهندسی و علمی با یک رابط گرافیکی سریعتر و آسانتر از برنامه نویسی انجام می شوند. در متلب :
- برنامه هایی برای اجرای دستورات رایج
- دستورات پیچیده و تکنیک های قابل دسترس بدون داشتن تخصص زیاد
- دستور خودکار با ساخت کد
- هیچ برنامه ای برای اجرای دستورات مهندسی و علمی بدون برنامه نویسی وجود ندارد.
در پایتون :
مقایسه جریان کاری
قابلیت مورد بررسی(گسترش و توسعه برنامه روزمره): اجازه ساخت برنامه های دستی به غیر حرفه ای ها، برنامه های تکنیکی پیچیده را گسترش میدهد. در متلب :
- پایگاه توسعه واسط کاربری محاوره ای
- ابزار توسعه دهنده واسط کاربری برای مهندسان و دانشمندان طراحی شده
- بسته بندی قابل اجرای خودکفا
در پایتون :
- بدون هیچ پایگاه توسعه واسط کاربری محاوره ای یکپارچه می باشد
- ابزار توسعه دهنده واسط کاربری حرفه ای نیازمند تخصص برنامه نویسی بالا دارد
- رمزگذار متلب کد های خواندنی و قابل حمل c و c++ را تولید میکند.
- هیچ کد نیرومند، فراگیر و خودکاری برای سیستم های تعبیه شده وجود ندارد.
قابلیت مورد بررسی( تولید کد تعبیه شده): تولید خودکار کد های c و c++ زمان، میزان نقص و هزینه مورد نیاز برای تبدیل الگوریتم ها از تحقیق به تولید را کاهش میدهد. در متلب : در پایتون : قابلیت مورد بررسی(یکپارچگی سخت افزاری): سخت افزار برای بسیاری از جریانات مهندسی و علمی بر مبنای کامپیوتر هم بعنوان یک منبع داده و هم هدفی برای الگوریتم ها ضروری هست. در متلب :
- پشتیبانی سخت افزاری وسیع
- نصب و راه اندازی ساده و خودکار
- رابط های سطح بالا، سازگار و با استفاده آسان
در پایتون :
- پشتیبانی محدود و مخصوص برای هماهنگی با سخت افزار
- نصب و راه اندازی آن گاهاً سخت و وقت گیر است.
- یک ست کامل از ابزارها برای طراحی مدولاسیون
- بدون هیچ پشتیبانی برای طراحی مدولاسیون یا model-based
قابلیت مورد بررسی (طراحی بر پایه مدولاسیون): کار محاسبه علمی بعضی اوقات پروژه های طراحی بزرگتری را پشتیبانی میکند. یکپارچگی با ابزار پایه خطر همراهی با کنار زده شدن را کاهش میدهد. در متلب : در پایتون :
مقایسه پشتیبانی
قابلیت مورد بررسی (پشتیبانی حرفه ای و واقعی): پشتیبانی واقعی و معتبر باعث میشود کاربران جواب صحیح را به سرعت کسب کنند. در متلب :
- 95% تماس های پشتیبانی در کمتر از 30 ثانیه توسط مهندسان ارشد یا دکترا پاسخ داده میشود.
- پشتیبانی تلفنی و ایمیلی شخصی سازی شده
- ارتباط مستقیم با توسعه دهندگان نرم افزار
در پایتون :
- بدون هیچ پشتیبانی واقعی و شخصی سازی شده
- پشتیبانی اصلی توسط منابع آنلاین
- منابع پشتیبانی گاهاً نیازمند دانش برنامه نویسی پیشرفته میباشند.
قابلیت مورد بررسی (پذیرش گسترده در دانشگاه): سازمان ها میتوانند بر مهارت های متلب در درجه بندی ها جدید تکیه کنند. در متلب :
- متلب بعنوان دوره آموزشی مهندسی و علمی در سراسر جهان یکی شده
- بیش از 1500 کتاب درباره برنامه های تکنیکی با متلب
در پایتون :
- ارائه محدود پایتون بعنوان برنامه آموزشی مهندسی و علمی
- بیشتر کتاب های پایتون برای برنامه نویسی با هدف عمومی نوشته شده.
در انجام پروژه های خود از چند ضلعی کمک بگیرید.
چند ضلعی ارائه دهنده خدمات انجام پروژه های صنعتی، انجام پروژه های تخصصی در تمامی رشتهها