هاشور زدن سطح زیر نمودار
هرچه بیشتر روی امکانات گرافیکی متلب وقت بگذارید کار با آن جالبتر و هیجان آورتر می شود. امروز قرار است با کمک متلب محیط بسته بین دو نمودار را با رنگ خاصی پر کنیم.
فرض کنید قرار است محیط بسته ای که دو معادله ی زیر با هم می سازند با رنگ سبز (بدون منظور خاصی !) پر کنیم :
y=x+1
y=x^2
بسیاری از کاربران متلب خیلی ساده می دانند که برای پر کردن محیط بسته با رنگ خاص در متلب می توان از فرمان fill استفاده کرد اما روش درست استفاده از آن کمی پیچیده است
ابتدا دستور hold را فعال کرده و دو نمودار را رسم می کنیم :
hold on;
ezplot(‘x+1’);
ezplot(‘x^2’);
برای رسم دقیق قسمت پر کننده شما نیاز به دانستن محل تقاطع دو خط دارید و برای این کار هم لازم است معادله ی آن دو با هم حل شود :
s=solve(‘y=x+1′,’y=x^2’);
شکل کلی فرمان fill به صور ت زیر است:
fill(X,Y,ColorSpec)
که در آن x و y مجموعه ی نقاطی هستند که یک محیط بسته ی دو بعدی را تشکیل می دهند و نیز رنگ زمینه را هم در قسمت آخر همانند دستور plot تعیین می کنید
باقی کار چندان مشکل نیست فقط شما نیاز دارید که x ها در بین دو نقطه ی تقاطع منحنی جای بگیرند و y ها هم از روی یکی از معادلات به طور دقیق محاسبه شوند، هر چه تعداد نقاط بیشتر باشد هاشور دقیقتر شکل می گیرد
f2=x^2;
x=linspace(subs(s.x(1)),subs(s.x(2)),3);
y2=subs(f2,x);
fill(x,y2,’g’);
plot(x,y2,’r+’)
axis([-2 2 -1 4])
برای درنظر گرفتن تعداد نقاط بیشتر می توانید در فرمان linspace بجای عدد 3 از 30 یا 40 استفاده کنید و ببینید تغییرات به چه صورت خواهد بود.
متن کامل برنامه به صورت زیر است :
clc;
clear;
clf;
hold on;
ezplot(‘x+1’);
ezplot(‘x^2’);
s=solve(‘y=x+1′,’y=x^2’);
syms x;
f2=x^2;
x=linspace(subs(s.x(1)),subs(s.x(2)),3);
y2=subs(f2,x);
fill(x,y2,’g’);
plot(x,y2,’r+’)
axis([-2 2 -1 4])
منبع: http://mathworks.ir/matlab-learning/31-general/271-fill-plot-matlab
سلامی چ دیدی؟
سلوم