تبلیغات
آموزش مطلب - مطالب دی 1385

رسم pde

نویسنده :امین باشی
تاریخ:پنجشنبه 14 دی 1385-10:01 ق.ظ

در مطالب قبلی مقدمات استفاده از pdetoolbox را مرور کردیم و فرض می کنیم که بلد هستید جواب pde را در متغیری مثل u و تقسیم بندی مسئله  (mesh) را در متغیر هاب p,e,t ذخیره کنید.

دستور pdemesh برای رسم تقسیم بندی استفاده می شود.

pdemesh(p,e,t)
pdemesh(p,e,t,u)
h=pdemesh(p,e,t)
h=pdemesh(p,e,t,u)

حالات اول دستور٬ تقسیم بندی سیستم را به صورت دو بعدی رسم می کند.

حالت دوم این کار رابه صورت سه بعدی نمایش می دهد٬ ارتفاع هر گره به متغیر u (دما) بستگی دارد.

 اما اگر بخواهیم دمای هر گره را بر روی خود آن نشان دهیم به صورت عمل می کنیم:

pdemesh(p,e,t)

hold on

متغیر p دو سطر دارد که سطر اول مولفه x و سطر دوم مولفه y است.تعداد ستون های p به اندازه تعداد گره ها است.

متغیر u یک ستون و به تعداد گره ها سطر دارد. یعنی هر سطر آن متناظر با یک ستون p است.

حالا متغیر u  را بتبدیل به رشته گرده و بر روی شکل قرار می دهیم

uu=num2str(u);

nn=length(u);

for i=1:nn

text(p(1,i),p(2,i),uu(i,:))

drawnow

end


دوستی پرسیدن که در هنگام استفاده از plot  با پیغام خطای زیر روبرو می شوند:

Attempt to execute SCRIPT plot as a function 

احتمالا این دوستمون از یک متغیر یا یک ام فایل به اسم plot استفاده کرده است. برای اینکه با این خطا و خطاهایی شبیه به این روبرو نشوید اسم متغیرها را به دقت انتخاب کنید  



نوع مطلب : حل pde 

تبدیل معادلات سمبولیک به عددی

نویسنده :امین باشی
تاریخ:جمعه 8 دی 1385-07:12 ق.ظ

یکی از دوستان سوال کردن چطور می شود معادلات سمبولیک را به عدد تبدیل کرد و گفتند که در نسخه های قبل از متلب ۷ با دستور numeric ٬ این کار قابل انجام بوده است.

من نمی دانم دستور numeric  چه کاری انجام می دهد٬ ولی اگر بخواهیم مقدار عددی یک عبارت سبمبولیک را پیدا کنیم از دستور subs استفاده می کنیم

syms x

y = int(x^2)

subs(y,x,3)

قالب کلی اسن دستور به این صورت است

R = subs(S)

R = subs(S,new)

R = subs(S,old,new)

در مثال بالا از حالت سوم دستور استفاده کردیم.

هر عبارت سمبولیک یک متغیر پیش فرض دارد که این متغیر اولین متغیری است که در خروجی دستور findsym دیده می شود.

syms x y z

f = z+y+x

findsym(f)

subs(f,2)

مثال زیر نحوه استفاده از حالات اول دستور را نشان میدهد.

y = dsolve('Dy=y+a')

a = 1000

C1 = 2

subs(y)



نوع مطلب : subs 





All right reserved©2005 Amin Bashi