رفتن به مطلب

با هم متلب یاد بگیریم


M!Zare

ارسال های توصیه شده

از چندجمله ایهای تکه ای باید استفاده کنید. از وقتش گذشته یا هنوز وقت دارید؟

از وقتش كه گذشته ولي اگه بگين ياد بگيرم ممنون ميشم.

لینک به دیدگاه
  • پاسخ 325
  • ایجاد شد
  • آخرین پاسخ

بهترین ارسال کنندگان این موضوع

بهترین ارسال کنندگان این موضوع

من ميخوام نمودار تغييير مكان پيرو بر اساس دوران بادامك(تغيير مكان و زاويه دوران بادامك و دارم) و بكشم بعد از اون 2 بار مشتق بگيرم .نموداراي اين 2 مشتقم ميخوام.تو matlab چه جوري برنامه شو بنويسم؟؟تو excel نمودار اولو كشيدم نميدونم درجه معادله چند انتخاب كنم(3-4 يا5).كه از اين معادله مشتق بگيرم.طرز نوشتن معادله رو ميگين؟؟؟؟؟ خواهشا هر كي ميدونه تا 2شنبه بگه. 3شنبه تحويلشه

 

از وقتش كه گذشته ولي اگه بگين ياد بگيرم ممنون ميشم.

 

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

Parviz Nikravesh, Computer-Aided Analysis of Mechanical Systems, Prentice-Hall, 1988

 

 

داده های نمونه صفحه 90 این مرجع، که در صفحه 161 کتاب شگردهای عددی هم هست، رو برای نشون دادن کاری که خواستید، اینجا آوردم. از اونجایی که منحنی بادامک یک شکل بسته هست از اسپلاین بازگرد استفاده کردم:

 

 


t=[0,30,60:10:120,150,180,225,270,315,360]*pi/180;% theta
s=[3.70,4.55,6.80,8.38,10.65,12.46,11.10,8.65,7.04,4.63,3.80,3.62,3.80,3.62,3.70];
ti=linspace(0,2*pi,73);% 5 degree increment
p=csape(t,s,'periodic');
pd1=fnder(p);
pd2=fnder(p,2);
si=fnval(p,ti);
sd1i=fnval(pd1,ti);
sd2i=fnval(pd2,ti);

subplot(1,2,1)
polar(t,s,'.'),hold on,polar(ti,si)
subplot(2,2,2)
plot(ti*180/pi,sd1i),axis('tight')
xlabel('\theta [^o]'),ylabel('ds/d\theta'),set(gca,'XTick',0:90:360)
subplot(2,2,4)
plot(ti*180/pi,sd2i),axis('tight')
xlabel('\theta [^o]'),ylabel('d^2s/d\theta^2'),set(gca,'XTick',0:90:360)

 

 

Cam.GIF

لینک به دیدگاه
  • 4 هفته بعد...

نمی دونم این تاپیک هنوز زنده است یا نه، اما این مطلب رو خواستم اینجا بنویسم.

 

یه آواتار دیدم که توش نمودار یک قلب همراه با معادله اون وجود داشت. با توجه به اینکه من از سالها قبل علاقمند به این جور نمودارها بودم (یکیش توی کتابم هست، و یکیش رو هم به عنوان تمرین به بچه های دانشگاه داده بودم). این اون آواتاره:

heart_avatar.JPG

 

 

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

gif.latex?x%5E2+%28y-%5Csqrt[3]%7Bx%5E2%7D%29%5E2=1

 

 

گفتم نمودارش رو بکشم ببینم چی در میاد؛ دیدم ای دل غافل این بنده خدا تست نکرده ازش استفاده کرده. خودتون ببینید نمودارش چی در اومده:

Heart-iran-eng.GIF

 

 

بخشی از برنامه اون تو متلب این طوره:


t=linspace(0,2*pi);
x=cos(t);
y=sin(t)+x.^(2/3);
plot(x,y,'r','linewidth',2.5),axis('equal','tight')
% title('???')

 

 

