حل معادله درجه ۲ در متلب | گام به گام (+ دانلود نمونه کد)


در این نوشتار حل معادله درجه 2 در متلب را آموزش میدهیم و با ارائه مثال و نمونه کد در این زمینه در متلب سعی خواهیم داشت درک این آموزش را سادهتر و ملموستر کنیم. اگر حل معادله درجه 2 در متلب برای شما نیز دشوار است خواندن این مطلب و این آموزش را از دست ندهید.
معادله دیفرانسیل درجه 2
همان طور که در مطالب قبلی توضیح دادیم منظور از درجه یک معادله دیفرانسیل بالاترین درجه مشتق در معادله است. بدین ترتیب منظور از معادله درجه 2 معادلهای است که بالاترین درجه مشتق در آن دو باشد. شکل کلی یک معادله دیفرانسیل درجه 2 را به صورت زیر میتوان معرفی کرد:
در تعریف بالا اگر برابر با صفر باشد یک معادله همگن داریم و اگر غیر صفر باشد معادله غیرهمگن است. برای حل یک معادله دیفرانسیل درجه 2 اگر P و Q ثابت باشند، با توجه به مقدار سه حالت مختلف وجود دارد:
- اگر مثبت باشد، 2 ریشه حقیقی به صورت و وجود دارد و جواب به صورت زیر است:
- اگر صفر باشد، 1 ریشه حقیقی به صورت وجود دارد و جواب به صورت زیر است:
- اگر منفی باشد، 2 ریشه مختلط به صورت و وجود دارد و جواب به صورت زیر است:
با این مقدمه به آموزش حل معادله درجه 2 در متلب میپردازیم.
تعریف تابع در متلب
توابع را در متلب در .m فایل میسازیم. جزئیات تعریف تابع در متلب را در مطلب حل دستگاه معادلات دیفرانسیل غیر خطی در متلب توضیح دادیم در این قسمت تعریف یک تابع در متلب را با روشهای مختلف بررسی میکنیم.
تعریف تابع در متلب با یک خروجی
میخواهیم تابعی به نام average.m تعریف کنیم که به عنوان ورودی یک بردار قبول میکند. توسط تابع average میانگین بردار محاسبه شده و در خروجی میانگین چاپ میشود. برای این کار تابع را در فایل اسکریپت به صورت زیر تعریف میکنیم:
این فایل را در سیستم خود با نام خود تابع یعنی average.m ذخیره کرده و در صفحه Command بازه متغیر را معرفی میکنیم و با فراخوانی نام تابع میانگین بردار در خروجی نمایش داده میشود:
دقت کنید که اگر در خروجی با پیغام خطای زیر رو به رو شدید:
Undefined function or variable 'average'
باید از طریق نواری که در تصویر (1) نشان داده شده است فولدر متلب را به مکانی که در آن تابع را ذخیره کردهاید تغییر دهید.

