Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_2a70_2014.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

2.12.1. Общий алгоритм визуализации функций двух переменных.

Прежде всего, отметим, что аналогично процессу построения графика функции одной переменной, создание графика функций двух переменных включает следующие основные этапы:

– задание массивов значений аргумента (в частности, формирование массивов, содержащих (хранящих) информацию о координатах узлов сетки на области определения функции);

– вычисление массива соответствующих значений функции;

– вызов специальной функции для вывода графика на экран;

– отображение на графике дополнительной (поясняющей) информации (название графика, заголовки осей, соответствие цветов значениям функции, изменение палитры цветов и т.д.).

2.12.2. Построение трехмерных линий.

Положение каждой точки в трехмерном пространстве, как известно, задается тремя координатами (в частности, в декартовой системе координат они традиционно обозначаются ). Набор точек, принадлежащий некоторой линии в пространстве, задается в виде трех векторов, которые содержат координаты точек по соответствующим координатным осям. Имена данных векторов указываются в списке формальных параметров функции plot3, которая выполняет проектирование соответствующей трехмерной линии на плоскость и строит соответствующее (результирующее) изображение. Следует подчеркнуть, что все сопутствующие вычисления и выбор необходимых параметров визуализации (пределы изменения переменных по осям координат, число графических и числовых меток, выбор цвета линии, цвета фона и т.д.) отображаемой зависимости будут сделаны автоматически в соответствии с общей концепцией высокоуровневой графики системы MATLAB.

Так, например, для построения пространственной (винтовой) спирали ( , , ) необходимо выполнить следующую последовательность команд (рис. 2.12.1):

>> t=0:pi/100:10*pi;

>> x=cos(t);

>> y=sin(t);

>> plot3(x,y,t);

>> grid on

Рис. 2.12.1. Пример построения пространственной кривой.

Следует пояснить, что в результате задания функции

plot3(x,y,t)

система MATLAB построит трехмерную линию, координаты которой соответствуют элементам векторов x, y, и t.

Функция plot3, также как и функция plot, принимает дополнительный аргумент, задающий параметры графической линии (такие как цвет, тип линии и тип маркера, помечающего точки на графике). Так, например, для того, чтобы изобразить показанную на рис. 2.12.1 спираль в виде зеленой пунктирной линии, необходимо ввести следующую команду:

plot3(x,y,t,’g:’)

Функцию plot3, являющуюся трехмерным аналогом функции plot, можно применять и для отображения поверхностей. В таком случае в отличие от представленного примера, в списке формальных параметров указываются три матрицы одинакового размера. Далее высокоуровневая графическая подсистема MATLAB автоматически выполняет трехмерную визуализацию поверхности (набора линий в пространстве, количество которых будет соответствовать числу столбцов матриц) без сколь-либо существенных усилий со стороны пользователя.

Рассмотрим более подробно задание указанных матриц, используемых при визуализации поверхности. Пусть в точке с координатами вычислено значение функции . Для всех таких точек имеем соответствующие массивы точек. Соответствующие функции системы MATLAB проводят через эти точки гладкую поверхность и отображают ее проекцию на экран монитора компьютера. Следует отметить, что наиболее часто для вычисления аргументов используется разбиение области определения функции в виде прямоугольной сетки.

Для описания такой сетке в MATLAB необходимо создать две матрицы, которые будем обозначать здесь X и Y. Число строк данных матриц равно количеству узлов разбиения отрезка , а число столбцов – количеству узлов разбиения отрезка , при этом строки матрицы X одинаковые и содержат координаты узлов разбиения отрезка , а столбцы матрицы Y также одинаковые и содержат координаты узлов разбиения отрезка . Для формирования таких матриц используется функция meshgrid, имеющая следующий синтаксис:

[X Y]=meshgrid(x,y)

где x и y – векторы, содержащие координаты узлов сетки (табличных точек) вдоль координат и соответственно.

Заметим, что в частном случае, когда область определения функции представляет собой квадратную сетку т.е. , то к функции meshgrid можно обратиться с одним аргументом:

[X Y]=meshgrid(x)

В дальнейшем в каждом узле полученной таким образом прямоугольной сетки вычисляются значения функции и сохраняются в соответствующей матрице Z.

Очевидный проигрыш в памяти из-за повторяющихся строк в массиве X и повторяющихся столбцов в массиве Y компенсируются простотой и эффективностью вычисления значений визуализируемой функции в узлах сетки. Такой подход естественным образом гарантирует правильность сочетания координат x и y в узлах сетки.

Для построения поверхности в виде линий, получаемых в сечении поверхности плоскостями, параллельными плоскости , как и в предыдущем примере используется функция plot3(X,Y,Z).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]