Как построить график в maple
Перейти к содержимому

Как построить график в maple

  • автор:

Интерполяция данных: соединяем точки так, чтобы было красиво

Как построить график по n точкам? Самое простое — отметить их маркерами на координатной сетке. Однако для наглядности их хочется соединить, чтобы получить легко читаемую линию. Соединять точки проще всего отрезками прямых. Но график-ломаная читается довольно тяжело: взгляд цепляется за углы, а не скользит вдоль линии. Да и выглядят изломы не очень красиво. Получается, что кроме ломаных нужно уметь строить и кривые. Однако тут нужно быть осторожным, чтобы не получилось вот такого:

Немного матчасти

Восстановление промежуточных значений функции, которая в данном случае задана таблично в виде точек P1&nbsp. &nbspPn, называется интерполяцией. Есть множество способов интерполяции, но все они могут быть сведены к тому, что надо найти n&nbsp–&nbsp1 функцию для расчёта промежуточных точек на соответствующих сегментах. При этом заданные точки обязательно должны быть вычислимы через соответствующие функции. На основе этого и может быть построен график:

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

В разных инструментах для построения графиков — редакторах и библиотеках — задача «красивой интерполяции» решена по-разному. В конце статьи будет небольшой обзор существующих вариантов. Почему в конце? Чтобы после ряда приведённых выкладок и размышлений можно было поугадывать, кто из «серьёзных ребят» какие методы использует.

Ставим опыты

Самый простой пример — линейная интерполяция, в которой используются полиномы первой степени, а в итоге получается ломаная, соединяющая заданные точки.
Давайте добавим немного конкретики. Вот набор точек (взяты почти с потолка):

0 0 20 0 45 -47 53 335 57 26 62 387 74 104 89 0 95 100 100 0 

Результат линейной интерполяции этих точек выглядит так:

Однако, как отмечалось выше, иногда хочется получить в итоге гладкую кривую.

Что есть гладкость? Бытовой ответ: отсутствие острых углов. Математический: непрерывность производных. При этом в математике гладкость имеет порядок, равный номеру последней непрерывной производной, и область, на которой эта непрерывность сохраняется. То есть, если функция имеет гладкость порядка 1 на отрезке [a;&nbspb], это означает, что на [a;&nbspb] она имеет непрерывную первую производную, а вот вторая производная уже терпит разрыв в каких-то точках.
У сплайна в контексте гладкости есть понятие дефекта. Дефект сплайна — это разность между его степенью и его гладкостью. Степень сплайна — это максимальная степень использованных в нём полиномов.
Важно отметить, что «опасными» точками у сплайна (в которых может нарушиться гладкость) являются как раз Pi, то есть точки сочленения сегментов, в которых происходит переход от одного полинома к другому. Все остальные точки «безопасны», ведь у полинома на области его определения нет проблем с непрерывностью производных.
Чтобы добиться гладкой интерполяции, нужно повысить степень полиномов и подобрать их коэффициенты так, чтобы в граничных точках сохранялась непрерывность производных.

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

Кривая, действительно, гладкая. Но если предположить, что это график некоторого процесса или явления, который нужно показать заинтересованному лицу, то такой метод, скорее всего, не подходит. Проблема в ложных экстремумах. Появились они из-за слишком сильного искривления, которое было призвано обеспечить гладкость интерполяционной функции. Но зрителю такое поведение совсем не кстати, ведь он оказывается обманут относительно пиковых значений функции. А ради наглядной визуализации этих значений, собственно, всё и затевалось.
Так что надо искать другие решения.

Другое традиционное решение, кроме кубических сплайнов дефекта 1 — полиномы Лагранжа. Это полиномы степени n&nbsp–&nbsp1, принимающие заданные значения в заданных точках. То есть членения на сегменты здесь не происходит, вся последовательность описывается одним полиномом.
Но вот что получается:

Гладкость, конечно, присутствует, но наглядность пострадала так сильно, что… пожалуй, стоит поискать другие методы. На некоторых наборах данных результат выходит нормальный, но в общем случае ошибка относительно линейной интерполяции (и, соответственно, ложные экстремумы) может получаться слишком большой — из-за того, что тут всего один полином на все сегменты.

В компьютерной графике очень широко применяются кривые Безье, представленные полиномами k-й степени.
Они не являются интерполирующими, так как из k&nbsp+&nbsp1 точек, участвующих в построении, итоговая кривая проходит лишь через первую и последнюю. Остальные k&nbsp–&nbsp1 точек играют роль своего рода «гравитационных центров», притягивающих к себе кривую.
Вот пример кубической кривой Безье:

Как это можно использовать для интерполяции? На основе этих кривых тоже можно построить сплайн. То есть на каждом сегменте сплайна будет своя кривая Безье k-й степени (кстати, k&nbsp=&nbsp1 даёт линейную интерполяцию). И вопрос только в том, какое k взять и как найти k&nbsp–&nbsp1 промежуточную точку.
Здесь бесконечно много вариантов (поскольку k ничем не ограничено), однако мы рассмотрим классический: k&nbsp=&nbsp3.
Чтобы итоговая кривая была гладкой, нужно добиться дефекта 1 для составляемого сплайна, то есть сохранения непрерывности первой и второй производных в точках сочленения сегментов (Pi), как это делается в классическом варианте кубического сплайна.
Решение этой задачи подробно (с исходным кодом) рассмотрено здесь.
Вот что получится на нашем тестовом наборе:

Стало лучше: ложные экстремумы всё ещё есть, но хотя бы не так сильно отличаются от реальных.