ضمن اینکه برای بعضیها یه زنگ تفریحه، برای بعضیها، یه تعداد نکته ممکنه داشته باشه. من فعلاً می پرسم، تا ببینیم چقدر معلق (بخونید علاقمند) وجود داره تا ادامه بدیم یا نه.

ـ این نمودار چه طوری کشیده شده؟

ـ اگه با دستور ezplot بکشید چه جوری می شه؟

ـ معادله منحنی که با دستور title در بالای نمودار ظاهر شده، چه طوری نوشته شده؟

لینک به دیدگاه
نمی دونم این تاپیک هنوز زنده است یا نه، اما این مطلب رو خواستم اینجا بنویسم.

 

یه آواتار دیدم که توش نمودار یک قلب همراه با معادله اون وجود داشت. با توجه به اینکه من از سالها قبل علاقمند به این جور نمودارها بودم (یکیش توی کتابم هست، و یکیش رو هم به عنوان تمرین به بچه های دانشگاه داده بودم). این اون آواتاره:

heart_avatar.JPG

 

 

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

gif.latex?x%5E2+%28y-%5Csqrt[3]%7Bx%5E2%7D%29%5E2=1

 

 

گفتم نمودارش رو بکشم ببینم چی در میاد؛ دیدم ای دل غافل این بنده خدا تست نکرده ازش استفاده کرده. خودتون ببینید نمودارش چی در اومده:

Heart-iran-eng.GIF

 

 

بخشی از برنامه اون تو متلب این طوره:


t=linspace(0,2*pi);
x=cos(t);
y=sin(t)+x.^(2/3);
plot(x,y,'r','linewidth',2.5),axis('equal','tight')
% title('???')

 

 

ضمن اینکه برای بعضیها یه زنگ تفریجه، برای بعضیها، یه تعداد نکته ممکنه داشته باشه. من فعلاً می پرسم، تا ببینیم چقدر معلق (بخونید علاقمند) وجود داره تا ادامه بدیم یا نه.

ـ این نمودار چه طوری کشیده شده؟

ـ اگه با دستور ezplot بکشید چه جوری می شه؟

ـ معادله منحنی که با دستور title در بالای نمودار ظاهر شده، چه طوری نوشته شده؟

موضوع خیلی جالبیه:yes:

برای ترسیم این شکل قطبی اگر از دستور polar استفاده کنیم.. درست نمیشه؟

لینک به دیدگاه
نمی دونم این تاپیک هنوز زنده است یا نه، اما این مطلب رو خواستم اینجا بنویسم.

 

یه آواتار دیدم که توش نمودار یک قلب همراه با معادله اون وجود داشت. با توجه به اینکه من از سالها قبل علاقمند به این جور نمودارها بودم (یکیش توی کتابم هست، و یکیش رو هم به عنوان تمرین به بچه های دانشگاه داده بودم). این اون آواتاره:

heart_avatar.JPG

 

 

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

gif.latex?x%5E2+%28y-%5Csqrt[3]%7Bx%5E2%7D%29%5E2=1

 

 

گفتم نمودارش رو بکشم ببینم چی در میاد؛ دیدم ای دل غافل این بنده خدا تست نکرده ازش استفاده کرده. خودتون ببینید نمودارش چی در اومده:

Heart-iran-eng.GIF

 

 

بخشی از برنامه اون تو متلب این طوره:


t=linspace(0,2*pi);
x=cos(t);
y=sin(t)+x.^(2/3);
plot(x,y,'r','linewidth',2.5),axis('equal','tight')
% title('???')

 

 

ضمن اینکه برای بعضیها یه زنگ تفریجه، برای بعضیها، یه تعداد نکته ممکنه داشته باشه. من فعلاً می پرسم، تا ببینیم چقدر معلق (بخونید علاقمند) وجود داره تا ادامه بدیم یا نه.

ـ این نمودار چه طوری کشیده شده؟

ـ اگه با دستور ezplot بکشید چه جوری می شه؟

ـ معادله منحنی که با دستور title در بالای نمودار ظاهر شده، چه طوری نوشته شده؟

 

:JC_thinking::viannen_38::biggrin:

لینک به دیدگاه
موضوع خیلی جالبیه:yes:

برای ترسیم این شکل قطبی اگر از دستور polar استفاده کنیم.. درست نمیشه؟

نه نباید درست بشه. نمودار یک دایره رو با هر دستوری بکشید، باز هم شکل یک دایره می شه؛ منحنیهای دیگر هم همینطور.

 

از پرسشهای اون پست (پست 83) غافل نشید؛ هدفمند پرسیدم. در پست 66 هم یک بار قبلاً گفتم که "برخلاف دیگران، سفارش می کنم که روی اونهایی که با ez شروع می شن وقت نذارید." در اینجا بعضی از دلایل اون سفارش هم احتمالاً مشخص خواهند شد.

لینک به دیدگاه

b72fnbpsq1cqr9snfn.jpg

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

اولین ترسیم من در ezplot باید بازه رو تغییر داد نه؟

لینک به دیدگاه
استاد از شما بعیده! من نمودارش رو رسم کردم شکل قلب شد!!! :w58:

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

لینک به دیدگاه

برای پیدا کردن نقطه کمینه با روش گام تصادفی برنامه ای را بصورت زیر نوشته ام.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

در ادامه برای استفاده از روش گام تصادفی با استفاده از گام بهینه نیاز است تا از لاندا مشتق بگیریم.چجوری میشه از لاندا در حالیکه خودش در حل مساله دخالت مستقیم داره مشتق گرفت:JC_thinking:

لینک به دیدگاه
b72fnbpsq1cqr9snfn.jpg

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

اولین ترسیم من در ezplot باید بازه رو تغییر داد نه؟

من دو تا نمودار رو انداختم رو هم:

Heart2-iran-eng.GIF

 

این هم برنامه:


ezplot('x^2+(y-x^(2/3))^2-1')
hold on

t=linspace(0,2*pi,300);
x=cos(t);
y=sin(t)+x.^(2/3);
hold on
plot(x,y,'r','linewidth',2.5),axis('equal','tight')
legend('ezplot','plot',4)

 

با توجه به پست 88 و 89، صورت مسأله فعلاً به صورت زیر اصلاح می شه:

کشیدن نمودار تغییرات منحنی

3%7D%29%5E2=1

 

با استفاده از plot و ezplot و مقایسه و نتیجه گیری از اون.

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

 

 

این هم برنامه:


ezplot('x^2+(y-x^(2/3))^2-1')
hold on

t=linspace(0,2*pi,300);
x=cos(t);
y=sin(t)+x.^(2/3);
hold on
plot(x,y,'r','linewidth',2.5),axis('equal','tight')
legend('ezplot','plot',4)

 

 

با توجه به پست 88 و 89، صورت مسأله فعلاً به صورت زیر اصلاح می شه:

کشیدن نمودار تغییرات منحنی

3})^2=1

 

 

با استفاده از plot و ezplot و مقایسه و نتیجه گیری از اون.

 

دستور hold on برای ترسیم چند نمودار در یک پنجره است؟

 

plot(x,y,'r','linewidth',2.5),

 

میشه در مورد دو مورد آخر توضیح بفرمایید؟

axis('equal','tight')

همچنین این موارد

legend('ezplot','plot',4)

و کاربرد 4؟

متشکرم

لینک به دیدگاه
دستور hold on برای ترسیم چند نمودار در یک پنجره است؟ plot(x,y,'r','linewidth',2.5), میشه در مورد دو مورد آخر توضیح بفرمایید؟ axis('equal','tight') همچنین این موارد legend('ezplot','plot',4) و کاربرد 4؟ متشکرم

 

 

بله hold on نمودارهای جدید رو در همون پنجره گرافیکی جاری می کشه.

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

