Двумерная графика
Концептуально графики в системе Mathematica являются графическими объектами, которые создаются (возвращаются) соответствующими графическими функциями. Их немного, около десятка, и они охватывают построение практически всех типов математических графиков. Как уже отмечалось, достигается это за счет применения опций и директив. Поскольку графики являются объектами, то они могут быть значениями переменных. Поэтому Mathematica допускает следующие конструкции:
- Plot[Sin[x],{x,0,20}] — построение графика синусоиды;
- g:=Plot [Sin [x], {х, 0, 20} ] — задание объекта — графика синусоиды — с отложенным выводом;
- g=Plot [Sin [x], {х, 0, 20} ] — задание объекта — графика синусоиды — с немедленным выводом.
- Plot [f, {x, xmin, xmax}] — возвращает объект, представляющий собой график функции f аргумента х в интервале от xmin до xmax;
- Plot[{f1, f2,...}, {x, xmin, xmax}]— возвращает объект в виде графиков ряда функций fi.
Рис. 8.1. Построение двумерного графика
Тут виден как раз тот случай, когда масштаб графика по вертикали выбран системой неудачно — часть графика сверху просто отсекается. В большинстве же случаев применение функции Plot позволяет получить вполне «удобоваримый» график. По мере усложнения задач, решаемых пользователем, его рано или поздно перестанут устраивать графики, получаемые при автоматическом выборе их стиля и иных параметров. Для точной настройки графиков Mathematica использует специальные опции графических функций Для вывода их списка надо использовать команду Options [Plot]. Полный список опций дан в приложении. Опции внутри.графических функций задаются своим именем name и значением value в видеname -> valueНаиболее распространённые символьные значения опций:
- Automatic — используется автоматический выбор;
- None — опция не используется;
- All — используется в любом случае;
- True — используется;
- False — не используется.
Рис. 8.2. График функции sin(x)/x с масштабом, дающим его отображение в полном виде
По умолчанию система строит графики, не указывая надписей ни по осям координат (кроме букв х и г/), ни в верхней части графика. Такая надпись на графике по центру сверху называется титульной. Рисунок 8.3 показывает построение графика с надписями у координатных осей. Для создания таких надписей используется опция Axes Label. После нее указывается список, содержащий две надписи — одну для оси х, вторую — для оси у. Надписи указываются в кавычках. Таким образом, задание опции выглядит следующим образом: AxesLabel-> {"X value","f(x)}.
Рис. 8.3. График с надписями по координатным осям
С помощью опции Axes со значением None можно убрать с графика отображение осей. Вид получающегося при этом графика показан на рис. 8.4. При его построении, кроме удаления осей, использована опция PlotLabel для вывода указанной в качестве ее значения титульной надписи.
Рис. 8.4. График без координатных осей, но с титульной надписью
Часто возникает необходимость построения на одном рисунке нескольких графиков одной и той же функции, но при разных значениях какого-либо параметра — например, порядка специальных математических функций. В этом случае они могут быть заданы в табличной форме. Рисунок 8.5 дает пример построения пяти графиков функций Бесссля. Рисунок 8.5 иллюстрирует недостаток одновременного представления нескольких графиков, создаваемого по умолчанию, — все графики построены одинаковыми линиями, и не сразу ясно, какой график к какой функции относится. Рисунок 8.6 показывает возможности управления стилем линий (густотой черного цвета) графиков с помощью опции PlotStyle. Если желательно выделение линий разными цветами, удобно использовать в качестве значения опции PlotStyle список вида {Hue [cl] , Hue [с2] ,...}, где параметры c1, с2, ... выбираются от 0 до 1 и задают цвет соответствующей кривой.
Рис. 8.5. Семейство функций Бесселя на одном графике
Риc. 8.6. Построение графиков линиями разного стиля
Применение других опций позволяет задавать массу свойств графиков, например цвет линий и фона, вывод различных надписей и т. д. Помимо представленных примеров, полезно просмотреть и множество примеров построения двумерных графиков, приведенных в справочной системе Mathematica. Еще одним важным средством настройки графиков являются графические директивы. Синтаксис их подобен синтаксису функций. Однако директивы не возвращают объектов, а лишь влияют на их характеристики. Используются следующие основные директивы двумерной графики:- AbsoluteDashing [ {dl, d2,...}]— задает построение последующих линией пунктиром со смежными (последовательными) сегментами, имеющими абсолютные длины dl, d2, ... (повторяемые циклически). Значения длины di задаются в пикселях;
- AbsolutePointSize [d] — задает построение последующих точек графика в виде кружков с диаметром d (в пикселях);
- AbsoluteThickness [d] — задает абсолютное значение толщины (в пикселях) для последующих рисуемых линий;
- Dashing [{rl, r2,...}] — задает построение последующих линий пунктиром с последовательными сегментами длиной rl, г2, ..., повторяемыми циклически, причем ri задается как доля полной ширины графика;
- PointSize [d] — задает вывод последующих точек графика в виде кружков с относительным диаметром d, заданным как доля общей ширины графика;
- Thickness [r] — устанавливает для всех последующих линий толщину г, заданную как доля полной ширины графика.
Риc. 8.7. Построение графика функции Бесселя с применением графической директивы Dashing
Применение графических директив совместно с опциями позволяет создавать графики самого различного вида, вполне удовлетворяющие как строгим требованиям, так и различным «извращениям» в их оформлении.Построение графика по точкам — функция List Plot
Часто возникает необходимость построения графика по точкам. Это обеспечивает встроенная в ядро графическая функция ListPlot:- ListPlot [ {yl, у2,...}]— выводит график списка величин. Координаты х принимают значения 1, 2, ...;
- ListPlot [{{x1, y1}, {х2, у2 },...}]—выводит график списка величин с указанными х- иy-координатами.
Рис. 8.8. Построение графика по точкам
Можно заметить характерный недостаток построений — точки (особенно при небольшом размере) имеют вид, заметно отличающийся от идеального круга. Функция ListPlot, особенно в ее второй форме (с заданными координатами х и г/), удобна для вывода на график экспериментальных точек.Получение информации о графических объектах
Порой некоторые детали построения графиков оказываются для пользователя неожиданными и не вполне понятными. Причина этого кроется во множестве опций, которые могут использоваться в графиках, причем в самых различных сочетаниях. Поэтому полезно знать, как можно получить информацию о свойствах графических объектов. Порой небольшая модификация опций (например, замена цвета линий или фона) делает график полностью удовлетворяющим требованиям пользователя. Информацию об опциях графического объекта g дают следующие функции:- FullAxes [g] — возвращает список опций координатных осей;
- Options [g] — возвращает упрощенный список опций;
- FullOptions [g] — возвращает полный список опций;
- InputForm[g] — возвращает информацию о графике (включая таблицу точек).
Options[g] {PlotRange -> Automatic, AspectRatio ->1/GoldenRatio, DisplayFunction :> $DisplayFunction, ColorOutput -> Automatic, Axes -> Automatic, AxesOrigin -> Automatic, PlotLabel -> None, AxesLabel -> None, Ticks -> Automatic, GridLines -> None, Prolog -> {}, Epilog -> {}, AxesStyle -> Automatic, Background -> Automatic, DefaultColor -> Automatic, DefaultFont :> $DefaultFont, RotateLabel -> True, Frame -> False, FrameStyle -> Automatic, FrameTicks -> Automatic!, FrameLabel -> None, PlotRegion -> Automatic, ImageSize -> Automatic, TextStyle :> $TextStyle, FormatType :> $FormatType}Для получения полного списка опций вместе с их значениями можно использовать функцию FullOptions. Аналогично можно получить и иные данные — они не приводятся ввиду громоздкости выводимой информации. Анализ графиков с применением этих функций может оказаться весьма полезным при построении и редактировании сложных графиков. Функции FullOptions и Options можно также использовать в следующем виде:
- Options [g, option] — возвращает значение указанной опции option;
- FullOptions [g, option] — возвращает значение указанной опции option.
Перестроение и комбинирование графиков
При построении графиков часто требуется изменение их вида и тех или иных параметров и опций. Этого можно достичь повторением вычислений, но при этом скорость работы с системой заметно снижается. Для ее повышения удобно использовать специальные функции перестроения и вывода графиков, учитывающие, что узловые точки уже рассчитаны и большая часть опций уже задана. В этом случае удобно использовать следующую функцию-директиву:- Show [plot] — построение графика;
- Show [plot, option -> value] — построение графика с заданной опцией;
- Show[plotl, plot2,...] — построение нескольких графиков с наложением их друг на друга.
Рис. 8.9. Построение двух графических объектов и их объединение
Разумеется, при использовании директивы Show надо побеспокоиться о выравнивании масштабов графиков, налагаемых друг на друга. Полезно особо обратить внимание на возможность присваивания графиков функций переменным (в нашем примере — g1 и g2) в качестве значений. Такие переменные становятся графическими объектами, используемыми директивой Show для вывода на экран дисплея. Директива Show часто применяется, когда надо построить на одном графике кривую некоторой функции и представляющие ее узловые точки (например, при построении кривых регрессии в облаке точек исходных данных). Примитивами двумерной графики называют дополнительные указания, вводимые в функцию Graphics [primitives, options], которая позволяет выводить различные примитивные фигуры без задания математических выражений, описывающих эти фигуры. Примитивы могут выполнять и иные действия. Они заметно увеличивают число типов графиков, которые способна строить система Mathematica. Имеются примитивы для построения окружностей, эллипсов, кругов, овалов, линий и полигонов, прямоугольников и текстов. Полное описание примитивов дано в разделе приложения, посвященном данному уроку. Примитивы задаются подобно графическим функциям, например, Circle[{x, у}, r] строит окружность с радиусом г и центром в точке {х, у}. Рисунок 8.10 показывает применение функции Graphics для построения одновременно трех графических объектов: отрезка прямой, заданного координатами его концевых точек, окружности с центром (0, 0) и радиусом 0.8 и текстовой надписи «Привет!». Каждый объект задан своим примитивом. Из-за искажения масштаба дисплеем компьютера окружность выглядит как эллипс.
Рис. 8.10. Построение трех графических объектов с помощью примитивов двумерной графики
На другом рисунке (рис. 8.11) представлено построение пятиугольника, заданного координатами его вершин. Приведенные примеры поясняют технику применения графических примитивов. Но они, разумеется, не исчерпывают всех возможностей этого метода построения геометрических фигур и объектов. Все указанные примитивы используются при построении как двумерных, так и трехмерных графиков.
Рис. 8.11. Построение пятиугольника
Графики функций, заданных в параметрической форме
Построение графиков в полярной системе координат возможно двумя способами. Первый способ основан на использовании обычной декартовой системы координат. Координаты каждой точки при этом задаются в параметрическом виде: x = f x (t) и у = f y (t), где независимая переменная t меняется от минимального значения £ min до максимального t mах с шагом dt. Особенно удобно применение таких функций для построения замкнутых линий, таких как окружности, эллипсы, циклоиды и т. д. Например, окружность радиусом R может быть задана в следующей параметрической форме: х = R cos(t) и у = R sin(t), если t меняется от 0 до 2п. В общем случае радиус также может быть функцией параметра t. Для построения параметрически заданных функций используются следующие графические средства:- ParametricPlot [ {fx, fy}, {t, tmin, tmax} ]—строит параметрический график с координатами f х и f у (соответствующими х и у), получаемыми как функции от t;
- ParametricPlot [{{fx, fy}, {gx, gy},...}, {t, tmin, tmax}] —строит графики нескольких параметрических кривых.
Рис. 8.12. Построение фигуры Лиссажу
На одном графике можно строить две и более фигур с заданными параметрически уравнениями. На рис. 8.13 показан пример такого построения — строятся две фигуры Лиссажу, причем одна из них является окружностью. Больше двух фигур строить нерационально, так как на черно-белом графике их трудно различить. Теперь рассмотрим второй способ построения графиков в полярной системе координат (рис. 8.14). Здесь каждая точка является концом радиус-вектора R(t), причем угол t меняется от 0 до 2я. На рис. 8.14 функция R(t) задана как функция пользователя R[t_] с использованием образца t_ для задания локальной переменной t в теле функции. Изменение параметра R позволяет заметно увеличить число отображаемых функций — фактически, их бесконечно много. Помимо описанной фигуры на рис. 8.14 дополнительно построена линия окружности единичного радиуса. Чтобы она имела правильные пропорции на экране, задана опция AspectRatio->l.
Рис. 8.13. Построение на одном графике двух фигур Лиссажу
Рис. 8.14. Построение графика функции в полярной системе координат
Forekc.ru Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий |