Основи графічної візуалізації обчислень
Особливості графіки системи MATLAB
В· Побудова графіка функцій однієї змінної
В· Побудова графіків точками і відрізками прямих
В· Графіки в логарифмічному і напівлогарифмічному масштабі
В· Гістограми та діаграми
В· Графіки спеціальних типів
В· Створення масивів даних для тривимірної графіки
В· Побудова графіків тривимірних поверхонь, перетинів і контурів
В· Засоби управління підсвічуванням і оглядом фігур
В· Засоби оформлення графіків
В· Одночасне виведення декількох графіків
В· Управління колірною палітрою
В· Забарвлення тривимірних поверхонь
В· Двовимірні і тривимірні графічні об'єкти
Основні відмінні риси графіки MATLAB
В· істотно поліпшений інтерфейс графічних вікон;
В· введення нової панелі інструментів Camera для інтерактивної зміни умов видимості об'єкта;
В· розширені можливості форматування графіки;
В· можливість створення графіки в окремих вікнах;
В· можливість виведення декількох графічних вікон;
В· можливість переміщення вікон по екрану і зміни їх розмірів;
В· можливість переміщення області графіки усередині графічного вікна;
В· завдання різних координатних систем і осей;
<p> В· висока якість графіки;
В· широкі можливості використання кольору;
В· легкість установки графічних ознак - Атрибутів;
В· зняття обмежень на число кольорів;
В· достаток параметрів команд графіки;
В· можливість отримання природно виглядаючих тривимірних фігур та їх поєднань;
В· простота побудови тривимірних графіків з їх проекцією на площину;
В· можливість побудови перетинів тривимірних фігур і поверхонь площинами;
В· функціональна багатобарвна і напівтонова забарвлення;
В· можливість імітації світлових ефектів при висвітленні постатей точковим джерелом світла;
В· можливість створення анімаційної графіки;
В· можливість створення об'єктів для типового інтерфейсу користувача.
Побудова графіка функцій однієї змінної
У режимі безпосередніх обчислень доступні практично всі можливості системи. Широко використовується побудова графіків різних функцій, що дають наочне уявлення про їх поведінку в широкому діапазоні зміни аргументу. При цьому графіки будуються в окремих масштабованих і переміщуються вікнах.
Розглянемо найпростіший приклад - побудова графіка синусоїди. MATLAB будує графіки функцій по ряду точок, з'єднуючи їх відрізками прямих, тобто здійснюючи лінійну інтерполяцію функції в інтервалі між суміжними точками. Задамо інтервал зміни аргументу x від 0 до 10 з кроком 0.1. Для побудови графіка досить спочатку задати вектор х = 0:0.1:10, а потім використовувати команду побудови графіків plot (sin (x)).
Вектор x задає інтервал зміни незалежної змінної від 0 до 10 с кроком 0.1. Функція plot будує не справжній графік функції sin (x), а лише заданий числом елементів вектора x число точок. Ці точки потім просто з'єднуються відрізками прямих, тобто здійснюється кусочно-лінійна інтерполяція даних графіка. При 100 точках отримана крива оком сприймається як цілком плавна, але при 10 - 20 точках вона буде виглядати складається з відрізків прямих.
MATLAB будує графіки в окремих вікнах, званих графічними вікнами. У головному меню вікна команди пункту меню Tools (Інструменти), дозволяють вивести або приховати інструментальну панель. Засоби цієї панелі дозволяють легко управляти параметрами графіків і наносити на них текстові коментарі в будь-якому місці.
Побудова в одному вікні графіків декількох функцій
Побудуємо графіки відразу трьох функцій: sin (x), cos (x) і sin (x)/х. Перш за все, відзначимо, що ці функції можуть бути позначені змінними, які не мають явної вказівки аргументу у вигляді у (x):
>> y1 = sin (x); y2 = cos (x); y3 = sin (x)/x;
Така можливість зумовлена ​​тим, що ці змінні є векторами - як і змінна x. Тепер можна використовувати одну з ряду форм команди
plot: plot (a1, f1, a2, f2, a3, f3, ...).
де a1, a2, a3, ... - вектори аргументів функцій, а f1, f2, f3, ... - Вектори значень функцій, графіки яких будуються в одному вікні. У нашому випадку для побудови графіків зазначених функцій ми повинні записати наступне:
>> plot (x, y1, x, y2, x, y3)
Можна очікувати, що MATLAB в цьому випадку побудує, як зазвичай, точки графіків цих функцій і з'єднає їх відрізками ліній. Але, якщо ми виконаємо ці команди, то ніякого графіка не отримаємо взагалі. Не виключений навіть збій у роботі програми. Причина цього казусу виникне при обчисленні функції y3 = sin (x)/x, якщо x являє собою масив (вектор), то не можна використовувати оператор матричного ділення /.
Щоб отримати графік, треба обчислювати відношення sin (x) до x за допомогою оператора поелементного ділення масивів ./.
>> y1 = sin (x); y2 = cos (x); y3 = sin (x)./x;
Warning: Divide by zero.
(Type "Warning off MATLAB: divideByZero" to suppress this warning.)
>> plot (x, y1, x, y2, x, y3)
MATLAB побудував графіки всіх трьох функцій, але у вікні командного режиму з'явилося Попередження про діленні на 0 - в момент, коли х = 0. Це говорить про те, що plot В«не знаєВ» про те, що невизначеність sin (x)/x = 0/0 усунена і дає 1. Це недолік практично всіх систем для чисельних обчислень.
Графічна функція fplot
MATLAB має засоби для побудови графіків і таких функцій, як sin (x)/x, які мають переборні невизначеності. Це робиться, за допомогою іншої графічної команди -
fplot: fplot ('f (x)', [xmin, xmax])
Вона дозволяє будувати функцію, задану у символьному вигляді, в інтервалі зміни аргументу х від xmin до xmax без фіксованого кроку зміни х. Хоча в процесі обчислень попередження про помилку (ділення на 0) виводиться, графік будується правильно, при х = 0 sinx/x = 1. Команда grid on (сітка) - включає відображення сітки, яка будується пунктирними лініями.
>> fplot ('sin (x)/x', [-15,15]); grid on
Побудова графіків відрізками прямих
Для відображення функції однієї змінної у (x) використовуються графіки в декартовій (прямокутній) системі координат. При цьому зазвичай будуються дві осі: горизонтальна X і вертикальна Y, і задаються координати x і у, що визначають вузлові точки функції у (x).
Команда plot служить для побудови графіків функцій у декартовій системі координат. Ця команда має ряд параметрів, розглянутих нижче.
В· plot (X, Y) - будує графік функції у (х), координати точок (х, у) якої беруться з векторів однакового розміру Y і X. Якщо X або Y - матриця, то будується сімейство графіків за даними, що містяться в колонках матриці.
Наведений нижче приклад ілюструє побудову графіків двох функцій - sin (x) і cos (x), значення, функції яких містяться в матриці Y, а значення аргументу х зберігаються у векторі X:
>> x = [0 1 2 3 4 5];
>> y1 = sin (x); y2 = cos (x);
>> plot (x, y1, x, y2)
На малюнку показаний графік функцій з цього прикладу. В даному випадку чітко видно, що графік складається з відрізків, і якщо вам потрібно, щоб відображувана функція мала вид гладкої кривої, необхідно збільшити кількість вузлових точок. Розташування їх може бути довільним.
В· plot (Y) - будує графік у (x), де значення y беруться з вектора Y, а x являє собою індекс відповідного елемента. Якщо Y містить комплексні елементи, то будується гра...