legend هم یه نمایه به پنجره گرافیکی اضافه می کنه که رشته هایی که داخلش نوشتیم رو به ترتیب به نمودارهایی که در اون پنجره کشیدیم اختصاص می ده. اون عدد آخر هم، که یه عدد صحیح بین 4- تا 4 هست مکان نمایه رو نشون می ده (اگه عدد 0 بذارید نرم افزار خودش تصمیم گیره که کجا نشون بده). عدد 4 رو دید کجا نشون می ده (بقیه رو امتحان کنید و ببینید کجا نشون می ده، البته گزینه های دیگر هم داره که می تونید در راهنماش بخونید).

 

خیلی سؤال تو سؤال شد و از سؤالهای اولیه باز موندیم. بعداً شاید به اونها برگشتیم.

لینک به دیدگاه
برای پیدا کردن نقطه کمینه با روش گام تصادفی برنامه ای را بصورت زیر نوشته ام.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

در ادامه برای استفاده از روش گام تصادفی با استفاده از گام بهینه نیاز است تا از لاندا مشتق بگیریم.چجوری میشه از لاندا در حالیکه خودش در حل مساله دخالت مستقیم داره مشتق گرفت:JC_thinking:

 

صورت مسأله و الگوریتم روش مورد نظر رو اینجا بنویسید ببینیم چیه.

لینک به دیدگاه
صورت مسأله و الگوریتم روش مورد نظر رو اینجا بنویسید ببینیم چیه.

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

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

و لاندا مساوی 1 و اپسیلون مساوی 0.005 با تکرار 100 مقدار کمینه تابع

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

را بدست آورید.

لینک به دیدگاه

در ادامه در مورد روش گام تصادفی توضیح میدهم.

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

با دنباله ای از تقریب ها به سمت نقطه بهینه حرکت میکنیم و هر تقریب از بهبود تقریب قبلی بدست می آید.لاندا یک طول گام ثابت است که خودمان تعیین میکنیم و uیک بردار واحد تصادفی است.

Xi+1=Xi+landa*Ui

اما الگوریتم این روش:

