تبلیغات آموزش مطلب
وبلاگ من
نویسنـــدگان :
امین باشی (73)
موضــــوع ها :
figure (14)
line (1)
uicontrol (1)
uipanel (1)
axes (2)
Organization of Graphics Objects (2)
uimenu (2)
خودم (7)
image (2)
surface (1)
patch (1)
text (5)
light (1)
plot object (2)
area (3)
bar (2)
convolution (1)
errorbar (2)
plot (1)
surf (1)
برازش منحنی (1)
workspace (1)
evalin (1)
GUIDE (1)
dsolve (1)
لاپلاس (1)
سری فوریه (3)
حل عددی IVP (2)
حل معادلات دیفرانسیل پاره ای وابسته به زمان در یک بعد (1)
BVP (1)
حل معادلات خطی (1)
solve (1)
حل pde (5)
subs (1)
آرشیـــو :
خرداد 1388 (1)
مرداد 1386 (1)
بهمن 1385 (2)
دی 1385 (2)
آذر 1385 (1)
شهریور 1385 (6)
مرداد 1385 (6)
تیر 1385 (5)
خرداد 1385 (1)
اردیبهشت 1385 (3)
فروردین 1385 (9)
اسفند 1384 (9)
شهریور 1384 (14)
مرداد 1384 (10)
تیر 1384 (3)
لینكدونی :
MATLAB Wiki
History of Iran
لورن
آرشیو لینكدونی
لینكستان :
متمتیکا
مهندسی صنایع - مهندس امیر
مهندسی شیمی ایران
اخبار نجوم
دانلود رایگان کتاب فیزیک به زبان فارسی
وبلاگ فیزیک ایران
مجله نجوم
انجمن علمی پژوهشی نجم شمال
ماه نو
مطلب نوین
آموزش متلب
میكرو روباتیك
معماری بی نظیر
انجمن مهندسی شیمی ایران
تکنولوژی برتر
گلچین دنیای اینترنت
پروژه های جالب الكترونیك
جادوهای ویندوز
Mathworks
وب كلاس
جنون اینترنت
فرهنگستان زبان و ادب پارسی
جسنجو :
خبرنامه :
نظر سنجی :
امروز :
بازدید های امروز :
بازدید های دیروز :
كل مطالب :
كل نظرها :
كل بازدید ها :
ایجاد صفحه : - ثانیه
حل عددی IVP
حل عددی معادلات دیفرانسیل معمولی (IVP)
روشهای زیادی برای حل عددی معادلات دیفرانسیل وجود دارد که هر کدام از این روشها برای نوعی از معادلات کاربرد دارد در مطلب نیز توابع متفاوتی بر اساس این روشها وجود دارد برای مثال 0de45 بر اساس روش رانگ کوتا عمل می کند.
[t,Y] = solver(odefun,tspan,y0)
فرم کلی حل عددی معادلات دیفرانسیل به این صورت است که به جای solver در دستور بالا نوع ode (برای مثال ode45) مورد نظر باید ذکر شود.
منظور از odefun تابعی است که در آن مادلات دیفرانسیل مورئ نظر تعریف شده است و به شکل زیر است. t متغیر مستقل اسکالر و y متغیر وابسته به صورت بردار ستونی است.
dydt = odefun(t,y)
منظور از tspan بازه ای است که معادله در آن حل می شود و y0 شرایط اولیه است.
مثال)
کنترل سطح مایع در یک مخزن یک مثال کلاسیک است که در اکثر کتابهای کنترل دیده می شود.
معادله دیفرانسیل این فرآیند به این صورت است .

q دبی حجمی، h ارتفاع، A سطح مقطع و R مقاومت شیر خروجی مخزن است.
برای حل این معادله ابتدا تابع odefun را تشکیل می دهیم.
فرض کنید A=1, R=1 و تغییرات دبی ورودی به صورت سینوسی باشد.
function dy=testode(t,y)
dy=sin(t)-y;
پس از ذخیره کردن نابع ، در خط فرمان مطلب دستور زیر را می نوسییم :
[t,y]=ode45('testode',[0 ,10],0);
fourier
سری فوریه (2)
حتما می دانید که سری فوریه هر تابع، تقریبی از آن تابع است.هرچه چملات سری بیشتر باشد مقدار سری به مقدار واقعی تابع نزدیک تر است.
یکی از راه های بدست آوردن سری فوریه یک تابع استفاده از دستور fit است.این دستور توانایی محاسبه سری فوریه با حداکثر 8 جمله را دارد.
x=[-pi:.1:pi]';
y=sin(x);
f=fit(x,y,'fourier1')
به جای fourier1 می توان fourier2...fourier8 را قرار داد.
توابع زیر هم نیاز معرفی ندارند/
تابع گاما
Y = gamma(A)
تابع خطا
Y = erf(X)
سری فوریه
سری فوریه
فرض کنید تابع f به صورت زیر تعریف شده یاشد.

تابع f یک تابع تناوبی با دوره 2L می باشد و ثابتهای بسط فوریه این تابع از روایط زیر بدست می آیند



برای محاسبه این ثوابت از دستور int استفاده می کنیم
R = int(S)
R = int(S,v)
R = int(S,a,b)
R = int(S,v,a,b)
استفاده از این دستور ببسیار ساده است.S عبارتی است که می خواهیم از آن انتگرال بگیریم، v متغیر مستقل است و a,b حدود انتگرال گیری هستند
اولین قدم برای استفاده از این دستور تعریف متغیرهاست
syms w A t n
و بعد از آن محاسبه ثوابت
a0= w/pi*int('A*sin(w*t)','t',0,pi/w)
an=w/pi*int('A*sin(w*t)*cos(n*w*t)','t',0,pi/w)
bn=w/pi*int('A*sin(w*t)*sin(n*w*t)','t',0,pi/w)
قدم بعدی یافتن مقدار ثوابت در n های مختلف است.برای این کار از دستور subs استفاده می کنیم
subs(bn,n,3)
دستور بالا مقدار bn را به ازای n=3 محاسبه می کند
مقدار an را در n=1 مبهم است چون صورت و مخرج an صفر می شود .با استفاده از دستور limit حد این عبارت را در n=1 می توان بدست آورد.
limit(an,n,1,'right')
limit(an,n,1,'left')
لاپلاس
تبدیل لاپلاس
تبدیل لاپلاس یکی از روشهای حل معادلات دیفرانسیل است که در حل معدلات دیفرانسیل معمولی و جزیی کاربرد فروانی دارد.برای لاپلاس گرفتن از دستور laplace استفاده می شود.
برای استفاده از این دستور ابتدا باید متغیر مستقل را تعریف کرد
syms t
البته هر متغیر دلخواه دیگری را هم می شود تعریف کرد و تابع برگشتی هم بر حسب s می باشد.
r = laplace(t)
برای لاپلاس معکوس گرفتن هم از دستور ilaplace استفاده می شود.
ilaplace(r)
حالا فرض کنید بخواهید از تابع 1 لاپلاس بگیرید و بنویسید
laplace(1)
نوشتن این دستور به این شکل اشتباه است و موجب خطا می شود، برای این کار باید 1 را به صورت نماد تعریف کنیم
m=sym(1)
ilaplace(m)
dsolve
حل معادلات دیفرانسیل معمولی
وقتی که می خواهیم به صورت تحلیلی از مطلب استفاده کنیم باید از Symbolic Math Toolbox استفاده کنیم . این جعبه ابزار مجموعه ای از دستورات مطلب است که برای تعریف و کار با متتغیرها به صورت نمادین جمع آوری شده اند.
a=sqrt(sym(2))
f = sym('x^2 + x + 1')
ezplot(f)
دستور dsolve از این جعبه ابزار برای حل معادلات دیفرانسیل استفاده می شود.
dsolve('Dy=x')
ans =
x*t+C1
حتما می دانید که عملگر D هم ارز با dy/dx است و هدف ازدستور بالا یافتن جواب معادله dy/dx=x ؟!
متغیر پیش فرض این دستور t است بنابراین x در دستور بالا به صورت یک ثابت عمل می کند.
dsolve('Dy=x','x')
ans =
1/2*x^2+C1
پس هنگامی که متغیر مستقل معادله، t نباشد حتما باید ذکر شود.
در بسیاری از موارد جواب خصوصی معادله مورد نیاز است؛ فرض کنید بخواهیم معادله D2y=x را حل کنیم بطوریکه
y(1)=3
y(2)=5
برای اینکار از این حالت دستور dsolve استفاده می کنیم
dsolve('D2y=x','y(1)=3,y(2)=5', 'x')
شکل کلی استفاده از این دستور یکی از اشکال زیر است که با هم معادل هستند
r = dsolve('eq1,eq2,...', 'cond1,cond2,...', 'v')
r = dsolve('eq1','eq2',...,'cond1','cond2',...,'v')
منظور از v متغیر مستقل، cond شرط اولیه و eq معادله دفرانسیل مورد نظر است.
فزض کنید بخواهیم دستگاه معادلات دیفرانسیل زیر را حل کنیم(متغیر مستقل را t فرض کنید).
Dx = y
Dy=-x
به این صورت عمل می کنیم
r=dsolve('Dx = y', 'Dy = -x')
مطلب و ریاضیات
فکر کنم که در مورد گرافیک خیلی حرف زدهام و تقربیا همه مطالب اساسی را گفتهام و از این به بعد به دیگر قسمتهای مطلب می پردازم .
مطلب یک نرم افزار مهندسی است و اولین و مهمترین چیزی که یک مهندس باید بلد باشد ریاضیات است. اکثر رشتههای مهندسی در دوره کارشناسی حدود 19 واحد ریاضی پاس می کنند ولی خیلی ها بلد نیستند در این ضمینه از مطلب استفاده کنند .از این به بعد قرار است یاد بگیرم که ( من هم خیلی چیزها را بلد نیستم) در حد ریاضیات دوره کارشناسی از مطلب استفاده کنیم.
برای شروع از معادلات دیفراسیل معمولی شروع می کنم و حل تحلیلی و پس از آن به سراغ حل عددی می روم
نوشته های پیشین ...
هرگونه استفاده تجاری از مــطالب این سایت بصورت
كتاب٬ نشریه٬ وب و ... ممنوع میباشد
All right
reserved©2005
Amin Bashi