آموزش جامع حل معادلات pde در متلب
برای حل معادله دیفرانسیل جزئی در متلب ابتدا به دستور pdepe اشاره خواهیم کرد که برای حل معادلات Parabolic (سهموی) و Elliptic (بیضوی ) مورد استفاده قرار میگیرد.
سپس به تولباکس کلی حل معادلات دیفرانسیل جزئی در متلب خواهیم پرداخت که با استفاده از آن قادر خواهیم بود حل معادلات pde در متلب به راحتی انجام دهیم.
شما میتوانید برای مشاهده سایر آموزشهای نرمافزار متلب به صفحه « آموزش متلب » گام98 مراجعه نمایید و یادگیری خود در متلب را سرعت ببخشید.
دستور pdepe در متلب برای حل معادلات سهموی و بیضوی
دستور pdepe مخفف کلمه Partial Differential Equation Parabolic-Elliptic است.
این دستور برای حل معادله دیفرانسیل جزئی در متلب از نوع سهموی و بیضوی مورد استفاده قرار میگیرد.
فرم کلی معادله تعریف شده در متلب بصورت زیر میباشد:
در رابطه بالا زمان (t) بین t0 تا tf و متغیر مکانی x بین a تا b میباشد.
دقت شود که بازه مکانی a تا b حتما باید محدود باشد.
پارامتر m میتواند مقادیر صفر، یک و دو را داشته باشد.
در رابطه بالا (f (x,t,u,∂u/∂x را اصطلاحا ترم flux و (s (x,t,u,∂u/∂x را اصطلاحا ترم source یا همان منبع مینامند.
همچنین (c (x,t,u,∂u/∂x در رابطه بالا یک ماتریس قطری بوده که درایههای میتوانند مثبت یا صفر باشند.(در حالت کلی برای حل دستگاه معادلات)
برای حل معادله دیفرانسیل جزئی درمتلب برای این دستور باید شرایط مرزی و شرایط اولیه تعریف شوند که این دو شرط به فرم زیر میباشند:
شرایط مرزی باید در هر دو مرز تعریف شوند.
در ضمن لازم به ذکر است که این دستور برای حل سیستمی از معادلات نیز قابل حل میباشد.
حل معادله pde در متلب – حل مثال با دستور pdepe و تعریف توابع
برای حل معادله دیفرانسیل جرئی در متلب باید ورودیهای لازم برای حل بصورت تابع تعریف شوند که در یک مثال بطور کامل طریقه تعریف این توابع را به شما آموزش خواهیم داد.
مثال زیر که یک معادله انتشار حرارت میباشد را در نظر بگیرید:
که مشخصات این مثال شامل بازه تعریف شده و شرایط مرزی و شرط اولیه آن بصورت زیر میباشد:
برای حل pde در متلب ابتدا باید توابع موردنیاز برای ورودی حل تعریف شوند.
1- ابتدا تابعی تعریف میشود که مشخصات توابع c، f، s باید در آن تعریف شوند.
با مقایسه مثال موردنظر با شکل کلی معادله تعریف شده در متلب این توابع تعریف میشوند. این تابع بصورت زیر نوشته میشود
1 2 3 4 5 |
function [c,f,s] = pdepedx1(x,t,u,DuDx) c = pi^2; f = DuDx; s = 0; end |
توضیحات: با مقایسه فرم اصلی با مثال تعریف شده مشخص میشود که تابع c برابر مقدار π2 میباشد. همچنین تابع f برابر u/∂x∂ یا همان du/dx میباشد.
با توجه به اینکه ترم source در این معادله صفر میباشد، مقدار s=0 میباشد.
همچنین لازم به ذکر است که مقدار ضریب m در این مثال با توجه به مقایسه فرم اصلی معادله در متلب و مثال گفته شده برابر صفر میباشد.
البته مقدار m را در فایل اصلی حل وارد میکنیم.
2- در ادامه حل معادله دیفرانسیل جزئی در متلب باید شرط اولیه بصورت تابع تعریف شود که آن را با u0 مشخص میکنیم.
این تابع بصورت زیر نوشته میشود:
1 2 3 |
function u0 = pdepeic(x) u0 = sin(pi*x); end |
البته لازم به ذکر است که این تابع چون دارای یک ورودی میباشد میتوان در فایل اصلی که در ادامه خواهیم گفت نیز آن را بصورت function handle تعریف کرد که برای استانداردسازی آن را جدا تعریف کردهایم.
3- در بخش آخر تعریف توابع باید تابع شرایط مرزی تعریف شود که این تابع بصورت زیر میباشد:
1 2 3 4 5 6 |
function [pl,ql,pr,qr] = pdepebc(xl,ul,xr,ur,t) pl = ul; ql = 0; pr = pi * exp(-t); qr = 1; end |
همانطور که قبلا درباره شرایط مرزی صحبت کردیم این شرط در متلب بصورت زیر میباشد:
که در این رابطه مقدار f از قبل در تابع اول تعریف شده است و باید در مرزهای چپ و راست مقدار p و q مشخص شوند که برای سمت چپ از pl و ql و برای سمت راست از pr و qr استفاده شده است.
با مقایسه شکل کلی و شرط مرزی این مثال ضرایب بصورت آنچه در کد نوشته شده است بدست خواهند آمد.
لازم به ذکر است که ul و ur مقادیر پاسخ به ترتیب در مرزهای چپ و راست میباشد.
در ادامه حل معادله دیفرانسیل جزئی در متلب با تعریف توابع گفته شده مسئله را حل مینماییم.
یکی دیگر از خدمات گام98 در حوزه تولید پروژه های آماده میباشد شما میتوانید برای مشاهده این پروژهها که در موضوعات و رشتههای مختلف میباشد به صفحه « پروژه های آماده متلب » مراجعه نمایید.
حل معادلات pde در متلب – تعریف فایل اصلی و حل مثال
برای حل مسئله با توجه نکته گفته شده مقدار m=0 میباشد. گام مکانی و زمانی را هر دو برابر مقدار 0.1 قرار دادهایم.
برای استفاده از تابع pdepe باید 6 ورودی به آن داده شود که ورودی اول مقدار m ، ورودیهای دوم تا چهارم همان توابع 1 تا 3 تعریف شده میباشد که باید به همان ترتیب 1 تا 3 به عنوان ورودیهای دوم تا چهارم وارد شوند. ورودیهای پنجم و ششم به ترتیب مقدار x و t میباشند.
در ادامه با بیان کد اصلی مقدار جواب را برای کل محور مکان و تا زمان t=3 ترسیم خواهیم کرد.
همچنین خود زمان t=3 را بطور دو بعدی برای کل محور مکان ترسیم خواهیم کرد.
کد فایل اصلی و نمودارهای مربوطه بصورت زیر میباشد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
clc; clear; close all; m = 0; dx = 0.1 ; dt = 0.1 ; x = 0 : dx : 1 ; t = 0 : dt : 3 ; sol = pdepe(m,@pdepedx1,@pdepeic,@pdepebc,x,t); u = sol(:,:,1); figure subplot 121 surf(x,t,u) colorbar; colormap jet title('Numerical solution computed with 11 mesh points.',... 'fontsi',20,'interpreter','latex') xlabel('x','fontsi',30,'interpreter','latex') ylabel('Time','fontsi',30,'interpreter','latex') zlabel('u','fontsi',30,'interpreter','latex') |
نکته 1 :
لازم به ذکر است که برای معرفی توابع در ورودیهای دستور pdepe توابع باید با @ به کار برده شوند.
در فایل بالا مقدار u بصورت (sol(:,:,1 تعریف شده است.
دقت شود که در این مثال چون فقط یک معادله داشتیم بنابراین مقدار u با مقدار sol یکی میباشد.
اما در حل دستگاهی از معادلات هر طبقه (ورودی سوم یک ماتریس بعد از سطر و ستون) پاسخ هر کدام از مجهولات به ترتیب تعریف شده میباشد.
نکته 2:
در ادامه حل معادله دیفرانسیل جزئی برای حل دستگاه معادلات دیفرانسیل نیز از همین دستور میتوان استفاده کرد که برای یادگیری تعریف آن که کاملا مشابه با همین شیوه میباشد.
با مراجعه به راهنمای نرمافزار متلب میتوانید یادگیری آن را فرا بگیرید. در اینجا به دلیل اهمیت کم آن از بیان آن صرف نظر شده است.
حل کلی معادله دیفرانسیل جزئی در متلب با استفاده از تولباکس حل معادلات pde
همانطور که گفته شد دستور pdepe برای حل معادلات دیفرانسیل جزئی سهموی (Parabolic) و بیضوی (Eliptic) مورد استفاده قرار میگیرد و مثلا معادلات هذلولوی (Hyperbolic) مثل معادله موج را نمیشود با استفاده از آن حل نمود.
همچنین تعداد بعدهای مکانی در این دستور فقط یکی میباشد که خب محدودیت قابل توجهی است.
تولباکس حل معادلات دیفرانسیل جزئی در متلب برای حل کلی انواع معادلات شاخص میتواند مورد استفاده قرار بگیرد.
این تولباکس چهار نوع معادلات کلی زیر را در فضای دوبعدی مکان میتواند حل نماید:
برای استفاده از تولباکس حل pde در متلب از دستور pdetool استفاده میکنیم.
شکل کلی این تولباکس بصورت زیر است:
توضیحات آیکونهای مختلف را در شکل زیر مشاهده مینمایید:
استفاده از این تولباکس بسیار راحت است به دلیل اینکه نیازی به هیچ کدنویسی نداشته و با دقت نسبتا خوب میتواند معادلات را حل نماید.
در قسمت انتخاب نوع معادله میتوانیم از فرم کلی معادلات و دستگاه معادلات استفاده کنیم.
همچنین میتوانیم از فرمهای مهندسی معادلات استفاده کنیم برای رشتههای مهندسی عمران، مکانیک و برق میتواند مورد استفاده قرار گیرد که خوبی آن این است که ضرایب کاملا همان پارامترهای موجود در مسائل مهندسی مرتبط با رشته هستند که بسیار کار حل معادله را راحت میکنند.
حل معادله pde در متلب – حل مثال با استفاده از تولباکس حل pde در متلب
در یک مثال میخواهیم با جزئیات این تولباکس آشنا شویم.
فرض کنید بخواهیم یک معادله حرارت در فضای دوبعدی را حل نماییم که یک محیط مستطیلی داشته و شرایط مرزی آن همگی صفر میباشند و دارای شرایط اولیه ثابت برابر 10000 باشد.
ابتدا نوع معادله را از نوع Generic Scalar انتخاب کرده و سپس از آیکون تعریف ضرایب ابتدا معادله parabolic را انتخاب کرده و سپس ضرایب مربوطه را بصورت زیر تعیین میکنیم:
بعد از آن یک محیط مستطیلی دلخواه را با کمک ابزار ترسیم رسم میکنیم.
میتوانیم با کلیک بر روی محیط ترسیم ابعاد دقیق و محل قرارگیری را مشخص نماییم که بصورت زیر میباشد:
برای اعمال شرایط مرزی بر روی آیکون مربوطه آن کلیک نموده و حالا بر روی هر مرز جداگانه کلیک میکنیم و مقدار جواب در مرزها را که در این مثال مقدار صفر بوده با توجه به ضرایب مربوطه تعیین مینماییم.
البته در حالت پیشفرض مقدار پاسخ در مرزها صفر میباشد.
دقت شود که در اینجا دو نوع شرط مرزی دریکله و نیومن وجود دارد.
همانطور که میدانید شرط مرزی ما از نوع دریکله (یعنی از نوع مقدار ) میباشد.
شرط مرزی نیومن برای شرط مشتق میباشد.
بعد از مشخص کردن شرایط مرزی برای حل معادله دیفرانسیل جزئی حرارت در متلب باید شرایط اولیه به آن داده شود:
برای آن از منو بالا بر روی Solve کلیک کرده و سپس بر روی Parameters کلیک کرده و در اینجا میتوانیم علاوه بر مقدار شرط اولیه (u0) مقدار زمان تحلیل و مشخصات دیگر را نیز تغییر دهیم بصورت زیر:
در مرحله پایانی مشبندی را انجام میدهیم که میتوانیم از هر دو مش درشت و ریز مثلثی موجود استفاده نماییم.
همچنین میتوانیم با کلیک مجدد بر روی مش ریز همچنان مشبندی را ریزتر نماییم. مطابق زیر:
حل معادلات pde در متلب – انجام تحلیل و مشاهده نتایج خروجی:
سپس بر روی آیکون ((=)) کلیک نموده تا تحلیل انجام شود.
بعد از پایان تحلیل میتوانیم بر روی آیکون تنظیمات مشاهده نتایج کلیک نموده و تنظیمات موردنظر را مانند مشاهده پاسخ در زمان مورنظر و انواع تنظیماتی گرافیکی را که همان تنظیمات رسم نمودار میباشد مشخص نمایید
همچنین شما میتوانید با کلیک روی منوهای مختلف از جمله منوهای Solve و mesh و انتخاب کردن گرینه Export نتایج خروجی و مشبندی را دریافت نموده و از آنها برای ترسیمهای خاص و یا کاربردهای دیگر استفاده نمایید.
تمامی روشهایی که گفته شد، روشهای تحلیلی حل معادلات دیفرانسیل با مشتقات جزئی (pde) در متلب بودند. اما در بسیاری از اوقات (بدلیل ناهمگنی، غیرخطی و یا پیچیدگی زیاد) معادلات pde را نمیتوان به روشهای تحلیلی حل نمود و باید از روشهای عددی کمک گرفت. رایجترین معالات pde که به روشهای عددی حل میشوند معادلات انتقال حرارت یا انتشار هستند. شما میتوانید روشهای مختلف عددیِ حل معادلات حرارت (صریح، ضمنی، کرانک و …) در متلب را از صفحه « حل معادله انتقال حرارت در متلب » دانلود نمایید.
مطالب زیر را حتما مطالعه کنید
کار با بردارها در متلب
آموزش کامل انواع دستورات توزیعهای آماری در متلب
در این مقاله قصد داریم انواع دستورات مهم توزیع های آماری در متلب را به همراه رسم انواع توزیعها و برازش با استفاده از توزیع های آماری بیان نماییم.
آموزش صفر تا 100 تحلیل المان میله به روش اجزا محدود
در ادامه دومین سری از آموزشهای روش المان محدود در این مقاله تحلیل المان میله به روش اجزا محدود را همراه با مثال به طور صفر تا صدی آموزش خواهیم داد.
آموزش جامع و کامل تحلیل المان فنر به روش اجزا محدود
در اولین مجموعه از مقالات آموزشی روش اجزا محدود، آموزش جامع و کامل تحلیل المان فنر به روش المان محدود را همراه با مثال برای شما عزیزان بیان خواهیم کرد.
روش اجزا محدود – Finite Element Method
روش اجزا محدود یک روش عددی برای حل مسائل مهندسی و فیزیکی میباشد. در این مقاله به طورکلی با کاربرد، تاریخچه و مراحل حل این روش آشنا خواهیم شد.
آموزش جامع انواع دستورات توزیع نرمال در متلب
در این مقاله انواع دستورات توزیع نرمال در متلب را به شما آموزش میدهیم.همچنین نحوه کار با توزیع های نرمال تک متغیره و چند متغیره را با جزئیات خواهید آموخت.
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
با سلام و خسته نباشید خدمت اعضای محترم سایت واقعا مطالب بسیار مفید هستند و موارد مختلف کاربرد دارند.
با تشکر از زحمات شما
با سلام و احترام، بسیار خوشحالم که براتون مفید واقع شده. موفق باشید!