حل معادله ديفرانسيل عادي با ODE45
شكل كلي اين دستور اين گونه است:
[T,X] = ODE45(odefun,tspan,X0,options,p1,…) odefun
تابع مخصوصي است كه فرم معادلات ديفرانسيل خود را در آن ميگذاريم، و ويژه كاربرد در آرگومان ()ode45 يا نظائرش مانند ()fsolve است. tspan فاصلهاي است كه در آن تابع انتگرال گيري شده وجود دارد (منحني يا شكل موج جواب معادلات در آن فاصله ترسيم ميشود). X0 بردار شرائط اوليه است options يك بردار از نوع ساختار structure است و شامل انتخاب هائي است كه توسط مقادير odeset تعيين ميشوند. براي اطلاع بيشتر به راهنماي آن مراجعه شود. …,p1 بردارهائي هستند كه در صورت وجود داشتن در آرگومان odefun به آن رد ميشوند. X بردار ستوني معادله هاي پاسخ است كه برحسب بردار T بايد در نظر گرفته شود. مثلاً اگر دو معادله داشته باشيم، (X(:,1 بردار معادله اول و (X(:,2 معادله دوم هستند.
مثال: دستگاه معادلات ديفرانسل زير را حل كنيد.
dx1/dt = x2
dx2/dt = -2δ dx1/dt – x1
ابتدا هر دو معادله را در تابع زير شبيه سازي ميكنيم:
function dx = frosc(t,x,del)
dx = zeros(2,1,1)
dx(1) = x(2);
dx(2) = -2*del*x(2)-x(1);
% dx = [x(2); -2*del*x(2)-x(1)]; % this form is also correct
پارامترهاي ضروري را در ODE45 جايگزين ميكنيم، چون options نداريم به جاي آن بردار تهي ميگذاريم.
% odee.m echo off;
odefun = @frosc;
tspan = linspace(0,40);
X0 = [1 1]; options = [];
p = [0.1 1 5]; %underdamp, damp, %over damp
clf hold on for k = 1:3 [T,X] =ODE45(odefun,tspan,X0,options,p(k));
plot(T,X(:,1))
end
hold off
حل معادلات ديفرانسيل عادي (جعبه ابزار رياضيات سمبليك Symbolic Math Toolbox)
دستور زير براي حل سمبوليك معادلات ديفرانسيل عادي به كار ميرود:
r = dsolve(‘eq1′,’eq2′,…,’cond1′,’cond2′,…,’v’)
eqها معادلات، cond ها شرائط اوليه، و v متغير مستقل است، در صورت نبود آن نزديك ترين حرف به x متغير مستقل فرض ميشود.
مثال ها:
حل معادله ديفرانسيل درجه يك مرتبه اول
دون شرط اوليه و با ثابتِ C
>> y = dsolve(‘Dy = 1 + y^2’)
y = tan(t+C1)
حل معادله با شرط اوليه
y(0) = 1
>> y = dsolve(‘Dy = 1 + y^2’, ‘y(0) = 1’)
y = tan(t+1/4*pi)
حل معادله ديفرانسيل مرتبه اول درجه دو
با شرط اوليه x(0) = 0
>> x = dsolve(‘Dx)^2 + x^2 = 1′,’x(0) = 0’)
x = [-sin(t)]
[ sin(t)]
معادله ديفرانسيل مرتبه دوم
با شرایط اولیه ![]()
>> y = dsolve(‘D2y = cos(2*x) – y’, ‘y(0) = 1’, ‘Dy(0) = 0’, ‘x’);
>> simplify(y)
y =-2/3*cos(x)^2+1/3+4/3*cos(x)
حل دستگاه معادلات ديفرانسيل
>> [f g] = dsolve(‘Df = 3*f+4*g’, ‘Dg = -4*f+3*g’)
f = exp(3*t)*(cos(4*t)*C1+sin(4*t)*C2)
g = -exp(3*t)*(sin(4*t)*C1-cos(4*t)*C2)
>> pretty(f)
exp(3 t) (cos(4 t) C1 + sin(4 t) C2)
نویسنده: مصطفی همت آبادی
مقاله متلب,مطلب,متلب,مقاله برق,مقاله قدرت,مقاله مطلب,مقاله سیمولینک,دانلود متلب,دانلود مقاله متلب,مقالهmatlab ,آموزش متلب,مطلب,متلب,آموزش برق,آموزش قدرت,آموزش مطلب,آموزش سیمولینک,دانلود متلب,دانلود آموزش متلب,آموزشmatlab ,پروژه متلب,مطلب,متلب,پروژه برق,پروژه قدرت,پروژه مطلب,پروژه سیمولینک,دانلود متلب,دانلود پروژه متلب,پروژهmatlab ,