Думаем и экспериментируем

Можно попробовать ослабить условие гладкости: потребовать дефект 2, а не 1, то есть сохранить непрерывность одной только первой производной.
Достаточное условие достижения дефекта 2 в том, что промежуточные контрольные точки кубической кривой Безье, смежные с заданной точкой интерполируемой последовательности, лежат с этой точкой на одной прямой и на одинаковом расстоянии:

В качестве прямых, на которых лежат точки Ci&nbsp–&nbsp1 (2) , Pi и Ci (1) , целесообразно взять касательные к графику интерполируемой функции в точках Pi. Это гарантирует отсутствие ложных экстремумов, так как кривая Безье оказывается ограниченной ломаной, построенной на её контрольных точках (если эта ломаная не имеет самопересечений).

Методом проб и ошибок эвристика для расчёта расстояния от точки интерполируемой последовательности до промежуточной контрольной получилась такой:

Эвристика 1

image

Первая и последняя промежуточные контрольные точки равны первой и последней точке графика соответственно (точки C1 (1) и Cn&nbsp–&nbsp1 (2) совпадают с точками P1 и Pn соответственно).
В этом случае получается вот такая кривая:

Как видно, ложных экстремумов уже нет. Однако если сравнивать с линейной интерполяцией, местами ошибка очень большая. Можно сделать её ещё меньше, но тут в ход пойдут ещё более хитрые эвристики.

К текущему варианту мы пришли, уменьшив гладкость на один порядок. Можно сделать это ещё раз: пусть сплайн будет иметь дефект 3. По факту, тем самым формально функция не будет гладкой вообще: даже первая производная может терпеть разрывы. Но если рвать её аккуратно, визуально ничего страшного не произойдёт.
Отказываемся от требования равенства расстояний от точки Pi до точек Ci&nbsp–&nbsp1 (2) и Ci (1) , но при этом сохраняем их все лежащими на одной прямой:

Эвристика для вычисления расстояний будет такой:

Эвристика 2

Расчёт l1 и l2 такой же, как в «эвристике 1».
При этом, однако, стоит ещё проверять, не совпали ли точки Pi и Pi&nbsp+&nbsp1 по ординате, и, если совпали, полагать l1&nbsp=&nbspl2&nbsp=&nbsp0. Это защитит от «вспухания» графика на плоских отрезках (что тоже немаловажно с точки зрения правдивого отображения данных).

Результат получается такой:

В результате на шестом сегменте ошибка уменьшилась, а на седьмом — увеличилась: кривизна у Безье на нём оказалась больше, чем хотелось бы. Исправить ситуацию можно, принудительно уменьшив кривизну и тем самым «прижав» Безье ближе к отрезку прямой, которая соединяет граничные точки сегмента. Для этого используется следующая эвристика:

Эвристика 3

Если абсцисса точки пересечения касательных в точках Pi(xi,&nbspyi) и Pi&nbsp+&nbsp1(xi&nbsp+&nbsp1,&nbspyi&nbsp+&nbsp1) лежит в отрезке [xi;&nbspxi&nbsp+&nbsp1], то l1 либо l2 полагаем равным нулю. В том случае, если касательная в точке Pi направлена вверх, нулю полагаем максимальное из l1 и l2, если вниз — минимальное.

Результат следующий:

На этом было принято решение признать цель достигнутой.
Может быть, кому-то пригодится код.

А как люди-то делают?

Обещанный обзор. Конечно, перед решением задачи мы посмотрели, кто чем может похвастаться, а уже потом начали разбираться, как сделать самим и по возможности лучше. Но вот как только сделали, не без удовольствия ещё раз прошлись по доступным инструментам и сравнили их результаты с плодами наших экспериментов. Итак, поехали.

MS Excel

Это очень похоже на рассмотренный выше сплайн дефекта 1, основанный на кривых Безье. Правда, в отличие от него в чистом виде, тут всего два ложных экстремума — первый и второй сегменты (у нас было четыре). Видимо, к классическому поиску промежуточных контрольных точек тут добавляются ещё какие-то эвристики. Но ото всех ложных экстремумов они не спасли.

LibreOffice Calc

В настройках это названо кубическим сплайном. Очевидно, он тоже основан на Безье, и вот тут уже точная копия нашего результата: все четыре ложных экстремума на месте.

Есть там ещё один тип интерполяции, который мы тут не рассматривали: B-сплайн. Но для нашей задачи он явно не подходит, так как даёт вот такой результат 🙂

Highcharts, одна из самых популярных JS-библиотек для построения диаграмм

Тут налицо «метод касательных» в варианте равенства расстояний от точки интерполируемой последовательности до промежуточных контрольных. Ложных экстремумов нет, зато есть сравнительно большая ошибка относительно линейной интерполяции (седьмой сегмент).

amCharts, ещё одна популярная JS-библиотека

Картина очень похожа на экселевскую, те же два ложных экстремума в тех же местах.

Coreplot, самая популярная библиотека построения графиков для iOS и OS X

Есть ложные экстремумы и видно, что используется сплайн дефекта 1 на основе Безье.
Библиотека открытая, так что можно посмотреть в код и убедиться в этом.

aChartEngine, вроде как самая популярная библиотека построения графиков для Android

Больше всего похоже на кривую Безье степени n&nbsp–&nbsp1, хотя в самой библиотеке график называется «cubic line». Странно! Как бы то ни было, тут не только присутствуют ложные экстремумы, но и в принципе не выполняются условия интерполяции.

Вместо заключения