1-از x1 آغاز و یک طول گام اسکالر(لاندا) در نظر میگیریم.بطوری که لاندا نسبت به دقت مطلوب مساله نهایی یا همان اپسیلون به اندازه کافی بزرگ باشد.و سپس f1=f(x1 را پیدا میکنیم..x1 بردار متغیر تصمیم است.

2-عدد تکرار را i=1 قرار میدهیم.

3-مجموعه ای از n عددد تصادفی تولید و بردار واحد تصادفی Ui را تشکیل میدهیم.

 

acu44l361ymrfsohoab.jpg

4-مقدار جدید تابع هدف در f=f(x1+landa*U1 را تعیین میکنیم.

5-اگر f1f1 گام های 3 الی 5 تکرار میشود تا اینکه به نقطه ای برسیم که در آن f

6- اگر تعداد زیادی از تکرار ها نتواند به نقطه بهتری برسد طول لاندا را کاهش داده و به مرتبه 3 میرویم.

7-اگر بعد از کاهش مقدار لاندا به مقداری کمتر از اپسیلون نتوان نقطه بهتری را پیدا نمود نقطه x1 بعنوان نقطه بهینه در نظر میگیریم و عملیات متوقف میشود

لینک به دیدگاه
برای پیدا کردن نقطه کمینه با روش گام تصادفی برنامه ای را بصورت زیر نوشته ام.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

در ادامه برای استفاده از روش گام تصادفی با استفاده از گام بهینه نیاز است تا از لاندا مشتق بگیریم.چجوری میشه از لاندا در حالیکه خودش در حل مساله دخالت مستقیم داره مشتق گرفت:JC_thinking:

 

صورت مساله :از روش گام تصادفی با نقطه شروع
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

و لاندا مساوی 1 و اپسیلون مساوی 0.005 با تکرار 100 مقدار کمینه تابع

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

را بدست آورید.

 

در ادامه در مورد روش گام تصادفی توضیح میدهم.

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

با دنباله ای از تقریب ها به سمت نقطه بهینه حرکت میکنیم و هر تقریب از بهبود تقریب قبلی بدست می آید.لاندا یک طول گام ثابت است که خودمان تعیین میکنیم و uیک بردار واحد تصادفی است.

Xi+1=Xi+landa*Ui

اما الگوریتم این روش:

1-از x1 آغاز و یک طول گام اسکالر(لاندا) در نظر میگیریم.بطوری که لاندا نسبت به دقت مطلوب مساله نهایی یا همان اپسیلون به اندازه کافی بزرگ باشد.و سپس f1=f(x1 را پیدا میکنیم..x1 بردار متغیر تصمیم است.

2-عدد تکرار را i=1 قرار میدهیم.

3-مجموعه ای از n عددد تصادفی تولید و بردار واحد تصادفی Ui را تشکیل میدهیم.

 

acu44l361ymrfsohoab.jpg

4-مقدار جدید تابع هدف در f=f(x1+landa*U1 را تعیین میکنیم.

5-اگر f1f1 گام های 3 الی 5 تکرار میشود تا اینکه به نقطه ای برسیم که در آن f

6- اگر تعداد زیادی از تکرار ها نتواند به نقطه بهتری برسد طول لاندا را کاهش داده و به مرتبه 3 میرویم.

7-اگر بعد از کاهش مقدار لاندا به مقداری کمتر از اپسیلون نتوان نقطه بهتری را پیدا نمود نقطه x1 بعنوان نقطه بهینه در نظر میگیریم و عملیات متوقف میشود

 

من یه نگاهی به الگوریتم و برنامه شما انداختم (برنامه رو که البته به هم ریخته هم paste کردید). اما نتیجه:

ـ با توجه به الگوریتم، اگه اسم روش رو "روش سوی بختی (یا جهت تصادفی، Random Direction)" بذارید بهتره، چون گام در این روش بختی نیست.

ـ در مورد مشتق گرفتن از گام، مشتق نسبت به چی؟

ـ برای مشتق گرفتن از گام، باید مقدارهای گام رو در متغیر دیگری نگهدارید و بعد از روش عددی استفاده کنید (البته من نمی دونم این مشتقی که شما دنبالشید به چه دردی می خوره).

ـ اگر در روش بیان شده از مشتق استفاده کنید، اون روش دیگه جزو روشهای جستجوی مستقیم به حساب نمیاد.

ـ به جای مشتق استفاده از "جستجوی خطی" مرسومه.

ـ در مورد برنامه هم اول تکلیف تابع ارزش رو روشن کنید که لازم نباشه هر دفعه توی برنامه اصلی بیارید:


function J=objf1(x)
J=x(1)-x(2)+2*x(1)^2+2*x(1)*x(2)+x(2)^2;
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

برنامه رو بدین صورت نوشتم

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

و این قسمت مساله حل شد.سوال بعدی من این است ....باید لاندا بهینه را بدست آورد.

df(xi+landai*Ui)/dlandai=0

رو چجوری در مساله قرار داد؟یعنی بجای اینکه مقدار لاندا را در ابتدا مشخص کنیم مقداری بهینه شود؟

لینک به دیدگاه

سوال دیگرم در مورد ریز کردن بازه ها در متلب است.میخواهیم داده های یک سال را در متلب رسم کرده و سپس با توجه به نمودار بدست آمده(از 12 داده و curve fitکردن آن) مقدار داده را برای هر روز بدست بیاوریم.بدین صورت که 12 بازده کلی داشته باشیم که هر کدام از این 12 بازده بسته به تابستان و زمستان به 31 یا 30 قسمت تقسیم شده باشند.و سپس بتوان داده روز 14 را از نمودار استخراج کرد.

لینک به دیدگاه

نمیدونم چرا از بین این همه کاربر این مشکل باید واسه من پیش بیاد:w58:هنگامی که میخواهیم یک فایلی رو از اکسل وارد متلب کنیم با استفاده از آدرس File-import data و یافتن آدرس باید فایل اکسل برای متلب شناسایی شود.ولی سیستم من نمیشناسه و وقتی all files رو میزنم و فایل رو باز میکنه فقط یک آرایه 1*1 نمایش میده...واسه رفع این مشکل باید چیکار کرد؟

لینک به دیدگاه

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • اضافه کردن...