ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.03.2025
Просмотров: 59
Скачиваний: 0
Практикум 5. Построение трехмерных графиков
Цель работы – научиться строить трехмерные графики.
Продолжительность работы - 2 часа.
Оборудование – работа выполняется в компьютерном классе с использованием пакета MATLAB.
Порядок выполнения
-
Знакомство со справочным материалом по математике
-
Знакомство со справочным материалом по пакету MATLAB.
-
Изучение примеров.
-
Самостоятельное выполнение упражнений. При выполнении упражнений в случае сообщения системы об ошибке рекомендуется найти и исправить ошибку самостоятельно; однако, если после многократных попыток сделать это не удается, то можно и нужно проконсультироваться с преподавателем.
P.S. Отчитываться перед преподавателем о выполнении упражнений не нужно. Однако, следует учесть, что их выполнение – залог успешного написания контрольной работы по модулю, поскольку контрольная работа составлена из аналогов упражнений.
Справочный материал по пакету MATLAB
1. Графики линий. Для построения линии в трехмерном пространстве используется команда plot3, которая очень похожа на команду plot и имеет формат Эта команда использует для численного интегрирования алгоритм, основанный на методе Симпсона. Команда имеет следующий формат:
plot3 (x,y,z, ‘line specifiers’,‘PropertyName’,property value) |
|||||
|
|
|
|
|
|
|
x,y,z – векторы координат точек |
Дополнительные: Спецификаторы, которые определяют тип и цвет линии и маркеров |
Дополнительные: свойства и значения свойств, которые могут использоваться для определения ширины линии и размера маркера, его края и цвета заливки |
Важное о функции plot3:
-
x,y,z должны иметь одинаковую размерность;
-
Спецификаторы линий, свойства и значения свойств такие же, как в двумерных графиках; уточнить, что они собой представляют, можно с помощью команды help.
2. Создание графиков функций двух переменных без использования символьной математики.
Создание поверхностей – графиков функций – происходит в три этапа. На первом этапе создается координатная сетка в плоскости в пределах области определения функции . На втором – вычисляются значения в каждой точке сетки. На третьем – создается сам график.
2.1. Создание координатной сетки в декартовой системе координат плоскости . Рассмотрим в плоскости прямоугольник . Расчертим его линиями, параллельными оси на равные по ширине полосы, а также линиями, параллельными оси на равные по высоте полосы. В результате прямоугольник окажется разбит на маленькие равные прямоугольники. Совокупность пар координат вершин этих прямоугольников называют координатной сеткой.
Координатная сетка создается командой meshgrid. Ее формат:
[X,Y] = meshgrid (u, v) |
|||||
|
|
|
|
||
X – матрица, каждая строка которой есть вектор u Y – матрица, каждый столбец которой есть вектор v |
- вектор абсцисс точек сетки; первый и последний элемент вектора u совпадают с границами отрезка |
- вектор ординат точек сетки; первый и последний элемент вектора v совпадают с границами отрезка |
Выходные аргументы X,Y функции meshgrid задают координатную сетку как совокупность пару , где - элемент массива X, а - элемент массива Y (i - номер строки и j – номер столбца).
u=-1:0.5:1;
v=-1:1;
[X,Y]=meshgrid(u,v)
X =
-1.0000 -0.5000 0 0.5000 1.0000
-1.0000 -0.5000 0 0.5000 1.0000
-1.0000 -0.5000 0 0.5000 1.0000
Y =
-1 -1 -1 -1 -1
0 0 0 0 0
1 1 1 1 1
Замечание. Сетка не обязательно должна быть регулярной.
2.2. Вычисление значений функции в каждой точке координатной сетки. Пусть на первом этапе созданы массивы X,Y и тем самым определены координаты всех точек сетки. Тогда значения в каждой точке можно вычислить воспользовавшись инструментом поэлементных вычислений (аналогично тому, как вычисляются значения функции одной переменной, когда значения ее аргумента заданы вектором).
clear
u=-1:0.5:1;
v=-1:1;
[X,Y]=meshgrid(u,v);
Z=X.^2+Y.^2+1
Z =
3.0000 2.2500 2.0000 2.2500 3.0000
2.0000 1.2500 1.0000 1.2500 2.0000
3.0000 2.2500 2.0000 2.2500 3.0000
2.3. Создание графика функции в виде сети и графика поверхности. График в виде сети (сеточный график) создается командой mesh. График в виде поверхности создается командой surf. Они имеют сходные форматы:
mesh(X,Y,Z) и surf(X,Y,Z)
Здесь X,Y – матрицы с координатами решетки, а Z – матрица со значениями в узлах решетки.
График в виде сети складывается из линий, которые соединят точки. В графике поверхности внутренние области ячеек окрашены.
Линии сеточных графиков имеют цвета, которые изменяются в соответствии с величиной .
clear u=-1:0.5:1; v=-1:1; [X,Y]=meshgrid(u,v); Z=X.^2+Y.^2+1; mesh(X,Y,Z)
|
|
Замечание. MatLab рисует только видимую часть поверхности. С помощью команды hidden of можно сделать сеточный график «прозрачным», добавив скрытую часть. Команда hidden on возвращает сеточному графику прежний вид.
Построим график другого вида.
clear u=-1:0.5:1; v=-1:1; [X,Y]=meshgrid(u,v); Z=X.^2+Y.^2+1; surf(X,Y,Z)
|
|
Уменьшим шаг сетки по обоим осям подпишем оси.
clear u=-1:0.05:1; v=-1:0.05:1; [X,Y]=meshgrid(u,v); Z=X.^2+Y.^2+1; surf(X,Y,Z) xlabel('x') ylabel('y') zlabel('z')
|
|
Есть несколько дополнительных команд графического изображения, которые подобны командам mesh и surf. Они создают графики с различными особенностями:
meshz(X,Y,Z) - изображает «штору» вокруг сети;
surfl(X,Y,Z) - изображает график поверхности с подсветкой.
3. Команда view. Эта команда управляет направлением, с которого просматривается график. Управление осуществляется указанием азимута и угла возвышения. Формат команды:
view(az,el) и view ([az,el])
Важное о функции view:
(1) az – это азимут, который является углом (в градусах) в плоскости , измеряемых от отрицательного направления оси против хода часовой стрелки;
(2) el – это угол возвышения (в градусах) от плоскости , который является углом (в градусах) в плоскости (положительное значение соответствует измерению в направлении .
(3) По умолчанию az равен , el равен .
Упражнения
Упражнение 1
Постройте график конической винтовой линии, заданной уравнениями , , для и . Построение выполните при различных значениях .
Упражнение 2
Функция в области , задана уравнением .
(1) Создайте график функции, используя функцию mesh(X,Y,Z). Задание выполните для сеток с разным числом узлов. Дополнительно используйте команду hidden of, чтобы сделать график «прозрачным».
(2) Создайте график функции, используя функцию surf(X,Y,Z). Задание выполните для сеток с разным числом узлов.
(3) Создайте график функции, используя функцию meshz(X,Y,Z) .
(4) Создайте график функции, используя функцию surfl(X,Y,Z) .
(5) Используя функцию view, рассмотрите графики функции с разных направлений. Взяв в качестве направлений оси координат, постройте проекции 3D графика на координатные плоскости.
Упражнение 3
Для функции, заданной уравнением выполните следующие задания:
(1) Найдите область определения.
(2) Создайте график функции, используя функцию mesh(X,Y,Z). Задание выполните для сеток с разным числом узлов.
(3) Создайте график функции, используя функцию surf(X,Y,Z). Задание выполните для сеток с разным числом узлов.
Упражнение 4
Геометрия корпуса судна (корпуса Уигли) может быть смоделирована уравнениями , где - длина, ширина и высота соответственно. Используя значения , , , , , постройте графическую модель судна. Постройте проекцию модели судна на координатные плоскости.
P.S. Задача взята из [4].
Упражнение 5
Елочная игрушка сделана в форме конуса, вершина которого обращена к земле, а обращенное вверх основание накрыто «крышечкой» в форме полусферы. Постройте 3D изображение этой елочной игрушки, если ее общая высота равна 10 см, а радиус полусферы - 3 см.
Список литературы и информационных ресурсов
-
Сборник задач по математике для втузов [Текст]: Учеб. пособие для втузов: В 4-х ч. Ч. 2: [Введение в анализ; Дифференциальное и интегральное исчисление функций одной переменной; Дифференциальное исчисление функций нескольких переменных; Кратные интегралы; Дифференциальные уравнения] / Под ред. А.В. Ефимова, А.С. Поспелова. - 5-е изд., перераб. и доп. - М.: Физматлит, 2009.
-
В.Г.Потемкин "Введение в Matlab" (v 5.3) http://matlab.exponenta.ru
-
Мещеряков В.В. Задачи по математике с MATLAB&SIMULINK – М.: ДИАЛОГ-МИФИ, 2007
-
Амос Гилат. MATLAB. Теория и практика. 5-е изд./ Пер. с англ. Смоленцев Н.К. – М.:ДМК Пресс, 2016.
-
http://matlab.exponenta.ru