Функцию двух переменных можно отобразить как поверхность в трёхмерном пространстве, две оси которого соответствуют значениям двух независимых переменных, а по третьей оси откладываются значения функции. В Maple подобную процедуру визуализации функции двух переменных выполняет команда plot3d(), которая, как и команда отображения графика функции одной переменной plot(), расположена в стандартной библиотеке, а поэтому доступна пользователю в любой момент. Эта команда позволяет отображать графики функций, заданных как в явном виде, так и в параметрическом виде.
Синтаксис команды plot3d() практически полностью соответствует синтаксису команды plot() с небольшим очевидным дополнением, связанным с наличием второй независимой переменной:
plot3d(expr,x=a..b,y=c..d,опции)
Здесь параметр expr представляет собой алгебраическое выражение или обращение к пользовательской функции двух переменных с диапазонами изменения, определяемыми вторым и третьим параметром, в которых вместо x и y следует задавать имена переменных. Пользовательскую функцию можно определять непосредственно в команде, но в этом случае задавать имена переменных не надо:
Пример 1. plot3d((x,t)->cos(x)*sin(t),-1..1,-1..1);
На графике изображена поверхность.
Отметим, что и выражение, и функция, представляющие параметр expr, не должны содержать неопределённых символьных переменных кроме двух упомянутых независимых переменных. Границы диапазонов представляются числами, хотя для второй независимой переменной они могут быть выражениями, зависящими от первой переменной. В этом случае график функции двух переменных отображается не на прямоугольной области, а на четырехугольной области, у которой две противоположные границы являются криволинейными. Например, следующая команда
Пример 2. plot3d(cos(x)*sin(t),x=-1..1,t=-5..x^2);
отображает график функции на области, у которой одна из границ представлена параболой. Покрутите эту поверхность, чтобы лучше это увидеть.
ЗАДАНИЕ. Изобразить поверхности и . Найти наилучший ракурс просмотра. Как называются эти поверхности?
В табл.3 перечислены все опции команды plot3d с их кратким описанием и возможными значениями, причём значения по умолчанию выделены подчеркиванием.
Таблица 3. Опции команд трёхмерной графики
Опция
Описание
ambientlight
Задает цвет внешнего источника интенсивностями его красной, зеленой и синей составляющих, представленными трехэлементным списком вещественных чисел из интервала [0,1]. Эта опция имеет значение при определении пользователем собственной схемы освещенности поверхности
axes
Определяет тип отображаемых осей координат. Эта опция может принимать следующие значения: normal – обычные оси координат, пересекающиеся в точке (0,0,0); boxed – поверхность заключена в охватывающий параллелепипед с нанесенными шкалами по трем граням; frame – три оси отображаются по внешним граням охватывающего параллелепипеда; none – оси не отображаются
axesfont
Задает шрифт для надписей под засечками вдоль осей координат. Значение этой опции аналогично значению опции font
color
Задает цвет отображаемой поверхности в случае ее закрашивания или цвет линий сетки в случае отображения поверхности в виде каркаса или линий уровня.
В качестве значения этой опции может выступать одно из зарезервированных значений цвета в Maple: aquamarine, black, blue, navy, coral, cyan, brown, gold, green, gray, grey, khaki, magenta, maroon, orange, pink, plum, red, sienna, tan, turquoise, violet, wheat, white и yellow.
Можно также определить и собственный цвет, соответствующий смешению заданных частей красного, зелёного и синего цветов. Это осуществляется с помощью следующей команды macro(palegreen= COLOR(RGB,.5607,.7372,.5607)), где palegreen имя константы нового цвета, в котором красный составляет 0.5607 части, зеленый 0.7372 и синий 0.5607.
Задание значения в форме выражения, содержащего две независимые переменные, определяет цвет в каждой точке поверхности по цветовой схеме HUE.
Если цвет определяется с помощью процедуры, то она должна иметь два аргумента и возвращать значение цвета
contours
Определяет количество линий уровня при отображении их на поверхности или список значений отображаемых линий уровня. Значение по умолчанию равно 10
coords
По умолчанию при выводе как явно заданной функции, так и параметрически заданной функции используется декартовая система координат (cartesian), т. е. задаваемое уравнение кривой рассматривается именно в этой системе координат. Данная опция меняет тип системы координат. Возможные значения: bipolarcylindrical, bispherical, cardioidal, cardioidcylindrical, casscylindrical, confocalellip, confocalparab, conical, cylindrical, ellcylindrical, ellipsoidal, hypercylindrical, invcasscylindrical, invellcylindrical, invoblspheroidal, invprospheroidal, logcoshcylindrical, logcylindrical, maxwellcylindrical, oblatespheroidal, paraboloidal, paracylindrical, prolatespheroidal, rosecylindrical, sixsphere, spherical, tangentcylindrical, tangentsphere и toroidal, описание которых можно получить в справочной системе Maple с помощью команды ?coords
filled
Установка значения данной опции равным true приводит к тому, что область, ограниченная поверхностью и плоскостью xy, отображается как твердое непрозрачное тело и закрашивается в соответствии с используемой цветовой схемой
font
Задает шрифт для вывода текста на рисунке. Значение опции задается в виде списка [семейство, стиль, размер]. Параметр семейство задает гарнитуру шрифта: TIMES, COURIER, HELVETICA или SYMBOL. Параметр стиль определяет стиль шрифта: для гарнитуры TIMES возможные значения ROMAN, BOLD, ITALIC или BOLDITALIC, для гарнитур COURIER и HELVETICA стиль можно опустить, или задать BOLD, OBLIQUE или BOLDOBLIQUE, для шрифта SYMBOL стиль не задается. Последний параметр размер задает размер шрифта в пунктах (points) (один пункт приблизительно равен 1/72 дюйма)
grid
Эта опция определяет прямоугольную равномерную сетку значений независимых переменных отображаемой функции, на которой вычисляются ее значения для построения поверхности и задается в виде двухэлементного списка [m,n], в котором каждый элемент является целым числом, определяющим количество точек по соответствующей координате. По умолчанию используется сетка [25,25]
gridstyle
Задает тип отображаемой сетки: составленной из прямоугольников или треугольников на основании вычисленных ее значений в соответствии с установками, определяемыми опцией grid. Она может принимать одно из двух значений: RECTANGULAR и TRIANGULAR
labels
Задание названий осей координат в виде списка [x,y,z]. Параметры x, y и z задаются в виде строк и соответствуют отображаемым названиям трех осей декартовой системы координат. По умолчанию оси не подписываются
labeldirections
Эта опция определяет направление отображения названия осей и задается в виде списке [x,y,z], элементы которого могут принимать одно из двух значения HORISONTAL или VERTICAL.
labelfont
Задает шрифт, которым отображаются названия осей координат. Значение этой опции аналогично значению опции font.
light
Эта опция определяет расположение и цвет направленного источника света при задании пользовательской схемы подсветки. Ее значения задаются в виде списка [phi,theta,r,g,b], элементы которого имеют следующий смысл: phi и theta определяют углы направления, из которого исходит направленный свет (задаются в сферической системе координат), а r, g, b задают числовые интенсивности красной, зеленой и синей составляющих цвета источника
lightmodel
Эта опция позволяет выбрать одну из предопределенных схем подсветки и может принимать следующие значения: 'none' (нет подсветки), 'light1', 'light2', 'light3' или 'light4'
linestyle
Определяет тип линии на поверхности. Значением этой опции является целое число n. При n=0 или 1 линии отображаются как сплошные, значение равное 2 соответствует отображению линий точками, 3 — пунктиром и 4 — штрих-пунктиром
numpoints
Определяет минимальное количество n вычисляемых точек, по которым строится поверхность (значение по умолчанию равно 625=25^2). Эта опция перекрывает задание сетки опцией grid, определяя ее новые значения по осям независимых переменных равными, равными равномерно распределенным sqrt(n) точкам в диапазонах изменения независимых переменных
orientation
Задает углы в сферической системе координат направления, из которого пользователь смотрит на отображаемую поверхность: [theta,phi]. Углы задаются в градусах и по умолчанию равны [45°,45°]
projection
Задает проекцию, в которой отображается поверхность. Значением этой опции может быть целое число r из диапазона [0,1], причем 0 соответствует широкоугольной перспективе, 1 — ортогональной проекции, промежуточные значения разным типам перспектив. Можно использовать три зарезервированных ключевых слова: 'FISHEYE' для широкоугольной перспективы (r=0), 'NORMAL' для перспективной проекции с параметром r=0.5 и 'ORTHOGONAL' для ортогональной проекции (r=1)
scaling
Задает масштаб, в котором отображается поверхность. Если значение этой опции равно constrained, то это соответствует заданию абсолютных значений по осям координат, т. е. одна единица измерения по оси независимой переменной равна одной единице измерения по оси значений функции. Значение по умолчанию равно unconstrained, и это соответствует тому, что оси растягиваются таким образом, чтобы их размеры соответствовали размерам графического окна вывода
shading
Определяет, какая схема закрашивания применяется при отображении поверхности. Допустимые значения: XYZ (цвет точки поверхности зависит от значений трех ее координат), XY (цвет точки поверхности зависит от значений ее двух независимых координат), Z (цвет точки поверхности зависит от значения функции: минимальное представляется синим цветом, максимальное — красным, остальные оттенками при переходе от синего к красному), ZGRAYSCALE (цвет точки поверхности зависит от значения функции: минимальное представляется черным цветом, максимальное — бледно-серым, остальные оттенками при переходе от черного к бледно-серому), ZHUE (цвет точки поверхности зависит от значения функции: от минимального сиреневого через синий, зеленый и желтый к максимальному красному) и NONE (поверхность не закрашена)
style
Определяет, как будет отображаться поверхность. Допустимые значения: POINT (точками, представляющими значения функции на сетке), HIDDEN (каркасная модель с удалением невидимых линий), PATCH (закрашенная поверхность с линиями сетки), WIREFRAME или LINE (каркасная модель без удаления невидимых линий), CONTOUR (линиями уровня), PATCHNOGRID (закрашенная поверхность без линий сетки), PATCHCONTOUR (закрашенная поверхность с линиями уровня)
symbol
Определяет тип символа, которым помечаются точки поверхности функции при опции style=point. Может принимать следующие значения: box для □, cross для +, circle для ○, POINT для • (точка) и diamond для ◊
symbolsize
Задает размер символа в пунктах. Его значением может быть любое натуральное число. По умолчанию используются символы размером 10 пунктов. Действие этой опции не распространяется на символ точка, задаваемый опцией symbol=POINT
thickness
Задает толщину линий на поверхности. Значение является целым числом и изменяется от 0 до 3, соответствуя изменению толщины линии от самой тонкой до самой жирной
tickmarks
Определяет число точек, не менее которых должно быть помечено по горизонтальной и вертикальной оси координат. Значение задается в виде списка [l,n,m]
title
Определяет строку, которая выводится как заголовок рисунка. По умолчанию заголовок не выводится. В строке можно использовать специальные комбинации символов. Например, \n осуществляет перевод на новую строку, формируя тем самым многострочный заголовок
titlefont
Определяет шрифт для заголовка рисунка. Значение этой опции аналогично значению опции font
view
Определяет минимальное и максимальное значения координаты z, между которыми отображается поверхность, а также диапазоны изменения независимых координат в виде [xmin..xmax, ymin..ymax, zmin..zmax]. По умолчанию отображается вся поверхность без обрезания в пределах заданных диапазонов изменения независимых переменных в команде plot3d()