В конечном счёте получается, что из «больших ребят» лучше всех проблему решили Highcharts. Но метод, описанный в этой статье, обеспечивает ещё меньшую ошибку относительно линейной интерполяции.
Вообще, заняться этим пришлось по просьбе покупателей, которые зарепортили нам «острые углы» в качестве бага в нашем движке диаграмм. Будем рады, если описанный опыт кому-то пригодится.

  • графики и диаграммы
  • визуализация данных
  • интерполяция
  • Математика
  • Визуализация данных

Как построить график в maple

До сих пор мы рассматривали графики функций. А можно ли задать несколько точек своими координатами и затем последовательно соединить отрезками прямой — другими словами, построить полигон! Используя при этом не специальную функцию, а обычную — plot.

Ответ на этот вопрос положительный. Рисунок 5 показывает вначале задание координат точек — углов треугольника (аналогично можно было бы рассмотреть и другую фигуру). После этого строится график заданных точек, а затем уже график и самого треугольника.

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

Построение графиков угловых точек треугольника и самого треугольника

Рисунок 5 — Построение графиков угловых точек треугольника и самого треугольника

Построение графиков четырех функций, заданных только их именами

Рисунок 6 — Построение графиков четырех функций, заданных только их именами

Этот пример показывает, что возможно построение графиков функций даже без указания в команде plot диапазонов. При этом диапазон по горизонтальной оси устанавливается равным по умолчанию -10..10, а по вертикальной оси выбирается автоматически в соответствии с экстремальными значениями функций в указанном диапазоне изменения независимой переменной (условно х).

Часто возникает необходимость построения графика точек, ординаты которых являются элементами некоторого вектора. Обычно при этом предполагается равномерное расположение точек по горизонтальной оси. Пример построения такого графика дан на рис. 11.

Построение графика точек с ординатами, заданными элементами вектора

Рисунок 7 — Построение графика точек с ординатами, заданными элементами вектора

Из этого примера нетрудно заметить, что данная задача решается составлением списка парных значений координат исходных точек — к значениям ординат точек, взятых из вектора, добавляются значения абсцисс. Они задаются чисто условно, поскольку никакой информации об абсциссах точек в исходном векторе нет, так что фактически строится график зависимости ординат точек от их порядкового номера n.

Построить график в maple

