خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


گراف در متلب

گراف در متلب
در این مقالۀ آموزشی به چگونگی ترسیم گراف در متلب می پردازیم. پیش فرض من در این آموزش اینست که خوانندۀ محترم دست کم دانشی ابتدایی در مورد نرم افزار متلب و کاربردهای آن دارد. همچنین در طول این مقاله به مبحث توابع در ریاضی اشاراتی می شود و انتظار می رود که مخاطب عزیز، پیش از خواندن این مقاله دست کم بداند تابع در ریاضی چیست و همچنین آشنایی با نمودار توابع ریاضی نیز داشته باشد. قبل از اینکه وارد موضوع گراف در متلب شویم، ابتدا بیاییم با هم مروری بر روی چگونگی ترسیم نمودار توابع در ریاضی داشته باشیم. همانطور که مسلماً واقف هستید، در ریاضی برای اینکه نمودار تابعی را ترسیم کنیم، ابتدا محدوده ای از مقادیر x را برای آن در نظر می گیریم و سپس این x ها را در تابع جایگذاری می کنیم و مقادیر y را به ازاء هر x محاسبه می کنیم. سپس در نتیجۀ این محاسبات به جفت مقادیری می رسیم که نقاط تابع را بر روی صفحۀ مختصات دکارتی مشخص می سازند. در پایان نیز با متصل کردن این نقاط به یکدیگر نمودار (گراف) توابع را ترسیم می کنیم. در نرم افزار متلب نیز رویه مشابهی را خواهیم داشت. برای اینکه درک عمیقی از چگونگی ترسیم گراف در متلب داشته باشید، در طول این آموزش با مثال های متعدد این کار را انجام خواهیم داد و اینگونه این آموزش را پیش خواهیم برد.

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


ترسیم گراف توابع خطی در متلب


جهت آموزش گراف در متلب، کار را با ساده ترین نوع توابع ریاضی شروع می کنیم. به لحاظ کشیدن گراف، مسلماً ترسیم نمودار توابع خطی ساده تر از سایر توابع می باشد. شما کافیست دو نقطه بر روی یک خط را داشته باشید، تا بتوانید نمودار آن را ترسیم کنید.

برای ترسیم گراف یک تابع خطی در متلب ابتدا مقادیر x آن را مشخص می سازیم، سپس، تابع خطی مربوطه را برای مطلب معرفی می کنیم و در پایان به کمک دستور plot ، گراف آن تابع را در متلب ترسیم می کنیم:

x = [0 1];
y = x;
plot(x,y)

در خط اول یک ماتریس را در مطلب معرفی کرده ایم. در واقع x ما یک ماتریس با یک سطر و دو ستون است که در نتیجۀ آن فقط دو عضو خواهد داشت. در خط بعدی، تابع خطی \(y=x\) را در ساده ترین شکل ممکن یک تابع خطی معرفی نموده ایم. در خط سوم نیز به کمک تابع plot که از توابع درونی متلب می باشد گراف این تابع خطی را ترسیم نموده ایم. نتیجۀ اجرای این دستورات را در تصویر زیر می بینید.

گراف در متلب

ترسیم گراف توابع درجه دوم در متلب


در بخش اول آموزش گراف در متلب، نمودار یک تابع خطی را ترسیم کردیم. در این بخش می خواهیم نمودار یک تابع درجه دوم را ترسیم کنیم. همانطور که می دانید، در توابع درجه دوم، مثل توابع خطی، صرف وجود دو نقطه برای ترسیم گراف کفایت نمی کند و نیاز به نقاط بیشتری داریم. همچنین توجه داشته باشید که زوج های مرتب نمودار ما باید به اندازۀ کافی باشند تا انحنای سهمی (شلجمی) ما به درستی در گراف مشخص باشد. مکانیزم معرفی x ها در نمودار تابع درجه دوم در متلب متفاوت از معرفی x ها برای توابع خطی است. به دستورات زیر دقت کنید:

x = [-100:1:100];
y = x.^2;
plot(x,y)

ابتدا بیایید خروجی این دستور را مشاهده کنیم و سپس در مورد کدهای آن بیشتر صحبت خواهیم کرد.

گراف در متلب

همانطور که می بیینید، با اجرای این دستورات یک پارابولای (سهمی) بی عیب و نقص تولید می شود. در خط اول این دستورات از یک گرامر خاص استفاده کرده ایم که لازم است با آن بیشتر آشنا شوید: \(\text{x = [-100:1:100];}\) . اما این گرامر چه می گوید. این گرامر به ما می گوید مقادیر \(x\) ما شامل کلیۀ اعداد از \(-100\) تا \(+100\) می شوند. عدد یک که در میان این دو عدد آمده است، یعنی فاصلۀ بین اعداد \(1\) واحد است. اگر بخواهیم مقادیر x را با یک مجموعه نشان بدهیم، چنین چیزی خواهیم داشت: \(\{ -100, -99, -98 , -97, ... , 97, 98, 99, 100 \}\) .

ممکن است برایتان سوال پیش آید که چرا تعداد x ها را اینقدر زیاد در نظر گرفتید. اگر چنین سوالی برایتان پیش آمده باشد، به دستورات زیر که تعداد x ها در آن بسیار کم تر است و خروجی آن توجه کنید.

 x = [-2:1:2];
y = x.^2;
plot(x,y)

در این مثال، مقادیر x ما شامل \(-2, -1, 0 , 1 ,2\) می شوند. یعنی ماتریس ما فقط 5 عضو دارد. حالا به گراف حاصل از این دستورات نگاهی بیندازید.

گراف در متلب

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

اگر به برنامه نویسی متلب علاقمند هستید، می توانید به کمک آموزش برنامه نویسی متلب MATLAB که در فرادرس انتشار یافته است، دانش خود در این زمینه را ارتقاء بخشید.


ترسیم گراف تابع سینوس در متلب


در این بخش از آموزش گراف در متلب، قصد داریم تا با هم نمودار یک تابع سینوس را ترسیم کنیم. بدون مقدمه و بلافاصله وارد کدنویسی می شویم.

x = [-10:0.1:10];
y = sin(x);
plot(x,y)

همانطور که می بینید دستورات مشابه ترسیم یک تابع درجه دوم می باشند، فقط در اینجا برای اینکه منحنی سینوس نرم تر شود، مقدار گام های بین \(x\) ها را بر روی \(0.1\) تنظیم کرده ایم. همچنین در قسمت معرفی تابع از کلمۀ کلیدی \(\sin\) در متلب استفاده کرده ایم که سینوس یک مقدار را محاسبه می کند. خروجی این دستورات را در شکل زیر می بینید.

گراف در متلب

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


تا این جای آموزش گراف در متلب، گراف هایی که ترسیم می کردیم، از روی توابع بودند و همگی دارای الگوی ریاضی خاصی بودند. اما اگر داده های ما الگوی ریاضی نداشته باشند چطور؟ آیا نمودار این نوع توابع را نیز می توان در متلب ترسیم کرد. پاسخ صد در صد مثبت است. برای ترسیم گراف این گونه داده هایی که ارتباط ریاضی بین آن ها وجود ندارد، می توانیم مستقیماً مقادیر ماتریس را معرفی کنیم و با یک فاصلۀ خالی آن ها را از یکدیگر جدا کنیم. به مثال زیر توجه کنید.

x = [1390 1392 1395 1397 1400 1410 1420];
y = [50000 55000 65000 78000 135000 980000 96000];
plot(x,y)

هم اکنون خروجی این دستورات را ببینید.

گراف در متلب

در اینجا ممکن است سوال پیش آید که آیا اگر داده های خیلی زیادی داشته باشیم و بخواهیم به کمک متلب نمودار آن ها را ترسیم کنیم باید چه کنیم؟ آیا باید به همین شکل سخت و طاقت فرسا کل آن داده ها را در قالب اعدادی که با یک فاصله از یکدیگر جدا شده اند، بنویسیم. آیا راه ساده تری نیست؟ پاسخ این است که راه ساده تری هم هست. معمولاً وقتی صحبت از داده های زیاد می شود، بحث بانک های اطلاعاتی پیش می آید. ممکن است اطلاعات شما در قالب یک بانک اطلاعاتی متنی ذخیره شده باشند. شاید هم در قالب یک نرم افزار صفحه گسترده چون اکسل باشند. در این صورت شما به سادگی می توانید با روشی که در ادامه می گوییم داده ها را از برنامه های صفحه گسترده همچون اکسل به داخل متلب کپی کنید. در قسمت Workspace در متلب در یک نقطۀ خالی با ماوس راست کلیک کنید و گزینۀ New را انتخاب کنید تا یک متغیر خالی تعریف کنید.

گراف در متلب

می توانید هر نام دلخواهی را به این متغیر بدهید، ما نام آن را data می گذاریم. هم اکنون روی آن متغیر دوبار کلیک کنید. با انجام این کار مشابه تصویر زیر، در محیطی شبیه اکسل، متغیر مربوطه و محتویات آن که البته فعلاً خالی است، را خواهید دید.

گراف در متلب

هم اکنون به سادگی می توانید داده هایتان را از برنامه ای چون اکسل انتخاب کرده و کپی کنید و سپس در اینجا Paste نمایید. دیگر لازم هم نیست که آن داده ها را تک به تک تایپ کنید. تصویر زیر داده های مثال ما را به شما نشان می دهد.

گراف در متلب

هم اکنون می توانیم با دستورات زیر این داده ها را بخوانیم و گراف آنها را ترسیم کنیم.

x = data(:,1);
y = data(:,2);
plot(x,y)

این دستورات با آنچه که در مثال های پیشین دیدید، کمی متفاوتند. خط اول دستورات این را می گوید. مقدار ستون اول از متغیر data را در متغیر \(x\) قرار بده. خط دوم هم می گوید، مقدار ستون دوم از متغیر data را در متغیر y قرار بده. خط سوم هم که برایتان آشناست. حالا به خروجی این دستورات دقت کنید.

گراف در متلب

اگر مایلید دانشتان در حوزۀ متلب را بیش از پیش ارتقاء دهید و به سطح بالاتری در متلب برسید، آموزش برنامه نویسی متلب برای علوم و مهندسی را به شما پیشنهاد می کنم.


ترسیم گراف سه بعدی در متلب


تا اینجای آموزش گراف در متلب، کلیۀ گراف های ما دو بعدی بودند. در اینجا قصد داریم تا یک گراف سه بعدی را ترسیم کنیم تا این آموزش از هر جهت سودمند و کاربردی باشد. اصول کلی ترسیم نمودار سه بعدی، تفاوت چندانی با نمودار دو بعدی ندارد. فقط در اینجا باید بعد سوم را نیز با یک متغیر مشخص سازیم. می توان در مورد اصول طراحی سه بعدی ساعت ها صحبت کرد و سخن راند، اما ترجیح من بر اینست که به صورت عملی این موضوع را به شما نشان دهم. به کدهای زیر توجه کنید.

x = [1 2];
y = [2 3];
z = [1 3];
plot3(x,y,z)
grid on

اگر این کدها را اجرا کنید، با خروجی زیر مواجه خواهید شد.

گراف در متلب

اگر به کدهای مربوط به ترسیم گراف سه بعدی در متلب توجه کنید، کمی با کدهای پیشین تفاوت دارند. در اینجا به تشریح این تفاوت ها می پردازیم. اولین تفاوت اینست که ما در اینجا بعد سوم را با متغیر \(z\) مشخص ساخته ایم. در اینجا سه ماتریس که هر کدام یک ردیف و دو ستون دارند معرفی کرده ایم. ماتریس های \(x\) و \(y\) مختصات نقاط را در خود دارند و ماتریس \(z\) نیز مختصات بعد سوم را در خودش دارد. در قسمت ترسیم گراف، به جای دستور plot این بار از دستور plot3 استفاده کرده ایم. این دستور در واقع پسرعموی همان دستور قبلی است، تفاوتش با دستور قبلی در اینست که در اینجا به جای ترسیم نمودار دو بعدی، نموداری سه بعدی ترسیم می کند و طبیعتاً بعد سوم را نیز در قالب آرگومان های ارسالی به تابع از ما می خواهد. در انتهای این دستورات یک خط اضافه کرده ایم که \(\text{grid on}\) می باشد. این خط مخصوص گراف سه بعدی نیست و می توانستید در گراف های دو بعدی تان نیز از آن استفاده نمایید. این دستور صرفاً شبکه های صفحۀ مختصات را نمایان می سازد. برای اینکه عمق گراف سه بعدی واضح تر گردد، تعمداً این خط کد را به انتهای دستورات افزوده ایم.

سخن پایانی دربارۀ گراف در متلب


در طول این مقاله شما را با ترسیم انواع گراف در متلب آشنا ساختیم. البته این تمام ماجرا نیست و قطعاً چیزهای بسیاری زیادی در ارتباط با گراف در متلب وجود دارد که باید به آنها واقف باشید. اما مسلماً این مقاله برای شروع بد نیست و دست کم می تواند شما را با دنیای گراف در متلب آشنا سازد. یکی از نکاتی که خیلی دوست داشتم در این مقاله مطرح کنم، اما به درازا کشیدن سخن مانع از آن شد، بحث ظاهر گراف ها در متلب می باشد. در اینجا ما فقط به چگونگی ترسیم نمودارها با دستورات plot و plot3 پرداختیم اما ظاهر گراف ها را چندان دست کاری نکردیم. بد نیست بدانید، پارامترهایی اختیاری در توابع plot موجود است که با پاس کردن مقادیری برای آنها می توانید ظاهر گراف ها را شخصی سازی کنید. در این مورد می توانید با منابعی که در طول این آموزش معرفی کرده ایم، اطلاعات بیشتری را کسب کنید.

در پایان این مقاله، مایلم منابع آموزشی ارزشمند زیر از فرادرس را نیز به شما معرفی کنم:



نمایش دیدگاه ها (0 دیدگاه)

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

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز