Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 46
Текст из файла (страница 46)
На самом жеделе маркер есть только один. В общем случае в нем должен быть прописан массив,содержащий координаты узловых точек по всем трем осям. Тому, как этот массивможно задать и что он собой представляет, и будет посвящен, во многом, данныйраздел.Никаких принципиальных различий, кроме описанного выше, между графическими областями двумерных и трехмерных объектов нет. Поэтому на особенностяхформатирования графической области при создании поверхности мы останавливаться не будем: оно абсолютно идентично двумерному случаю.2. После того как графическая область введена, следует задать вид функции, определяющей поверхность.
В отличие от X-Y-зависимостей, просто ввести ее выражениев маркер нельзя — при этом будет выдано сообщение об ошибке: This variable isundefined (Данная переменная не определена).Мы будем строить поверхность следующей функции:f(x,y):=sin(x + 2y)3. В маркер графической области следует ввести имя заданной выше функции. Однако, в отличие от двумерного случая, прописан должен быть лишь непосредственнотекст имени, без переменных в скобках. Это различие связано с тем, что трехмерный график, как уже говорилось выше, должен быть задан через массив данных,содержащий численные значения координат по всем трем осям.
Вполне очевидно,что матрица с числами никак не может быть одновременно и функцией двух переменных. При быстром же построении поверхности мы имеем дело с таким же массивом, как если бы мы просто набрали его вручную, однако в данном случае параметры его определяются системой автоматически.Для рассматриваемой функции системой Mathcad будет нарисован график, изображенный на рис. 6.20.При использовании данной методики поверхность задается на стандартном интервалеот -5 до 5 по обеим переменным. Естественно, такой диапазон во многих случаях может быть неприемлем (так, для нашей функции поверхность быстрого построения получилась слишком сжатой, что делает ее ненаглядной и неудобной для изучения).
Изменить же интервал по выбранной оси так, как это делалось в двумерном случае,6.2. 30-графики* 193нельзя. Для форматирования параметров графиков быстрого построения существуетспециальная вкладка Quick Plot Data (Данные графика быстрого построения) окна форматирования трехмерных графиков 3D-Plot Format. Открывается это окно либо двойным щелчком левой кнопкой мыши на графической области, либо с помощью команды Format (Формат) ее контекстного меню (рис.
6.21).ЛААА0.5/|°7 АДО!f•0.5 -/А Л"Атш ШШ §Ш ЩА\Рис. 6.20. ЗР-график быстрого построенияj. ...UflNfte I TitleAdvancedQuclPWC^ailiiffiillilBRoll jLc-D/deTatf SyJlrrt... . т.start "||jn-dfi—end' [5:B o f G!s |ОтменаIPCa«t«i«iГЗр(ад;м|^Fr. -i. •.,...СправкаРис. 6 . 2 1 . Вкладка QuickPlot Data (Данные графика быстрого построения)Все параметры настройки графика быстрого построения расположены на вкладкеPlot 1 (График 1). В общем случае таких вкладок может быть несколько, что связанос тем, что на одной графической области может быть размещено несколько поверхностей — чтобы это сделать, просто введите через запятую имена функций, графики которых должны быть построены.Вкладка Plot 1(График 1) содержит три меню настройки, две из которых, Range 1 и Range 2(Ряд 1 и Ряд 2), идентичны друг другу. Эти меню отвечают за характеристики сеткипостроения поверхности вдоль каждой из осей переменных (соответствие переменнойряду определяется последовательностью введения ее при задании имени функции)и содержат следующие параметры настройки.194 •••Глава 6.
ГрафикиStart (Начало). В окошке данного параметра вы можете произвольным образом задать начальную точку построения прямоугольника по данной оси.End (Конец). Здесь вы можете определить конечную точку интервала.# of Grids (Количество линий сетки). Параметр определяет, на сколько отрезков будет разбит интервал построения по выбранной переменной (что соответствует числу отображенных линий сетки) (рис.
6.22). Величина, обратная шагу. Очень важный параметр, особенно в случае не очень гладких функций и разрывных функций.f(x,y):=- + хуffРис. 6.22. Вид графика при различных величинах ячейки сетки построенияКоличество разбиений интервала может быть принципиальным в том случае, еслина выбранном промежутке функция имеет точки разрыва.
Так, если вы попытаетесьпостроить по быстрой методике график функции, представленной на рис. 6.22, то пристандартных настройках система не начертит поверхность, а выдаст сообщение обошибке: Divide by zero in function evaluation (В выражении функции присутствует деление на нуль).И действительно, если интервал построения по каждой переменной (а относительноних функция симметрична) изменяется от -5 до 5 с шагом 0.5 (# of Grids=20), то десятая линия сетки по каждой из переменных пройдет через 0.
При этом и возникнет неопределенность, на которую ссылается программа. Преодолеть же проблему такого рсдаможно очень просто: для этого шаг нужно сделать таким, чтобы координаты узловыхточек не принимали нулевые значения (что и было сделано при построении графиковна рис. 6.22).Внимательно рассмотрев полученный при изменении шага график, можно сделать вывод, что он, в принципе, построен неверно, так как факт существования точек разрывана нем не отображен. Там, где график должен уходить на бесконечность, он просто перегибается.
То есть разрывная функция визуализируется непрерывной поверхностью.Чтобы понять причину ошибки и попробовать как-то ее исправить, разберемся в техпринципах, по которым Mathcad строит трехмерные объекты.А принципы эти по своей идее предельно просты и сводятся к следующему алгоритму.6.2. 30-графики• 1951. Аналогично двумерному случаю, интервал по каждой из осей переменных разбивается на заданное количество отрезков.
Границы этих отрезков дают координаты узловых точек. При этом, если число разбиений по X равно N, а по Y — М, то длякаждого значения X будет существовать М точек с различными координатами поY, и, наоборот, каждому Y будет соответствовать N значений X.
Визуально это можно представить в виде сетки, величина ячейки которой определяется шагом по каждой из переменных, а в узлах находятся точки, относительно которых производится построение. Увидеть такую сетку для конкретного графика можно, повернув егострого перпендикулярно монитору.2. Когда сетка разбиений задана, вычисляются значения функции в ее узлах.
Еслиостановиться на этом этапе и визуализировать только точки, то будет построен такназываемый точечный график (Data Points).3. Каждая точка соединяется с соседними с помощью отрезков прямых, применяютсясглаживание и другие графические эффекты, в результате чего, в зависимости отвеличины ячейки сетки, получается более или менее гладкая поверхность.Зная алгоритм, совсем не сложно понять, отчего графики разрывных функций получаются в Mathcad не совсем верными. Все дело в том, что при верном подборе шага система просто пропускает точки разрыва (при неверном же, как было показано выше, график не будет построен).
То есть Mathcad соединяет отрезком две точки, лежащие слеваи справа от разрыва, в результате чего вместо разрыва отображается перегиб. Кстати,с аналогичной проблемой мы уже сталкивались, когда разбирали построение X-Y-зависимостей с помощью оператора ранжированной переменной.К сожалению, преодолеть возникшие проблемы, связанные с разрывами функции, аналогично двумерному случаю (уменьшив шаг по переменным), вряд ли получится.Поэтому при построении поверхностей, описываемых разрывными функциями, к результату следует относиться весьма осторожно.
А еще более правильным будет анализировать поведение такого рода функций с помощью двумерных графиков, приняводну из переменных за константу.Третье меню вкладки Plot 1 (График 1) — Coordinate System (Система координат) —определяет, в какой системе координат следует отобразить данную зависимость. Воз^можны следующие варианты.• Cartesian (Декартова). График отображается в декартовой системе координат.О Spherical (Сферическая).
Сферическая система координат.• Cylindrical (Цилиндрическая). Цилиндрическая система координат.Относительно преобразования изображения из одной системы координат в другуюследует дать некоторые пояснения. Все дело в том, что если мы изучаем параметрыкакого-то реального объекта, то, вне зависимости от того, в какой системе координатмы это делаем, характеристики его будут получены одни и те же.
То же самое касается,в частности, и поверхностей: какие бы замены мы ни произвели, переходя из одной системы в другую, никаких изменений в виде поверхности произойти не должно. Так,например, несмотря на то, что вид системы уравнений, задающей поверхность цилиндра, весьма значительно отличается в различных системах координат, каждая из нихописывает один и тот же объект — просто подход к такому описанию различный. Нос точки зрения человека какая-то система окажется все же лучше, поскольку уравнения в ней имеют более простой вид. Так, упомянутая поверхность цилиндра в цилиндрической системе координат описывается системой уравнений, определяющейв декартовой системе наиболее простой трехмерный объект — плоскость (рис.
6.23).1 9 6 •:• Глава 6. ГрафикиЕстественно, что работать с такой системой гораздо проще, особенно если расчеты производятся вручную.f(p,z):= R-cos(p)g(x,y) :=Рис. 6.23. Задание поверхности цилиндра в декартовой и цилиндрической системахкоординатТаким образом, уравнение одного вида в различных системах координат описываетпочти наверняка различные поверхности, и наоборот, два различных уравнения в разных системах координат могут дать одну и ту же поверхность. Второе свойство оченьшироко используется, например, для придания геометрического смысла заменам переменных при интегрировании. Кстати, на самом деле, любая замена переменных является в то же время переходом к новой системе координат.
И в Mathcad существуетвозможность построения поверхности в произвольной системе координат — но дляэтого нужно использовать специальную функцию CreateMesh, о которой мы поговоримнемного позже.Теперь, зная методы настройки вида поверхности быстрого построения, попробуемподобрать наиболее подходящие для нашей периодической функции параметры. Также,из чисто теоретического интереса, попробуем построить определяемую ею поверхность,например, в цилиндрической системе координат (рис.