Не могу построить график в maple
Нужно построить график данной функции. При попытке его построить он либо рисует прямую линию (в.

Как в Maple построить график массива?
Подскажите как в Maple построить график массива? То есть у меня массив со значениями F=5 F=6 и тд.

Трехмерный график Maple и пр
Доброго времени суток. Делал на днях график в MathCad, но возникла необходимость сделать то же.

Не рисуется график в MAPLE
Собственно, есть следующая программа из справочника restart; broun := proc (N::integer) local.

Maple: Исследование функций и построение графиков

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

Maple 16, как и более ранние версии этого пакета, позволяют студенту полностью исследовать функции и строить их графики.

С помощью функции fsolve легко находятся значения независимой переменной x функций вида f(x), при которых f(x)=0 (корни этого уравнения). При этом данная функция позволяет (в отличие от функции solve) изолировать корни функции f(x) указанием примерного интервала их существования. Ряд функций служит для вычисления экстремумов, максимумов и минимумов функций, а также для определения их непрерывности.

Для исследования функций на непрерывность Maple 16 имеет функцию iscont, записываемую в ряде форм: iscont(expr, x=a..b), iscont(expr, x=a..b, ‘closed’) и iscont( expr, x=a.. b, ‘open’).

Функции, не имеющие непрерывности, доставляют много хлопот. В Maple 16 функция discont(f, х) позволяет определить точки, в которых нарушается непрерывность функции f(x). Она вычисляет все точки в пределах изменениях от $$-\infty$$ до $$\infty.$$ Результаты вычислений могут содержать особые экстра переменные с именами вида _Zn- и _NNn-. В частности, они позволяют оценить периодические нарушения непрерывности функций.

Многие операции, такие как интегрирование и дифференцирование, чувствительны к особенностям функций, в частности к их разрывам и особым точкам. Функция singular(ехрr, vars) позволяет найти особые (сингулярные) точки выражения ехрг, в которых она испытывает разрывы. Дополнительно в числе параметров может указываться необязательный список переменных.

Функция extrema позволяет найти экстремумы выражения ехрr (как максимумы, так и минимумы) при ограничениях constraints и переменных vars, по которым ищется экстремум: extrema(expr, constraints), extrema(expr, constraints, vars) и extrema(expr, constraints, vars, ‘s’).

Ограничения constraints и переменные vars могут задаваться одиночными объектами или списками ряда ограничений и переменных. Найденные координаты точки экстремума присваиваются переменной ‘s’. При отсутствии ограничений в виде равенств или неравенств вместо них записывается пустой список <>.

Функция extrema возвращает как значения экстремумов, так и значения аргументов, при которых экстремумы наблюдаются.

Часто нужно найти минимум или максимум заданной функции. Для поиска минимумов и максимумов выражений (функций) ехрr служат функции стандартной библиотеки: minimize(expr, opt1, opt2, …, optn) и maximize(expr, opt1, opt2, …, optn).

Эти функции могут разыскивать максимумы и минимумы для функций как одной, так и нескольких переменных. С помощью опций optl, opt2, … , optn можно указывать дополнительные данные для поиска.

Для вычисления пределов функции f в точке x=a используются следующие функции: limit(f, x=a, dir) и Limit(f, x=a, dir).

Здесь f — алгебраическое выражение, х — имя переменной, dir — параметр, указывающий на направление поиска предела (left — слева, right — справа, real — в области вещественных значений, complex — в области комплексных значений). Значением а может быть бесконечность (как положительная, так и отрицательная).

Для нахождения производной применяют дифференциальный оператор, который можно записывать в следующих формах: D(f) или D[i](f), где параметр f — выражение или имя функции, i — положительное целое число, выражение или последовательность. Этот оператор позволяет сократить запись, т.е. D(f)=unapply(diff(f(x), x), x) а в форме D(f)(x) = diff(f(x), x). Для нахождения n–й производной используют ([email protected]@n)(f).

Для построения двумерных графиков служит функция plot. Она задается в виде: plot(f, h, v) и plot(f, h, v,…) ,где f — визуализируемая функция (или функции), h — переменная с указанием области ее изменения по горизонтали, v — необязательная переменная с указанием области изменения функции по вертикали, далее может следовать параметр или набор параметров, задающих стиль построения графика (толщину и цвет кривых, тип кривых, метки на них и т.д.). Обычно записывают plot(f(x), x=a..b). Диапазон изменения независимой переменной x задается как a..b, где a и b — минимальное и максимальное значение x, .. (две точки) — составной символ, указывающий на изменение независимой переменной. Разумеется, имя х здесь дано условно — независимая переменная может иметь любое допустимое имя.

Помимо построения самой кривой f(x) необходимо задать ряд других свойств графиков, например вывод координатных осей, тип и цвет линий графика и др. Это достигается применением параметров графика — специальных указаний для Maple. Графики обычно (хотя и не всегда) строятся сразу в достаточно приемлемом виде. Это достигается тем, что многие параметры задаются по умолчанию и пользователь, по крайней мере начинающий, может о них ничего не знать. Однако язык Maple 16 позволяет задавать управляющие параметры и в явном виде.

Построение графика одномерного массива maple

подскажите как построить график одномерного массива в maple по его данным, мне выдает прямую хотя это не так?

введите сюда описание изображения

Всё правильно. На картинке 6138 графиков. Каждая горизонтальная линия есть график постоянной функции, причём эти константы разбросаны примерно от 1.4 до 2.

Так как plot вызвана с одним аргументом, то графики строятся от -10 до 10 (по умолчанию)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками maple или задайте свой вопрос.

Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.4.13.41966

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Похожие публикации:

  1. На какие три области делится лист mathcad
  2. Почему в windows movie maker не импортирует видео
  3. Сколько стоит archicad лицензионный
  4. Что за приложение icq new это что

Сообщество Экспонента

Проверка программы одночастотного адаптивного режекторного фильтра на Матлабе

Я моделировал канал связи с сигналом BPSK + АГБШ + гамоническая помеха. Для режекции грамонической помехи, Я применял одночастотный адаптивный режекторный фильтр. Одна проблема была на выходе фильтра.

Я моделировал канал связи с сигналом BPSK + АГБШ + гамоническая помеха. Для режекции грамонической помехи, Я применял одночастотный адаптивный режекторный фильтр. Одна проблема была на выходе фильтра.

  • цифровая обработка сигналов
  • Системы связи

Как в maple построить три графика на одном

Где f — визуализируемая функция, h -переменная с указанием области ее изменения, v — необязательная переменная с указателем области ее изменения, o – параметр или набор параметров, задающих стиль построения графика (толщину или цвет кривых, тип кривых, метки на них и т.д).

Рис.8.1 Построение графиков функции с явным указанием масштаба

С помощью параметра у можно задать масштаб графика по вертикали. Это иллюстрирует рис.8.1 ,который за одно показывает применение дополнительных праметров plot при построении двухмерных графиков .на рис.8.1 представлено контекстное меню правой клавиши мыши ,которое позволяет менят множество параметров графика.

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

Рис.8.2 графики трех функций на одном рисунке

Построение трехмерных графиков

Трехмерными графиками называют графики, отображающие функции двух переменных z ( x , y ). Для построения графиков трехмерных поверхностей Maple имеет встроенную функцию Plot 3 d . Она может использоваться в следующих форматах:

В двух первых Plot 3 d применяется для построения обычного графика одной поверхности, в других формах- для построения графика с параметрическойформой задания поверхности. В приведенных формах записи f , g , h -функции;

Expr 1- выражение, отражающее зависимость от х и у; exprf , exprg , exprh — выражения, задающие поверхность параметрически ; s , t , a , b — числовые константы действительного типа; c и d — числовые константы или выражения действительного типа; x , y , s , t — имена независимых переменных; р- управляющие параметры.

Рис 8.3 простейшее построение поверхностей

На рис.8.3 показаны два примера простейших построений графиков поверхности. По умолчанию в Maple строиться поверхность с функциональной окраской и стилем style = SurfacewithLine ( верхний пример).На рис.8.3 также показано контекстное меню правой клавиши мыши, показывающие возможные команды, влияющие на вид трехмерных графиков. В частности, на стиль построения поверхности.

Сейчас остановимся на примере применительно к графике в полярной системе координат.

юНа рис 8.4 демонстрируется одна из таких фигур. Это семейство из 10 кардиоид разного размера построенных функцией polarplot .

Параметр Scalling = constrained обеспечивает правильное отображение фигур . Каждая кардиоида вписывается в огибающую ее окружность. Размер кардиоид задается значением а.

Рис.8.4 семейство кардиоид на одном графике

Построение анимации 2 D графиков

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

Animate ( F , x , t ). здесь F = F ( x , t ) – функиция двух переменных; x , t — диапозоны изменения x и t . При анимации происходит следующее: изменяются значения t и при фиксированных значениях t график F ( x , t ). Чтобы запустить анимацию достаточно использовать правую кнопку мыши. Как показано ниже.

Построение анимации 3 D графиков

Аналогичным образом может осуществляться и анимирование трехмерных фигур. Для

этого используется функция animate3d:

Здесь F — описание функции (или функций); x, y и t — диапазоны изменения пе-

ременных x, y и t. Для задания числа кадров N надо использовать необязательный

параметр 0 в виде frame=N.

Ниже покажем построение трехмерного анимационного графика. После задания

функции, график которой строится, необходимо выделить график и запустить проиг-

рыватель, как и для анимации двумерных графиков.

Чтобы запустить анимацию достаточно использовать правую кнопку мыши как показано ниже.

Функция PDEplot из пакета DEtools

Еще одна функция пакета DEtools — DEtools[PDEplot] — служит для построения графиков решения систем с квазилинейными дифференциальными уравнениями первого

порядка в частных производных.

Эта функция используется в следующем виде:

PDEplot(pdiffeq, van, icurve, srange, o)

PDEplot(pdiffeq, van, icurve, srange, xrange, yrange, urange, o).

Здесь помимо упоминавшихся ранее параметров используются следующие: pdiffeq

— квазилинейные дифференциальные уравнения первого порядка (PDE), van — независи-

мая переменная и icurve начальные условия для параметрических кривых трехмерной

поверхности. Помимо опций, указанных для функции DEplot, здесь могут использо-

ваться следующие опции:

basechar = TRUE,FALSE,ONLY — устанавливает показ базовых характеристик

basecolor, basecolor — устанавливает цвет базовых характеристик;

initcolor, initcolor — инициализация цветов;

numchar = integer — задает число отрезков кривых, которое не должно быть меньше 4

(по умолчанию 20);

numstep = [integerl,integerZ] — задает число шагов интегрирования (по умолчанию

На следующем примере продемонстрируем применение функции PDEplot. Этот

32II.3. Графическое представление решений дифференциальных уравнений

пример показывает, насколько необычным может быть решение даже простой системы

Графика в системе Maple V

fieldplot3d Строит график 3D векторного поля. gradplot Строит график 2D векторного поля градиента. gradplot3d Строит график 3D векторного поля градиента.

Графика в системе Maple V

Другие доклады по предмету

где назначение параметров соответствует указанному выше для функции contour-plot.

На рис. 13.30 дан пример построения графика такого типа. Нетрудно заметить, что в плоскости X,Y график разбит на квадраты, плотность окраски которых различна. В нашем случае плотность окраски задается оттенками серого цвета.

Обычно графики такого типа не очень выразительны, но имеют свои области применения. К примеру, оттенки окраски полупрозрачной жидкости могут указывать на рельеф поверхности дна емкости, в которой находится эта жидкость.

13.6.5. График векторного поля двумерный

Еще один распространенный способ представления трехмерных поверхностей графики векторного поля. Они часто применяются для отображения полей, например, электрических зарядов. Особенность таких графиков в том, что для их построения используют стрелки, направление которых соответствует направлению изменения градиента поля, а длина значению градиента.

Рис. 13.30. График плотности для заданной функции.

Для построения таких графиков в двумерной системе координат используется функция fieldplot:

fieldplot(f, rl, r2) или fieldplot(f, rl, r2, . ),

где f вектор или множество векторов, задающих построение, и rl и r2 пределы.

На рис. 13.31 показан вид одного из таких графиков. Следует отметить, что для получения достаточного числа отчетливо видных стрелок надо поработать с форматированием графиков. Иначе графики этого типа могут оказаться не очень представительными. Так, слишком короткие стрелки превращаются в черточки и даже точки, не имеющие острия, что лишает графики наглядности.

Чуть позже мы рассмотрим построение на одном рисунке графиков плотности и векторного поля, а также создание более наглядных жирных стрелок.

13.6.6. Графики в разных системах координат

В пакете plots имеется множество функций для построения графиков в различных системах координат. Объем книги не позволяет воспроизвести примеры на все виды таких графиков, ибо их многие сотни. Да это и не надо во встроенных в справочную систему примерах можно найти все нужные сведения. Так что ограничимся лишь парой примеров применения функции tubeplot(C, options), позволяющей строить весьма наглядные фигуры в пространстве, напоминающие трубы или иные объекты, образованные фигурами вращения.

На рис. 13.32 показана одна из таких фигур. Она поразительно напоминает раковину улитки. Функциональная окраска достигнута доработкой графика с помощью панели форматирования. Смысл параметра С (в документе Conchoid) легко понять из этого примера.

Рис. 13.31. Двумерный график типа векторного поля.

Рис. 13.32. Построение графика «улитки».

Эта функция может использоваться и для построения ряда трубчатых объектов в пространстве. При этом автоматически задается алгоритм удаления невидимых линий даже для достаточно сложных фигур. Это наглядно иллюстрирует пример

на рис. 13.33, показывающий фигуру «цепи». Не правда ли реалистичность этой фигуры поражает воображение?

Рис. 13.33. Фигура «цепи», построенная с применением функции tubeplot.

Можно немало размышлять о том, как природа «узнала» о математических закономерностях, положенных в основу тех или иных геометрических объектов, или, возможно, о гениальности людей, сумевших найти такие закономерности для природных объектов. В наше время Maple V открывает огромные возможности для таких людей.

13.6.7. Графики типа трехмерного векторного поля

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

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

13.6.8. Контурные трехмерные графики

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

Рис. 13,34. Построение векторного поля в трехмерном пространстве.

Рис. 13.35. График трехмерной поверхности с контурными линиями.

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

13.6.9. Техника визуализации сложных пространственных фигур

Приведенные выше достаточно простые примеры дают представление о высокой степени визуализации геометрических фигур с помощью пакета plots. Здесь мы рассмотрим еще несколько примеров визуализации трехмерных фигур. Многие видели катушки индуктивности, у которых провод того или иного диаметра намотан на тороидальный магнитный сердечник. Математическая абстракция такой катушки показана на рис. 13.36.

Рис. 13.36. Top с обмоткой толстой спиралью.

В документе (рис. 13.36) для функции tubeplot использовано довольно большое число параметров-опций. Не всегда их действие очевидно. Поэтому на рис. 13.37 показано построение трех взаимно пересекающихся торов с разными типами их построения. Этот рисунок дает также наглядное представление о возможности построения нескольких графических объектов (представленных функциями р1, р2 и рЗ) с помощью функции tubeplot.

Наконец, на рис. 13.38 показано построение тора с тонкой обмоткой. Рекомендуется внимательно просмотреть запись функции tubeplot в этом примере и в примере, показанном на рис. 13.36. Можно также поэкспериментировать с опциями графика, от которых сильно зависит его представительность и наглядность.

В ряде случаев наглядно представленные фигуры можно строить с применением объединения однотипных фигур. Пример графика подобного рода представлен на рис. 13.39. Здесь готовится список графических объектов s, смещенных по вертикали. С помощью функции display они воспроизводятся на одном графике, что повышает реалистичность изображения.

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

Рис. 13.37. Три пересекающихся тора с разным стилем построения.

Рис. 13.38. Top с тонкой обмоткой.

plots. Параметр п этой процедуры задает число элементарных фигур, из которых строится полная фигура. Таким образом, высотой фигуры (или шириной «шины») можно управлять. Возможность задания практически любых графических процедур средствами Maple-языка существенно расширяет возможности системы Maple.

Рис. 13.39. Построение фигуры, напоминающей шину автомобиля.

Наглядность графиков типа графика плотности и векторного поля может быть улучшена их совместным применением. Пример его показан на рис. 13.40.

Рис. 13.40. Пример совместного применения графиков плотности и векторного поля.

Этот пример иллюстрирует использование «жирных» стрелок для обозначения векторного поля. Наглядность графика повышается благодаря наложению стрелок на график плотности, который лучше, чем применение стрелок, дает представление о плавности изменения высоты поверхности, заданной функцией f.

13.6.10. Построение анимационных 20-графиков

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

Пакет plots имеет две простые функции для создания анимационных графиков.

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

anirnate(F, х, t) или animate(F, х, t,o)

При этом параметр х задает пределы изменения по переменной х, а параметр t пределы изменения дополнительной переменной t. Суть анимации заключается в построении серии картинок (как в мультфильме), причем каждая картинка (фрейм) связана с изменяемой во времени переменной t. Если надо явно задать число кадров N анимации, то в качестве опции о надо использовать опцию frame=N. Рис. 13.41 показывает применение функции animate.

Рис. 13.41. Первый стоп-кадр анимации.

В документе рис. 13.41 строятся две функции не создающая анимации функция sin(x) и создающая анимацию функция sin(i*x)/(i*x), причем в качестве переменной t задана переменная i. Именно ее изменение и создает эффект анимации.

При исполнении функции animate и выделении полученного графика появляется панель проигрывания анимационных клипов. Она имеет кнопки управления с обозначениями, принятыми у современных магнитофонов. Пустив кнопку пуска (с треугольником, острием обращенным вправо), можно наблюдать изменение вида кривой для функции sin(i*x)/(i*x).

К сожалению, картинки в книгах всегда неподвижны и воспроизвести эффект анимации трудно. Ограничимся приведением еще одного стоп-кадра (рис. 13.42).

Лабораторная работа № 3-2 пространственная графика в maple

Функцию двух переменных можно отобразить как поверхность в трёхмерном пространстве, две оси которого соответствуют значениям двух независимых переменных, а по третьей оси откладываются значения функции. В 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(y), x=-1..1, y=-5..x^2, axes=boxed);

отображает график функции на области, у которой одна из границ представлена параболой. Покрутите эту поверхность, чтобы лучше это увидеть.

ЗАДАНИЕ. Изобразить поверхности и. Найти наилучший ракурс просмотра. Как называются эти поверхности?

В табл.3 перечислены все опции команды plot3d с их кратким описанием и возможными значениями, причём значения по умолчанию выделены подчеркиванием.

Таблица 3. Опции команд трёхмерной графики

Задает цвет внешнего источника интенсивностями его красной, зеленой и синей составляющих, представленными трехэлементным списком вещественных чисел из интервала [0,1]. Эта опция имеет значение при определении пользователем собственной схемы освещенности поверхности

Определяет тип отображаемых осей координат. Эта опция может принимать следующие значения: normal – обычные оси координат, пересекающиеся в точке (0,0,0); boxed – поверхность заключена в охватывающий параллелепипед с нанесенными шкалами по трем граням; frame – три оси отображаются по внешним граням охватывающего параллелепипеда; none – оси не отображаются

Задает шрифт для надписей под засечками вдоль осей координат. Значение этой опции аналогично значению опции font

Задает цвет отображаемой поверхности в случае ее закрашивания или цвет линий сетки в случае отображения поверхности в виде каркаса или линий уровня.

В качестве значения этой опции может выступать одно из зарезервированных значений цвета в 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.

Если цвет определяется с помощью процедуры, то она должна иметь два аргумента и возвращать значение цвета

Определяет количество линий уровня при отображении их на поверхности или список значений отображаемых линий уровня. Значение по умолчанию равно 10

По умолчанию при выводе как явно заданной функции, так и параметрически заданной функции используется декартовая система координат (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

Установка значения данной опции равным true приводит к тому, что область, ограниченная поверхностью и плоскостью xy, отображается как твердое непрозрачное тело и закрашивается в соответствии с используемой цветовой схемой

Задает шрифт для вывода текста на рисунке. Значение опции задается в виде списка [семейство, стиль, размер]. Параметр семейство задает гарнитуру шрифта: TIMES, COURIER, HELVETICA или SYMBOL. Параметр стиль определяет стиль шрифта: для гарнитуры TIMES возможные значения ROMAN, BOLD, ITALIC или BOLDITALIC, для гарнитур COURIER и HELVETICA стиль можно опустить, или задать BOLD, OBLIQUE или BOLDOBLIQUE, для шрифта SYMBOL стиль не задается. Последний параметр размер задает размер шрифта в пунктах (points) (один пункт приблизительно равен 1/72 дюйма)

Эта опция определяет прямоугольную равномерную сетку значений независимых переменных отображаемой функции, на которой вычисляются ее значения для построения поверхности и задается в виде двухэлементного списка [m,n], в котором каждый элемент является целым числом, определяющим количество точек по соответствующей координате. По умолчанию используется сетка [25,25]

Задает тип отображаемой сетки: составленной из прямоугольников или треугольников на основании вычисленных ее значений в соответствии с установками, определяемыми опцией grid. Она может принимать одно из двух значений: RECTANGULAR и TRIANGULAR

Задание названий осей координат в виде списка [x,y,z]. Параметры x, y и z задаются в виде строк и соответствуют отображаемым названиям трех осей декартовой системы координат. По умолчанию оси не подписываются

Эта опция определяет направление отображения названия осей и задается в виде списке [x,y,z], элементы которого могут принимать одно из двух значения HORISONTAL или VERTICAL.

Задает шрифт, которым отображаются названия осей координат. Значение этой опции аналогично значению опции font.

Эта опция определяет расположение и цвет направленного источника света при задании пользовательской схемы подсветки. Ее значения задаются в виде списка [phi,theta,r,g,b], элементы которого имеют следующий смысл: phi и theta определяют углы направления, из которого исходит направленный свет (задаются в сферической системе координат), а r, g, b задают числовые интенсивности красной, зеленой и синей составляющих цвета источника

Эта опция позволяет выбрать одну из предопределенных схем подсветки и может принимать следующие значения: ‘none’ (нет подсветки), ‘light1’, ‘light2’, ‘light3’ или ‘light4’

Определяет тип линии на поверхности. Значением этой опции является целое число n. При n=0 или 1 линии отображаются как сплошные, значение равное 2 соответствует отображению линий точками, 3 — пунктиром и 4 — штрих-пунктиром

Определяет минимальное количество n вычисляемых точек, по которым строится поверхность (значение по умолчанию равно 625=25^2). Эта опция перекрывает задание сетки опцией grid, определяя ее новые значения по осям независимых переменных равными, равными равномерно распределенным sqrt(n) точкам в диапазонах изменения независимых переменных

Задает углы в сферической системе координат направления, из которого пользователь смотрит на отображаемую поверхность: [theta,phi]. Углы задаются в градусах и по умолчанию равны [45,45]

Задает проекцию, в которой отображается поверхность. Значением этой опции может быть целое число r из диапазона [0,1], причем 0 соответствует широкоугольной перспективе, 1 — ортогональной проекции, промежуточные значения разным типам перспектив. Можно использовать три зарезервированных ключевых слова: ‘FISHEYE’ для широкоугольной перспективы (r=0), ‘NORMAL’ для перспективной проекции с параметром r=0.5 и ‘ORTHOGONAL’ для ортогональной проекции (r=1)

Задает масштаб, в котором отображается поверхность. Если значение этой опции равно constrained, то это соответствует заданию абсолютных значений по осям координат, т. е. одна единица измерения по оси независимой переменной равна одной единице измерения по оси значений функции. Значение по умолчанию равно unconstrained, и это соответствует тому, что оси растягиваются таким образом, чтобы их размеры соответствовали размерам графического окна вывода

Определяет, какая схема закрашивания применяется при отображении поверхности. Допустимые значения: XYZ (цвет точки поверхности зависит от значений трех ее координат), XY (цвет точки поверхности зависит от значений ее двух независимых координат), Z (цвет точки поверхности зависит от значения функции: минимальное представляется синим цветом, максимальное — красным, остальные оттенками при переходе от синего к красному), ZGRAYSCALE (цвет точки поверхности зависит от значения функции: минимальное представляется черным цветом, максимальное — бледно-серым, остальные оттенками при переходе от черного к бледно-серому), ZHUE (цвет точки поверхности зависит от значения функции: от минимального сиреневого через синий, зеленый и желтый к максимальному красному) и NONE (поверхность не закрашена)

Определяет, как будет отображаться поверхность. Допустимые значения: POINT (точками, представляющими значения функции на сетке), HIDDEN (каркасная модель с удалением невидимых линий), PATCH (закрашенная поверхность с линиями сетки), WIREFRAME или LINE (каркасная модель без удаления невидимых линий), CONTOUR (линиями уровня), PATCHNOGRID (закрашенная поверхность без линий сетки), PATCHCONTOUR (закрашенная поверхность с линиями уровня)

Определяет тип символа, которым помечаются точки поверхности функции при опции style=point. Может принимать следующие значения: box для □, cross для +, circle для ○, POINT для • (точка) и diamond для ◊

Задает размер символа в пунктах. Его значением может быть любое натуральное число. По умолчанию используются символы размером 10 пунктов. Действие этой опции не распространяется на символ точка, задаваемый опцией symbol=POINT

Задает толщину линий на поверхности. Значение является целым числом и изменяется от 0 до 3, соответствуя изменению толщины линии от самой тонкой до самой жирной

Определяет число точек, не менее которых должно быть помечено по горизонтальной и вертикальной оси координат. Значение задается в виде списка [l,n,m]

Определяет строку, которая выводится как заголовок рисунка. По умолчанию заголовок не выводится. В строке можно использовать специальные комбинации символов. Например, \n осуществляет перевод на новую строку, формируя тем самым многострочный заголовок

Определяет шрифт для заголовка рисунка. Значение этой опции аналогично значению опции font

Определяет минимальное и максимальное значения координаты z, между которыми отображается поверхность, а также диапазоны изменения независимых координат в виде [xmin..xmax, ymin..ymax, zmin..zmax]. По умолчанию отображается вся поверхность без обрезания в пределах заданных диапазонов изменения независимых переменных в команде plot3d()

Типовые средства построения графиков

Maple 7 реализует все мыслимые (и даже «немыслимые») варианты математических графиков. Строятся как графики простых функций в декартовой и полярной системах координат, так и графики, показывающие реалистические образы сложных, пересекающихся в пространстве фигур с их функциональной окраской. Возможны наглядные графические иллюстрации решений самых разнообразных уравнений, включая системы дифференциальных уравнений.

В само ядро Maple 7 встроено ограниченное число функций построения графиков. Это прежде всего функция для построения двумерных графиков plot и функция для построения трехмерных графиков plotSd . Они позволяют строить графики наиболее распространенных типов. Для построения специальных графиков (например, векторных полей градиентов, решения дифференциальных уравнений, построения фазовых портретов и т. д.) в пакеты системы Maple 7 включено большое число различных графических функций. Для их вызова необходимы соответствующие указания.

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

О графические средства Maple V возвращают некоторые графические объекты, которые размещаются в окне документа — в строке вывода или в отдельном графическом объекте;

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

Графические функции заданы таким образом, что обеспечивают построение типовых графиков без какой-либо особой подготовки. Для этого нужно лишь указать функцию, график которой строится, и пределы изменения независимых переменных. Однако с помощью дополнительных необязательных параметров можно существенно изменить вид графиков — например, настроить стиль и цвет линий, вывести титульную надпись, изменить вид координатных осей и т. д.

Основная функция построения двумерных графиков plot

В математике широко используются зависимости вида y(x) или у(х). Их графики строятся на плоскости в виде ряда точек y 1 (x 1 ) , обычно соединяемых отрезками прямых. Таким образом, используется кусочно-линейная интерполяция двумерных графиков. Если число точек графика достаточно велико (десятки или сотни), то приближенность построения не очень заметна.

Для построения двумерных графиков служит функция plot . Она задается в виде:

где f — визуализируемая функция (или функции), h — переменная с указанием области ее изменения, v — необязательная переменная с указанием области изменения, о — параметр или набор параметров, задающих стиль построения графика (толщину и цвет кривых, тип кривых, метки на них и т. д.).

Самыми простыми формами задания этой функции являются следующие:

Диапазон изменения независимой переменной х задается как xmin. xmax , где xmin и xmax — минимальное и максимальное значение х, .. (две точки) — составной символ, указывающий на изменение независимой переменной. Разумеется, имя х здесь дано условно — независимая переменная может иметь любое допустимое имя.

Помимо построения самой кривой у(х) или f(x) необходимо задать ряд других свойств графиков, например вывод координатных осей, тип и цвет линий графика и др. Это достигается применением параметров графика — специальных указаний для Maple. Графики обычно (хотя и не всегда) строятся сразу в достаточно приемлемом виде. Это достигается тем, что многие параметры задаются по умолчанию и пользователь, по крайней мере начинающий, может о них ничего не знать. Однако язык общения и программирования Maple 7 позволяет задавать управляющие параметры и в явном виде.

Для двумерного графика возможны следующие параметры:

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

Специальный параметр adaptive задает работу специального адаптивного алгоритма для построения графиков наилучшего вида. При этом Maple автоматически учитывает кривизну изменения графика и увеличивает число отрезков прямых в тех частях графиков, где их ход заметно отличается от интерполирующей прямой. При задании adaptive=false адаптивный алгоритм построения графиков отключается, а при adaptive=true включается (значение по умолчанию).

Задание координатных систем двумерных графиков

В версии Maple 7 параметр coords задает 15 типов координатных систем для двумерных графиков. По умолчанию используется прямоугольная (декартова) система координат ( coords=cartesian). При использовании других координатных систем координаты точек для них(и, v) преобразуются в координаты (х, у) как (n, v) —> (х, у) . Ниже приведены наименования систем координат (значений параметра coords ) и соответствующие формулы преобразования.

Похожие публикации:

  1. Где icq хранит историю переписки
  2. Где найти переводчик в telegram
  3. Где сохраняются фото с snapchat
  4. Как активировать wolfram mathematica 11

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *