آکادمی سیم پاور

گام بیست و سوم: دیفرانسیل متلبی

گام بیست و سوم: دیفرانسیل متلبی

متلب دستور diff  را برای محاسبه مشتقات نمادین فراهم کرده است. ساده ترین شکل، شما  می خواهید دیفرانسیل را با دستورdiff به عنوان آرگومان انتقال دهید.

برای مثال، اجازه دهید مشتقی از تابع f(t)=3t2+2t2 را محاسبه کنیم.

مثال

یک فایل  اسکریپت ایجاد کنید و  کد زیر را در آن وارد نمایید:

syms t

f =3*t^2+2*t^(-2);

diff (f)

در زیر معادلات octave محاسبات بالا است:زمانی که کد بالا  وارد و اجرا می شود، نتیجه زیر تولید می شود:

554

pkg load symbolic

symbols

t = sym)”t”(:

f =3*ta2+2*ta (—2(;

differentiate (f, t)

octave کد را اجرا می کند و نتیجه زیر را بر می گرداند:

555

تایید قوانین ابتدایی دیفرانسیل

اجازه دهید به طور خلاصه وضعیت معادلات مختلف یا قوانین برای دیفرانسیل از تابع و این مقررات را بررسی کنیم. به این منظور، ما f’(x) را برای  مشتق مرتبه اول و f”(x) را برای مشتق مرتبه دوم خواهیم نوشت.

در زیر قوانینی برای دیفرانسیل وجود دارد:

قانون 1

برای توابع f و g و اعداد حقیقی a و b مشتقی از تابع هستند:

h(x)=af(x)+bg(x)

با رابطه x داده شده است:

h’(x)=af’(x)+bg’(x)

قانون 2

وضعیت قوانین sum  و  substraction که اگر f و g دو تابع هستند،f’ و g’ به ترتیب مشتق های آن ها هستند.در آن صورت،

(f+g)’=f’+g’

(f-g)’=f’-g’

قانون 3

قانون product حالت هایی است که اگر f و g دو تابع هستند، f’ و g’ به ترتیب مشتق های آن ها هستند.در آن صورت،

(f.g)’ = f’.g + g’.f

قانون 4

قانون خارج قسمت حالت هایی است که اگر fو g دو تابع باشند، f’ و g’به ترتیب مشتق های آن ها هستند، در آن صورت،

(f/g)’=(f’.g – g’.f)/g2

قانون 5

قوانین  چندجمله ای یا نیروی اولیه حالت هایی است که، اگر y=f(x)=xn، در آن صورت f’=n.x(n-1  یک خروجی مستقیم  از قوانین مشتق از  ثابت صفر است، به عنوان مثال، اگر y=k، هر ثابت، در آن صورت f’=0 است.

قانون 6

قانون chain حالت هایی است که، مشتق تابع از تابع h(x)=f(g(x)) با رابطه x است، h’(x)=f’(g(x)).g’(x)

مثال

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

syms x

syms t

f =(x +2)*(x^2+3)

dexl = diff(f)

f =(t^2+3)*(sqxt(t)+ t^3)

dex2 = diff(f)

f =(x^2-2*x +l)*(3*x^3-5*x^2+2)

dex3 = diff(f)

f =(2*x^2+3*x)/(x^3+l)

dex4 = diff(f)

f = (x^2+1) ^17

der5 = diff(f)

f = (t^3+3* t^2+5*t -9) ^ (-6)

der6 = diff(f)

زمانی که فایل را اجرا می کنید، متلب نتیجه زیر را نمایش می دهد:

556556

در زیر معادله octave  محاسبه بالا قرار دارد:

pkg load symbolic

symbols

x=sym<“x”>:

t=sym<“t”>:

f =(x +2)*(x^2+3)

der1 = differentiate(f,x)

f =(t^2+3)*(t^(1/2)+ t^3)

der2 = differentiate(f,t)

f =(x^2-2*x +1)*(3*x^3-5*x^2+2)

der3 = differentiate(f,x)

f =(2*x^2+3*x)/(x^3+1)

der4 = differentiate(f,x)

f =(x^2+1)a17

der5 = differentiate(f,x)

f =(t^3+3* t^2+5*t -9)^(-6)

der6 = differentiate(f,t)

مشتقات نمایی، لگاریتمی و توابع مثلثاتی

جدول زیر مشتقات نمایی، لگاریتمی و توابع مثلثاتی را به طور معمولی استفاده می کند:

مشتق تابع
ca.x.ln c.a(در لگاریتم طبیعی) ca.x
ex ex
1/x ln x
1/x.ln c lncx
xx.(1+ln x) xx
cos(x) sin(x)
-sin(x) cos(x)
sec2(x), or 1/cos2(x) , or 1+tan2(x) tan(x)
-csc2(x),or -1/sin2(x),or –(1+cot2(x)) cot(x)
sec(x).tan(x) sec(x)
-csc(x).cot(x) csc(x)

مثال

یک فایل اسکریپت  ایجاد کنید و کد زیر  را در آن تایپ نمایید:

syms x

y = exp(x)

diff(y)

y = x^9

diff(y)

y = sin(x)

diff(y)

y = tan(x)

diff(y)

y = cos(x)

diff(y)

y = loq(x)

diff(y)

y = logl0(x)

diff(y)

y = sin(x)^2

diff(y)

y = cos(3*x^2+2*x +1)

diff(y)

y = exp(x) / sin(x)

diff(y)

زمانی که فایل را ایجاد می کنید، نتیجه زیر نشان داده می شود:

557

در زیر معادله octave از محاسبات بالا است:

pkg load symbolic

symbols

x = sym(“x”):

y =exp (x)

differentiate(y,x)

y = x^9

differentiate(y,x)

y =sih(x)

differentiate(y,x)

y =tan(x)

differehtiate(y,x)

y =cos(x)

differentiate(y,x)

y =log(x)

differentiate(y,x)

% symbolic packages does hot have this support

%y =logl0(x)

%differentiate(y,x)

y =sih(x)a2

differentiate(y,x)

y =cos(3*xa2+2*x +1)

differentiate(y,x)

y =exp(x)/sih(x)

differentiate(y,x)

محاسبات بالاتر به منظور مشتق

برای محاسبه بالاتری از مشتق تابع f، ما از نحوه اجرا در متلب (diff(f,n استفاده می کنیم.

به ما اجازه دهید مشتق دوم از تابع y=f(x)=x.e-3x بگیریم.

f = x*exp(-3*x);

diff(f,2)

متلب کد را اجرا خواهد کرد و نتیجه زیر را برمی گرداند:

558

معادله octave زیر معادل محاسبات بالا است:

pkg load symbolic

symbols

x = sym(“x”):

f = x*exp(-3*x);

differentiate(f, x,2)


مثال

در مثال زیر، ما یک مسئله را حل می کنیم. تابع (y=f(x)=3sin(x)+7cos(5x داده شده است.ما می خواهیم بفهمیم معادله (f”+f=-5cos(2x درست را نگه میدارد.

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن وارد کنید:

syms x

y =3*sin(x)+7*cos(5*x);% defining the function

lhs = diff(y,2)+y;%evaluting the lhs of the equation

rhs =-5*cos(2*x);%rhs of the equation

if(isequal(lhs,rhs))

disp(‘yes, the equation holds true’);

else

disp(‘no, the equation does not hold true’);

end

disp(‘value of lhs is: ‘), disp(lhs);

زمانی که شما فایل را ایجاد می کنید، نتیجه زیر نشان داده می شود:

559

معادله octave زیر  محاسبات بالا را نشان می دهد:

pkg load symbolic

symbols

x = sym(“x”) ;

y =3*sin(x)+7*cos(5*x);% defining the function

lhs = differentiate(y, x,2)+ y;%evaluting the lhs of the equation

rhs =-5*cos(2*x);%rhs of the equation

if(lhs == rhs)

disp(‘yes, the equation holds true’);

else

disp(‘no, the equation does not hold true’);

end

disp(‘value of lhs is: ‘), disp(lhs);

پیدا کردن حداقل و حداکثر از منحنی

اگر ما حداقل و حداکثر را از یک نمودار جستجو کنیم، ما به ط.ر اساسی بیش ترین و کمترین نقاط روی نمودار از یک تابع در محل خاص یا محدوده خاصی از مقادیر از متغیر نمادین را جستجو می کنیم.

برای تابع y=f(x) نقاط روی نمودار که در نمودار شیب صفر دارند نقاط ایستا نامیده می شوند. به عبارت دیگر نقاط ایستا f’(x)=0 هستند.

برای پیدا کردن نقاط ایستا از تابع دیفرانسیل ما ، نیاز به مجموعه مشتق معادله صفر و حل معادلات داریم.

مثال

اجازه دهید نقاط ایستا از تابع f(x)=2x3+3x2-12x+17 را در مراحل زیر بگیریم:

1.اول اجازه دهید  تابع را وارد کنیم و نمودار آن را رسم کنیم:

syms x

y =2*x^3+3*x^2-l2*x +17;% defining the function

ezplot(y)

متلب کد را اجرا می کند و طرح زیر را برمی گرداند:

560

اینجا کد معادل octave  برای مثال بالا است:

pkg load symbolic

symbols

x = sym )‘ x'( :

y =inline(“2*x^3 + 3*x^2 – l2*x + l7”);

ezplot(y)

print-deps gxaph.eps

  1. فرض ما بر این است که تعدادی محل حداکثر و حداقل روی نمودار وجود دارد، بنابراین ما محل حداکثر و حداقل برای فاصله زمانی[-2,2] را بر روی نمودارنشان می دهیم.

syms x

y =2*x^3+3*x^2-l2*x +17;% defining the function

ezplot (y, [-2, 2])

متلب کد را اجرا خواهد کرد و طرح زیر را بر می گرداند:

561

اینجا کد معادل  octave برای مثال بالا است:

pkg load symbolic

symbols

x = sym )‘ x’);

y =inline(“2*x^3 + 3*x^2 – l2*x + l7”);

ezplot (y, [-2, 2l)

print-deps gxaph.eps

q = diff(y)

بعد ، اجازه دهید مشتق را محاسبه کنیم

متلب کد را اجرا می کند و نتایج زیر را بر می گرداند:

562

اینجا معادل  octave محاسبات بالا است::

pkg load symbolic

symbols

x =   ( ii xii) ;

y =2*xa3+3*xa2-l2*x +17;

g = differentiate(y,x)

4. let us solve the derivative function, g, to get the values where it becomes zero.

s = solve(g)

متلب کد را اجرا خواهد کرد و نتیجه زیر را برمی گرداند:

563

در زیر معادلoctave از محاسبات بالا است:

pkg load symbolic

symbols

x =sym(“x”) ;

y =2*x^3+3*x^2-12*x +17;

g = differentiate(y,x)

roots([6,6,-12])

subs(y,1), subs(y,-2)

این با طرح ما موافق است.بنابراین اجازه دهید تابع f در نقاط بحرانی x=1,-2 را ارزیابی کنیم. ما می توانیم مقدار در تابع نمادین را با استفاده از دستورsubs تعویض کنیم.

متلب کد را اجرا خواهد کرد و نتیجه زیر را بازمی گرداند:

564

معادل  octaveاز محاسبات بالا  در زیر آمده است:

pkg load symbolic

symbols

x = sym(“x”) ;

y =2*x^3+3*x^2-12*x +17;

g = differentiate(y,x)

roots([6,6,-12])

subs(y, x,1), subs(y, x,-2)

اغلب مقادیر حداقل و حداکثر بر روی تابع f(x)=2x3+3x2-12x+17، در فاصله زمانی [-2,2] 10و 37 هستند.

حل معادلات دیفرانسیل

متلب دستور dsolve را برای حل معادلات دیفرانسیل نمادین فراهم کرده است.اساسی ترین شکل دستور dsolve برای پیدا کردن راه حل برای یک معادله است:

565

که eqn یک رشته متنی استفاده شده برای وارد کردن معادله است.این یک راه حل نمادی با یک مجموعه از ثابت های اختیاری که برچسب های متلبc1,c2,و غیره است را باز می گرداند.همچنین شما می توانید شرایط مرزی و اولیه خاصی برای مسئله، به عنوان  لیست کاما – جدا از هم معادله چ به صورت زیر :

566

برای اهداف استفاده از دستور dsolve، مشتق ها همراه با d نشان داده می شوند.برای مثال، معادله مانند f’(t)=-2*f+cost(t) به این صورت وارد می شود:

‘df=-2*f+cost(t)’

مشتق های بالاتر توسط d به منظور  مشتق  نشان داده می شود.

برای مثال معادله  f”(x)=2f’(x)=5sin3x باید به این صورت وارد شود:

‘d2y+2dy=5sin(3x)’

اجازه دهید یک مثال نمونه از معادله دیفرانسیل مرتبه اول بزنیم:y’=5 .

s = dsolve(‘dy = 5*y‘)

متلب کد را اجرا خواهد کرد و نتیجه زیر را برمی گرداند:

اجازه دهید مثال دیگری از معادله دیفرانسیل مرتبه دوم بزنیم:y”-y=0,y(0)=-1,y’(0)=2.

dsolve(‘d2y – y = o’, ‘y(o) = -l‘, ‘dy(o) = 2‘)

متلب کد را اجرا خواهد کرد و نتیجه زیر را برمی گرداند:

567

خرید کتاب 28 گام موثر در فتح متلب

سعید عربعامری
من سعید عربعامری نویسنده کتاب 28 گام موثر در فتح متلب مدرس کشوری متلب و سیمولینک و کارشناس ارشد مهندسی برق قدرتم . بعد از اینکه دیدم سایتهای متعدد یک مجموعه کامل آموزش متلب و سیمولینک ندارند به فکر راه اندازی این مجموعه شدم
http://sim-power.ir

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

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