در اين مثال هم از تابع kore استفاده مي كنيم و حركت نوساني يك توپ رو كه در مسيري فنري شكل حركت مي كنه رو نمايش مي دهيم. كافيه كه سورس زير رو در يه mfile قرار بديم و با اجراي كد شبيه سازي رو تو پنجره ي figure مشاهده كنيم:
کد:clear all k=linspace(0,2*pi,100); for t=1:100 clf plot3(5*sin(k),5*cos(k),k,'-.') hold on kore(5*sin(k(t)),5*cos(k(t)),k(t)+(sin(t)/t)*3,0.5) axis([-6,6,-6,6,-1,7]) m(t)=getframe(); end
اين سورس Mfile بيش تر جنبه ي مكانيكي-فيزيكي داره و نوسان يك فنر رو نشون ميده. بعد با دستور subplot نمودار هاي مكان-زمان و سرعت-زمان رو ترسيم مي كنه.
کد:clear all clc t=linspace(0,8*pi,400); x=sin(t); y=cos(t); figure(1) for i=1:400 plot3(x,y,t+t*(sin(t(i))/t(i))*2*pi) axis([-1 1 -1 1 -10 50]) m(i)=getframe; end figure(2) subplot(1,2,1) plot(t,t+t.*(sin(t)./t)*2*pi) subplot(1,2,2) plot(t,(cos(t)-sin(t).*t).*t.^2) title('Position/Time - Velocity/Time')
آخرین ویرایش توسط ravegoat در تاریخ 06-07-10 انجام شده است علت: منظم كردن تگ كد
با سلام خدمت دوستان ..
چنتا سوال دارم:
1- این سورسها در چه ورژنی آزمایش میشن؟
2-معنی این چیه؟
در مربع ارشمیدس یه جا نوشتید b=a و در انتها نوشتید b=-a !! این یعنی چی ؟ چجوری ممکنه؟
3-ظاهرا kore در متلب ورژن R8 تغییر کرده چون ارور میده ؟ میدونین باید چه چیزی به جاش نوشت؟
............................
خیلی ممنونم
من سوالات زیادی دارم واسه همین عضو شدم امیدوارم پاسخ بدید.
با سلام!برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط yellowYeild برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
دوست عزيز عضويت شما در PCN رو تبريك ميگم.
1-نسخه ي 2008
2-خب الگوريتم ترسيم به اين شكل هست. براي بار اول دستور b=a اجرا ميشه تا دو خط از مربع رسم شه. بعد برنامه وارد يه حلقه ي while ميشه و در انتهاي هر بار اجراي حلقه دستور b=-a اجرا ميشه. در واقع فقط در يك ترسيم نياز به b=a و در بقيه موارد b=-a نياز است. اجراش كرده بودم درست كار مي كرد. با اين حال اگر تو هر جاييش مشكل داريد بفرماييد تا توضيح بدم خدمتتون.
3-دستوري به اسم kore در هيچ يك از نسخه هاي متلب نيست. بنده خودم يه بار چنين دستوري رو در يك mfile تعريف كردم و بعد اون kore.m رو داخل شاخه ي work قرار دادم. بدين شكل دستور kore براي متلب تعريف ميشه. چون رسم كره يه چيز كاربرديه تصميم گرفتم يه بار تابع ترسيمش رو تعريف كنم تا كار راحت تر بشه.
موفق باشيد
آرمين
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
ممنونم..با اين حال اگر تو هر جاييش مشكل داريد بفرماييد تا توضيح بدم خدمتتون.
میشه این دستور رو بذارید تا من هم استفاده کنم..بنده خودم يه بار چنين دستوري رو در يك mfile تعريف كردم و بعد اون kore.m رو داخل شاخه ي work قرار دادم
------------------------------------------------------------
سوالات دیگه:
1-چرا مینویسیم m(i)=getframe چرا با g یا u اجرا نمیشه؟ از پیش فرضهای نرم افزاره؟ ( به مانند اینکه حروف باید کوچک باشند -در برخی موارد-)
2- s=clock; در مورد این کمی توضیح میدید؟و f=clock-s;
.
.
من باز سوال دارم ..
بسیار ممنونم
خواهش مي كنم!برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط yellowYeild برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
تابع مربوط به رسم كره دراينجا بود.
------------------------------------------------------------
1-اين سوال رو متوجه نميشم. ميشه دقيق تر توضيج بديد. تابع getframe درواقع عكسي رو از پنجره ي figure ميگيره و در آرايه ي m ذخيره مي كنه. متغير m يك آرايه است يعني متغير شامل تعداد متناهي عنصر. با دستور m(i) به عنصر i ام اين آرايه ميشه دسترسي پيدا كرد. حالا سوالتون دقيقا" در كدام مورد است؟
2-دستور clock در واقع زمان سيستم رو به هنگام اجراي دستور بر مي گردونه. كلا" اون كد براي تعيين مقدار زمان اجراي يك كد در mfile به كار ميره. ابتدا زمان شروع به كار برنامه در متغير s ذخيره ميشه سپس با پايان كد، مقدار s از زمان فعلي سيستم (clock) كه زمان پايان كار محسوب ميشه، كم ميشه و حاصل در متغير f قرار ميگيره. البته ميشه به جاي f=clock-s دستور etime(clock,s) رو هم به كار برد.
.
.
سوالات ديگه تون رو هم بفرماييد؛ تا اون جا كه مي تونم پاسخ ميدمبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید .
آرمين
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
پيچ ارشميدوس همون طور كه مي دونيد يه خم باز و ساده به شكل دايره اي هست كه به تدريج شعاع اون كم ميشه. صرف نظر از ظاهر جالب اين پيچ، كاربرد هاي مفيدي رو در بخش مكانيك داره. بنده سعي كردم يه كد ساده براش بنويسم كه البته كمي دقتش پايينه. ترسيم اين پيچ در مختصات قطبي خيلي ساده تر ميشه براي همين از دستور polar استفاده كردم:
همين طور كه ملاحظه مي كنيد اول شعاع رو تعريف كردم و مقدار اون رو از 10 تا صفر تغيير دادم و بعد مقدار زاويه تتا رو از 0 تا ده پي تغيير دادم تا تعداد دور هاي پيچ به 5 برسه كه البته مي تونيد بر حسب نياز خودتون اين مقادير رو تغيير بديد.کد:r=linspace(10,0,101); theta=linspace(0,10*pi,101); polar(theta,r)
amn110234 (21-04-16), M A H R A D (30-09-10), Rezasam1 (10-07-11), ViViD (09-07-11)
نمونه ي سورس سري فوريه در نرم افزار MATLAB پيوست شده. اين سورس تابع f رو دريافت مي كنه در در بازه از a تا b به اندازه ي k تعداد جملات سري فوريه تابع را محاسبه مي كنه. البته رسم نمودارش يكم نياز به بهينه سازي داره...
|
اين كد براي تحليل ارتعاش يك صفحه ي مرتعش هستش. PDE مربوط به چنين ارتعاشي نياز به حل انتگرال هاي دوگانه داره كه در اين جا از حل عددي انتگرال خود نرم افزار بهره گرفته شده. در ضمن پس از حل معادله ي ديفرانسيل پاره مي تونيد نحوه ي ارتعاش پوسته رو به صورت پويانمايي مشاهده كنيم. سورس اين امكان رو براي شما فراهم مي كنه تا شرايط اوليه رو بر حسب نياز خودتون تغيير بديد.
اين سورس اختصاص به حل عددي PDE به روش Mesh بندي داره. يك معادله ي گرما به روش عددي (Numerical) و دقيق (Exact) حل ميشه تا شما بتونيد دو روش رو با هم مقايسه كنيد.
1 کاربر در حال مشاهده این موضوع. (0 عضو و 1 میهمان)
Bookmarks