MATLAB 7 Для побудови каркасної поверхні, зображеної

Для побудови каркасної поверхні, що зображена на рис. 3,27, використовується функція mesh, що викликається з трьома аргументами

Мал. 3.27, Каркасна поверхня (mesh)

Інтерфейс функції mesh та аналогічних їй графічних функцій, які описані нижче, досить гнучкий. Крім наведеного способу звернення до mesh з трьома вхідними аргументами (матрицями), допускається ряд інших. Зокрема, якщо зазначений лише один вхідний аргумент - матриця, то на осях абсцис і ординат відкладаються значення, відповідно, стовпцевих та малих індексів її елементів. Замість номерів рядків та стовпців можна вказати вектори, які складаються з потрібних чисел. Ці вектори задаються у перших двох вхідних аргументах, а матриця – у третьому.

Колір ліній поверхні відповідає значенням функції. За умовчанням малюється лише видима частина поверхні. За допомогою команди hidden off можна зробити каркасну поверхню "прозорою", додавши J 142

Частина I, Основи роботи в MATLAB

приховану від погляду частину (рис. 3.28). Команда hidden on видаляє невидиму частину поверхні, повертаючи графіку колишній вигляд.

Мал. 3.28. Прозора каркасна поверхня (mesh, hidden off)

Функція surf будує каркасну поверхню графіка функції і заливає кожну клітину поверхні певним кольором, що залежить від значення функції у точках, відповідних кутах клітини. Команда

приводить до графіка, зображеного на рис. 3.29.

У межах кожної клітини колір незмінний. Команда shading fiat дозволяє прибрати каркасні лінії. Для отримання поверхні, плавно залитої кольором, що залежить від значень функції (рис. 3.30), призначена команда

За допомогою shading faceted можна повернутися до виду поверхні, наведеної на рис.3.29.

Тривимірні графіки, зображені на рис. 3.27-3.30, зручні для отримання уявлення про форму поверхні, проте за ними важко судити про значення функції. У MATLAB визначено команду colorbar, яка виводить поруч із графіком колірну шкалу, що встановлює відповідність між кольором та значенням функції. Побудуйте за допомогою surf графік поверхні та доповніть його інформацією про цвег.

» surf(X, У, Z) » colorbar Розділ 3. Високорівнева графіка

Мал. 3.29. Каркасна поверхня, залита кольором (surf)

Мал. 3.30. Поверхня, залита КВІТОМ (surf, shading interp)

Малюнок 3.31 ілюструє результат, що виходить. Вікно виведення графіка дещо зменшується через те, що поруч розміщується колірна шкала. Команду colorbar можна застосовувати у поєднанні з усіма функціями, що будують тривимірні об'єкти.

Однак, використовуючи графік, зображений на рис. 3.31, важко зробити висновок про значення функції в тій чи іншій точці площині лт. Більш інформативним є графік, що містить лінії рівня функції, тобто J 144

Частина I, Основи роботи в MATLAB

лінії сталості значень функції, на площині ху (рис. 3.32), Для отримання такого графіка слід використовувати meshc або surfe замість mesh або surf відповідно:

» surfe(х, у, Z) » colorbar

Мал. 3.31. Відповідність кольору та значень функції (colorbar)

Мал. 3.32. Графік поверхні з ЛІНІЯМИ рівня на ПЛОЩИНІ ху (surfe) Розділ 3. Високорівнева графіка

MATLAB дозволяє побудувати поверхню, що складається з ліній рівня за допомогою функції contour3. Цю функцію можна використовувати так, як і описані вище mesh, surf, meshc і surfe з трьома аргументами. При цьому кількість ліній рівня вибирається автоматично. Є можливість задатичетвертим аргументом у contour3 або число ліній рівня, або вектор, елементи якого дорівнюють значенням функції, що відображаються у вигляді ліній рівня. Завдання вектора зручне, коли потрібно дослідити поведінку функції певної області її значень (зріз функції). Побудуйте, наприклад, поверхню, що складається з ліній рівня, відповідних значенням функції від 0 до 0.5 з кроком 0.01: levels = 0:0.01:0.5, contour3(X, Yr Sr levels) colorbar

Результат наведено на рис. 3.33.

Мал. 3.33, графік зрізу функції, що складається з ліній рівня (contour^)

Часто більш змістовну інформацію про числові значення дають плоскі контурні графіки з лініями рівня досліджуваної функції.

MATLAB надає можливість отримувати різні типи контурних графіків за допомогою функцій contour та contourf. Розберемо їх можливо- J 146

Частина I, Основи роботи в MATLAB

сти на прикладі функцин із попереднього розділу. Використання contour з трьома аргументами

приводить до графіка, зображеного на рис. 3.34 на якому показані лінії рівня на площині ху.

Мал. 3.34. Лінії рівня функції (contour)

Такий графік є малоінформативним, не дозволяє дізнатися значення функції кожної з ліній рівня. Використання команди colorbar також не дозволить точно визначити значення функцій. Кожну лінію рівня можна забезпечити ярликом з відповідним значенням досліджуваної функції за допомогою певної MATTAB функції dabei. Функція dabei викликається з двома аргументами: матрицею, що містить інформацію про лінії рівня та покажчиком на графік, на якому слід нанести розмітку. Нам поки що нічого не говорять ці слова. Про покажчики буде сказано в розділах, присвячених створенню власних додатків, а про структуру матриці з інформацією пролініях рівня можна дізнатися за допомогою help. Виявляється, користувачеві не потрібно самому створювати аргументи dabei. Функція contour, викликана двома вихідними параметрами, як будує лінії рівня, а й знаходить необхідні для dabei параметри. Використовуйте contour з вихідними аргументами (в матриці CMatr міститься інформація про лінії рівня, а вектор h — покажчики). За- Глава 3. Високорівнева графіка Попередня 53 54 55 56 57 58 .. 349 >> Наступна