آموزش متلب قسمت 24 : روش اویلر
روش اویلر یک روش عددی است که امکان حل معادلات دیفرانسیل (معادلات دیفرانسیل معمولی) را فراهم می کند. این روش بسادگی شما را در حل معادلات دشوار دیفرانسیل کمک می کند.
در این تمرین خواهیم دید که چگونه از روش اویلر برای حل معادلات دیفرانسیل استفاده کنیم وهمچنین معایب و مزایای مهم این روش را در حل معادلات بررسی خواهیم کرد.
لازم به ذکر است تنها زمانی میتوانید از این روش استفاده کنید که معادله دیفرانسیل مقادیر و شرایط مورد نیاز اولیه را دارا باشد.
روش اویلر
برای آشنایی بیشتر با روش اویلر میتوانید به ویدکیپدیا مراجعه کنید
در اینجا چند روش اضافه شده به روش forward اویلر وجود دارد که در همان دسته قرار می گیرند و در عین حال از روش های عددی استفاده می کنند: Forward difference، Backward Difference و Central Difference
.Forward Difference
Backward Difference
Central Difference
روش اویلر در متلب
مثال Forward Difference
معادله زیر را در نظر میگیریم
حل این معادله دیفرانسیل بصورت زیر است
در اینجا برای بررسی صحت روش عددی با استفاده از روش اویلر معادله را حل میکنیم و بردار آن را با نتیجه اصلی ترسیم می کنیم
برای حل این معادله به روش اویلر بصورت زیر عمل می کنیم
اگر ما فرمول اویلر زیر را بازنویسی کنیم:
با جایگزینی این عبارت در معادله ای که در صدد حل آن هستیم، موارد زیر به دست می آید
با در نظر گرفتن معادله زیر
معادله را بازنویسی می کنیم، نتیجه زیر را به دست می آوریم
می توانیم عبارت بالا را ساده تر کنیم، در این مرحله، ما آماده هستیم تا برنامه نویسی را در Matlab شروع کنیم.
کد نویسی حل معادله
h=0.1; % step's size
N=10; % number of steps
y(1)=1;
for n=1:N
y(n+1)= y(n)+h*(-6*y(n));
x(n+1)=n*h;
end
plot(x,y)
نمودار این معادله بصورت زیر است
در کد بالا طول گام را کاهش دهیم تا ببینیم که چگونه بر دقت تأثیر می گذارد
کد متلب
h=0.01; % step's size
N=100; % number of steps
y(1)=1;
for n=1:N
y(n+1)= y(n)+h*(-6*y(n));
x(n+1)=n*h;
end
plot(x,y,'r')
بردار به این صورت خواهد بود
این به ما می گوید که وقتی مقدار h را کاهش می دهیم، خطا را کاهش می دهد. آیا اکنون میتوانیم بهترین نمودار خود را با نمودار دقیق مقایسه کنیم؟
این کد به ما کمک میکند تا نمودار دقیق را ترسیم کنیم
کد در متلب
x=0:0.001:1;
y=exp(-6.*x);
plot(x,y,'g')
نمودار بصورت زیر خواهد بود
با نگاهی به نمودار بالا خواهیم دید که دو نمودار تقریبا با هم یکسان هستند
برای توابع ساده مانند آنچه که اخیراً آزمایش کردیم، استفاده از روش اویلر میتواند بهخصوص زمانی که h را کاهش میدهید دقیق به نظر برسد، اما وقتی صحبت از سیستمهای پیچیده به میان میآید، ممکن است بهترین روش عددی تقریبی برای رسم نمودارهای ODE نباشد. میتوانیم از روشهای پیشرفته تری مانند روش معروف Runge-Kutta استفاده کنیم.