
Графіки функцій
Середовище MATLAB має досить потужні можливості для графічного подання інформації, що надає йому особливої практичної цінності. MATLAB дозволяє будувати двовимірні та тривимірні графіки функцій, заданих в аналітичному вигляді, у вигляді векторів або матриць; надає можливість будувати діаграми, гістограми та графіки спеціальних функцій.
Команда plot призначена для побудови двовимірних графіків функцій, заданих в аналітичній формі або у вигляді векторів і матриць. В залежності від вхідних аргументів plot дозволяє будувати декілька функцій на одному графіку, відображати їх різними кольорами, типами точок і ліній та в різних системах координат.
Можливими формами виклику функції plot є:
-
plot(y) – побудова графіку залежності елементів вектора y від їх індексів;
-
plot(x,y) – побудова графіку залежності y від x;
-
plot(x,y,s) – побудова графіку залежності y від x зі стилем лінії (колір і тип лінії, тип маркеру), заданим аргументом s;
-
plot(x1,y1,x2,y2,…,xn,yn) – побудова графіків декількох функцій на одних координатних осях;
-
plot(x1,y1,s1,x2,y2,s2,…,xn,yn,sn) – побудова на одних координатних осях графіків декількох функцій з відповідними стилями ліній.
Приклад В.8. Побудуємо графік
функції
на відрізку
:
>> x=0:0.01:10;
>> y=sin(x);
>> plot(x,y)
Функція plot автоматично створює нове графічне вікно, якщо його до цього часу не було на екрані. Якщо ж воно вже існує, то кожний наступний графік виводиться у це вікно, знищуючи при цьому попередній графік, який був у ньому зображений.
Досить часто виникає необхідність одночасної побудови декількох графіків. MATLAB надає для цього наступні можливості:
-
виведення кожного графіку в окремому графічному вікні;
-
виведення декількох графіків у одному вікні (на одних координатних осях);
-
виведення декількох графіків у одному вікні (на окремих координатних осях).
Для відкриття нового порожнього графічного вікна призначена команда
>> figure
Створене вікно стає поточним, тобто кожний наступний графік будується у цьому вікні, знищуючи при цьому попередній. Для відкриття наступного нового графічного вікна слід знову виконати команду figure. Таким чином можна створити необхідну кількість графічних вікон та вивести в них графіки різних функцій.
Порівняння декількох функцій зручно виконувати, побудувавши їх графіки на одних координатних осях в одному графічному вікні. В середовищі MATLAB це можна зробити двома способами:
-
з використанням команди hold on;
-
за допомогою функції plot(x1,y1,x2,y2,…,xn,yn).
Приклад В.9. Побудуємо на
одному графіку функції
і
на відрізку
.
Сформуємо вектори x, y та z:
>> x=0:0.01:10;
>> y=sin(x);
>> z=cos(x);
Для відображення обох графіків у одному графічному вікні виконаємо команду hold on, після чого побудуємо графіки за допомогою функції plot:
>> hold on
>> plot(x,y)
>> plot(x,z)
Після виконання команди hold on всі наступні графіки виводяться в одному графічному вікні, не знищуючи вже існуючі. При цьому вони мають один і той самий колір. Для того, щоб в поточному графічному вікні відображався тільки новостворений графік, потрібно перед побудовою графіка виконати команду
>> hold off
Альтернативний спосіб побудови двох функцій на одних координатних осях полягає у використанні команди plot з двома парами аргументів:
>> plot(x,y,x,z)
Аналогічним чином в одному графічному вікні можна побудувати довільну кількість функцій, задавши відповідну кількість пар аргументів у функції plot. При цьому всі функції на одному графіку автоматично зображаються різними кольорами.
MATLAB надає користувачам можливість змінювати стиль ліній графіків (колір і тип ліній, тип маркерів). Для цього служить додатковий аргумент функції plot, що задається після кожної пари векторів:
plot(x,y,'колір_стиль_маркер')
plot(x1,y1,'колір_стиль_маркер',…,xn,yn,'колір_стиль_маркер')
Цей аргумент заключається в апострофи та може складатися з одного, двох або трьох символів, які визначають колір, тип лінії і тип маркера (див. табл. В.3).
Таблиця В.3
Стилі графіків
Колір лінії |
Тип лінії |
Тип маркера |
|||
y |
жовтий |
- |
суцільна |
. |
крапка |
m |
рожевий |
: |
пунктирна |
o |
круг |
c |
блакитний |
-. |
штрих-пунктирна |
x |
хрест |
r |
червоний |
-- |
штрихова |
+ |
знак “плюс” |
g |
зелений |
|
|
* |
зірочка |
b |
синій |
|
|
s |
квадрат |
w |
білий |
|
|
d |
ромб |
k |
чорний |
|
|
p |
п’ятикутна зірка |
Для побудови декількох графіків в одному вікні, але на окремих координатних осях, призначена функція
subplot(m,n,p)
яка розбиває графічне вікно на матрицю з m на n підграфіків і вибирає p-й підграфік поточним. Підграфіки нумеруються послідовно зліва направо, згори вниз. Щоб додати графік функції до поточного підграфіку, треба звернутись до функції plot.
Корисною альтернативою plot є функція fplot, форма звернення до якої наступна:
fplot('fun',[a,b],n)
Тут
fun – рядкова змінна, що містить запис функції, графік якої треба побудувати, або ім’я файлу, в якому ця функція визначена;
[a,b] – інтервал побудови графіка;
n – кількість точок, за якими буде побудований графік функції (за замовчуванням n = 25).
Приклад В.10. Побудуємо графік
функції
на відрізку
за допомогою функції fplot:
>> fplot('sin(x)',[0,10])
Для побудови графіків тривимірних поверхонь, спочатку необхідно задати прямокутну область визначення функції за допомогою команди meshgrid, а потім скористатись командою mesh або surf для побудови поверхні.
Приклад В.11. Побудуємо графік
функції
,
де
,
:
>> [x,y]=meshgrid(-pi:0.1:pi,-pi:0.1:pi);
>> z=sin(cos(x+y));
>> mesh(z)