حل معادلات دیفرانسیل معمولی در متلب
2- روش رانگ کوتا Rung-Kutta Method
در روش اویلر (خطا از مرتبه 2 O(h2)) با افزایش طول گام و یا افزایش بازه مورد بررسی خطای قابل ملاحظه ای ایجاد می شود. در اینگونه موارد روش رانگ کوتای مرتبه4 به علت مرتبه خطای بالاتر (خطا از مرتبه 4 O(h4)) ) جایگزین بسیار مناسبی برای دستیابی به همگرایی بسیار بالاتر می باشد.
در روش رانگ کوتای مرتبه 4 الگوریتم تکرار بصورت زیر در میآید :
تابع f(t,y) همانند روش اویلر با توجه به شکل معادله دیفرانسیل بدست می آید بگونه ای که : f(t,y)=dy/dt
بعنوان مثال معادله دیفرانسیل حرکت آونگ ساده را در نظر بگیرید. این یک معادله درجه دو است که در ابتدا باید آنرا به دو معادله درجه یک تبدیل نماییم ،
f=@(alpha) alpha ;
g=@(teta) -w^2*teta ;
از آنجاییکه در روش رانگ کوتا توابع f و g چندین بار تکرار می شوند بهتر است در برنامه با استفاده از @ این دو تابع را ایجاد نماییم.
با این توضیحات برنامه pendelum1 معادله آونگ ساده را با استفاده از روش رانگ کوتا حل می کند،
% simple pendelum – rung-kutta method
% saeed babanezhad
clc
clear all
%—————–
g=9.8;
L=1;
N=200;
w=sqrt(g/L);
t=linspace(0,5,N); % time between 0-5s
h=t(2)-t(1); % time step
f=@(alpha) alpha;
g=@(teta) -w^2*sin(teta);
teta=zeros(1,N);
alpha=zeros(1,N);
teta(1)=10*pi/180; % initial angle(radian)
alpha(1)=0; % initial angle speed
for i=1:N-1
k1= f(alpha(i));
kp1= g(teta(i));
k2=f(alpha(i)+h/2*kp1);
kp2=g(teta(i)+h/2*k1);
k3=f(alpha(i)+h/2*kp2);
kp3=g(teta(i)+h/2*k2);
k4=f(alpha(i)+h*kp2);
kp4=g(teta(i)+h*k2);
teta(i+1)=teta(i)+h/6*(k1+2*k2+2*k3+k4);
alpha(i+1)=alpha(i)+h/6*(kp1+2*kp2+2*kp3+kp4);
end
plot(t,teta)
مقاله متلب,مطلب,متلب,مقاله برق,مقاله قدرت,مقاله مطلب,مقاله سیمولینک,دانلود متلب,دانلود مقاله متلب,مقالهmatlab ,آموزش متلب,مطلب,متلب,آموزش برق,آموزش قدرت,آموزش مطلب,آموزش سیمولینک,دانلود متلب,دانلود آموزش متلب,آموزشmatlab ,پروژه متلب,مطلب,متلب,پروژه برق,پروژه قدرت,پروژه مطلب,پروژه سیمولینک,دانلود متلب,دانلود پروژه متلب,پروژهmatlab ,