آموزش رسم انواع گراف در متلب

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


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

از متلب برای پیاده سازی آسان الگوریتم‌های مختلف و انجام محاسبات پیچیده ریاضی استفاده می‌شود. متلب مجهز به کتابخانه بزرگی از توابع محاسباتی است. بنابراین می‌توان به آسانی جبر خطی و ماتریس‌ها را در آن به کار گرفت.

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

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

پیش نیاز خواندن ادامه این مقاله، نصب نرم افزار متلب و آشنایی با محیط آن است. بنابراین توصیه می‌شود آموزش متلب را از فرادرس تهیه و مشاهده کنید.

· آموزش برنامه نویسی متلب MATLAB – کلیک کنید

آشنایی با متلب و کاربرد های آن

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

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

محاسبات در متلب بر اساس ماتریس‌ها و آرایه‌ها انجام می‌شود. در واقع مؤلفه اصلی ساختار متلب ماتریس‌ها هستند و نوع داده‌های پایه‌ای نیز به صورت آرایه تعریف شده‌اند. توابع متلب برای انجام عملیات‌های برداری بسیار مناسب هستند. بنابراین می‌توان دستورات برداری را بسیار سریع‌تر از سایر برنامه‌ها و زبان‌ها اجرا کرد. در متلب می‌توان هر نوعی از مقادیر داده را تعریف کرد.

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

· پیاده سازی الگوریتم‌های مختلف

· مصورسازی توابع و داده‌ها

· تعامل با سایر زبان‌های برنامه نویسی

ابزار های متلب و قابلیت‌ های آن

ابزارهای متلب امکانات فوق‌العاده‌ای برای تحلیل داده، پردازش سیگنال و محاسبات جبری فراهم کرده است. توسعه دهندگان متلب، جعبه ابزارهای مختلفی (Toolbox) برای مقاصدی نظیر پردازش تصویر، طراحی سیستم‌های کنترل و شبکه‌های عصبی فراهم کرده‌اند.

سیستم متلب

سیستم متلب از ۵ مؤلفه اصلی تشکیل شده است:

۱. کتابخانه‌های ریاضیاتی متلب:

این کتابخانه‌ها شامل توابع پایه‌ای مانند جمع، سینوس و کسینوس هستند. همچنین توابع پیچیده‌تری مانند معکوس ماتریس و تبدیلات فوریه در این کتابخانه‌ها یافت می‌شوند.

۲. محیط توسعه:

محیط توسعه عبارت است از دسته ابزارهایی که به شما کمک می‌کنند تا فایل‌های متلب و عملگرهای آن را بهتر مدیریت کنید. بسیاری از این ابزار به صورت رابط کاربری گرافیکی در دسترس هستند. محیط توسعه شامل نرم افزار متلب نسخه دسکتاپ، خط فرمان، تاریخچه دستورات، ویرایشگر کد و ابزار رفع خطا است.

۳. زبان متلب:

این زبان یک زبان سطح بالا است که به شما اجازه کنترل جریان دستورات، توابع، ساختار داده، ورودی‌ها و خروجی‌ها را می‌دهد. با استفاده از این زبان می‌توان برنامه‌های کوچک و اپلیکیشن‌های بسیار پیچیده را طراحی و پیاده سازی کرد.

۴. رابط برنامه نویسی کاربر خارجی متلب:

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

۵. گراف‌ها:

متلب به شدت می‌تواند نمایش بردارها و ماتریس‌ها را به صورت گراف برای شما آسان کند. ساختار‌های سطح‌ بالایی برای نمایش دو بعدی و سه بعدی داده‌ها در متلب یافت می‌شود. همچنین ساختارهای سطح پایینی وجود دارد که به شما اجازه شخصی سازی نمایش گراف‌ها را می‌دهد.

نمونه‌ای از یک گراف پیچیده که رسم آن با متلب به سادگی امکان‌پذیر است
نمونه‌ای از یک گراف پیچیده که رسم آن با متلب به سادگی امکان‌پذیر است


پیش‌ نیازهای یادگیری متلب

متلب یک زبان برنامه نویسی سطح بالا است. بنابراین اگر قبل از پرداختن به کار با متلب با هر زبان سطح بالای دیگری مانند سی، سی پلاس پلاس یا جاوا کار کرده باشید، کار شما بسیار راحت‌تر خواهد بود. اشنایی با این زبان‌ها نگرانی شما را بابت یادگیری مواردی مانند متغیرها، توابع، دستورات شرطی، کلاس‌ها و اشیا کاهش می‌دهد.

برای یادگیری انواع زبان برنامه نویسی می‌توانید به صفحات زیر در فرادرس مراجعه کنید.

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

مزایا و معایب متلب

اگر بخواهیم به مهم‌ترین مزایای متلب اشاره کنیم، باید موارد زیر را در نظر بگیریم:

  • استفاده از آن آسان است:

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

  • مستقل از پلتفرم است:

متلب را می‌توان روی سیستم‌های کامپیوتری مختلفی اجرا کرد. این مسئله متلب را تا حد زیادی مستقل از پلتفرم کرده است. متلب را می‌توان روی نسخه‌های مختلف ویندوز، نسخه‌های مختلف یونیسک و مکینتاش اجرا کرد. اپلیکیشنی که در یکی از این پلتفرم‌ها نوشته و اجرا شود، می تواند به خوبی روی سایر پلتفرم‌ها نیز اجرا شود.

  • توابع قدرتمند از پیش تعریف شده در آن وجود دارند:

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

  • نمایش نمودار‌های تولید شده توسط آن در هر دستگاهی ممکن است:

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

  • رابط کاربری گرافیکی آن بسیار کاربردی است:

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

اما بد نیست با تعدادی از معایب متلب نیز آگاه شوید. برخی از مهم‌ترین معایب متلب عبارت‌اند از:

  • متلب یک زبان مفسری است:

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

  • متلب یک نرم افزار نسبتاً گران است:

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

گراف‌ ها در متلب

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

انواع نمودار در متلب عبارت‌ است از:

· نمودارهای خطی

· نمودارهای نقطه‌ای

· نمودار‌های توزیع داده

· نمودارهای قطبی

· نمودار داده‌های گسسته

· نمودارهای جغرافیایی

· نمودارهای تراز

· نمودارهای برداری

· نمودارهای حجمی

· انیمیشن

آموزش رسم گراف توابع مهم در متلب

در این قسمت،نحوه رسم گراف ۶ تابع مهم را در متلب مرور خواهیم کرد.

۱. گراف fplot (f)

با استفاده از این دستور می‌توان گراف ساخته شده توسط معادله y = f(x) را نمایش داد. این نمودار به طور پیشفرض در بازه [-5,5] نمایش داده می‌شود. به مثال زیر توجه کنید:

fplot (@(x) x^2)

در این مثال، تابع x به توان دو را نمایش داده‌ایم که شکل آن را در زیر مشاهده می‌کنید:

گراف fplot (f)
گراف fplot (f)


۲. گراف fplot (f, xinterval)

اگر بخواهیم نمودار را در بازه مورد نظر خودمان نمایش دهیم، باید از دستور fplot (f, xinterval) استفاده کنیم. بازه را به صورت یک بردار که شامل دو عنصر است مشخص می‌کنیم. به مثال زیر نگاه کنید:

fplot (@(x) x^2, [0 3])

در این مثال همان تابع مثال قبل را در نظر گرفته‌ایم با این تفاوت که باز نمایش گراف را بین ۰ تا ۳ در نظر گرفته‌ایم. می‌توانید نتیجه را در شکل زیر مشاهده کنید:

گراف fplot (f, xinterval)
گراف fplot (f, xinterval)


۳. گراف fplot (funx, funy)

فرض کنید دو تابع را به عنوان آرگومان‌های تابعی که قصد نمایش آن را داریم در نظر گرفته باشیم. در این صورت باید از دستور fplot (funx, funy) استفاده کنیم. به مثال زیر توجه کنید:

at = @(t) cos(2*t);

bt = @(t) sin(1*t);

خروجی را در شکل زیر مشاهده کنید:

گراف fplot (funx, funy)
گراف fplot (funx, funy)


۴. گراف fplot (___, LineSpec)

از این تابع برای مشخص کردن مواردی مانند نوع نشانگر و رنگ خطوط نمودارها مطابق خواسته کاربر استفاده می‌شود. در واقع برای شخصی سازی خروجی نهایی از این دستور استفاده می‌شود.

برای مثال اگر بخواهید گرافی با رنگ قرمز رسم کنید، می‌توانید حرف r را به عنوان آرگومان به هر یک از توابع مثال‌های قبلی اضافه کنید. به مثال زیر توجه کنید:

fplot (@(x)  x^2, ‘r’)

خروجی مثال بالا به صورت زیر خواهد بود:

گراف fplot (___, LineSpec)
گراف fplot (___, LineSpec)


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

  • رنگ سفید با استفاده از حرف w
  • رنگ مشکی با استفاده از حرف k
  • رنگ آبی با استفاده از حرف b
  • رنگ سبز با استفاده از حرف g

۵. گراف fplot (__, name, value)

یکی دیگر از انواع گراف در متلب را می‌توان به کمک تابع fplot (__, name, value) رسم کرد.

این تابع، ویژگی‌های خط نمودار را با استفاده از دو مقدار name و value مشخص می‌کند. برای مثال اگر دو مقدار Linewidth, 3 را به هر یک از توابع مثال‌های قبل اضافه کنیم، گرافی با عرض ۳ خواهیم داشت. به شکل زیر توجه کنید:

گراف fplot (__, name, value)
گراف fplot (__, name, value)

۶. گراف fp = fplot (___)

از این تابع برای دستکاری نمودار فعلی استفاده می‌شود. ابتدا فرض کنید گرافی برای تابع سینوسی با استفاده از تابع زیر رسم کنیم:

fp = fplot (@(x) sin(x))

سپس راه‌هایی که برای دستکاری این تابع وجود دارد را بررسی خواهیم کرد:

برای تغییر خط نمودار به تعدادی دونقطه‌ی پشت سر هم، مقدار fp.LineStyle را برابر ‘:’ قرار خوایم داد.

برای تغییر رنگ نمودار مقدار fp.color را برابر 'r' قرار می‌دهیم.

برای تغییر رنگ نشانگر مقدار fp.MarkerEdgeColor را برابر 'b' قرار می‌دهیم.

برای مشخص کردن نقاط روی نمودار، مقدار fp.Marker را برابر 'x' قرار می‌دهیم.

پس از اعمال دستورات فوق‌، خروجی زیر را خواهیم داشت:

اعمال چند دستور دلخواه روی یک تابع سینوسی
اعمال چند دستور دلخواه روی یک تابع سینوسی

۷. گراف تابع سینوسی

فرض کنید می‌خواهیم گراف تابع سینوسی y = sin (2 pi x) را در بازه صفر و یک، و با استفاده از ۴۰۱ نقطه که فاصله آن‌ها از یکدیگر برابر است رسم کنیم.

باید دستورات زیر را در متلب نوشته و اجرا کنید:

>>  x = linspace(0, 1, 401);

>>  y = sin(2*pi*x);

>>  plot(x, y)

نتیجه به صورت زیر خواهد بود:

گراف تابع سینوسی
گراف تابع سینوسی


۸. رسم نمودار های سه بعدی

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

plot3(x,y,z)

در دستور بالا، ایکس و وای و زد می‌‌توانند یک تابع ثابت یا یک عدد ثابت باشند. گراف‌های سه بعدی در متلب به دسته‌های زیر تقسیم‌بندی می‌شوند:

  1. نمودار سه بعدی Mesh Plot
  2. نمودار سه بعدی Surface Plot
  3. نمودار سه بعدی Ribbon Plot
  4. نمودار سه بعدی Contour Plot
  5. نمودار سه بعدی Slice Plot

برای مثال، نمونه‌ای از کد مربوط به رسم نمودار شبکه‌ای یا Mesh Plot را مشاهده کنید:

[P,Q] = meshgrid(-8:.5:8);

R = sqrt(P.^2 + Q.^2) + eps;

Z = cos(R)./(R+1.2);

mesh(P,Q,Z)

خروجی کد بالا به صورت زیر خواهد بود:

نمونه‌ای از گراف سه بعدی در متلب - نمودار شبکه‌ای
نمونه‌ای از گراف سه بعدی در متلب - نمودار شبکه‌ای


برای آشنایی با رسم نمودار سایر توابع می‌توانید در مجله فرادرس مقاله رسم تابع در متلب را مطالعه کنید.

با سایر امکانات متلب نیز آشنا شوید

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

این سایت بهترین و بزرگترین مرجع آموزش آنلاین در ایران محسوب می‌شود. می‌توانید در این سایت دوره‌های آموزشی کاربردی در زمینه برنامه نویسی (و از جمله کار با زبان متلب) را که توسط بهترین اساتید ایران تدریس می‌شوند تهیه و مشاهده کنید.