پیاده سازی روش اویلر با کدهای متلب :روش اویلر، یک روش عددی برای حل معادلات دیفرانسیل مرتبه اول می باشد. به عنوان مثال، فرض کنید یک معادله دیفرانسیل مرتبه اول، به صورت زیر داشته باشیم :
y′−y=0 , y(0)=1
که در آن، y تابعی از x می باشد. حال می خواهیم آن را با روش اویلر حل کنیم. اولین قدم این است که معادله را مطابق شکل کلی زیر بنویسیم :
y′=f(x,y)
بنابراین معادله، به این صورت نوشته می شود :
y′=y
اکنون باید از رابطه بازگشتی روش اویلر، که به صورت زیر می باشد، استفاده کنیم :
yn 1=yn hf(xn,yn)
که در آن، h ، اندازه گام می باشد. h میزان اختلاف بین x
n و x
n 1 است، یعنی :
xn 1−xn=h
اولین مقدار n ، برابر صفر می باشد و ما باید مقدار y
0 که برای نقطه x
0 می باشد را داشته باشیم، که همان شرط اولیه است. برای مثالی که در بالا بیان شد، این مقادیر به صورت زیر می باشند :
x0=0 , y0=1 → f(x0,y0)=1
اگر h را برابر 0.1 انتخاب کنیم، آنگاه x
1 برابر 0.1 و y
1 برابر مقدار y برای آن x می باشد که به صورت زیر به دست می آید :
y1=y0 hf(x0,y0)=1 0.1f(0,1)=1 0.1(1)=1.1
اکنون می توانیم از دو مقدار x
1 و y
1 ، مقدار y در نقطه x
2=0.2 را به دست بیاوریم و همین طور ادامه می دهیم تا تمامی نقاط دلخواه را در بازه مورد نظرمان از x ، محاسبه کنیم.اکنون کدهای متلب را برای روش اویلر می نویسیم و همین معادله را که مثال زدیم، با آن حل می کنیم و پاسخ ها را برای بازه x بین 0 تا 5 رسم خواهیم کرد. کدهای متلب برای روش اویلر، به این صورت خواهند بود :
clear all
close all
clc
x_0=
0;
y_0=
1;
h=
0.1;
X=
0:
0.1:
5;
L_X=
length(X
);
Y=
zeros(1,L_X
);
Y
(1)=y_0;
y_n=y_0;
for mm=
2:L_X
Y
(mm
)=y_n h*
(y_n
);
y_n=Y
(mm
);
end
plot(X,Y
)
xlabel(\'x\')
ylabel(\'y\')سه خط اول برنامه، برای عدم تداخل آن با نتایج حاصل از اجرای برنامه های قبلی در نرم افزار متلب می باشد. دستور clear all ، تمامی متغیرهایی که قبلا در نرم افزار متلب تعریف شده اند را پاک می کند. دستور close all ، پنجره تمامی شکل هایی که قبلا در متلب باز شده اند را می بندد. دستور clc ، اطلاعات نمایش داده شده در پنجره command را پاک می کند. x_0 و y_0 همان مقادیر مربوط به شرط اولیه هستند. یک بازه برای متغیر x ، در بردار X تعریف کرده ایم که مقادیر y برای تمامی نقاط بردار X را باید محاسبه کنیم. با دستور length ، طول بردار X محاسبه شده است و سپس با دستور zeros ، یک بردار هم اندازه با بردار X ساخته ایم که مقدار تمامی عناصر آن، برابر صفر است و نام آن را Y انتخاب کرده ایم، زیرا مقادیر y در این بردار ذخیره خواهند شد. مقدار y_0 را داریم و بنابراین باید آن را در اولین عنصر بردار Y قرار بدهیم. در حلقه for ، سایر مقادیر y با استفاده از رابطه بازگشتی محاسبه شده اند. در نهایت، با دستور plot ، مقادیر y که برای یک بازه از x محاسبه شده اند را رسم کرده ایم.نتیجه :