تعریف تابع در متلب با چند خروجی
در این قسمت میخواهیم تابعی با نام stat تعریف کنیم که یک بردار x را به عنوان ورودی دریافت کند و خروجی m و s را که برابر با میانگین بردار x و مجموع انحراف از میانگین هر یک از دادههای x است را در خروجی چاپ کند. بدین ترتیب برای تعریف این تابع به صورت زیر عمل میکنیم:
حال مقادیر بردار x را تحت عنوان values به صورت زیر تعریف کرده و تابع stat را فراخوانی میکنیم.
در نهایت خروجیها یعنی میانگین و انحراف از میانگین values چاپ میشوند.
تعریف تابع در فایل اسکریپت متلب
در یک فایل اسکریپت متلب میخواهیم تابعی با نام integrationScript.m را تعریف کنیم که مقدار تابع را در مشخص کند و سطح زیر نمودار را در بازه تا محاسبه کند. در فایل اسکریپت نیز به همان ترتیب توضیح داده شده عمل میکنیم و داریم:
در این حالت با اجرای فایل اسکریپت برای تابع مقدار تابع در و سطح زیر تابع بین تا در خروجی چاپ میشود.
در این مثال دقت کنید که نام فایل همانند مثالهای قبلی نام تابع نیست و اگر فایل را به نام تابع ذخیره کنید با پیغام خطا رو به رو میشوید.
تعریف چند تابع در یک اسکریپت فایل متلب
در این حالت دو تابع را در یک اسکریپت تعریف میکنیم که در تابع اول تابع دوم را فراخوانی کرده و داریم:
با تعریف برداری مانند values و فراخوانی تابع stat2 خروجیها در صفحه Command نمایش داده میشوند.
تعریف یک تابع با محدود کردن نوع آرگومان در متلب
میخواهیم برای مثالهای بالا روی ورودیهای تابع محدودیت اعمال کنیم. برای مثال برای محاسبه میانگین و انحراف از میانگین بردار x میخواهیم این محدودیت را اعمال کنیم که مقادیر عددی باشند و بینهایت نباشند. بدین منظور به صورت زیر عمل میکنیم:
حالا با تعریف ورودیها به صورت زیر:
و با فراخوانی تابع stat3 برای مقادیر بردار values این پیغام را مشاهده خواهید کرد:
حل پارامتری معادله درجه 2 در متلب با دستور dsolve
بعد از توضیح در مورد معادله درجه 2 و روشهای متفاوت تعریف یک تابع در متلب در این قسمت حل یک معادله درجه 2 در متلب را به صورت پارامتری بررسی میکنیم. بدین منظور تابعی را در نظر بگیرید که دارای شرایط اولیه تعریف شده به صورت زیر است:
در این روش از دستور dsolve برای حل معادله درجه 2 در متلب استفاده کردیم، همچنین شرایط اولیه را نیز تحت عنوان conds در دستور dsolve وارد کردیم. در خط آخر اگر دستور simplify را وارد نکنید، جواب به صورت زیر نمایش داده میشود:
با وارد کردن دستور simplify جواب به صورت ساده شده و به صورت زیر در خروجی نمایش داده میشود:
حل عددی معادله درجه 2 در متلب با دستور ode45
در این بخش میخواهیم یک معادله درجه 2 در متلب را با استفاده از دستور ode45 حل کنیم. برای این منظور تابعی را مانند زیر در نظر میگیریم:
که شرایط اولیه برای تابع به صورت زیر تعریف شده است:
برای حل از روش تغییر متغیر استفاده میکنیم تا معادله به یک معادله درجه اول تبدیل شود و داریم:
با اجرای این کد تغییرات و در بازه تا در نمودار نشان داده میشوند و همچنین تغییرات دو تابع نیز به عنوان خروجی نمایش داده میشوند. نمودار حاصل از اجرای کد به صورت زیر است:

مثالهای حل معادله درجه 2 در متلب
در این بخش مثالهای دیگری از حل معادله درجه 2 در متلب را به روش عددی و پارامتری بررسی میکنیم. به عنوان مثال اول معادله زیر را با شرایط اولیه مشخص شده در نظر بگیرید:
میخواهیم این معادله را از طریق dsolve و بدون شرایط اولیه حل کنیم. کد متلب برای این مثال به صورت زیر خواهد بود:
با اجرای برنامه جواب به صورت کلی زیر به دست میآید:
که و ضرایب ثابتی هستند که با توجه به شرایط اولیه مسئله مقدار آنها مشخص میشود. به عنوان آخرین مثال میخواهیم معادله زیر را به صورت عددی در متلب حل کنیم:
برای حل این معادله از تغییر متغیر استفاده میکنیم تا درجه معادله را به مرتبه 1 تنزل دهیم. بدین منظور داریم:
که در نهایت معادله به صورت زیر در میآید:
با استفاده از روش ode45 و استفاده از شرایط مرزی و حل عددی در بازه نتایج و مقادیر به صورت تصویر (3) به نمایش درمیآیند.

جمعبندی
این مطلب به حل معادله درجه 2 در متلب اختصاص داشت، بدین منظور در ابتدا نشان دادیم چگونه میتوان در متلب معادلات را به روشهای مختلف تعریف کرد. سپس به حل معادلات درجه 2 در متلب پرداختیم. این حل را از دو روش dsolve و ode45 انجام دادیم. میتوان دید که در روش dsolve جواب به صورت پارامتری به دست میآید و در دستور ode45 جواب به صورت عددی و در بازه مشخص خواسته شده محاسبه میشود.