حل مسائل بهینه‌سازی با نرم‌افزار متلب

۲۰ مرداد ۱۳۹۱ | نوشته‌شده به دست عادل شجاعی در آموزش، دانش و فن‌آوری

اگر با مسائل مهندسی سروکار دارید و اندکی هم شوق و ذوق حل مسائل کاربردی را داشته باشید، احتمالا با مسائلی که نیاز به بهینه‌سازی آن‌ها دارید، روبرو خواهید شد. در این مطلب می‌خواهم به حل یک مثال، چگونگی حل یک مسئله بهینه‌سازی با استفاده از دستورات مت‌لب، آموزش دهم.

طبعا قبل از حل مسائل بهینه‌سازی، شما با توجه به فیزیک مساله، مدلی را ایجاد کرده‌اید و بین دو یا چند پارامتر، رابطه‌ای برقرار کرده‌اید و اکنون می‌خواهید تابع حاصل را بیشینه (ماکزیمم) و یا کمینه (مینیمم) کنید. به عبارتی می‌خواهید بدانید به ازای چه مقادیر ورودی، خروجی شما بیشینه و کمینه می‌شود و مقدار آن را می‌خواهید بدانید.

نمودار برنامه بهینه سازی در متلب

در این مثال فرض من این است که شما آشنایی مقدماتی با نرم‌افزار مت‌لب را دارید و یک تابع چند جمله‌ای درجه ۵ دارید که می خواهید حداکثر و حداقل مقدار آن را در بازه خاصی بیابید. در پایان روش بهینه‌سازی توابع چند متغیره را توضیح خواهم داد.

بهینه‌سازی مساله با نرم افزار متلب Matlab

  • خطوط ۵ تا ۷: انتخاب ۶ داده و عبور یک منحنی درجه ۵ از آن
  • خط ۱۰: نشان دادن داده‌ها بر روی نمودار با نقاط قرمز
  • خطوط ۱۲ تا ۱۴: نشان دادن منحنی عبور داده شده در نمودار
  • خط ۱۵: مشخص کردن محدوده محور Y
  • خط ۱۶: راهنمای نمودار (بالا سمت راست)
  • خط ۱۸: انتخاب تیتر برای نمودار با فونت ۱۲
  • خطوط ۱۹ تا ۲۴: بهینه‌سازی برای یافتن مقدار ماکسیمم تابع و نشان دادن مقدار آن در نرم‌افزار مت‌لب و مشخص کردن آن با نقطه سیاه در نمودار
  • خطوط ۲۶ تا ۳۰: بهینه‌سازی برای یافتن مقدار مینیمم تابع و نشان دادن مقدار آن در نرم‌افزار مت‌لب و مشخص کردن آن با نقطه سیاه در نمودار

در حل این مسئله باید توجه داشته باشید که دستور اصلی بهینه‌سازی fminbnd است و از همین دستور هم برای یافتن ماکزیمم و هم برای یافتم مینیمم تابع می‌توان استفاده کرد. در حالت عادی وقتی از این دستور در مت‌لب استفاده می‌کنیم، خروجی مقدار مینیمم خواهد بود و برای یافتن مقدار ماکزیمم تابع، باید تابع را قرینه کنیم (در منفی ضرب کنیم).

دستور fminbnd برای بهینه کردن توابع تک متغیره به‌کار می‌رود و برای بهینه سازی توابع چند متغیره باید از دستور fminsearch استفاده کنید. الگوریتمی که این دستور‌ها به هنگام بهینه‌سازی از آن استفاده می‌کنند، derivative-free method می‌باشد که برای اطلاعات بیشتر می‌توانید به کتاب Optimization of Chemical Processes by Edgar Himmelblau and Lasdon مراجعه کنید.

دانلود فایل بهینه‌سازی با نرم افزار متلب (همین مثال)

پس از تحریر: به دلیل فاصله گرفتن از کار با این  نرم‌افزار و مشغله‌های متعدد، فرصت پاسخ‌گویی به سوالات دوستان را ندارم؛ به بزرگواری خود ببخشید.

شما می‌توانید ما را دنبال کنید از خوراک RSS 2.0 و یا پاسخ بگذارید در صورت تمایل، بازتاب بفرستید.

۴۳ پاسخ



گذاشتن پاسخ برای انصراف از پاسخ

نشانی ایمیل شما منتشر نخواهد شد.

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>