حل معادله ديفرانسيل عادي با 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

772

 

حل معادلات ديفرانسيل عادي (جعبه ابزار رياضيات سمبليك Symbolic Math Toolbox)

دستور زير براي حل سمبوليك معادلات ديفرانسيل عادي به كار ميرود:

r = dsolve(‘eq1′,’eq2′,…,’cond1′,’cond2′,…,’v’)

eqها معادلات، cond ها شرائط اوليه، و v متغير مستقل است، در صورت نبود آن نزديك ترين حرف به x متغير مستقل فرض ميشود.

مثال ها:

حل معادله ديفرانسيل درجه يك مرتبه اول     774    دون شرط اوليه و با ثابتِ 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)

حل معادله ديفرانسيل مرتبه اول درجه دو     775    با شرط اوليه   x(0) = 0

 

>> x = dsolve(‘Dx)^2 + x^2 = 1′,’x(0) = 0’)

x = [-sin(t)]

[ sin(t)]

 

معادله ديفرانسيل مرتبه دوم    776 با شرایط اولیه 777

>> 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)

حل دستگاه معادلات ديفرانسيل

778

 

>> [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 ,

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *