رسم نمودار قطبی در متلب
به نام خدا و سلام.
به جلسه بیست و چهارم از سری جلسات آموزش متلب خوش آمدید. آموزش رایگان متلب از وبسایت متلبپلاس ارائه میشود. از جلسه بیست و یکم شروع به آموزش انواع مختلف نمودار در متلب کردهایم. در این جلسه نوبت به آموزش رسم نمودار قطبی در متلب میرسد. نمودارهای قطبی فضای متفاوتی با تمام نمودارهای دیگر دارد. رسم نمودار در سیستم قطبی، افزودن عنوان به نمودار قطبی، تنظیمات خط و… از مباحث این جلسه هستند.
با متلب پلاس همراه باشید.
رسم نمودار قطبی در متلب
قبل از پرداختن به رسم نمودار قطبی در متلب، بهتر است با دستگاه مختصات قطبی آشنا شویم. دستگاه مختصات قطبی از دو محور اندازه و زاویه تشکیل شدهاست. به محور اندازه معمولا r و به محور زاویه، تتا میگویند. جهت مثبت محور r در جهت افزایش آن، از مبدا به بیرون است. جهت مثبت محور زاویه تتا نیز جهت پادساعتگرد میباشد.
برای رسم نمودار در دستگاه مختصات قطبی، معمولا رابطه r برحسب تتا بیان میشود. رسم نمودار قطبی در متلب با دستور polarplot یا polar انجام میشود. دستور polar از نسخه 2006 متلب تا 2015 استفاده میشود. اما دستور polarplot از نسخه 2016 اضافه شدهاست. گرچه در تمام نسخهها دستور polar وجود دارد اما جدیدا، دستور polarplot توصیه میشود. به هرحال، طرز استفاده دستور polar و polarplot کاملا یکسان است. polar(theta,r) یا polarplot(theta,r) نمودار قطبی تابع r برحسب theta را رسم میکند. با اولین مثال، آموزش رسم نمودار قطبی را آغاز میکنیم.
theta = 0:0.01:2*pi;
r = sin(2*theta).*cos(2*theta);
polarplot(theta,r)
برای رسم نمودار فوق از دستور polarplot استفاده کردیم. اگر شما از نسخهی قدیمیتر از 2016 استفاده میکنید، از polar استفاده کنید. توجه داشته باشید که زاویه تتا باید برحسب رادیان باشد.
اگر زاویه کاری شما برحسب درجه است، قبل از رسم نمودار قطبی، آن را به رادیان تبدیل کنید. برای تبدیل زاویه از درجه به رادیان از دستور deg2rad استفاده میشود. برعکس، برای تبدیل زاویه از رادیان به درجه نیز از rad2deg استفاده میشود. به مثال زیر دقت کنید.
theta = 0:360;
r = theta;
theta = deg2rad(theta);
polarplot(theta,r)
همانطور که مشاهده میشود نمودار به اندازه یک دور کامل (360 درجه) رسم شدهاست.
رسم آسان نمودار قطبی با ezpolar
برای رسم سریع و آسان نمودار قطبی در متلب، از دستور ezpolar استفاده میشود. ezpolar(fun) تابع fun را به صورت قطبی رسم میکند. تابع fun در این دستور باید به صورت رشته متنی (درون کوتیشن) نوشته شود. برای درک بهتر، به مثال زیر دقت کنید.
ezpolar('1+cos(t)')
تنظیمات خط نمودار
مشابه با آنچه برای دستور plot برای ویژگیهای خطوط داریم، در رسم نمودار قطبی نیز برقرار است. این ویژگیها پس از r و تتا اضافه میشوند. ویژگیهایی مثل نوع خط (توپر، خط چین، نقطه چین و..)، ضخامت خط، رنگ خط و… ازین موارد اند. باتوجه به اینکه همهی این موارد در رسم نمودار با plot گفته شده، در زیر بطور خلاصه ارائه میشود.
- خط چین — ، نقطه خط .- ، نقطه :
- ضخامت خط با عبارت LineWidth مشخص میشود.
- رنگ قرمز r، مشکی k، سبز g، آبی b، زرد y، ارغوانی m
- مارکر دایره o، مثبت +، ستاره p و…
برای درک بهتر، نمودار قطبی مثال زیر را با رنگ قرمز، ضخامت 2 و خط نقطه رسم میکنیم.
theta = 0:0.01:4*pi;
r = theta;
polarplot(theta,r,'r-.','linewidth',2)
رسم نمودار قطبی روی هم
برای رسم نمودار قطبی روی یک نمودار قطبی دیگر، از hold on استفاده میشود. در واقع دستور hold on مربوط به رسم خاصی نیست و در همه ترسیمهای متلب کاربرد دارد. در مثال زیر ابتدا یک نمودار قطبی رسم کرده و سپس یک نمودار دیگر اضافه میکنیم. برای اینکه دو نمودار قابل تشخیص باشند، رنگ و نوع خطوط را متفاوت رسم میکنیم.
theta = 0:0.01:6*pi;
r1 = theta/10;
r2 = theta/12;
polarplot(theta,r1,'linewidth',1.2)
hold on
polarplot(theta,r2,'m--','linewidth',1.2)
رسم نمودارهای قطبی در کنار هم
مشابه با رسم انواع نمودارها، برای رسم نمودار قطبی کنار هم از subplot استفاده میکنیم. subplot(m,n,p) صفحه را به m سطر، n ستون تقسیم میکند که بخش p آن فعال است. این دستور بایستی قبل از رسم با polar یا polarplot نوشته شود. به مثال زیر دقت کنید. در این مثال دو نمودار قطبی را در یک صفحه در کنار هم رسم میکنیم.
theta = 0:0.01:6*pi;
r1 = theta/10;
r2 = theta/12;
subplot(1,2,1)
polarplot(theta,r1,'linewidth',1.2)
subplot(1,2,2)
polarplot(theta,r2,'m--','linewidth',1.2)
افزودن عنوان به نمودار قطبی
افزودن عنوان به نمودارهای قطبی در متلب با دستور title انجام میشود. در افزودن عنوان به نمودار توجه کنید که متن حتما درون کوتیشن قرار بگیرد. در نمودار قطبی زیر عنوان polar diagram را مینویسیم.
theta = 0:0.01:2*pi;
r = sin(2*theta);
polarplot(theta,r,'linewidth',1.2)
title('polar diagram')
تعیین محدوده محورهای قطبی
تعیین محدوده برای محورهای نمودار در متلب امکان پذیر است. تعیین محدوده برای محور شعاعی یا r با دستور rlim صورت میپذیرد. ابتدا و انتهای بازه در این دستور درون براکت وارد میشود. اگر ابتدای بازه a و انتهای آن b باشد، تعیین محدوده به صورت rlim([a,b]) انجام میشود.
به طور مشابه، برای تعیین محدوده محور زاویه یا تتا، از thetalim(([a,b]) استفاده میکنیم. که a و b ابتدا و انتهای بازه هستند. توجه کنید که اعداد ابتدا و انتهای بازه، برحسب درجه باشند. در مثال زیر محور زاویه در نمودار قطبی را محدود میکنیم.
theta = linspace(0,pi);
r = theta/10;
polarplot(theta,r)
thetalim([0 180])
تنظیمات نمودار قطبی در متلب
رسم نمودار قطبی در متلب، دارای جزئیات بسیار زیادی است. مواردی مثل؛
- عنوان محورها (لیبل)
- رسم نمودار روی هم یا در کنار هم
- عبارت اختصاصی رنگها در رسم نمودار
- نوشتن حروف یونانی و فرمول ریاضی در نمودار
- …
این جزئیات در رسم انواع نمودارها وجود دارد. به همین دلیل، این موارد را در بخش جزئیات آموزش رسم انواع نمودار در متلب ارائه کردهایم. برای مشاهده این موارد روی لینک قرمز قبل کلیک نمائید.
تمرینات این جلسه
در انتهای این جلسه 3 تمرین متلب مربوط به مباحث این جلسه ارائه شده است. لطفا این تمرینها را حل کرده و با پاسخ آن مقایسه کنید. پاسخ تمرینات متلب این جلسه در کانال تلگرام متلب پلاس منتشر میشود. از آیکونهای سمت راست صفحه میتوانید در این کانال عضو شوید.
تمرین اول) نمودار قطبی تابع cos(3*theta) را در بازه صفر تا پی به صورت نقطه-خط رسم کنید.
تمرین دوم) روی نمودار قطبی مثال قبل، نمودار sin(3*theta) را با رنگ قرمز رسم کنید.
تمرین سوم) نمودار قطبی r = theta را برای زاویه 90 درجه تا 720 درجه با ضخامت 1.5 رسم کنید.
جمعبندی
جلسه بیست و چهارم از سری جلسات آموزش متلب به پایان رسید. این جلسه درباره رسم نمودارهای قطبی در متلب صحبت کردیم. نمودار قطبی نوع خاصی از نمودار است که در دستگاه مختصات قطبی رسم میشود. نحوه رسم، تکنیکها و جزئیات متنوعی برای این نوع نمودار بیان شد. در انتها چند تمرین برای یادگیری بیشتر به شما واگذار کردیم که پاسخ آنها در کانال تلگرامی متلب پلاس وجود دارد. بی صبرانه منتظر نظرات، سوال و ابهامات شما عزیزان هستیم. سعی میکنیم تا هرگونه سوال یا ابهامی که در این باره دارید را پاسخ دهیم.
توصیه میشود که حتما تمرینات این جلسه را انجام بدید و اگر سوال و ابهامی دارید در بخش نظرات (پایین همین صفحه) به ما بگید. از فهرست سمت راست هم میتونید به بقیه جلسات دسترسی داشته باشید.
4 Comments
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام. خیلی ممنون از آموزش خوبتون. باتوجه اینکه ورودی دستور polar برحسب رادیان هست میشه در خودش تبدیل رو انجام بدیم؟ یعنی بجای اینکه اول زاویه رو تبدیل به رادیان کنیم، یکبار و در خود دستور polar این کار رو بکنیم؟ مشکلی برای رسم نمودار قطبی در متلب پیش نمیاد؟
سلام مهدیه عزیز
همه ی دستورات متلب میتونن بعنوان ورودی برای یک دستور دیگه بکار برن. برای رسم نمودار قطبی در متلب هم این مورد درسته. یعنی شما میتونید اول زاویه رو برحسب درجه تعریف کنید. بعد در دستور polar دستور deg2rad رو بنویسید. فرض کنید theta بردار زاویه برحسب درجه و r=deg2tad(theta) باشه. برای رسم مینویسیم
polar(rad2deg(theta),r)
یا
polarplot(rad2deg(theta),r)
سلام
تعیین محدوده محورهای قطبی در متلب 2015 چگونه است؟
سلام علی عزیز
دستورات rlim و thetalim از نسخه 2016 به بعد قابل استفاده اند. برای نسخههای قدیمی تر بایستی از عملگرهای نمودار استفاده کرد. به این صورت که بعد از رسم نمودار دستور زیر رو وارد میکنیم:
ax = gca;
حالا تمام ویژگیهای محورهای نمودار در متغیر ax بصورت یک استراکچر وجود داره.
با دستورات زیر میشه محدودهی موردنظر برای محور تتا و محور شعاع رو تعیین کرد:
ax.ThetaLim = [0 180]
ax.RLim = [0 6]
موفق باشید.