ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.03.2025
Просмотров: 103
Скачиваний: 0
Практикум 5. Построение трехмерных графиков
Цель работы – научиться строить трехмерные графики.
Продолжительность работы - 2 часа.
Оборудование – работа выполняется в компьютерном классе с использованием пакета MATLAB.
Порядок выполнения
1.Знакомство со справочным материалом по математике
2.Знакомство со справочным материалом по пакету MATLAB.
3.Изучение примеров.
4.Самостоятельное выполнение упражнений. При выполнении упражнений в случае сообщения системы об ошибке рекомендуется найти и исправить ошибку самостоятельно; однако, если после многократных попыток сделать это не удается, то можно и нужно проконсультироваться с преподавателем.
P.S. Отчитываться перед преподавателем о выполнении упражнений не нужно. Однако, следует учесть, что их выполнение – залог успешного написания контрольной работы по модулю, поскольку контрольная работа составлена из аналогов упражнений.
Справочный материал по пакету MATLAB
1. Графики линий. Для построения линии в трехмерном пространстве используется команда plot3, которая очень похожа на команду plot и имеет формат Эта команда использует для численного интегрирования алгоритм, основанный на методе Симпсона. Команда имеет следующий формат:
plot3 (x,y,z, ‘line specifiers’,‘PropertyName’,property value)
x,y,z – |
Дополнительные: |
Дополнительные: |
векторы |
Спецификаторы, |
свойства и значения свойств, которые могут |
координа |
которые |
использоваться для определения ширины |
т точек |
определяют тип и |
линии и размера маркера, его края и цвета |
|
цвет линии и |
заливки |
|
маркеров |
|
Важное о функции plot3:
(1)x,y,z должны иметь одинаковую размерность;
(2)Спецификаторы линий, свойства и значения свойств такие же, как в двумерных графиках; уточнить, что они собой представляют, можно с помощью команды help.
2.Создание графиков функций двух переменных без использования символьной математики.
Создание поверхностей – графиков функций z = f (x, y) – происходит в три этапа.
На первом этапе создается координатная сетка в плоскости Oxy в пределах области определения функции z = f (x, y) . На втором – вычисляются значения z в каждой точке сетки. На третьем – создается сам график.
1
2.1. Создание координатной сетки в декартовой системе координат плоскости
Oxy . Рассмотрим в плоскости Oxy прямоугольник [a,b] [c,d ] . Расчертим его линиями, параллельными оси Ox на равные по ширине полосы, а также линиями, параллельными оси Oy на равные по высоте полосы. В результате прямоугольник окажется разбит на маленькие равные прямоугольники. Совокупность пар координат вершин этих прямоугольников называют координатной сеткой.
Координатная сетка создается командой meshgrid. Ее формат:
[X,Y] = meshgrid (u, v)
X– матрица, каждая строка которой есть вектор u
Y– матрица, каждый столбец которой есть вектор v
- вектор абсцисс точек |
- вектор ординат точек |
сетки; |
сетки; |
первый и последний |
первый и последний |
элемент вектора u |
элемент вектора v |
совпадают с границами |
совпадают с границами |
отрезка [a,b] |
отрезка [c, d ] |
Выходные аргументы X,Y функции meshgrid задают координатную сетку как совокупность пару ( xij , yij ) , где xij - элемент массива X, а yij - элемент массива 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. Вычисление значений функции z = f (x, y) в каждой точке координатной сетки. Пусть на первом этапе созданы массивы X,Y и тем самым определены координаты всех точек сетки. Тогда значения z = f (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
2.3. Создание графика функции z = f (x, y) в виде сети и графика поверхности.
График в виде сети (сеточный график) создается командой mesh. График в виде поверхности создается командой surf. Они имеют сходные форматы:
mesh(X,Y,Z) и surf(X,Y,Z)
Здесь X,Y – матрицы с координатами решетки, а Z – матрица со значениями в узлах решетки.
График в виде сети складывается из линий, которые соединят точки. В графике поверхности внутренние области ячеек окрашены.
Линии сеточных графиков имеют цвета, которые изменяются в соответствии с величиной 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)
3
2.5
2
1.5
1
1
0.5 |
1 |
|
0 |
0.5 |
|
0 |
||
-0.5 |
||
-0.5 |
||
|
||
-1 |
-1 |
Замечание. MatLab рисует только видимую часть поверхности. С помощью команды hidden of можно сделать сеточный график «прозрачным», добавив скрытую часть. Команда hidden on возвращает сеточному графику прежний вид.
Построим график другого вида.
|
3 |
clear |
2.5 |
|
|
u=-1:0.5:1; |
|
v=-1:1; |
2 |
[X,Y]=meshgrid(u,v); |
|
|
Z=X.^2+Y.^2+1; |
1.5 |
|
surf(X,Y,Z) |
||
|
||
|
1 |
|
|
1 |
0.5 |
1 |
|
0 |
0.5 |
|
0 |
||
-0.5 |
||
-0.5 |
||
|
||
-1 |
-1 |
3
Уменьшим шаг сетки по обоим осям подпишем оси.
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')
z
3
2.5
2
1.5
1
1
0.5 |
|
|
1 |
0 |
|
|
0.5 |
|
|
0 |
|
|
-0.5 |
|
|
|
|
-0.5 |
|
|
|
|
|
y |
-1 |
-1 |
x |
|
|
||
|
|
|
Есть несколько дополнительных команд графического изображения, которые подобны командам mesh и surf. Они создают графики с различными особенностями:
meshz(X,Y,Z) - изображает «штору» вокруг сети; surfl(X,Y,Z) - изображает график поверхности с подсветкой.
3. Команда view. Эта команда управляет направлением, с которого просматривается график. Управление осуществляется указанием азимута и угла возвышения. Формат команды:
view(az,el) и view ([az,el])
Важное о функции view:
(1)az – это азимут, который является углом (в градусах) в плоскости Oxy , измеряемых от отрицательного направления оси Oy против хода часовой стрелки;
(2)el – это угол возвышения (в градусах) от плоскости Oxy , который является углом (в градусах) в плоскости Oxy (положительное значение соответствует
измерению в направлении Oz .
(3) По умолчанию az равен 20 , el равен 35 .
|
|
|
|
|
Упражнения |
|
|
|
Упражнение 1 |
|
|
|
|
|
|
||
Постройте график |
конической |
винтовой линии, |
заданной |
уравнениями |
||||
x = aet cost , |
y = aet sin t , |
z = aet |
для |
a = 1 |
и 0 t с . Построение выполните при |
|||
различных значениях с . |
|
|
|
|
|
|
||
Упражнение 2 |
|
|
|
|
|
|
||
Функция |
в области |
−3 x 3 , |
−3 y 3 |
задана |
уравнением |
|||
|
|
|
|
|
|
|
|
|
z = 1, 7−1,2 x2 + y2 |
sin(0, 9x) cos(0, 6 y) . |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
4 |
(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
Для функции, заданной уравнением z = 1 − x2 + 1 − y2 выполните следующие задания:
(1)Найдите область определения.
(2)Создайте график функции, используя функцию mesh(X,Y,Z). Задание
выполните для сеток с разным числом узлов.
(3) Создайте график функции, используя функцию surf(X,Y,Z). Задание выполните для сеток с разным числом узлов.
Упражнение 4
Геометрия корпуса судна (корпуса Уигли) может быть смоделирована уравнениями
|
B |
|
|
2x 2 |
|
2z 2 |
|
|||||
y = |
|
1 |
− |
|
|
1 |
− |
|
|
|
, где x, y, z - длина, ширина и высота соответственно. |
|
|
|
|
||||||||||
|
2 |
|
|
|
L |
|
|
T |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Используя |
значения |
B = 1, 2 , |
L = 4 , T = 0,5 , −2 x 2 , −0, 25 z 0 , постройте |
графическую модель судна. Постройте проекцию модели судна на координатные плоскости.
P.S. Задача взята из [4].
Упражнение 5
Елочная игрушка сделана в форме конуса, вершина которого обращена к земле, а обращенное вверх основание накрыто «крышечкой» в форме полусферы. Постройте 3D изображение этой елочной игрушки, если ее общая высота равна 10 см, а радиус полусферы - 3 см.
|
Список литературы и информационных ресурсов |
1. |
Сборник задач по математике для втузов [Текст]: Учеб. пособие |
для втузов: В 4-х ч. Ч. 2: [Введение в анализ; Дифференциальное и интегральное исчисление функций одной переменной; Дифференциальное исчисление функций нескольких переменных; Кратные интегралы; Дифференциальные уравнения] / Под ред. А.В. Ефимова, А.С. Поспелова. - 5-е изд., перераб. и доп. - М.: Физматлит, 2009.
2. |
В.Г.Потемкин "Введение в Matlab" (v 5.3) |
http://matlab.exponenta.ru |
|
3. |
Мещеряков В.В. Задачи по математике с MATLAB&SIMULINK |
– М.: ДИАЛОГ-МИФИ, 2007
5