بسته به نوع معادله (سختی و سختی نامیده می شود) ، راه حل معادله در MATLA کمی متفاوت خواهد بود. اصطلاح “صلب” برای معادلاتی مانند معادلات متغیرهای مستقل (مانند t) استفاده می شود. چندین متغیر وابسته ، مانند x. و y و … به این ترتیب ، اندازه مشتق متغیر وابسته با اندازه مشتق متغیر مستقل تفاوت معناداری دارد. در غیر این صورت ، آن را معادله ای غیر صلب می نامند. معادلات سخت همچنین شامل معادلاتی است که برای حل معادلات دیفرانسیل ناپایدار و همگرا از روشهای محاسبه عددی استفاده می کنند.تنها راه حل کاهش اندازه گام روش عددی است. اگر متغیری در معادله دیفرانسیل وجود داشته باشد که تغییرات زیادی را در پاسخ به سال ایجاد کند ، این دسته به عنوان یک معادله غیر سخت طبقه بندی می شود.
 

مثال) حل معادله زیر با دستور ode۴۵

dy1/dt=5*(1-y1^2)*dy1/dt-y1+f*cos(w*t)]

مرحله 1: بازنویسی مسئله به عنوان مجموعه ای از معادلات مرتبه اول. با تغییر متغیر y1 ′ = y2 ، دو معادله دیفرانسیل مرتبه اول بدست می آید:
مرحله 2: با استفاده از ODE مرتبه اول ، پس از بازنویسی معادلات مطابق مرحله اول ، باید این معادلات را رمزگذاری کنیم تا از ode45 استفاده کنیم:

توجه داشته باشید که این عملکرد باید دو پارامتر داشته باشد. یکی مربوط به متغیر مستقل (t) و دیگری مربوط به متغیر وابسته (y) است. حتی اگر به همان ترتیب عملکردی ظاهر نشوند ، موارد زیر را در نظر بگیرید:

function dydt=vdp1(t,y)
epsilon=5;
w=2.466;
f=5;
dydt=[y(2) ; epsilon*(1-y(1)^2)*y(2)-y(1)+f*cos(w*t)];
function dydt=vdp1(t,y)
epsilon=5;
w=2.466;
f=5;
dydt=[y(2) ; epsilon*(1-y(1)^2)*y(2)-y(1)+f*cos(w*t)];

مرحله 3-همانطور که قبلاً ذکر شد ، برای حل مشکل از حل کننده استفاده کنید ، ما از دستور ode45 استفاده خواهیم کرد. تابع ode45 دارای سه ورودی (پارامتر) است. پارامتر اول تابعی است که در مرحله دوم ایجاد کردیم و پارامتر دوم فاصله متغیر مستقل است ، در این حالت فاصله t. سرانجام ، پارامتر سوم بردار شرایط اولیه است. در این مثال ، مقدار اولیه فاصله زمانی [0 ، 100] و y (1) = 1 است. 2 و y (2) = 0 را به صورت زیر در ode45 قرار می دهیم:

[t,y]=ode45(@vdp1,[0 100],[1.2 0]);

در این مثال ، از نماد @ برای پذیرش vdp1 به عنوان یک تابع استفاده شده است. Ode45 زمان بردار t را خروجی می دهد. و ماتریس پاسخ y. آره.
مرحله 4 – خروجی را مشاهده کنید ، که با استفاده از نقاشی به راحتی انجام می شود.
plot(y(:,1),y(:,2))
xlabel(‘y1’)
ylabel(‘y2’)
plot(y(:,1),y(:,2))
xlabel(‘y1’)
ylabel(‘y2’)

نتیجه: