ترسیم نمودارهای دو بعدی در متلب matlab

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

روش اول ایجاد بردار در MATLAB:

میخواهیم برداری ایجاد کنیم که مقدار اولیه ی آن 10- و مقدار نهایی آن 10+ است

x=[-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10]

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

روش دوم ایجاد بردار در MATLAB:

x=  انتهای بازه : مقدار گام  : ابتدای بازه  ;

x=-10:1:10;

در این روش ما آمدیم و از 10- شروع کرده و یکی یکی اضافه کردیم تا به ده رسیدیم این یکی از ساده ترین روشهای ایجاد بردار در نرم افزار MATLAB است.

 

روش سوم ایجاد بردار در MATLAB:

x=linspace(تعداد اعدادی که میخواهیم در این بازه داشته باشیم,انتهای بازه ,ابتدای بازه);

x=linspace(-10,10,21);

در این روش بردار بر اساس مقدار ابتدا و انتها و اعدادی که در بین آنها قرار میگرد ایجاد میشود .یعنی برداری میخواهیم که ابتدای آن 10- و انتهای آن 10+ باشد و بعلاوه از  19 عدد که با دو مقدار ابتدا وانتها میشود 21 عدد هم تشکیل شده باشد

عملگر نقطه “.”  در نرم افزار MATLAB

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

برای مثال ما هیچ گاه نمیتوانیم یک بردار مثل بردار شکل زیر را به توان 2 برسانیم امابه کمک این عملگر میتوانیم هر کدام از اجزای آن را به توان 2 برسانیم.

دو بردار زیر را در نظر بگیرید.

d1=[1 2 3 4];

d2=[-1 1 -4 4];

اگر یکی از بردارها را به توان برسانیم با پیغام خطا مواجه خواهیم شد

d1^2;       #Error

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

g=d.^2;  ==> خروجی دستور==>    g=[1 4 9 16]

از لحاظ منتطقی هیچ گاه نمیتوان دو بردار دلخواه را در هم ضرب کرد. برای مثال ضرب زیر به شما خطا میدهد.

g1=d1*d2        #Error

اما میتوان هر ارایه ی نظیر یک بردار را در ارایه ی نظیر بردار دیگر ضرب کرد که این کار با ضرب نقطه ای انجام میشود.یعنی یک نقطه قبل از ضرب قرار میگیرد.

g2=d1.*d2     ==> خروجی دستور==>     g2=[-1 2 -12 16]

ابتدا با ساده ترین حالت مربوط به ترسیم نمودارهای دو بعدی شروع میکنیم. x  در اینجا متغی مستقل است و y متغیر وابسته.

 

ترسیم نمودارهای دو بعدی

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

ترسیم تابع زیر در بازه ی 10- تا 10+

y=sin(50*x)+0.01*x^3;

ابتدا تابع ایکس را به تعدا تقسیمات لازم در بازه ای که نیاز داریم ایجاد میکنیم

x=-10:1:10;

پس از آن متغیر وابسته ی y را به صورت بردار و با استفاده از “عملگر نقطه” در هر جا که لازم باشد ایجادمکنیم

y=sin(50.*x)+(0.01).*x.^3;

به عملگر نقطه قبل از ضرب و توان دقت نمایید.

بعد از آن با استفاده از دستور plot ترسیم انجام خواهد شد.

با استفاد از دستور زیر میتوانید عنوانی برای نمودار انتخاب کنید.

title(‘your Title’);

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

xlabel(‘Time’);
ylabel(‘Displasement’);

با استفاده از دستور زیر میتوانید برچسبی برای نمودار ایجاد کنید

legend(‘blue’);

با استفاده از این دستور میتوانید هر متنی را در هر نقطه ی دلخواه از نموار بنویسید.

text(-6,6,’ \uparrow www.matlab1.ir’,’FontSize’,18);

در پایان این قسمت مجموعه ی دستورات به همراه خروجی متلب به صورت زیر است.

%% 2D Plot in Matlab www.matlab1.ir
x=-10:1:10;
y=sin(50.*x)+.01.*x.^3;
plot(x,y)
title(‘plot f(x)=sin(50.*x)+.01.*x.^3’);
xlabel(‘Time’);
ylabel(‘Displasement’);
legend(‘blue’);
text(-6,6,’ \uparrow www.matlab1.ir’,’FontSize’,18);

aa1

ترسیم چند نمودار دو بعدی جهت مقایسه

فرض بفرمایید میخواهیم چند نمودار دلخواه که همگی تابعی از x هستند را ترسیم کنیم

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

x=-10:1:10;
y=sin(50.*x)+.01.*x.^3;
z=cos(50.*x)-.01.*x.^4;
w=-cos(50.*x)+.01.*x.^4;

پس از آن بطور ساده میتوان با استفاده از دستور زیر ترسیم چند نمودار را انجام داد.

plot(x,y,x,z,x,w)

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

figure(2);plot(x,y,’b’,x,z,’g’,x,w,’r’)

که در آن رنگها به صورت زیر است.

‘r’  رنگ قرمز،’g’ رنگ سبز، ‘k’ رنگ مشکی، ‘c’ رنگ ابی کمرنگ(کاین )، ‘m’ رنگ صورتی پر رنگ(مگنتا)، ‘b’ رنگ آبی و … است. برای بقیه رنگ ها میتوان از دستور دیگری هم استفاده کرد که بعدا تضیح خواهم داد.

خوب تا اینجا رنگ هر نمودار مشخص شد اما شاید نخواهیم که نمودارها همه خط باشند مثلا یک نمودار “-.-.-” باشد، یک نمودار “- – -” باشد و یک نمودار ” ____” باشد، یک نمودار به صورت دایره دایره باشد و غیره…که به صورت زیر اعمال میشود
figure(2);plot(x,y,’–b’,x,z,’.-g’,x,w,’:r’)

 

در مثال فوق خط آبی را به صورت “_ _” و خط سبز را به صورت “.-.-” و خط قرمز را به صورت خطوط “–“ترسیم کرده ایم.
“b:” خطوط تکه تکه ی کوتاه و آبی رنگ
“r:” خطوط تکه تکه ی کوتاه و قرمز رنگ
“g-.” خط نقطه سبز رنگ
“k- -” خط نقطه ی بلند سیاه رنگ
“ob”  خطوط دایره دایره ابی
“xr”   خطوط ستاره قرمز رنگ
و ….
تنها نکته ی دیگری که باید به خاطر داشته باشید نکته ی مربوط به برچسب گذاری است که در اینجا به دلیل وجود سه نمودار نیاز به سه برچسب هست

legend(‘blue’,’green’,’red’);

در نهایت کد نوشته شده به همراه نمودارها در زیر نشان داده شده است.

%% 2D Multi Plot in Matlab www.matlab1.ir
x=-10:1:10; 
y=sin(50.*x)+.01.*x.^3;
z=cos(50.*x)-.01.*x.^4;
w=-cos(50.*x)+.01.*x.^4;
figure(2);plot(x,y,’–b’,x,z,’.-g’,x,w,’:r’,’LineWidth’,2)
title(‘plot f(x)=sin(50.*x)+.01.*x.^3’);
xlabel(‘Time’);
ylabel(‘Displasement’);
legend(‘blue’,’green’,’red’);
text(-7,-100,’  www.matlab1.ir’,’FontSize’,18);

 aa2

 

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *