5.3.2 Каркасные поверхности
Команда plot3(…) может быть использован для построения так называемой каркасной поверхности, которая ограничивает поверхность геометрического тела и похожа на каркас, сплетенный из проволоки.
Пример 16. Построить график каркасной поверхности функции z(x,y) = x+y3 (рис. 5.18), где переменные x и y изменяются на интервале [–8;8] с шагом 1. Для построения графика использовать непрерывные линии. Линии, расположенные параллельно плоскости zOy, закрасить в черный цвет, а линии, параллельные плоскости zOx – в красный цвет. На плоскостях xOy, zOx, zOy сформировать сетку.
>> [x,y]=meshgrid(-8:8);
>> z=x+y.^3;
>> plot3(x,y,z,'k',y,x,z,'r')
>> grid on
Как видно из текста программы, для формирования каркасной поверхности в команде plot3(…) использованы два аргумента с дополнительными параметрами. При этом во втором аргументе переменные x и y переставлены местами. Сетка, как и в 2D графике, задается командой grid on.
Рис. 5.18
В примере 16 для построения каркасной поверхности была использована команда plot3(…). Однако для построения таких поверхностей в MATLAB имеются и другие команды, например, mesh(…) и surf(…).
Пример 17. С помощью команды mesh(…) построить каркасную поверхность (рис. 5.18), заданную функцией z = sin(x)/(x2+y2+0,3), где переменные x и y изменяются на интервале [–3;3] с шагом 0,1.
>> [x,y]=meshgrid(-3:0.1:3);
>> z=sin(x)./(x.^2+y.^2+0.3);
>> mesh(x,y,z)
На экране цветного монитора можно видеть, что цвет линий каркасной поверхности зависит от величины значений функции z. Кроме того, команда mesh(…) предполагает вывод только видимой части поверхности.
Рис. 5.19
Для того чтобы сделать каркасную поверхность «прозрачной» (рис. 5.20), следует использовать команду hidden off. Предыдущая программа в этом случае имеет вид
>> [x,y]=meshgrid(-3:0.1:3);
>> z=sin(x)./(x.^2+y.^2+0.3);
>> mesh(x,y,z)
>> hidden off
Рис. 5.20
Команда hidden on убирает невидимую часть поверхности, возвращая графику прежний вид.
В отличие от команды mesh(…) применение команды surf(…) позволяет окрасить не только линии графика, но и залить определенным цветом каждую клетку поверхности. Цвет зависит от значений функции в точках, соответствующих углам клетки.
Результат замены команды mesh(x,y,z) в примере 17 на команду surf(x,y,z) представлен на рис. 5.21.
Рис. 5.21
Трехмерные графики, изображенные на рис. 5.19 – 5.21, позволяют наглядно представить форму поверхности, однако по ним трудно судить о значениях двухмерной функции. Для того чтобы частично устранить этот недостаток, можно после команды surf(x,y,z) применить команду colorbar, которая выводит рядом с графиком столбик, устанавливающий соответствие между цветом поверхности и величиной функции. Рис. 5.22 иллюстрирует получающийся результат.
Рис. 5.22
Команду colorbar можно использовать в сочетании со всеми операторами MATLAB, строящими трехмерные объекты.
Применение после команды surf(x,y,z) команды shading flat позволяет убрать каркасные линии (рис. 5.23), а использование команды shading interp – получить поверхность, плавно залитую цветом, зависящим от значений функции.
Рис. 5.23
Yandex.RTB R-A-252273-3- Основы работы и программирования, компьютерная математика Учебный курс
- Isbn ооо «Харвест», 2008
- Предисловие
- Введение
- Глава 1 знакомство с matlab и простейшие вычисления
- 1.1. Рабочая средаMatlab
- 1.2. Арифметические вычисления
- 1.3. Вещественные числа
- 1.4. Форматы вывода результата вычислений
- 1.5 Комплексные числа
- 1.6 Векторы и матрицы
- 1.7 Встроенные функции. Функции, задаваемые пользователем
- 1.8 Сообщения об ошибках и их исправление
- 1.9 Просмотр и сохранение переменных
- 1.10 Матричные и поэлементные операции над векторами и матрицами
- 1.11 Решение систем линейных уравнений
- Вопросы для самопроверки
- Глава 2 работа с массивами
- 2.1 Создание векторов и матриц
- 2.2 Применение команд обработки данных к векторам и матрицам
- 2.3 Создание специальных матриц
- 2.4 Создание новых массивов на основе существующих
- 2.5 Вычисление собственных значений и собственных векторов. Решение типовых задач линейной алгебры
- Вопросы для самопроверки
- Глава 3 м-файлы
- 3.1 Файл-программы
- 3.2 Файл-функции
- Вопросы для самопроверки
- Глава 4 программирование
- 4.1 Операторы отношения и логические операторы
- 4.2 Операторы цикла
- 4.3 Операторы ветвления
- 4.4 Оператор переключения switch
- 4.5 Оператор прерывания цикла break
- 4.6 Пример сравнения быстродействия матричных и скалярных операций
- Вопросы для самопроверки
- Глава 5 высокоуровневая графика
- 5.1 2D графика
- 5.1.1 Графики в линейном масштабе
- 5.2 Специальные виды 2d - графиков
- 5.2.1 Представление функции в виде дискретных отсчетов
- 5.2.2 Лестничные графики
- 5.2.3 Графики с указанием погрешности
- 5.2.4 Графики в логарифмическом и полулогарифмическом масштабах
- 5.2.5 Графики параметрических функций
- 5.3 3D графика
- 5.3.1 Линейчатые поверхности
- 5.3.2 Каркасные поверхности
- 5.3.3 Контурные графики
- 5.3.4 Сплошная освещенная поверхность
- 5.4 Оформление, экспорт и анимация
- 5.4.1 Оформление графиков
- 5.4.2 Сохранение и экспорт графиков
- 5.4.3 Анимация
- Вопросы для самопроверки
- Глава 6 прикладная численная математика
- 6.1 Операции с полиномами
- 6.2 Решение уравнений и их систем
- 6.3 Минимизация функции одной переменной
- 6.4 Минимизация функции нескольких переменных
- 6.5 Вычисление определенных интегралов
- 6.6 Решение дифференциальных уравнений
- 6.7 Аппроксимация и интерполяция данных
- 6.8 Интерполяция двумерных и многомерных данных
- Вопросы для самопроверки
- Глава 7 символьные вычисления
- 7.1 Символьные переменные, константы и выражения
- 7.2 Вычисления с использованием арифметики произвольной точности
- 7.3 Команды упрощения выражений – simplify, simple
- 7.4 Команда расширения выражений – expand
- 7.5 Разложение выражений на простые множители – команда factor
- 7.6 Приведение подобных членов – команда collect
- 7.7 Обеспечение подстановок – команда subs
- 7.8 Вычисление пределов – команда limit
- 7.9 Вычисление производных – команда diff
- 7.10 Вычисление интегралов – команда int
- 7.11 Разложение в ряд Тейлора – команда taylor
- 7.12 Вычисление суммы ряда – команда symsum
- 7.13 Решение уравнений и их систем – команда solve
- 7.14 Решение дифференциальных уравнений – команда dsolve
- 7.15 Прямое и обратное преобразования Лапласа – команды laplace,ilaplace
- 7.16 Графики символьных функций – команды ezplot, ezpolar
- 7.17 Прямой доступ к ядру системы Maple – командаmaple
- 7.18 Разложение рациональной дроби на сумму простейших дробей
- 7.19 Интерполяционный полином Лагранжа
- 7.20 Решение неравенств и систем неравенств
- 7.21 Разложение в ряд Тейлора функции нескольких переменных
- 7.22 Решение дифференциальных уравнений с помощью степенных рядов
- 7.23 Решение тригонометрических уравнений
- Вопросы для самопроверки
- Приложения Приложение 1. Справочная система matlab
- Приложение 2. Знакомство с пакетами расширения системыMatlab
- Приложение 3. Задания для самостоятельной работы
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Литература