Как задать функцию в maple
Перейти к содержимому

Как задать функцию в maple

  • автор:

Как задать кусочную функцию в maple

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

13.2.3. Графики функций в неограниченном масштабе

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

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

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

13.2.4. Графики функций с разрывами

Некоторые функции, например tan(x), имеют при определенных значениях х разрывы, причем случается что значения функции в этом случае устремляются в бесконечность. Функция tan(x), к примеру, в точках разрывов устремляется к +°° и -°°. Построение графиков таких функций нередко дает плохо предсказуемые результаты. Графический процессор Maple V не всегда в состоянии определить оптимальный масштаб по оси ординат, а график функции выглядит весьма непредставительно — если не сказать безобразно (см. рис. 13.3 — первый пример).

Среди параметров функции plot есть специальный параметр discont. Если задать его значение равным true, то качество графиков существенно улучшается — см. рис. 13.3 — второй пример. Улучшение достигается разбивкой графика на несколько участков, в которых функция непрерывна, и более тщательным контролем за масштабом.

13.2.5. Построение графиков нескольких функций на одном рисунке

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

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

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

Рис. 13.4. Графики трех функции на одном рисунке.

На рис. 13.5 показан еще один пример такого рода. Здесь построен график функции sin(x)/x и график ее полиномиальной аппроксимации. Она выполняется настолько просто, что соответствующие функции записаны прямо в списке параметров функции plot.

Рис. 13.5. График функции sin(x)/x и ее полиномиальной аппроксимации.

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

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

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

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

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

Рис. 13.6. Построение графиков нескольких любопытных функции.

Рис. 137. Формирование списка отдельных точек функции и их построение на графике.

В данном случае переменная Р имеет вид списка, в котором попарно перечислены координаты точек функции sin(x). В этом нетрудно убедиться, заменив знак «:» после выражения, задающего Р на знак «;». Далее по списку Р построен график точек в виде крестиков, которые отображают отдельные значения функции sin(x).

На рис. 13.8 показано построение графиков функций по точкам при явном задании функции списком координат ее отдельных точек. В первом примере эти

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

Рис. 13.8. Построение графика функции явно заданной отдельными точками.

Во втором примере рис. 13.8 показано построение только точек заданной функциональной зависимости. Они представлены маленькими кружками.

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

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

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

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

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

13.2.8. Построение графиков функции с ординатами, заданными вектором

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

Пример построения такого графика дан на рис. 13.10.

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

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

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

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

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

Рис. 13.11. Построение графика функций, заданных процедурами

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

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

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

Имена функции (без указания списка параметров в круглых скобках тоже по существу являются функциональными операторами. Так что и они могут использоваться при построении графиков упрощенными способами.

Кусочная функция в Matlab

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

Это может быть реализовано двумя способами: один с использованием циклов (оператор if-else и оператор switch), а другой — без использования циклов. В методе петель используется путь побед. Как мы видим, есть два способа, с циклами и без использования циклов.

В первом методе снова есть два способа

1. Используя метод if-else

2. С помощью оператора switch

Во втором методе функцию представляют в векторизованном виде

3. Векторизованный метод

Используя операторы If-Else

Это одна из основных терминов для реализации кусочных функций, но это не очень хорошая практика для реализации кусочных функций.

Синтаксис:

If condition1
Statement 1 ;
else
statement 2;
end
plot ( input variable, output variable )
function output variable = piecewise ( input variable )

Пример № 1

Теперь давайте рассмотрим один пример

f ( x ) = — 2 for x < 0
2 for x > 0

Для реализации вышеуказанной функции в Matlab сначала нам нужно создать одну функцию с ключевым словом ‘кусочно’

> > function fx = piecewise ( x )

В вышеприведенном выражении «fx» — это имя выходной переменной, «кусочно» — ключевое слово, используемое для вышеуказанной функции, а «x» — входная переменная.

После объявления функции теперь нам нужно определить условия диапазонов входной переменной ‘x’.

В вышеприведенных выражениях оператор if-else используется для определения диапазона. Это показывает, что если значение x меньше или равно «0», то значение out будет равно «- 2», а если значение «x» больше чем «0», то на выходе будет «2».

Программа Matlab:

If x < = 0
fx = -2 ;
else
fx = 2 ;
end
plot ( x, f x )
function fx = piecewise ( x )

выход :

Выписка из регистра

Второй метод в циклах управляется инструкциями switch-case. В этом методе мы представляем разные условия в разных методах, мы можем указать несколько случаев в одном цикле переключения.

Пример № 2

Давайте предположим, приведенный выше пример,

f x = — 2 for x 2 for x > 0

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

Чтобы реализовать вышеприведенный пример, используя сначала оператор switch — case, нам нужно объявить оператор function (кусочная функция).

>> function fx = piecewise (x )

Вышеприведенные операторы показывают, что fx является кусочной функцией для входной переменной ‘x’, после объявления функции мы начнем с оператора switch.

Вышеприведенное утверждение является ключевым словом для случая переключения для изменения значений переменной ‘x’. Теперь внутри коммутатора будут разные случаи, наше требование — только случаи, поэтому мы напишем 2 случая.

Case 1: x < = 0
F x = — 2 ;
Case 2 : x > 0
F x = 2 ;

Вышеприведенные операторы представляют диапазоны x и соответствующие ожидаемые значения функции.

Программа Matlab

function F x = piecewise (x )
switch ( x )
Case 1 : x < = 0
F x=-2 ;
Case 2 : x > 0
F x = 2 ;
end
Plot ( F x, x )

Выход :

Векторизованный метод

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

Давайте возьмем тот же пример;

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

function fx = piecewise (x)

После объявления кусочной функции мы определим диапазоны входной переменной ‘x’. В приведенном выше примере, как мы знаем, есть два условия, поэтому нам нужно определить два диапазона.

Теперь, когда диапазоны известны, нам нужно объявить полный диапазон входной переменной ‘x’.

это показывает, что x примет значения от — 5 до + 5.

Программа Matlab

function fx = piecewise ( x )
fx(xfx(x>0) = 2 ;
x = — 5 : 1 : 5
fx = piecewise ( x )
plot (fx, x )

Выход:

Вывод — кусочная функция в Matlab

Кусочные функции в основном используются для представления функций, которые имеют различные входные диапазоны с различными условиями. Как мы видим выше, существует три подхода для представления кусочных функций. Но подход if-else (loop) не используется для реализаций в реальном времени. И векторизованный подход используется во многих приложениях.

Рекомендуемые статьи

Это руководство по кусочным функциям в Matlab. Здесь мы обсуждаем методы использования кусочной функции в Matlab с различными утверждениями и примерами. Вы также можете посмотреть следующую статью, чтобы узнать больше —

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

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

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

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

Рис. 13.1. Примеры построения графиков одной функции.

При построении графиков одной функции могут быть введены указатели масштабов и различные опции, например задания цвета кривой, толщины линии, которой строится график функции и другие параметры. К примеру, запись в списке параметров со1ог=0 (не документированная возможность) или запись color=black задают вывод кривых черным цветом, а запись thinkness=2 задает во втором примере рис. 13.1 построение графика линией, удвоенной в сравнении с обычной толщиной.

13.2.2. Управление масштабом графиков

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

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

13.2.3. Графики функций в неограниченном масштабе

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

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

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

13.2.4. Графики функций с разрывами

Некоторые функции, например tan(x), имеют при определенных значениях х разрывы, причем случается что значения функции в этом случае устремляются в бесконечность. Функция tan(x), к примеру, в точках разрывов устремляется к +°° и -°°. Построение графиков таких функций нередко дает плохо предсказуемые результаты. Графический процессор Maple V не всегда в состоянии определить оптимальный масштаб по оси ординат, а график функции выглядит весьма непредставительно если не сказать безобразно (см. рис. 13.3 первый пример).

Среди параметров функции plot есть специальный параметр discont. Если задать его значение равным true, то качество графиков существенно улучшается см. рис. 13.3 второй пример. Улучшение достигается разбивкой графика на несколько участков, в которых функция непрерывна, и более тщательным контролем за масштабом.

13.2.5. Построение графиков нескольких функций на одном рисунке

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

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

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

Рис. 13.4. Графики трех функции на одном рисунке.

На рис. 13.5 показан еще один пример такого рода. Здесь построен график функции sin(x)/x и график ее полиномиальной аппроксимации. Она выполняется настолько просто, что соответствующие функции записаны прямо в списке параметров функции plot.

Рис. 13.5. График функции sin(x)/x и ее полиномиальной аппроксимации.

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

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

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

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

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

Рис. 13.6. Построение графиков нескольких любопытных функции.

Рис. 137. Формирование списка отдельных точек функции и их построение на графике.

В данном случае переменная Р имеет вид списка, в котором попарно перечислены координаты точек функции sin(x). В этом нетрудно убедиться, заменив знак «:» после выражения, задающего Р на знак «;». Далее по списку Р построен график точек в виде крестиков, которые отображают отдельные значения функции sin(x).

На рис. 13.8 показано построение графиков функций по точкам при явном задании функции списком координат ее отдельных точек. В первом примере эти

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

Рис. 13.8. Построение графика функции явно заданной отдельными точками.

Во втором примере рис. 13.8 показано построение только точек заданной функциональной зависимости. Они представлены маленькими кружками.

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

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

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

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

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

13.2.8. Построение графиков функции с ординатами, заданными вектором

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

Пример построения такого графика дан на рис. 13.10.

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

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

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

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

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

Рис. 13.11. Построение графика функций, заданных процедурами

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

Еще одна «экзотическая» возможность функции plot построение графиков функций, заданных ф

график-функции — График кусочно-заданной функции

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

alt text

я задала приведенной ниже длинной формулой. Вопрос в том, что нельзя ли улучшить эту формулу в смысле , чтобы была более короткой и при возможности чтобы сохранилась определенность функции в точках $%a$% и $%b.$%

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

  1. Как взломать archicad 23
  2. Как восстановить пароль wechat
  3. Как выглядит telegram
  4. Как добавить telegram в автозагрузку windows 10

Что такое функция

Понятие «функция» пронизывает все сферы математики и не только.

Мы все знаем, что функция записывается как \( \displaystyle y=f\left( x \right)\), но можешь ли ты ответить, что обозначает эта формула?

Если да, то ты большой молодец!

А если нет, – не страшно! Сейчас быстренько во всем разберемся!

Функции — коротко о главном

Определение функции:

Функцией называется правило \( \displaystyle f\), по которому каждому элементу \( \displaystyle x\) множества \( \displaystyle X\) ставится в соответствие единственный элемент \( \displaystyle y\) множества \( \displaystyle Y\).

  • \( \displaystyle y=f\left( x \right)\) – это формула, обозначающая функцию, то есть зависимость одной переменной от другой;
  • \( \displaystyle x\) – переменная величина, или, аргумент;
  • \( \displaystyle y\) – зависимая величина – изменяется при изменении аргумента, то есть согласно какой-либо определенной формуле \( \displaystyle f\), отражающей зависимость одной величины от другой.

Свойства и способы задания:

Допустимые значения аргумента, или область определения функции \( \displaystyle D\left( y \right)\) – это то, что связано с возможными \( \displaystyle x\), при которых функция имеет смысл.

Область значений функции \( \displaystyle E\left( y \right)\) – это то, какие значения принимает \( \displaystyle y\), при допустимых значениях \( \displaystyle x\).

Существует 4 способа задания функции:

  • аналитический (с помощью формул);
  • табличный;
  • графический;
  • словесное описание.

Основные виды функций:

  • линейная функция: \( \displaystyle y=kx+b\), где \( \displaystyle k\), \( \displaystyle b\) – действительные числа;
  • квадратичная функция: \( \displaystyle y=a^>+bx+c\), где \( \displaystyle a\ne 0\);
  • обратная пропорциональность: \( \displaystyle y=\frac\), где \( \displaystyle k\ne 0\).

Сейчас все это разберем подробнее.

Что такое функция — человеческим языком

Так вот, функция отражает зависимость величин друг от друга: то есть при изменении одного числа \( \displaystyle x\), по некоторому закону \( \displaystyle f\left( x \right)\) изменяется \( \displaystyle y\).

Зависимость, или взаимосвязь – вот ключевые слова при определении понятия функции.

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

И?… Не можешь придумать ни один пример? Как так! Смотри:

Допустим автомобиль движется со средней скоростью \( \displaystyle 110\) км/ч, как тогда выразить зависимость пути \( \displaystyle S\) от времени \( \displaystyle t\)?

\( \displaystyle S=110\cdot t\)

То есть чем больше времени автомобилист проведет за рулем, тем больше расстояние он преодолеет на своем автомобиле. Чем не зависимость?

Что в этом случае будет \( \displaystyle y\), что \( \displaystyle x\), и как будет выражено в итоге \( \displaystyle f\left( x \right)\)?

Проведем параллели между физической формулой и привычной нам записью функции \( \displaystyle y=f\left( x \right)\):

  • \( \displaystyle y=S\), то есть путь, который проедет автомобилист;
  • \( \displaystyle x=t\), время, которое он проведет в пути;
  • \( \displaystyle f\left( x \right)=110\cdot x\) зависимость пути от времени, учитывая, что скорость на всем пути постоянна.

Разобрался что к чему? Теперь перейдем на математический язык.

Что такое функция — на языке математики

Итак. Еще раз смотрим на нашу формулу:

\( \displaystyle y=f\left( x \right)\)

Слева стоит \( \displaystyle y\) – это и есть функция. За этой буквой может быть все что угодно: температура, скорость, сила, путь – неважно! \( \displaystyle y\) – зависимая величина.

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

Справа у нас стоит \( \displaystyle x\). Эта величина переменная, или, как говорят математики, «аргумент».

Логично, что чем больше времени проведет автомобилист в дороге, тем большее расстояние он проедет (конечно, если скорость будет постоянна, и он не встрянет намертво в пробках).

Справа у нас также есть \( \displaystyle f\), за этим скрываются все действия, совершаемые над \( \displaystyle x\).

В нашем случае мы говорим, что \( \displaystyle S=\nu \cdot t\), а так как \( \displaystyle \nu =110\)км/ч, то под \( \displaystyle f\) скрывается умножение на \( \displaystyle 110\), вот мы и получаем – \( \displaystyle f\left( x \right)=110\cdot x\).

Теперь, думаю, тебе все понятно?

Подведем итог:

  • \( \displaystyle y=f\left( x \right)\) – это формула, обозначающая функцию, то есть зависимость одной переменной от другой;
  • \( \displaystyle x\) – переменная величина, или, аргумент;
  • \( \displaystyle y\) – зависимая величина – изменяется при изменении аргумента, то есть \( \displaystyle x\) согласно какой-либо определенной формуле \( \displaystyle f\), отражающей зависимость одной величины от другой.

Теперь, когда ты понял суть понятия «функция» и знаешь, что такое переменная величина, а что постоянная, посмотрим на определение функции, каким его дают математики.

Определение функции

Функцией называется правило \( \displaystyle f\), по которому каждому элементу \( \displaystyle x\) множества \( \displaystyle X\) ставится в соответствие единственный элемент \( \displaystyle y\) множества \( \displaystyle Y\).

Вроде и \( \displaystyle x\) есть… и \( \displaystyle y\) есть, и даже правило \( \displaystyle f\) есть, но что это за множества такие?

«О них мы ни слова не говорили!» – воскликнешь ты. Не паникуй! �� Множества – это очень просто, сейчас все-все проясним!

Область определения функции

Вернемся к нашему примеру.

Автомобилист едет с постоянной скоростью и проезжает расстояние, которое зависит от того, сколько времени он провел в пути. Все верно?

Разбираемся дальше. Мы говорили, что \( \displaystyle x=t\), это как раз и есть время, проведенное в пути.

Каким оно может быть? Ты сейчас можешь быть крайней удивлен такой постановкой вопроса, но все же, каким может быть это время?

Правильно, чисто теоретически от \( \displaystyle 0\) до \( \displaystyle +\infty \).

Вот ты сам и определил для нашего конкретного случая множество \( \displaystyle X\), а иначе говоря, допустимые значения аргумента или область определения функции \( \displaystyle D\left( y \right)\).

Запомнить очень легко: что определяет нашу функцию? От чего зависит игрек, и что мы меняем?

Функцию определяет икс! Соответственно, область определения – это возможные значения \( \displaystyle x\).

Теперь давай рассматривать, что такое множество \( \displaystyle Y\).

Область значений функции

Думаю, ты сам ответишь, что путь не может быть отрицательным, так что \( \displaystyle y=S\) в нашей с тобой придуманной функции так же может принимать значения в промежутке от \( \displaystyle 0\) до \( \displaystyle +\infty \).

Это называется областью значений функции \( \displaystyle E\left( y \right)\), то есть множество \( \displaystyle Y\), которые существуют для данной функции.

Итак, сделаем небольшой вывод по последнему:

Допустимые значения аргумента, или область определения функции \( \displaystyle D\left( y \right)\) – это то, что связано с возможными \( \displaystyle x\), при которых функция имеет смысл.

Область значений функции \( \displaystyle E\left( y \right)\) – это то, какие значения принимает \( \displaystyle y\), при допустимых значениях \( \displaystyle x\).

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

Область определения функции по графикам

Решение

Обязательно пробуй сначала решать самостоятельно!

  • (А) \( \displaystyle D\left( y \right)=\left( -\infty ;+\infty \right)\);
  • (Б) \( \displaystyle D\left( y \right)=\left( -2;2 \right)\cup \left( 2;6 \right)\);
  • (В) \( \displaystyle D\left( y \right)=\left[ 0;+\infty \right)\);
  • (Г) \( \displaystyle D\left( y \right)=\left( -\infty ;+\infty \right)\).

Все верно? Молодец! Что-то не понятно? Спрашивай в комментариях!

Теперь попробуем найти область значения фунции.

Области значений функции по графикам

  • (А) \( \displaystyle E\left( y \right)=\left( -\infty ;+\infty \right)\);
  • (Б) \( \displaystyle E\left( y \right)=\left( -\infty ;-1 \right]\cup \left[ 1;+\infty \right)\);
  • (В) \( \displaystyle E\left( y \right)=\left( -\infty ;2 \right)\);
  • (Г) \( \displaystyle E\left( y \right)=\left( -2;2 \right)\).

Еще раз поработаем с графиками, только теперь чуть-чуть посложнее…

Области значений и определения функции по графикам

Решение:

(А) \( \displaystyle D\left( y \right)=\left( -\infty;6 \right]\)
\( \displaystyle E\left( y \right)=\left\< -1 \right\>\cup \left\< 0 \right\>\cup \left\< 1 \right\>\cup \left\< 2 \right\>\cup \left\< 3 \right\>\);

(Б) \( \displaystyle D\left( y \right)=\left( 1;+\infty \right)\)
\( \displaystyle E\left( y \right)=\left\< 1 \right\>\).

Область определения функции по формулам (аналитически)

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

  • \( \displaystyle y=\sqrt\);
  • \( \displaystyle y=\frac>\);
  • \( \displaystyle y=\sqrt^>+1>\);
  • \( \displaystyle y=\frac\).

Справился? Смотри ответы:

  • \( \displaystyle x\ge -2\), так как подкоренное выражение \( \displaystyle x+2\) должно быть больше или равно нулю;
  • \( \displaystyle x>0\), так как на ноль делить нельзя и подкоренное выражение не может быть отрицательным;
  • \( \displaystyle x\in \mathbb\), так как \( \displaystyle ^>\ge 0\), соответственно \( \displaystyle ^>+1>0\) при всех \( \displaystyle x\);
  • \( \displaystyle x\ne -6\), так как на ноль делить нельзя.

Еще один важный момент

Еще раз повторю определение и сделаю на нем акцент:

Функцией называется правило \( \displaystyle f\), по которому каждому элементу \( \displaystyle x\) множества \( \displaystyle X\) ставится в соответствие единственный элемент \( \displaystyle y\) множества \( \displaystyle Y\).

Заметил? Слово «единственный» – это очень-очень важный элемент нашего определения. Постараюсь объяснить тебе на пальцах.

Допустим, у нас есть функция, заданная прямой. \( \displaystyle y=5x+3\). При \( \displaystyle x=0\), мы подставляем данное значение в наше «правило» и получаем, что \( \displaystyle y=3\).

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

\( \displaystyle x\) \( \displaystyle 0\) \( \displaystyle 1\) \( \displaystyle -1\) \( \displaystyle 2\) \( \displaystyle -2\)
\( \displaystyle y\) \( \displaystyle 3\) \( \displaystyle 8\) \( \displaystyle -2\) \( \displaystyle 13\) \( \displaystyle -7\)

А вот и график с нашими отмеченными точками:

Как ты убедился – графиком является прямая, в которой одному значению \( \displaystyle x\) соответствует одно значение \( \displaystyle y\) (данный факт показан красными линиями).

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

А что ты скажешь о такой зависимости: \( \displaystyle y=2^>-4-1\), то есть параболы? Является ли она функцией? Давай составим также табличку значений:

\( \displaystyle x\) \( \displaystyle 0\) \( \displaystyle 1\) \( \displaystyle -1\) \( \displaystyle 2\) \( \displaystyle -2\)
\( \displaystyle y\) \( \displaystyle -1\) \( \displaystyle -3\) \( \displaystyle 5\) \( \displaystyle -1\) \( \displaystyle 15\)

«Смотри! – скажешь ты, – « \( \displaystyle -\mathbf\)» встречается два раза!» Так быть может парабола не является функцией? Нет, является!

То, что «\( \displaystyle -1\)» встречается два раза далеко не повод обвинять параболу в неоднозначности!

Дело в том, что, при расчёте для \( \displaystyle x=0\), мы получили один игрек. И при расчёте с \( \displaystyle x=2\) мы получили один игрек. Так что все верно, парабола является функцией.

Посмотри на график:

Разобрался? Если нет, вот тебе жизненный пример сооовсем далекий от математики!

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

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

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

Здесь у нас совершенно другая ситуация: один человек может спокойно подать документы как на одно, так и на несколько направлений. То есть одному элементу \( \displaystyle x\) множества \( \displaystyle X\) ставится в соответствие несколько элементов \( \displaystyle y\) множества \( \displaystyle Y\). Соответственно, это не функция.

Проверим твои знания на практике. Определи по рисункам, что является функцией, а что нет:

Разобрался? А вот и ответы:

  • Функцией является – В, Е.
  • Функцией не является – А, Б, Г, Д.

Почему? Да вот почему:

На всех рисунках кроме В) и Е) на один \( \displaystyle x\) приходится несколько \( \displaystyle y\)!

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

Приступаем к следующему разделу – как задать функцию?

4 способа задать функцию

Задать функцию — это значит определить правило, по которому по значениям переменной можно найти ее значения.

  1. Аналитический способ — с помощью формул. Очень удобно, потому что сжато и можно все быстро посчитать, подставляя значения в формулу.
  2. Табличный способ — более наглядный чем аналитический, но есть свои недостатки.
  3. Графический способ — самый наглядный. На графике сразу видно возрастание и убывание функции, наибольшие и наименьшие значения, точки максимума и минимума.
  4. Словесный способ — самый понятный для не матиматиков.

Разберемся во всем по порядку, а начнем с аналитического способа.

Аналитический способ заданий функции

Аналитический способ – это и есть задание функции с помощью формулы. Это самый универсальный и исчерпывающий и однозначный способ.

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

Рассмотрим функцию \( \displaystyle f\left( x \right)=^>-3^>+-2\). Чему равно \( \displaystyle f\left( 2 \right)\)?

«Что это значит?» – спросишь ты. Сейчас объясню.

Напомню, что в записи \( \displaystyle f(x)\) выражение в скобках называется аргументом.

И этот аргумент может быть любым выражением, не обязательно просто \( \displaystyle x\). Соответственно, каким бы ни был аргумент (выражение в скобках), мы его запишем вместо \( \displaystyle x\) в выражении \( \displaystyle f(x)\).

В нашем примере получится так:

Пример из ЕГЭ

Найдите значение выражения \( \displaystyle \frac\), при \( \displaystyle f\left( x \right)=^>\).

Уверена, что сначала ты испугался, увидев такое выражение, но в нем нет абсолютно ничего страшного!

Все как и в прошлом примере: каким бы ни был аргумент (выражение в скобках), мы его запишем вместо \( \displaystyle x\) в выражении \( \displaystyle f(x)\). Например, для функции \( \displaystyle f\left( x \right)=^>:f\left( x+1 \right)=^<\left( x+1 \right)>>\) .

Что же нужно сделать в нашем примере? Вместо \( \displaystyle f\left( x-15 \right)\) надо написать \( \displaystyle ^>\), а вместо – \( \displaystyle f\left( x-18 \right)-^>\):

А дальше, используя свойства степени (можешь лишний раз одним глазком заглянуть в соответствующую тему – не помешает), а именно:

сократить получившееся выражение:

Теперь попробуй самостоятельно найти значение следующих выражений:

  • \( \displaystyle f\left( x-9 \right)+f\left( 16-x \right)\), если \( \displaystyle f\left( x \right)=3x+2\)
  • \( \displaystyle 3f\left( x-4 \right)-f\left( 3x \right)\), если \( \displaystyle f\left( x \right)=x-5\)

Справился? Сравним наши ответы:

  • \( \displaystyle 25\)
  • \( \displaystyle -22\)

Мы привыкли, что функция имеет вид \( \displaystyle y=f\left( x \right)\), даже в наших примерах мы задаем функцию именно таким образом, однако аналитически можно задать функцию в неявном виде, например \( \displaystyle 5x+2y-3=0\). Попробуй построить эту функцию самостоятельно.

Вот как строила ее я.

Какое уравнение мы в итоге вывели? Правильно! Линейное, а это значит, что графиком будет прямая линия. Сделаем табличку, чтобы определить, какие точки принадлежат нашей прямой:

\( \displaystyle x\) \( \displaystyle 0\) \( \displaystyle 1\) \( \displaystyle -1\) \( \displaystyle 2\) \( \displaystyle -2\)
\( \displaystyle y\) \( \displaystyle 1.5\) \( \displaystyle -1\) \( \displaystyle 4\) \( \displaystyle -3.5\) \( \displaystyle 6.5\)

А теперь строим по данным точкам график:

Вот так из неявной формулы получилась линейная функция.

А теперь посмотри следующую формулу: \( \displaystyle ^>=x\). Является ли она функцией? Согласись, вызывает затруднение…

Попробуй подставить различные значения \( \displaystyle x\) и посмотреть, какой \( \displaystyle y\) им соответствует.

\( \displaystyle x\) \( \displaystyle 0\) \( \displaystyle 1\) \( \displaystyle 4\)
\( \displaystyle y\) \( \displaystyle 0\) \( \displaystyle -1;1\) \( \displaystyle -2;2\)

Вот как раз то, о чем мы говорили… Одному \( \displaystyle x\) соответствует несколько \( \displaystyle y\). Попробуем нарисовать то, что получилось:

Является ли то, что у нас получилось функцией? Правильно, нет! Почему? Попробуй ответить на этот вопрос с помощью рисунка. Что у тебя вышло?

«Потому что одному значению \( \displaystyle x\) соответствует несколько значений \( \displaystyle y\)!»

Какой вывод мы можем из этого сделать?

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

Табличный способ задания функции

Как следует из названия, этот способ представляет собой простую табличку. Да, да. Наподобие той, которой мы с тобой уже составляли. Например:

\( \displaystyle x\) \( \displaystyle 0\) \( \displaystyle 1\) \( \displaystyle -1\) \( \displaystyle 2\) \( \displaystyle -2\)
\( \displaystyle y\) \( \displaystyle 4\) \( \displaystyle -6\) \( \displaystyle 3\) \( \displaystyle -4\) \( \displaystyle 15\)

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

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

Если тебя это смущает, приведу в пример другую таблицу:

\( \displaystyle x\) \( \displaystyle 0\) \( \displaystyle 1\) \( \displaystyle -1\) \( \displaystyle 2\) \( \displaystyle -2\)
\( \displaystyle y\) \( \displaystyle 0\) \( \displaystyle 3\) \( \displaystyle -3\) \( \displaystyle 6\) \( \displaystyle -6\)

Здесь ты сразу подметил закономерность – игрек в три раза больше чем икс.

А теперь задание на «очень хорошо подумать»: как ты считаешь, равносильная ли функция, заданная в виде таблицы, функции \( \displaystyle y=3x\)?

Не будем долго рассуждать, а будем рисовать!

Итак. Рисуем функцию, заданную обоими способами:

Видишь разницу? Дело совсем не в отмеченных точках! Присмотрись внимательнее:

Теперь увидел? Когда мы задаем функцию табличным способом, мы на графике отражаем только те точки, которые есть у нас в таблице и линия (как в нашем случае) проходит только через них.

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

Графический способ построения функции

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

Графический и аналитический способы одни из самых распространенных.

Однако, здесь нужно помнить о чем мы с тобой говорили в самом начале – не каждая «загогулина» нарисованная в системе координат является функцией! Вспомнил? На всякий случай скопирую тебе сюда определение, что функцией является:

Функцией называется правило \( \displaystyle f\), по которому каждому элементу \( \displaystyle x\) множества \( \displaystyle X\) ставится в соответствие единственный элемент \( \displaystyle y\) множества \( \displaystyle Y\) .

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

Как это? Да очень просто!

Словесный способ задания функции

Как же описать функцию словесно?

Возьмем наш недавний пример – \( \displaystyle y=3x\).

Данную функцию можно описать «каждому действительному значению икс соответствует его утроенное значение». Вот и все. Ничего сложного.

Ты, конечно, возразишь: «Есть настолько сложные функции, которые словесно задать просто невозможно!» Да, есть и такие, но есть функции, которые описать словесно легче, чем задать формулой.

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

Теперь рассмотрим, как наше словесное описание функции реализуется на практике:

Пусть \( \displaystyle x=256\)

Наибольшая цифра в данном числе – \( \displaystyle 6\), соответственно, \( \displaystyle 6\) – уменьшаемое, тогда:

Основные виды функций

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

А еще будет полезно узнать про то, как строятся графики функций. Загляни сюда:

  • Построение графика линейной функции
  • Построение графика квадратичной функции
  • Построение графика обратной зависимости

Линейная функция

Функция вида \( \displaystyle y=kx+b\), где \( \displaystyle k\), \( \displaystyle b\) – действительные числа.

Графиком данной функции служит прямая, поэтому построение линейной функции сводится к нахождению координат двух точек.

Положение прямой на координатной плоскости зависит от углового коэффициента \( \displaystyle k=tg\alpha \).

Область определения функции (aka область допустимых значений аргумента) – \( \displaystyle D\left( y \right)-\mathbb\).

Область значений – \( \displaystyle E\left( y \right)-\mathbb\).

Квадратичная функция

Функция вида \( \displaystyle y=a^>+bx+c\), где \( \displaystyle a\ne 0\)

Графиком функции является парабола, при \( \displaystyle a0\) — вверх.

Многие свойства квадратичной функции зависят от значения дискриминанта. Дискриминант вычисляется по формуле \( \displaystyle D=^>-4ac\)

Положение параболы на координатной плоскости относительно значения \( \displaystyle D\) и коэффициента \( \displaystyle a\) показаны на рисунке:

Область определения – \( \displaystyle D\left( y \right)=\mathbb\)

Область значений \( \displaystyle E\left( y \right)\) зависит от экстремума данной функции (точки вершины параболы) и коэффициента \( \displaystyle a\) (направления ветвей параболы)

Обратная пропорциональность

Функция, задаваемая формулой \( \displaystyle y=\frac\), где \( \displaystyle k\ne 0\)

Число \( \displaystyle k\) называется коэффициентом обратной пропорциональности.

В зависимости от того, какое значение \( \displaystyle k\), ветви гиперболы находятся в разных квадратах:

Область определения – \( \displaystyle D\left( y \right)-\left( -\infty ;0 \right)\cup \left( 0;+\infty \right)\).

Область значений – \( \displaystyle E\left( y \right)-\left( -\infty ;0 \right)\cup \left( 0;+\infty \right)\).

Бонус: Вебинары из нашего курса подготовки к ЕГЭ по математике

Элементарные функции и их графики (ЕГЭ 18. Задача с параметром)

Задачи с параметром из ЕГЭ зачастую предполагают исследование функций или хотя бы знание их свойств.

Чтобы научиться исследовать функции, для начала лучше всего научиться строить их графики.

На этом уроке мы рассмотрим основные элементарные функции, научимся строить их графики и узнаем, как на них влияют разные параметры (коэффициенты в функциях).

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

Преобразования графиков функций (ЕГЭ 18. Задачи с параметром)

Научились строить график какой-то функции? А что, если я теперь поменяю один из коэффициентов? Или «заключу» часть функции в модуль?

Можно ли не строить для этого новый график, а просто передвинуть/растянуть старый?

Можно! И на этом уроке мы научимся производить такие трансформации.

Благодаря таким трансформациям мы станем понимать, как выглядят графики функций при всех значениях параметра и научимся решать задачи из ЕГЭ на эту тему.

Самые бюджетные курсы по подготовке к ЕГЭ на 90+

Алексей Шевчук — ведущий мини-групп

математика, информатика, физика

+7 (905) 541-39-06 — WhatsApp/Телеграм для записи

  • тысячи учеников, поступивших в лучшие ВУЗы страны
  • автор понятного всем учебника по математике ЮКлэва (с сотнями благодарных отзывов);
  • закончил МФТИ, преподавал на малом физтехе;
  • репетиторский стаж — c 2003 года;
  • в 2021 году сдал ЕГЭ (математика 100 баллов, физика 100 баллов, информатика 98 баллов — как обычно дурацкая ошибка:);
  • отзыв на Профи.ру: «Рейтинг: 4,87 из 5. Очень хвалят. Такую отметку получают опытные специалисты с лучшими отзывами».

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

9 комментариев

Кристина :

Здравствуйте, а можете пожалуйста прояснить, в первом примере появляется символ U: [-2;2] U [2;6]. Что он обозначает? Почему нельзя просто написать [-2;6].

Александр Кель :

Добрый день, Кристина. Тут все просто, двойка не входит в область определения. На рисунке это видно. Она как бы «выколота», посмотрите. Поэтому писать так, как вы нельзя. И поэтому область определения обозначена у нас КРУГЛЫМИ СКОБКАМИ, а не квадратными. Чем квадратные скобки отличаются от круглых?
Круглая скобка означает, что число НЕ входит в область определения, квадратная – входит. При наличии бесконечности принято изображать круглую скобку. Дальше, если интересно про круглые и квадратные скобки смотрите здесь: https://ru.wikipedia.org/wiki/Скобки

Наталья :

Добрый день, ребенок в 7 классе. Подскажите, есть ли возможность изучать ваш учебник? На каких условиях? Как можно заниматься 7-8 классам?

Александр Кель :

Наталья, спасибо за интерес к учебнику. По учебнику можно заниматься почти с любого возраста. У нас есть пятиклассник, который занимается по учебнику с мамой. Потому что он написан от простого к сложному, как мы говорим, человеческим языком, и если тему в 7-8-м классе проходят, то заходите в содержание учебника https://youclever.org/book, открывайте нужную тему, читайте и решайте задачи. Мы пока не продаем полный доступ к нему, но возможно вернемся к этому со следующего учебного года, потому что его постоянно просят вернуть… Я вам на почту пришлю персональное предложение, по поводу учебника. Посмотрите.

Почему в задаче на обл опр под номером 2 идет промежуток (6,2)? Надо наоборот.
Александра Купцова :

Юлия, спасибо за комментарий и внимательность! Исправили. Действительно, нужно в промежутках идти от меньшего к большему. ��

Отличная статья
Александр Кель :
Спасибо, Маша! Заходите еще! )
Александр Кель :

Некоторые отзывы на эту статью за прошлые годы: ВЛАД,10КЛАСС
23 октября 2017
Тому кто написал данную статью большое спасибо.Побольше бы таких людей.Вы мне очень помогли. СПАСИБО. Anastira
29 марта 2018
Здравствуйте) Очень полезная статья, помогло разобраться с тем, чего я не понимала Но разве в разделе «Квадратичная функция» на 4, 5, 6 рисунке а > 0? Светланаа
08 августа 2018
Очень хорошая у вас статья — даже инженеру в помощь. Кристина
20 августа 2018
Спасибо огромное, очень доступно. А скажите,будь ласка, как найти аналитическую формулу функции по ее табличному виду, без подбора. Благодарю. Марина
19 октября 2018
У меня скоро экзамен, недавно писала пробник, написала плохо, никогда не понимала функции, сейчас села, нашла эту статью, все переписала, попробовала решить и все получилось. У меня улыбка до ушей, спасибо огромное Артемий
04 февраля 2019
Статья написана классно как всегда, но очень много важных моментов скрыто. И по этой причине не могу сказать что статья хорошая (но все равно лучше чем 90% всех тех что можно найти в инете). Откройте плиз область «Рассмотрим еще задание, связанное с аналитическим способом задания функции, которое будет у тебя на экзамене». Хотя бы один пример.

Как задать функцию в maple

Как задать функцию другим выражением без расчета в уравнении?

P.s. у меня maple вообще сразу считает интеграл, а мне нужно что бы он учитывал что функция z не простая, но не преобразовывал ничего.

Есть ли такая или подобного рода команда в maple ?

Как задать действие кнопке и другим объектам?
Новичок. Хочу разобраться, как создавать действие для кнопки, чтоб она при нажатии выводила.

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

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

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

Специальные функции в системе Maple

Maple — программный пакет, система компьютерной алгебры. Является продуктом компании Waterloo Maple Inc., которая с 1984 года выпускает программные продукты, ориентированные на сложные математические вычисления, визуализацию данных и моделирование.
Система Maple предназначена для символьных вычислений, хотя имеет ряд средств и для численного решения дифференциальных уравнений и нахождения интегралов. Обладает развитыми графическими средствами. Имеет собственный язык программирования, напоминающий Паскаль.

Файлы: 1 файл

Дипломная.docx

Maple — программный пакет, система компьютерной алгебры. Является продуктом компании Waterloo Maple Inc., которая с 1984 года выпускает программные продукты, ориентированные на сложные математические вычисления, визуализацию данных и моделирование.

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

Программное обеспечение Maple позволяет моделировать многокомпонентные технические системы и содержит инструменты для подготовки технической документации. Maple предлагает глубину, размах, точность и производительность вычислений для решения любых математических и инженерных задач, независимо от того, требуются ли элементарные проектные расчеты и алгоритмы или разработка комплексных моделей, логическое моделирование и обучение математике. Интуитивный интерфейс Maple 15 фиксирует все технические данные пользователя, содержит множество средств анализа, функцию редактирования уравнений, контекстные меню, палитры для быстрого начала работы. Продукт Maple 15 является незаменимой системой компьютерной алгебры для инженеров, математиков и ученых.
Начинающим пользователям система Maple 15 представляет средства обучения и инструменты для пошагового решения наиболее сложных задач. Специалистам предоставляется удобный доступ к дополнительным ресурсам для быстрого получения ответов на различные вопросы. Продукт Maple 15 интегрирован с ведущими САПР-системами, включая известную платформу NX. Maple предлагает усовершенствованные и высокопроизводительные средства численных и символьных вычислений с возможностью представления математических результатов в виде подробной технической документации. Система обеспечивает высокое качество графики и анимации и включает комплекс инструментов для редактирования документов и средства управления визуализацией результатов.
Основные возможности Maple 15:

  • Создание передаточных функций для моделей на основе дифференциальных уравнений, пространства состояний, полюсов и нулей коэффициентов усилений.
  • Быстрое преобразование модели из одной формы в другую.
  • Графический анализ: построение схем частотных характеристик, графиков корневых годографов, графическое изображение нулей и полюсов линейных систем.
  • Генерации сигналов различных форм волн для создания импульсных, периодических, синусоидальных, шаговых, прямоугольных и треугольных тестовых сигналов.
  • Имитация дискретных и непрерывных систем.
  • Решение дифференциальных уравнений с помощью усовершенствованных алгоритмов решения стандартных дифференциальных уравнений (ODEs), дифференциальных уравнений с частными производными (PDEs) и дифференциальных алгебраических уравнений (DAEs).
  • Использование новых алгоритмов для решения классов нелинейных стандартных дифференциальных уравнений 1 и 2 порядка и линейных дифференциальных уравнений 3 порядка.
  • Применение новых алгоритмов для преобразования уравнений в формы, подходящие для решения в Maple.
  • Усовершенствованные инструменты для работы с уравнениями с частными производными включают команды для работы с оператором Эйлера, сохраняющимися потоками и обобщенными интегрирующими множителями.
  • Решение задач с задаваемыми пользователем событиями, параметрических задач, определение дискретных переменных при постановке задачи: в комбинации с событиями дискретные переменные могут быть использованы для определения критериев остановки, условий возврата и многих других событий, имеющих место в процессе решений.
  • Интерполяции кривых с возможностью просмотра и уточнения результатов благодаря команде ArrayInterpolation для многомерной интерполяции данных.
  • Улучшенные опции для программирования.
  • Анализ и решение систем параметрических полиноминальных уравнений и неравенств.
  • Команда для вычисления тензора Кронекера произведения двух матриц.
  • Преобразование кодов MATLAB в Maple.
  • Интеграция с базами данных Microsoft SQL Server, MicrosoftAccess, Sybase, Oracle, IBM DB2 и MySQL.
  • Возможность делать запросы, обновлять и создавать базы данных в среде Maple.

Версии Maple 15:

  • Maple 15 Professional– издание для частных и государственных лабораторий, бизнеса, коммерческих исследовательских объединений.
  • Maple 15 AcademicEngineering– издание для академических организаций, факультетов и кафедр инженерной специализации.
  • Maple 15 AcademicMath– издание для академических организаций, кафедр и факультетов математической специализации.
  • Maple 15 PersonalEdition – издание для домашних и индивидуальных пользователей.

Новые возможности Maple 15:
Новая версия Maple 15 предлагает множество опций, повышающих эффективность параллельных вычислений как на многоядерных машинах, так и на крупных вычислительных кластерах и суперкомпьютерах, что позволяет еще быстрее решать возникающие задачи. Одним ключевых преимуществ новой версии является высочайшая скорость решения дифференциальных уравнений. Столь же значительные улучшение внесены и во все остальные математические функции, в том числе базовые операции и комплексные алгоритмы обработки данных. Дополнительно в состав пакета включено более 27 совершенно новых математических функций.

  • Автоматический параллелизм – п рограмма самостоятельно определяет и задействует все доступные яд ра процессоров для параллельного выполнения вычислений.
  • Запуск нескольких вычислительных процессов напрямую из уровня пользователя без необходимости получать права администратора.
  • Решение до 96% стандартного набора дифференциальных уравнений.
  • Новый диспетчер переменных, обеспечивающий улучшенный контроль в сеансах Maple с помощью управления состояниями вычислительных заданий.
  • Интерактивные инструменты ClickableMath – более 40 новых мини-демонстраций, помогающих изучать или наглядно демонстрировать основные математические понятия.
  • Многопоточное программирование.
  • Поддержка CUDA, в том числе на платформах Mac OS X.
  • Менеджер переменных, предоставляющий простой доступ к переменным, заданным в ходе сеанса пользователя.
  • Новая таблица данных, которую можно встраивать непосредственно в документ пользователя.
  • Интерактивные ассистенты и шаблоны заданий – свыше 60 ассистентов и около 350 шаблонов заданий.
  • Свыше 160 типов графиков и опций для визуализации выражений и данных.
  • Быстрое создание всеобъемлющих приложений, включающих интерактивные элементы – ползунки, кнопки и шкалы.
  • Возможность быстрого поиска документов в «облачном» хранилище MapleCloud.
  • 17 новых команд в комплекте «Дифференциальная геометрия».
  • Отображение всех возможных решений параметрических полиномиальных уравнений в зависимости от свойств неизвестных параметров.
  • Новые команды в компоненте статистики.
  • Генерация кода на языках C#, C, Java, Fortran, VisualBasic и MATLAB.
  • Подключение к Интернету для извлечения и экспорта результатов на web-сайты или импорта данных из интернет-источников в среду Maple.
  • Возможность использовать вычисления Maple для анализа и оптимизации CAD-проектов.
Назначение и место систем Maple

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

Для наших читателей (в том числе и для математиков- профессионалов) возможности систем символьной математики, реализованных на массовых ПК класса IBM PC, порой являются полной неожиданностью и вызывают вполне заслуженное удивление и восхищение, но иногда и резкое отрицание. Впрочем, последнее характерно скорее для тех, кто с системой Maple просто не работал и относится к ней, как дама из анекдота о паровозе – увидев паровоз впервые, она воскликнула: «Не может быть, что он едет без лошадей!» Maple – тщательно и всесторонне продуманная система компьютерной математики. Она с равным успехом может использоваться как для простых, так и для самых сложных вычислений и выкладок. Заслуженной популярностью системы Maple пользуются в университетах – свыше 300 самых крупных университетов мира (включая и наш ЧГУ) взяли эту систему на вооружение. А число только зарегистрированных пользователей системы уже давно превысило один миллион. Ядро системы Maple используется в ряде других математических систем, например в MATLAB и Mathcad, для реализации в них символьных вычислений.

Добавьте к этому куда большее число незарегистрированных пользователей – ведь система записана на многих компакт-дисках, лихо продаваемых в России по вполне доступным ценам. Если учесть все это, то оказывается, что популярность системы Maple ничуть не ниже, а то и выше, чем у гораздо более простых систем, таких как Derive и Mathcad.

Maple – типичная интегрированная система. Она объединяет в себе:

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

Ко всем этим средствам имеется полный доступ прямо из программы. Maple – одна из самых мощных и «разумных» интегрированных систем символьной математики, созданная фирмой WaterlooMaple, Inc. (Канада).

Во многих обзорах систем компьютерной алгебры Maple справедливо считается одним из первых кандидатов на роль лидера среди них. Это лидерство она завоевывает в честной конкурентной борьбе с другой замечательной математической системой – Mathematica 4.1. Каждая из данных двух систем имеет свои особенности, но в целом эти две лидирующие системы практически равноценны. Однако надо отметить, что появление новейшей версии Maple означает очередной виток в соревновании этих систем за место лидера мирового рынка. Причем виток на этот раз раньше сделала система Maple.

Система Maple прошла долгий путь развития и апробации. Она реализована на больших ЭВМ, рабочих станциях Sun, ПК, работающих с операционной системой Unix, ПК класса IBM PC, Macintosh и др. Все это самым положительным образом повлияло на ее отработку и надежность (в смысле высокой вероятности правильности решений и отсутствия сбоев в работе). Не случайно ядро системы Maple используется целым рядом других мощных систем компьютерной математики, например системами класса Mathcad и MATLAB.

Математические функции
Понятие о встроенных функциях
Maple 15 имеет полный набор элементарных математических функций. Все они, кроме арктангенса двух аргументов, имеют один аргумент х, например sin(x). Он может быть целым, рациональным, дробно-рациональным, вещественным или комплексным числом. В ответ на обращение к ним элементарные функции возвращают соответствующее значение. Поэтому они могут быть включены в математические выражения. Все описанные здесь функции называются встроенными, поскольку они реализованы в ядре системы.
Как правило, если аргументом функции является фундаментальная константа, целое или рациональное число, то функция выводится с таким аргументом без получения результата в форме действительного числа с плавающей точкой. Например:

Нетрудно заметить, что есть и исключения из этого правила — например, на экране монитора ехр(1) будет выведено как константа е, а значение функции arcsin( 2) все же вычислено и результат получен как 1/6 от константы Pi. Вообще говоря, если результат выражается через фундаментальную математическую константу, то он будет вычислен и представлен ею. В противном случае функция с целочисленным и рациональным аргументом или с константой просто повторяется в строке вывода в установленном для этой строки формате.
Для получения подробной информации о некоторой произвольной функции достаточно задать команду:
?
Ввиду общеизвестности элементарных функций мы не будем обсуждать ни их свойства, ни допустимые для них пределы изменения аргумента.

Некоторые целочисленные функции и факториал
Ниже представлены наиболее распространенные целочисленные функции Maple 15, используемые в теории чисел:

  • factorial (n) — функция вычисления факториала (альтернатива — оператор !);
  • iquo(a.b) — целочисленное деление а на b;
  • irem(a,b) — остаток от деления а на b;
  • igcd(a b) — наибольший общий делитель;
  • lcm(a,b) — наименьшее общее кратное.

В последних двух примерах применения оператора факториала полезно обратить внимание, что запись n!! означает лишь (n!)!, а не n!! = 2*4*6*…, то есть произведение четных целых чисел. Действие других функций очевидно.
Тригонометрические функции
В ядре Maple определены следующие тригонометрические функции:

  • sin — синус;
  • cos — косинус;
  • tan — тангенс;
  • sec — секанс;
  • csc — косеканс;
  • cot — котангенс.

Все эти функции являются периодическими (с периодом 2л, кроме тангенса и котангенса, у которых период равен л) и определены для действительного и комплексного аргументов. Примеры вычислений:

Многие свойства тригонометрических функций можно оценить, рассматривая их графики. Для построения таких графиков можно использовать функцию piot. сверху показаны графики ряда тригонометрических функций.

Из графиков тригонометрических функций хорошо видна их периодичность. Функция тангенса имеет разрывы, и ее значение в этих точках в пределе равно бесконечности. Поэтому для наглядного ее представления вместе с функциями синуса и косинуса (их экстремальные значения по модулю равны 1) приходится вводить ограничения на масштаб графика по оси у.
ПРИМЕЧАНИЕ
Обратите внимание на параметр color=black в функции построения графиков plot. Он задает построение всех графиков черным цветом, что сделано для более четкой печати их в книге. Если убрать этот параметр, то графики разных функций будут строиться с использованием разных цветов, что облегчит их различение. Другие способы выделения отдельных кривых будут описаны в дальнейшем при описании графических возможностей системыMaple 15.

Понятие о встроенных функциях

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

Двумерная графика в системе Maple

Многофункциональная двумерная графическая команда plot( ) расположена в системной библиотеке Maple, и поэтому доступна в любое время.

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

Синтаксис команды plot( ) следующий:

plot(f, h, v,опции); или plot(f, h, v);

f-функция, график которой необходимо отобразить, h и v представляют, соответственно, диапазон изменения независимой переменной по горизонтальной оси графика и диапазон изменения значения функции вдоль вертикальной оси графика.

Диапазон изменения независимой переменной h задается в виде x=a..b, где a и b-наименьшее и наибольшее значения изменения переменнной,а x-имя независимой переменнной.

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

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

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

При отсутствии явного задания опции принимаются их значения по умолчанию.

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

Основные объекты и команды Maple. §2.1 Способы задания функций. Замена переменных Maple как работать на нескольких страницах одновременно

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

10.1. Условный оператор

Условный оператор в Maple начинается с зарезервированного слова if и обязательно должен заканчиваться, словом fi и имеет следующую структуру:

if условие then выражение 1 else выражение 2 fi ;

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

if условие then выражение 1 fi ;

[> restart;

[>if x>4 then print (‘x>4’); else x:=x^2;

print (2*x); fi;

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

if условие 1 then выражение 1 elif условие2 then выражение2 … elif условие n then выражение n else выражение n +1 fi ;

Как следует из структуры данного оператора вложенность условий может быть практически неограниченной и реализуется при помощи служебного слова elif . В качестве выражений можно использовать любые последовательности команд Maple.

[> restart;

[>if x

10. 2 . Операторы цикла

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

for имя переменной цикла from начальное значение переменной цикла by шаг приращения значения переменной цикла to конечное значение переменной цикла

[>for i from 0 by 4 to 8 do i od;

Оператор цикла типа «пока» в Maple имеет вид

while условие do выражение od ;

В данном случае тело цикла (выражение) выполняется до тех пор, пока значение логического условия истинно и прекращается, если условие — ложно.

[> restart;

[>while n

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

for имя переменной цикла from начальное значение переменной цикла by значение приращение шага while условие do выражения od ;

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

[> restart;

[> for y from 0 by 2 while y

Четвертый оператор цикла предназначен для работы с аналитическими выражениями и представляется следующей структурой:

for имя переменной цикла in выражение 1 do выражение 2 od ;

Здесь тело цикла выражение 2 выполняется, в случае если символьная переменная заданная своим именем последовательно принимает значение каждого из операндов алгебраического выражения 1. Отметим, что работа данной конструкции зависит от внутреннего представления выражения 1. Так в случае если выражение 1 является суммой, то имя переменной цикла принимает поочередно значение каждого слагаемого, если произведение – то каждого сомножителя.

[> restart;

[> a:=5*x^2+x+6/x;

[> b:=simplify(%);

[> for m in a do m; od;

[> for m in b do m; od;

10.3. Процедуры-функции

Процедуры-функции в Maple можно задавать двумя способами. Для задания процедур-функций первый способ использует символ ( ) и задается следующей структурой:

имя функции:=(список формальных параметров) выражение;

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

[> f1:=(x1,x2)->simplify(x1^2+x2^2);

[> f 1 (cos(x),sin(x));

Второй способ задания процедур-функций использует команду unapply и имеет следующую структуру:

имя функции:= unapply (выражение или операция, список переменных);

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

[> f3:=unapply(diff(z(r)^2,r)-2,z);

[ > f3(sin);

[ > combine(%);

10.4. Процедуры

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

имя процедуры:= proc (список формальных параметров); команды (или выражения); end ;

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

[> f:=proc(x,y);x^2+y^2;simplify(%);end:

[ > f(sin(x),cos(x));

При написании процедур в Maple можно использовать ряд команд и служебных слов, кроме указанного выше обязательного минимального набора, которые позволяют описывать переменные, управлять выходом из процедуры, сообщать об ошибках.

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

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

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

Для аварийного выхода из процедуры в случае возникновения ошибки и сообщения о случившемся можно использовать команду ERROR (‘ string ’) , здесь string – сообщение, которое выводится на экран монитора в аварийной ситуации. Таким образом, общий вид структуры процедуры можно изобразить следующим образом:

имя процедуры:= proc (список параметров процедуры) local список локальных переменных, приведенных через запятую; global список глобальных переменных, приведенных через запятую; RETURN ( val ); ERROR (‘ error in body of procedure ’);… end ;

[ > examp(-1);

[> examp(0);

[ > examp(2);

11. СПОСОБЫ ВВОДА И ВЫВОДА ИНФОРМАЦИИ

В СРЕДЕ MAPLE

Для сохранения имен (индентификаторов) переменных и их значений во внешнюю память в виде файла с именем name . txt необходимо ввести команду:

save список имен переменных, перечисленных через запятую, “имя файла с расширением txt ”;

Если в качестве расширения указан символ m , то файл будет записан во внутреннем Maple-формате, при всех других расширениях в текстовом формате. Для вывода на экран сохраненной в файле информации используется команда

read имя файла ”;

[> restart;

[> examp:=proc(x) local y,w; global z; if x

[ > examp(-1);

[> examp(0);

Error, (in examp) Variablex = 0

[ > examp(2);

[ > read «nnn.txt»;

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

writeto (“имя файла”)

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

appendto (“имя файла”)

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

[ > f:=12;

[> f1:=factor (y^2-3*y); save f,f1, «n1.txt»;

[> appendto («n1.txt»);

[> solve(x^2-3*x+2=0,x);

В результате выполнения команды save f , f 1, « n 1. txt «; будет создан текстовый файл n 1. txt , который будет содержать следующую информацию:

f:= 12;

f1:= y*(y-3);

а в результате выполнения команды appendto n 1. txt «); содержимое файла примет вид:

f:= 12;

f1:= y*(y-3);

[ > solve ( x ^2-3* x +2=0, x );

В пакете Maple предусмотрен ряд команд вывода информации на экран. Наиболее простыми из них являются команды

print (список Maple

lprint (список Maple -выражений, перечисляемых через запятую);

причем, если переменной ничего не присвоено, то на печать выводиться ее имя, в противном случае выводится ее значение.

[> x:=y^2: print (x, «primer 1», y, factor(x-5*y));

[> x:=y^2: lprint (x, «primer 2», y, factor(x-5*y));

y^2, primer 2, y, y*(y-5)

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

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

readdata (“имя файла”, тип переменной( integer / float – последний тип устанавливается по умолчанию),счетчик чисел);

Перед использованием данной команды необходимо ее активизировать при помощи команды:

readlib(readdata):

[> restart;

[> readlib(readdata):

[> ff:=readdata(«aa.txt»,integer,8);

[ > x:=ff;

[ > y:=x;

[ > y1:=ff;

[ > f:=readline(«aa.txt»);

Двойная индексация в переменной ff связана с тем, что числа представляются в виде двумерного массива, при этом число строк массива соответствует числу считанных строк, а количество столбцов определяется последним параметром команды readdata . Как следует из приведенного примера команда readline выводит числовые данные в виде переменной типа string .

12. ИСПОЛЬЗОВАНИЕ МАТЕМАТИЧЕСКОГО ПАКЕТА MAPLE ДЛЯ НАУЧНЫХ ИССЛЕДОВАНИЙ

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

12.1. Исследование влияния изменяемых параметров плоской помольной камеры мельницы противоточного действия на скорость энергоносителя

12 .1.1. Постановка задачи

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

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

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

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

При истечении струи из разгонной трубки скорости потока в ее выходном сечении 1-1 во всех точках сечения равны между собой. На протяжении длины– начальном участке, осевая скорость постоянна по величине и равна скорости на срезе разгонной трубки V 0 . В области треугольника АВС (рис. 12.1.) во всех точках струи скорости энергоносителя равны между собой и также равны V 0 — эта область образует так называемое ядро струи. Далее осевая скорость постепенно уменьшается и на основном участке длинной l осн осевая скорость V ОС V 0 .

Рис. 12.1. Схема струи в помольной камере

Известно, что скорость энергоносителя от среза разгонной трубки до плоскости соударения струй изменяется по закону

где V z – скорость энергоносителя с помольной камере на расстоянии z от среза разгонной трубки, м/с;

V 0 – скорость энергоносителя на срезе разгонной трубки, м/с;

z 0 – расстояние от среза разгонной трубки до плоскости встречи струй, м.

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

где R – вектор силы динамического воздействия воздуха на частицу, Н;

F m – площадь сечения частицы, м 2 ;

где m – масса частицы измельчаемого материала, кг.

где — плотность частиц измельчаемого материала, кг/м.

Выражение (12.7) примет вид

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

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

Расстояние l стр – между срезом разгонной трубки и серединной плоскость в помольной камере выбрано из условия

где d тр = 18 диаметр разгонной трубки, мм.

РЕШЕНИЕ МАТЕМАТИЧЕСКИХ ЗАДАЧ

В MAPLE

ЧАСТЬ I

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение высшего

«Нижегородский государственный университет им. »

МАТЕМАТИЧЕСКИХ ЗАДАЧ В MAPLE

факультета для студентов, обучающихся по

направлению подготовки 010100 — «Математика».

Решение задач в MAPLE. Часть I. Составители: , : Учебно-методическая разработка. – Н. Новгород: Издательство Нижегородского госуниверситета, 2007. – 35 с.

доцент кафедры ЧиФА факультета ВМК,

доцент кафедры ПиУОС Физического факультета,

Данная разработка представляет собой практическое руководство по изучению возможностей пакета аналитических вычислений Maple . Последовательное изучение тем и выполнение заданий позволит шаг за шагом освоить основные приемы работы в математической системе Maple .

Учебно-методическая разработка предназначена для студентов 2 и 3 курсов механико-математического факультета .

университет им. , 2007

Системы компьютерной алгебры – это новые технологии в научных исследованиях и образовании. В последние годы получили широкое распространение такие системы общего назначения, как Maple, Mathematica.

Система Maple включена в интегрированную систему Scientific WorkPlace и применяется во многих ведущих университетах мира как в научных исследованиях, так и в учебном процессе. Ядро Maple входит в другие распространенные пакеты, такие как MathCad, MathLab.

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

1. НАЧАЛЬНЫЕ СВЕДЕНИЯ. ТИПЫ ДАННЫХ

Диалог с системой протекает в стиле «вопрос-ответ». Команда начинается с символа > и заканчивается либо точкой запятой (; ), либо двоеточием (: ). Для выполнения команды необходимо нажать клавишу Enter . Если в конце команды стоит точка с запятой, то на экран будет выведен результат действия команды или сообщение об ошибке. Двоеточие в конце команды означает, что команда будет выполнена, но ее результат на экран не будет выводиться. Символ # используется для ввода текстовых комментариев. Также для ввода текста используется клавиша с символом T на панели инструментов. Для возвращения к вводу команд следует нажать клавишу с символом >. Для вызова результата действия предыдущих команд используются символы %, %% или %%%, соответственно. Команда restart отменяет результат действия всех предыдущих команд.

Переменные в Maple характеризуются именем и типом. Имя переменной в Maple может состоять из букв, цифр и некоторых специальных символов, но обязательно должно начинаться с буквы. Ограничений на длину имени нет. Кроме того, Maple различает строчные и прописные буквы. Для присваивания переменной конкретного значения применяется оператор := . Переменные могут использоваться в математических выражениях и функциях без предварительного определения.

Рассмотрим особенности записи в Maple данных числового, строкового и множественного типов.

Выражение принадлежит к целому типу (integer ), если оно состоит из последовательности цифр, не разделенных никакими знаками. Выражения вида a/b, где a, b – целые числа принадлежат к дробному типу (fraction ). К числам с плавающей точкой (float ) относятся выражения вида a. b, a. и. b. Также числа типа float можно записать в показательной форме a*10^b. Комплексные числа (complex ) в Maple записываются в алгебраической форме: a+I*b, где a, b – вещественные числа.

Строковое выражение типа string — это любая конечная последовательность символов, с обеих сторон заключенная в верхние двойные кавычки. Последовательность символов, взятая в обратные кавычки, считается символом (symbol ).

Множество (set ) в Maple задается перечислением в фигурных скобках элементов множества. Например,

https://pandia.ru/text/78/155/images/image003_72.gif» width=»197″ height=»26″>

Для создания массива используется команда array(i1..j1, i2..j2. M), которая возвращает массив с элементами из списка M.

Обращение к элементам множества, списка, массива происходит с указанием индексов элемента в квадратных скобках.

https://pandia.ru/text/78/155/images/image006_53.gif» width=»16 height=19″ height=»19″>

Массив также можно задать командой вида V:=array(1..2,1..2,1..2,); , переопределив затем значения V с помощью оператора присваивания.

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

1. Задайте множество A, состоящее из целых чисел от 3 до 20, и множество B, состоящее из квадратов этих чисел. Найдите объединение, пересечение, разность множеств A и B. Найдите мощности всех полученных множеств.

2. Задайте произвольный список и четырехмерный массив.

2. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ, ФУНКЦИИ. ПРЕОБРАЗОВАНИЯ АРИФМЕТИЧЕСКИХ

ВЫРАЖЕНИЙ И РЕШЕНИЕ УРАВНЕНИЙ

2.1. Вычисления в Maple

Для записи математических выражений в Maple используются операторы сложения (+), вычитания (-), умножения (*), деления (/), возведения в степень (^), оператор присваивания (:=). Порядок выполнения математических операций является стандартным.

Основные константы в Maple обозначаются следующим образом: Pi — число π, I — мнимая единица i, exp(1) — основание натуральных логарифмов e, infinity – бесконечность, true — истина, false – ложь. Используются следующие знаки сравнения: , >=, , = .

Система Maple одинаково успешно справляется как с символьными вычислениями, так и с численными. По умолчанию расчеты проводятся символьно.

>1/2+123/100+ sqrt (3);

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

>2+ sqrt (2.0)- Pi ;

Все вычисления по умолчанию проводятся с десятью значащими цифрами. Количество значащих цифр можно изменить, применив команду > Digits : = n .

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

https://pandia.ru/text/78/155/images/image012_43.gif» width=»414″ height=»19″>

2.2. Задание функций

В Maple встроено большое количество функций. Перечислим обозначения для основных элементарных функций..gif» width=»83 height=57″ height=»57″>

Рассмотрим несколько способов определения новых функций:

1) присваивание переменной некоторого выражения

имя переменной:=выражение;

имя переменной(список параметров):=выражение;

> f (t ):= cos (t )^2+1;

> f (0);

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

https://pandia.ru/text/78/155/images/image018_28.gif» width=»106″ height=»33″>

https://pandia.ru/text/78/155/images/image021_25.gif» width=»100″ height=»33″>

>x := Pi : y :=10: f ;

Команда value (выражение) используется для вычисления значения выражения.

Следует обратить внимание на то, что после присвоения переменной x конкретного значения x:=a, переменная x перестанет быть неопределенной. Вернуть x статус непределенной переменной можно командой > x := evaln (x ); или снять присваивание командой > x :=’ x ; либо отменить все присваивания командой restart .

2) Определение функции с помощью функционального оператора

имя функции:=список параметров -> выражение;

Обращение к функции, заданной таким способом, происходит стандартным образом: имя функции(a, b, …), где a, b, … — конкретные значения переменных.

> f 1:=(x , y , z ) -> x ^(y ^ z );

https://pandia.ru/text/78/155/images/image024_25.gif» width=»25″ height=»26 src width=»189″ height=»107″> используется команда

https://pandia.ru/text/78/155/images/image028_21.gif» width=»248″ height=»77″>

> f1:=convert(f, piecewise);

> f 2(-1/2); f 2(-1);

https://pandia.ru/text/78/155/images/image032_20.gif» width=»196″ height=»27″>.gif» width=»73″ height=»49″>. Упростите полученные выражения.

3. Найдите значение выражения . Для выполнения преобразований комплексного числа применяется функция evalc .

4. Запишите функцию без знака модуля.

5. Задайте и найдите f(-10)+3f(-1)+f(3).

6. Задайте функцию в виде функционального оператора и найдите ее значение при x=-1, y=.

2.3. Преобразование математических выражений

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

В Maple можно преобразовывать как все выражение в целом, так и отдельные его части.

Для выделения левой (правой) части в математическом выражении вида A=B используются команды

lhs (выражение);

rhs (выражение);

Для выделения числителя (знаменателя) используются команды

numer (выражение);

denom (выражение);

>denom (rhs (F ));

Для выделения некоторой части выражения, списка или множества служит команда

op (i ,выражение) , где i – число, определяющее позицию в выражении.

> x + y + z ; >op (2,%);

Gif» width=»12″ height=»12 src 54″ width=»266″ loading=lazy>

> isolate (R , sin (x ));

1) Приведение подобных членов в выражении по переменной осуществляется командой

https://pandia.ru/text/78/155/images/image047_14.gif» width=»439″ height=»28″>

2) Разложить на множители выражение можно с помощью команды

https://pandia.ru/text/78/155/images/image050_16.gif» width=»186″ height=»56″>

>alias(w=RootOf(x^3+2*x+1)); factor(x^3+2*x+1,w);

https://pandia.ru/text/78/155/images/image055_15.gif» width=»504″ height=»26 src width=»303″ height=»57″>

> factor(x^2+x+1,complex);

Gif» width=»12″ height=»12 src 58″ width=»173″ loading=lazy>

4) Привести дробь к нормальному виду можно с помощью команды

https://pandia.ru/text/78/155/images/image063_16.gif» width=»60″ height=»54″>

>normal(sin(2*x+3+4/(x-1)+5/(x-2)), expanded);

5) Для преобразований выражений, содержащих радикалы, применяется команда

rationalized « для того, чтобы избавиться от иррациональностей в знаменателях, « expanded « для раскрытия всех скобок.

> (7+5* sqrt (2))^(1/3);

> radnormal ((7+5* sqrt (2))^(1/3));

> a := sqrt (3)/(3^(1/2)+6^(1/2));

rationalized «);

6) Упрощение выражений осуществляется командой

DIV_ADBLOCK515″>

>simplify((sqrt(2)+sqrt(3))*(sqrt(2)-sqrt(3)));

> f:=(1-cos(x)^2+sin(x)*cos(x))/(sin(x)*cos(x)+cos(x)^2); simplify(f, trig);

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

> simplify(g, assume=real);

> simplify(g, assume=positive);

>simplify(g, symbolic);

Команда simplify позволяет выполнить преобразования в выражении при заданных условиях (условия указываются в фигурных скобках).

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

https://pandia.ru/text/78/155/images/image076_12.gif» width=»276″ height=»54″>

>simplify(B, trig);

>simplify (%);

7) Объединить части выражения по определенным правилам можно при помощи команды

https://pandia.ru/text/78/155/images/image079_12.gif» width=»94″ height=»25 src width=»12″ height=»12 src 22″ width=»125″ loading=lazy>

> solve(x^4-11*x^3+37*x^2-73*x+70);

https://pandia.ru/text/78/155/images/image086_12.gif» width=»349″ height=»22 src >

> _EnvExplicit:=true:

Максимальное количество решений, которое может быть найдено с помощью команды solve, определяется значением глобальной переменной _MaxSols , имеющей по умолчанию значение равное 100. Если придать глобальной перменной _EnvAllSolutions значение true , то в случае бесконечного множества решений, команда solve для некоторых уравнений сможет оформить ответ в виде выражения, содержащего переменные определенного типа. Например, для тригонометрических уравнений ответ будет содержать целочисленные параметры вида _Z

> _EnvAllSolutions:= true:

>solve(sin(2*x)=cos(x), x);

https://pandia.ru/text/78/155/images/image094_11.gif» width=»274″ height=»51 src width=»12″ height=»12 src width=»641″ height=»23″>

Для разрешения реккурентностей применяется команда

https://pandia.ru/text/78/155/images/image098_10.gif» width=»255″ height=»22 src width=»119″ height=»23 src width=»180″ height=»56″>.

2. Упростите выражение .

3. Упростите выражение .

4.Приведите подобные в выражении и вычислите его значение при a=-3, x=1.

5. Упростите выражение а) ; б) .

6. Избавьтесь от иррациональностей в знаменателе выражения .

7. Выразите , https://pandia.ru/text/78/155/images/image113_7.gif» width=»46″ height=»48 src width=»164″ height=»41″>;

б) https://pandia.ru/text/78/155/images/image120_7.gif» width=»88″ height=»47 src 27″ width=»153″ loading=lazy> на множители над полем вещественных чисел и над полем рациональных чисел. Найдите разложение в радикалах.

12. Разложите многочлен на множители над полем вещественных чисел и над полем комплексных чисел. Найдите разложение в радикалах.

13. Решите уравнение .

14. Решите систему уравнений .

15. Решите систему уравнений и упростите ответ.

16. Численно найти все решения уравнения .

17. Найти три численных решения уравнения .

18. Решите систему неравенств .

19. Решите неравенство .

3 . ПОСТРОЕНИЕ ГРАФИКОВ

Эта часть посвящена возможностям системы Maple V в визуализации самых разнообразных вычислений.

3.1. Двумерные графики

Для построения графиков функции f(x) от одной переменной (в интервале https://pandia.ru/text/78/155/images/image132_6.gif» width=»69″ height=»24″> по оси Оу ) используется команда

plot(f(x), x=a..b, y=c..d, options),

где options – опция или набор опций, задающих стиль построения графика. Если их не указывать, то будут использованы установки по умолчанию. Настройка изображения также может осуществляться с панели инструментов. Для этого следует щелкнуть левой кнопкой мыши по изображению. После этого становятся активными кнопки в нижнем ряду панели. Также можно узнать координаты точки на графике. Для этого необходимо подвести курсор к нужной точке графика и щелкнуть левой кнопкой мыши. Слева в нижнем ряду кнопок на панели появятся координаты. Настройка изображения также может осуществляться с помощью контекстного меню. Оно вызывается правой кнопкой мыши.

Основные параметры команды plot :

title=”text”, где text- заголовок рисунка (текст можно оставлять без кавычек, если он не содержит пробелов).

coords=polar – установка полярных координат (по умолчанию установлены декартовы).

axes – установка типа координатных осей: axes=NORMAL – обычные оси; axes=BOXED – график в рамке со шкалой; axes=FRAME – оси с центром в левом нижнем углу рисунка; axes=NONE – без осей.

scaling – установка масштаба рисунка: scaling=CONSTRAINED – одинаковый масштаб по осям; scaling=UNCONSTRAINED – график масштабируется по размерам окна.

style = LINE – вывод линиями, style = POINT вывод точками.

numpoints=n – число вычисляемых точек графика (по умолчанию n=50 ).

сolor – установка цвета линии: английское название цвета, например, yellow – желтый и т. д.

xtickmarks=nx и ytickmarks=ny – число меток по оси Оx и оси Оy , соответственно.

thickness=n, где n=1,2,3… — толщина линии (по умолчанию n=1 ).

linestyle=n – тип линии: непрерывная, пунктирная и т. д. (по умолчанию n=1 – непрерывная).

symbol=s — тип символа, которым помечают точки: BOX, CROSS, CIRCLE, POINT, DIAMOND .

font= – установка типа шрифта для вывода текста: f задает название шрифтов: TIMES, COURIER, HELVETICA, SYMBOL; style задает стиль шрифта: BOLD, ITALIC, UNDERLINE; size – размер шрифта в pt.

labels= – надписи по осям координат: tx – по оси Оx и ty – по оси Оy .

discont=true – указание для построения бесконечных разрывов, при этом на графике асимптоты не рисуются.

Пример. Построить график https://pandia.ru/text/78/155/images/image134_1.jpg» width=»292 height=292″ height=»292″>

Построение графика функции, заданной параметрически

С помощью команды plot можно строить также графики функций, заданных параметрически y=y(t), x=x(t) :

plot(, parameters) .

Пример. Построить график параметрической кривой , https://pandia.ru/text/78/155/images/image138_2.jpg» width=»231 height=164″ height=»164″>

Построение графика функции, заданной неявно

Для построения графика неявной функции F(x, y)=0 используется команда https://pandia.ru/text/78/155/images/image139_5.gif» width=»80″ height=»27″>.

>with(plots):implicitplot(x^2+y^2=1, x=-1..1, y=-1..1);

Gif» width=»12 height=12″ height=»12″> textplot(, options), где x0, y0 – координаты точки, с которой начинается вывод текста ’text’ .

Вывод нескольких графических объектов на один рисунок

Если на одном рисунке нужно совместить несколько графиков функций, то можно воспользоваться командой

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

> p := plot (…): t := textplot (…):

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

display(, options) .

Пример . Построить графики функций https://pandia.ru/text/78/155/images/image142_6.gif» width=»73″ height=»20 src width=»59″ height=»24 src width=»297 height=24″ height=»24″> , то для этого можно использовать команду inequal из пакета plots:

inequals( c1,…,fn(x, y)>cn>, x=x1…x2, y=y1..y2, options)

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

.gif» width=»12″ height=»12 src width=»12″ height=»12 src width=»75″ height=»43″>.

3..gif» width=»72″ height=»20″>, в рамке.

4..gif» width=»83″ height=»23 src width=»75″ height=»20 src width=»321″ height=»198″>

График поверхности, заданной параметрически

Если требуется построить поверхность, заданную параметрически: x =x (u ,v ), y =y (u ,v ), z =z (u ,v ), то эти функции перечисляются в квадратных скобках в команде:

plot3d(, u=u1..u2, v=v1..v2) .

Пример . Построить тор.

> plot3d(, s=0..2*Pi, t=0..11*Pi/6, grid=, style=patch, axes=frame, scaling=constrained);

https://pandia.ru/text/78/155/images/image162_4.gif» width=»99″ height=»24″>, строится с помощью команды пакета plot s :

implicitplot3d(F(x, y,z)=c, x=x1..x2, y=y1..y2, z=z1..z2), где указывается уравнение поверхности и размеры рисунка по координатным осям.

График пространственных кривых

В пакете plot s имеется команда spacecurve для построения пространственной кривой, заданной параметрически: .

spacecurve ([ x (t ), y (t ), z (t )], t = t 1.. t 2) , где переменная t изменяется от t1 до t2 .

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

Команда plot 3 d позволяет строить одновременно несколько фигур, пересекающихся в пространстве. Для этого достаточно вместо описания одной поверхности задать список описаний ряда поверхностей. При этом функция plot 3 d обладает уникальной возможностью – автоматически вычисляет точки пересечения фигур и показывает только видимые части поверхностей. Это создает изображения, выглядящие вполне естественно.

Пример. Выполнить построение двух поверхностей и в пределах https://pandia.ru/text/78/155/images/image168_4.gif» width=»39″ height=»19″>.

> plot 3 d ( , x =- Pi .. Pi , y =- Pi .. Pi , grid =, axes = FRAMED , color = x + y );

Maple позволяет выводить на экран движущиеся изображения с помощью команд animate (двумерные) и animate3d (трехмерные) из пакета plot s . Суть анимации при использовании данных функций заключается в построении серии кадров, причем каждый кадр связан со значением изменяемой во времени переменной t. Среди параметров команды animate3d есть

frames – число кадров анимации (по умолчанию frames=8 ).

Управлять движущимся изображением удобнее с помощью контекстного меню.

Задание 3 .2

1. Построить график поверхности .

2. Построить шар :

3..gif» width=»65″ height=»21 src width=»173 height=53″ height=»53″>.gif» width=»95″ height=»48 src width=»71″ height=»23 src width=»12″ height=»12 src width=»215″ height=»58 src >

https://pandia.ru/text/78/155/images/image182_4.gif» width=»262″ height=»54″>

В Maple имеется несколько способов представления функции.

Способ 1. Определение функции с помощью оператора присваивания (:= ): какому-то выражению присваивается имя, например:

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

После выполнения этих команд переменная х имеет заданное значение .

Чтобы насовсем не присваивать переменной конкретного значения, удобнее использовать команду подстановки subs( ,f), где в фигурных скобках указываются переменные хi и их новые значения аi (i =1,2,…), которые следует подставить в функцию f . Например:

Все вычисления в Maple по умолчанию производятся символьно, то есть результат будет содержать в явном виде иррациональные константы, такие как, и другие. Чтобы получить приближенное значение в виде числа с плавающей запятой, следует использовать команду evalf(expr,t), где expr – выражение, t – точность, выраженная в числах после запятой. Например, в продолжение предыдущего примера, вычислим полученное значение функции приближенно:

Здесь использован символ (% ) для вызова предыдущей команды.

Способ 2. Определение функции с помощью функционального оператора, который ставит в соответствие набору переменных (x1,x2,…) одно или несколько выражений (f1,f2,…) . Например, определение функции двух переменных с помощью функционального оператора выглядит следующим образом:

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

Способ 3. С помощью команды unapply(expr,x1,x2,…) , где expr – выражение, x1,x2,… – набор переменных, от которых оно зависит, можно преобразовать выражение expr в функциональный оператор. Например:

В Maple имеется возможность определения неэлементарных функций вида

> piecewise(cond_1,f1, cond_2, f2, …).

записывается следующим образом.

04. 01 Преобразование уравнений. Команды lhs и rhs

* Entering and Manipulating Equations: The lhs and rhs commands *

Напомним, что уравнению, точно так же как и выражению, можно присвоить имя. В следующей командной строке мы введём уравнение и присвоим ему имя » eq1 » :

Мы можем вывести на экран левую и правую части уравнения по-отдельности при помощи команд lhs и rhs :

Воспользуемся командами lhs и rhs для того, чтобы привести уравнение к стандартному виду, в котором все члены собраны слева, а справа остался только 0:

> eq2:=lhs(eq1)-rhs(eq1)=0;

04. 02 Нахождение точных корней. Команда solve

* Finding Exact Solutions: The solve command *

Рассмотрим вначале рациональные уравнения. Известно, что существуют алгоритмы определения точных корней рациональных корней вплоть до 4-го порядка включительно. В Maple-команду solve и заложены эти алгоритмы.

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

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

Maple нашел все 3 действительных корня и вывел их (в неупорядоченном виде ).

Иногда очень важно выбрать конкретный корень, чтобы потом использовать в дальнейших преобразованиях именно его. Для этого заранее следует присвоить имя результату исполнения команды solve . Назовём его X . Тогда конструкция X будет соответствовать первому корню из списка (подчеркнем: это не обязательно меньший корень! ), X — второму корню, и т.д. (Скобки — квадратные! ):

Посмотрите, однако, что будет выведено в результате выполнения похожей команды:

Ещё раз подчеркнём: практика показывает, что уравнению целесообразно присвоить имя. Традиционно в Maple такое имя начинается с букв eq :

(Не путать оператор присваивания » := » со знаком равенства » = » !)

Теперь решим уравнение при помощи команды solve . Множеству корней присвоим имя X :

Для убедительности проверим, нет ли среди найденных корней посторонних. Проверку выполним непосредственной подстановкой

Разумеется, частенько «точные» решения довольно громоздки, если не сказать иначе. Например, это касается уравнения :

Теперь Вам понятно, о чем речь? Для себя заметьте, что мнимая единица в Maple обозначается посредством прописной буквы I . Разумеется, в таких случаях не грех найти приближенные значения корней. Имея на руках точное решение, Вы и сами сообразите, как это сделать:

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

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

Иногда (а в тригонометрии — всегда ) Maple, по умолчанию , не выводит всё множество корней:

Но безвыходных ситуаций не бывает! Взяв за основу полученный результат, воспользуйтесь своими знаниями тригонометрических уравнений и запишите полное решение (как? ).

Упражнение 4.1

Решить уравнение Разберитесь, сколько различных корней имеет уравнение. Как Maple поступает при наличии равных корней?

Совет : разложите на множители левую часть уравнения.

> factor(x^3-11*x^2+7*x+147);

Корень х = 7 является двукратным, а потому у кубического уравнения только два различных корня. Разложение на множители левой части уравнения — тому подтверждение.

04. 03 Поиск приближенных корней. Команда fsolve

* Finding Approximate Solutions: The fsolve command *

Для приближенного решения уравнений используется Maple-команда fsolve . В случае рационального уравнения, fsolve выводит весь список действительных корней (см. Пример 01). Для трансцендентных уравнений эта команда, по умолчанию, выводит только один корень (см. Примеры 02 и 03).

При помощи fsolve найдём приближенные значения сразу всех четырёх действительных корней рационального уравнения :

Эти четыре корня и составляют исчерпывающее решение исходного рационального уравнения (хотя и приближенное ).

Используя команду fsolve , найти хотя бы один действительный корень уравнения :

Maple и вывел только один корень. На этот раз Maple не стал «живописать». Как теперь убедиться в том, что других действительных корней нет? Следующий пример даёт такой инструментарий.

Получить все действительные корни уравнения и убедиться в этом.

Шаг первый ( Основная идея ) : найдём графическое решение уравнения. Для этого построим график функции, стоящей в левой части уравнения. Абсциссы точек пересечения этого графика с осью Ох и будут искомыми корнями.

Т.к. мы умело подобрали диапазоны изменений абсцисс и ординат точек графика, то легко обнаружим 4 точки пересечения линии с осью Ох. Одна из них соответствует корню, найденному в Примере 02 (какая именно? ).

Второй корень очевиден: х = 0. А как поточнее найти остальные?

Шаг второй ( Уточнение ) : применим команду fsolve более «зряче». В Maple предусмотрена возможность указания промежутка, на котором отыскиваются корни. В частности, для определения отрицательного корня нашего уравнения, укажем, что поиски следует вести в «районе» [-1;-0.2]. Об этом красноречиво свидетельствует графическое решение.

Оставшиеся корни явно принадлежат промежуткам и . Расскажем об этом команде fsolve :

Ну а что произойдёт, если мы подсунем Maple «пустой участок»? Например, отрезок для нашего уравнения. Там графического решения явно нет:

Maple выдаёт название команды, само уравнение, имя аргумента и отрезок. Т.е. ничего нового. Мол: «Ищите корни сами, а я не нашел».

Шаг третий ( Дополнительный анализ ) : Как теперь удостовериться в том, что найдены все корни , а не только в видимой области графического решения? Для этого следует расширить интервал поисков:

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

Попробуем в других местах: справа и слева от области найденных корней.

И здесь ни одного дополнительного корня! Поняв, что с влиянием показательной части уравнения всё ясно, делаем окончательные выводы.

Исчерпывающее решение уравнения состоит из четырёх корней: -.8251554597 , 0 , 1.545007279 , 4.567036837 .

Применим команду fsolve для приближенного решения трансцендентного уравнения .

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

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

График указывает область поисков корней: промежуток . Настаёт черёд команды fsolve :

Корень найден. Но, очевидно, он — не единственный. Расширьте область поисков и ещё раз примените команду fsolve для отыскания второго корня.

Упражнение 4.2

Найти все действительные корни уравнения , начав с графического решения.

Построим график левой части уравнения:

В результате находим корни уравнения в первом приближении: -2 ; -1.5 ; 0 . Применим теперь команду fsolve без указания диапазона поиска (оценим возможности Maple ):

С удовлетворением отмечаем, что Maple выводит все три корня (Не будем забывать, что решали рациональное уравнение.)

Упражнение 4.3

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

Приведём уравнение к стандартному (для этого раздела) виду:

Теперь построим график левой части уравнения:

По всей видимости, существует два корня. Один примерно равен -2, а другой, похоже, 2.

Применим команду fsolve , ограничив диапазон поиска:

Непосредственной подстановкой проверим корни:

Обратите внимание: в обоих случаях истинного равенства нет. С учётом ошибок при округлении, разумное расхождение вполне допустимо.

Убедитесь в отсутствии других корней. Ответ обоснуйте.

Упражнение 4.4

Графики функций и дважды пересекаются на отрезке [-5;5].

а). Постройте в одной системе координат графики обеих функций и при помощи мыши найдите координаты точек пересечения.

b). Составьте уравнение, корнями которого являются абсциссы точек пересечения графиков.

c). Используйте команду fsolve для решения этого уравнения.

d). Используйте результаты из пункта с) для оценки ординат точек пересечения графиков.

e). У Вас не создалось впечатление, что линии могут пересекаться и в третьей точке с координатами (1;9)? Используйте fsolve и графические возможности Maple, чтобы убедиться в противном.

Теперь построим графики функций:

Приближенные координаты точек пересечения: (-1.8, 6.6) и (2.75, 2) .

b) Составим уравнение:

с) Команда fsolve поможет найти соответствующие корни:

d) Используем команду subs для определения соответствующих ординат точек пересечения:

Общие точки графиков: (-1.800,6.763) и (2.773,2.311) .

e) Графически исследуем окрестность точки х = 1:

Команда fsolve на этот раз позволит доказать отсутствие корней вблизи точки х = 1:

04. 04 Решение уравнений в общем виде

* Solving Literal Equations *

Во многих случаях Maple находит решение уравнения в общем (символьном) виде. Речь идёт об уравнении (а не системы!), содержащем несколько переменных. Решение состоит в том, что какая-то из переменных выражается через остальные.

Пусть необходимо решить уравнение относительно переменной g . По привычке, используем команду solve . И она оправдывает наши надежды:

А так решение можно оформить в привычном виде:

Упражнение 4.4

Решить последнее уравнение относительно других переменных: T, k и v.

Упражнение 4.5

Решить уравнение относительно у. Присвоить последовательности корней имя S. Как связаны корни S и S ?

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

  1. Где зарегистрирован telegram
  2. Где находятся файлы telegram
  3. Для чего предназначена функция root в mathcad
  4. Как в archicad поменять язык на русский

Глава 8

Эта глава книги посвящена уникальным возможностям системы Maple 9.5/10 в визуализации самых разнообразных вычислений. Рассмотрены возможности и опции двумерной и трехмерной графики, в том числе использующей функциональную окраску. Особое внимание уделено визуализации математических и физических понятий и реализации различных возможностей машинной графики.

8.1. Двумерная графика

8.1.1. Введение в двумерную графику

Средства для построения графиков в большинстве языков программирования принято считать графическими процедурами или операторами. Однако в СКМ Maple 9.5/10 мы сохраним за ними наименование функций, в силу двух принципиально важных свойств:

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

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

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

В Maple введены функции быстрого построения графиков. Так, функция smartplot(f) предназначена для создания двумерных графиков. Параметр f может задаваться в виде одиночного выражения или набора выражений, разделяемых запятыми. Задание управляющих параметров в этих графических функциях не предусмотрено; таким образом, их можно считать первичными или черновыми. Для функции построения двумерного графика по умолчанию задан диапазон изменения аргумента -8..8.

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

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

plot(f, h, v, o)

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

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

• plot(f,xmin..xmax) — построение графика функции f, заданной только своим именем в интервале изменения х от xmin до xmax;

• plot(f(x),x=xmin..xmax) — построение графика функции f(x) в интервале изменения х от xmin до xmax.

Выше приводилось множество примеров применения этой функции. Для нее возможны следующие дополнительные параметры:

• adaptive — включение адаптивного алгоритма построения графиков (детали см. ниже);

• axes — вывод различных типов координат (axes=NORMAL — обычные оси, выводятся по умолчанию, axes=BOXES — график заключается в рамку с осями-шкалами, axes=FRAME — оси в виде перекрещенных линий, axes=NONE — оси не выводятся);

• axesfont — задание шрифтов для подписи делений на координатных осях (см. также параметр font);

• color — задает цвет кривых (см. далее);

• coords — задание типа координатной системы (см. далее);

• discont — задает построение непрерывного графика (значения true или false);

• filled — при filled=true задает окраску цветом, заданным параметром color, для области, ограниченной построенной линией и горизонтальной координатной осью х;

• font — задание шрифта в виде [семейство, стиль, размер];

• labels — задание надписей по координатным осям в виде [X,Y], где Х и Y -надписи по осям х и у графика;

• labeldirections — задает направление надписей по осям [X,Y], где X и Y может иметь строковые значения HORISONTAL (горизонтально) и VERTICAL (вертикально);

• labelfont — задает тип шрифта метод (см. font);

• legend — задает вывод легенды (обозначения кривых);

• linestyle — задание стиля линий (1 — сплошная, 2 — точками, 3 — пунктиром и 4 — штрих-пунктиром);

• numpoints — задает минимальное количество точек на графике (по умолчанию numpoints=49);

• resolutions — задает горизонтальное разрешение устройства вывода (по умолчанию resolutions=200, параметр используется при отключенном адаптивном методе построения графиков);

• sample — задает список параметров для предварительного представления кривых;

• scaling — задает масштаб графика: CONSTRAINED (сжатый) или UNCONSTRAINED (несжатый — по умолчанию);

• size — задает размер шрифта в пунктах;

• style — задает стиль построения графика (POINT — точечный, LINE — линиями);

• symbol — задает вид символа для точек графика (возможны значения BOX — прямоугольник, CROSS — крест, CIRCLE — окружность, POINT — точка, DIAMOND — ромб);

• symbolsize — установка размеров символов для точек графика (в пунктах, по умолчанию 10);

• title — задает построение заголовка графика (title=»string», где string — строка),

• titlefont — определяет шрифт для заголовка (см. font);

• thickness — определяет толщину линий графиков (0, 1, 2, 3, значение по умолчанию — 0);

• view=[A, В] — определяет максимальные и минимальные координаты, в пределах которых график будет отображаться на экране, А=[xmin..xmax], B=[ymin..ymax] (по умолчанию отображается вся кривая);

• xtickmarks — задает минимальное число отметок по оси х;

• ytickmarks — задает минимальное число отметок по оси у.

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

С помощью параметра у = ymin..ymax можно задать масштаб графика по вертикали.

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

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

Изредка встречаются графики функций f(x), которые надо построить при изменении значения x от нуля до бесконечности или даже от минус бесконечности до плюс бесконечности. Бесконечность в таких случаях задается как особая константа infinity. В этом случае переменной x, устремляющейся в бесконечность, откладывается значение arctan(x). Рисунок 8.1 (второй пример) иллюстрирует сказанное.

В версии Maple 9.5 параметр coords задает 15 типов координатных систем для двумерных графиков. По умолчанию используется прямоугольная (декартова) система координат (coords=cartesian). При использовании других координатных систем координаты точек для них (u, v) преобразуются в координаты (х, y) как (u,v)→(x,y). Формулы преобразования координат можно найти в справке.

8.1.3. Управление стилем и цветом линий двумерных графиков

Maple 9 5 позволяет воспроизводить на одном графике множество кривых с разным стилем, который задается параметром style:

• POINT или point — график выводится по точкам;

• LINE или line — график выводится линией.

Если задано построение графика точками, то параметр symbol позволяет представить точки в виде различных символов, например прямоугольников, крестов, окружностей или ромбов. Другой параметр — color — позволяет использовать обширный набор цветов линий графиков:

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

Различные цветовые оттенки получаются использованием RGB-комбинаций базовых цветов: red — красный, gray — зеленый, blue — синий. Приведем перевод ряда других составных цветов: black — черный, white — белый, khaki — цвет «хаки», gold — золотистый, orange — оранжевый, violet — фиолетовый, yellow — желтый и т.д. Естественно, что черно-белой печати рисунков вместо цветов получаются градации серого цвета.

8.1.4. Графики функций с разрывами

Некоторые функции, например tan(x), имеют при определенных значениях х разрывы, причем случается, что значения функции в этом месте устремляются в бесконечность. Функция tan(x), к примеру, в точках разрывов устремляется к +∞ и -∞. Построение графиков таких функций нередко дает плохо предсказуемые результаты. Графический процессор Maple не всегда в состоянии определить оптимальный диапазон по оси ординат, а график функции выглядит весьма непредставительно, если не сказать безобразно (рис. 8.2, первый пример)

Рис. 8 2 Построение графиков функций с разрывами

Среди аргументов функции plot есть специальный параметр discont. Если задать его значение равным true, то качество графиков существенно улучшается, см. второй пример на рис. 8.2. Улучшение достигается разбиением графика на несколько участков, на которых функция непрерывна, и более тщательным контролем за отображаемым диапазоном. При discont=false данный параметр отключен и строятся обычные графики.

Следует отметить, что вид графика можно улучшить, просто задав диапазон по оси у (например, введя в параметры функции запись у=-8..10). При этом в точках разрыва могут появится вертикальные линии. Впрочем, иногда это бывает полезно.

8.1.5. Графики нескольких функций на одном рисунке

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

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

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

8.1.6. Графики функций, построенные точками

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

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

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

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

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

8.2.1. Графики функций, заданных своими именами

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

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

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

8.2.2. Графики функций, заданных процедурами

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

Рис. 8.6. Построение графика функций, заданных процедурами

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

8.2.3. Графики функций, заданных функциональными операторами

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

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

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

8.2.4. Графики функций, заданных параметрически

В ряде случаев для задания функциональных зависимостей используются заданные параметрически уравнения, например x=f1(t) и y=f2(t) при изменении переменной t в некоторых пределах. Точки (x, y) наносятся на график в декартовой системе координат и соединяются отрезками прямых. Для этого используется функция plot в следующей форме:

plot([f1(t), f2(t), t=tmin..tmax], h, v, p)

Рис. 8.8. Построение функций, заданных параметрически

Если функции f1(t) и f2(t) содержат периодические функции (например, тригонометрические), то для получения замкнутых фигур диапазон изменения переменной t обычно задается равным 0..2*Pi или -Pi..Pi. К примеру, если задать в качестве функций f1(t) и f2(t) функции sin(t) и cos(t), то будет получен график окружности. Рис. 8.8 показывает другие, чуть менее тривиальные примеры построения графиков такого рода.

Задание диапазонов для изменений h и v, а также параметров p не обязательно. Но, как и ранее, они позволяют получить вид графика, удовлетворяющий всем требованиям пользователя.

8.2.5. Графики функций в полярной системе координат

Графики в полярной системе координат представляют собой линии, которые описывает конец радиус-вектора r(t) при изменении угла t в определенных пределах — от tmin до tmax. Построение таких графиков также производится функцией plot, которая для этого записывается в следующем виде:

plot([r(t), theta(t), t=tmin..tmax], h, v, p, coords=polar)

Здесь существенным моментом является задание полярной системы координат параметр coords=polar. Рис. 8.9 дает примеры построения графиков функций в полярной системе координат.

Рис. 8.9. Построение графиков функций в полярной системе координат

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

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

8.3.1. Функция plot3d

Трехмерными графиками называют графики, отображающие функции двух переменных z(x, y). Каждая точка z, таких графиков является высотой (аппликатой) точки, лежащей в плоскости XY и представленной координатами i, уi). Поскольку экран монитора компьютера в первом приближении является плоским, то на деле трехмерные графики представляют собой специальные проекции объемных объектов.

Для построения графиков трехмерных поверхностей Maple имеет встроенную в ядро функцию plot3d. Она может использоваться в следующих форматах:

plot3d(expr1, x=a..b, y=c..d,p)

plot3d(f, a..b, c..d,p)

plot3d([exprf,exprg,exprh], s=a..b, t=c..d,p)

plot3d([f,g,h], a..b, c..d,p)

В двух первых формах plot3d применяется для построения обычного графика одной поверхности, в других формах — для построения графика с параметрической формой задания поверхности. В приведенных формах записи f, g и h — функции; expr1 — выражение, отражающее зависимость от х и у; exprf, exprg и exprh — выражения, задающие поверхность параметрически; s, t, а и b — числовые константы действительного типа; c и d — числовые константы или выражения действительного типа; х, у, s и t — имена независимых переменных; р — управляющие параметры.

8.3.2. Параметры функции plot3d

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

axesfont font color coords font labelfcnt linestyle

numpoints scaling style symbol thickness title titlefont

Однако функция plot3d имеет ряд дополнительных специфических параметров

• ambientlight=[r,g,b] — задает интенсивность красного (r), зеленого (g) и синего (b) цветов подсветки в относительных единицах (от 0 до 1);

• axes=f — задает вид координатных осей (BOXED, NORMAL, FRAME и NONE, по умолчанию NONE);

• grid=[m,n] — задает число линий каркаса поверхности;

• gridstyle=x — задает стиль линий каркаса х (‘rectangular’ или ‘triangular’);

• labels=[x,y,z] — задает надписи по осям (х, у и z — строки, по умолчанию пустые);

• light=[phi,theta,r,g,b] — задает углы, под которыми расположен источник освещения поверхности, и интенсивности составляющих цвета (r, g и b);

• lightmodel=x — задает схему освещения (соответственно ‘none’, ‘light1’, ‘light2’, ‘light3’ и ‘light4’);

• orientation=[theta,phi] — задает углы ориентации поверхности (по умолчанию 45°);

• projections — задает перспективу при обзоре поверхности (r может быть числом 0 или 1, задающим включение или выключение перспективы, а также одной из строк ‘FISHEYE’, ‘NORMAL’ или ‘ORTHOGONAL’ (это соответствует численным значениям r, равным 0, 0,5, или 1, причем по умолчанию задано projection=ORTHOGONAL);

• shading=s — задает направления, по которым меняется цвет функциональной окраски (значения s могут быть XYZ, XY, Z, ZGREYSCALE, ZHUE, NONE);

• tickmarks=[l,n,m] — задает характер маркировки по осям х, у и z (числа l, n и m имеют значения не менее 1);

• view=zmin..zmax или view=[xmin..xmax, ymin, ymax, zmin..zmax] — задает минимальные и максимальные координаты поверхности для ее видимых участков.

Для трехмерных графиков возможно задание множества типов координатных систем с помощью параметра coords=Тип_координатной_системы. Поскольку на экране монитора поверхность отображается только в прямоугольной системе координат и характеризуется координатами х, у и z, то для представления поверхности, заданной в иной системе координат с координатами u, v и w, используются известные формулы для преобразования (u, v, w) -> (х, у, z). Их можно найти в справке. Вид графиков трехмерных поверхностей очень сильно различается в разных координатных системах. По умолчанию трехмерные графики строятся в прямоугольной системе координат — rectangular.

8.3.3. Построение поверхностей с разными стилями

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

Рис. 8.10 Примеры простейшего построения трехмерных поверхностей

Параметр style=hidden строит каркасную поверхность с функциональной окраской тонких линий каркаса и удалением невидимых линий. Чтобы график выглядел более четким, построение во втором примере задано линиями черного цвета с помощью параметра color=black (см. нижний рисунок на рис. 8.10).

Помимо значения patch для построения трехмерных поверхностей можно задавать ряд других стилей: point — точками, contour — контурными линиями, line — линиями, hidden — линиями каркаса с удалением невидимых линий, wireframe — линиями каркаса со всеми видимыми линиями, patchnogrid — с раскраской, но без линий каркаса, patchcontour — раскраска с линиями равного уровня.

Цвет трехмерного графика может задаваться (как и для двумерного) параметром color=c, где с — цвет (оттенки цвета перечислялись ранее). Возможно еще два алгоритма задания цвета:

HUE — алгоритм с заданием цвета в виде color=f(x,y);

RGB — алгоритм с заданием цвета в виде color=[exprr,exprg,exprb], где выражения exprr, exprg и exprb задают относительную значимость (от 0 до 1) основных цветов (красного — exprr, зеленого — exprg и синего — exprb)

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

8.3.4. Построение фигур в различных системах координат

Как отмечалось, вид графика трехмерной поверхности существенно зависит от выбора координатной системы. Рис. 8.11 показывает пример построения нелинейного конуса в цилиндрической системе координат. Для задания такой системы координат используется параметр coords=cylindrical.

Рис. 8.11. Нелинейная цилиндрическая поверхность

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

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

Рис. 8.12. Построение шарообразной поверхности в сферическом системе координат

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

8.3.5. Графики параметрически заданных поверхностей

На рис. 8.13 показано построение простого тороида — цилиндра, свернутого в кольцо. Здесь также использован прием удаления части фигуры, что делает ее представление более наглядным и красочным. Кроме того, введены параметры, задающие функциональную окраску.

Рисунок 8.13 дает полное и наглядное представление об этой фигуре — причем не только снаружи, но и изнутри.

Рис. 8.13. Тор с функциональной окраской поверхности

8.3.6. Масштабирование трехмерных фигур и изменение углов их обзора

Полезно обратить внимание на параметр масштаба scaling=constrained, явно введенную в документ рис. 8.13. Ее можно было бы и не вводить, поскольку этот параметр изначально задается по умолчанию. Она выравнивает масштабы представления фигуры по осям координат, обычно используется по умолчанию и позволяет снизить до минимума геометрические искажения фигур — тор, например, при этом виден как круглая труба, свернутая в кольцо. У таких графиков есть специфический недостаток — они занимают малую часть окна вывода.

Задание параметра scaling=unconstrained означает отказ от равного масштаба по осям. График при этом увеличивается в размерах, но становятся заметны его искажения по осям координат. В итоге он тор превращается в толстую сплющенную трубу с эллиптическим сечением (рис. 8.14).

Рис. 8.14. Тор, построенный с применением значения параметра scaling=unconstrained

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

В Maple есть способ явно задать углы обзора с помощью параметра orientation=[theta, phi], где theta и phi — углы, через которые задаются параметрические уравнения трехмерной фигуры или поверхности. Рисунок 8.15 дает пример такого задания фигуры, которую можно назвать «квадратным» тором.

Рис. 8.15. «Квадратный» тор, представленный под заданными углами обзора

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

8.3.7. Занимательные фигуры — трехмерные графики

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

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

Рис. 8 16. Тор с сечением в виде шестиконечной звезды

На рис. 8.17 показан еще один тор. На этот раз он круглого сечения, но сверху к снизу имеет вид пятиконечной звезды.

Рис. 8.17. Тор круглого сечения в виде пятиконечной звезды

Быстрое (не в смысле ускорения самого построения, а лишь в смысле более быстрою задания построения графиков) построение трехмерных графиков обеспечивает функция smartplot3d.

8.3.8. Построение ряда трехмерных фигур на одном графике

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

Рис. 8.18. Пример построения двух трехмерных фигур, пересекающихся в пространстве

8.4. Работа с графическими структурами

8.4.1. Работа с графическими структурами двумерной графики

Функции PLOT и PLOT3D (с именами, набранными большими буквами) позволяют создавать графические структуры, содержащие ряд графических объектов s1, s2, s3 и т.д. Каждый объект может представлять собой точку или фигуру, полигон, надпись и т.д., позиционированную с высокой точностью в заданной системе координат. Координатные оси также относятся к графическим объектам. Важно отметить, что функции PLOT и PLOT3D одновременно являются данными, описывающими графики. Их можно записывать в виде файлов и (после открытия файлов) представлять в виде графиков. Особые свойства этих функций подчеркиваются их записью прописными буквами.

Графическая структура двумерной графики задается в виде

PLOT(s1, s2, s3. о);

где s1, s2, s3 … — графические объекты (или элементарные структуры — примитивы), о — общие для структуры параметры).

Основными объектами являются:

• POINTS([x1,y1],[x2,y2],…[xn,yn]) — построение точек, заданных их координатами;

• CURVES([[x11,y11],…[x1n,y1n]], [[x21,y21],…[x2n,y2n]],… [[xm1,ym1],…[xmn,ymn]]) — построение кривых по точкам;

• POLYGONS([[x11,у11],…[х1n,y1n]], [[х21,у21],…[х2n,у2n]],…[[xm1,ym1],…[xmn,ymn]]) — построение замкнутой области-полигона (многоугольника, так как последняя точка должна совпадать с первой);

• ТЕХТ([х,у],`string`,horizontal,vertical) — вывод текстовой надписи `string`, позиционированной в точке с координатами [х,у], с горизонтальной или вертикальной ориентацией. Параметр horizontal может иметь значения ALIGNLEFT или ALIGNRIGHT, указывающие, в какую сторону (влево или вправо) идет надпись. Аналогично, параметр vertical может иметь значения ALIGNABOVE или ALIGNBELOW, указывающие в каком направлении (вверх или вниз) идет надпись.

При задании графических объектов (структур) s1, s2, s3 и т.д. можно использовать описанные выше параметры и параметры, например, для задания стиля построения — STYLE (POINT, LINE, PATCH, PATCHNOGRID); толщины линий — THICKNESS (кроме координатных осей); символа, которым строятся точки кривых — SYMBOL (BOX, CROSS, CIRCLE, POINT, DIAMOND и DEFAULT); стиля линий — LINESTYLE; цвета — COLOR (например, COLOR(HUE,0) для закраски непрерывной области), типа шрифта — FONT; вывода титульной надписи — TITLE(string); имени объекта — NAME(string); стиля координатных осей — AXESSTYLE (BOX, FRAME, NORMAL, NONE или DEFAULT) и т.д.

Следует отметить, что параметры в графических структурах задаются несколько иначе — с помощью круглых скобок. Например, для задания шрифта TIMES ROMAN с размером символов 16 пунктов надо записать FONT(TIMES, ROMAN, 16), для задания стиля координатных осей в виде прямоугольника — AXES-STYLE (BOX) и т.д.

На рис. 8.19 показан пример графических построений при использовании основных структур двумерной графики.

Рис. 8.19. Пример использования двумерных структур

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

8.4.2. Работа с графическими структурами трехмерной графики

Графические структуры трехмерной графики строятся функцией PLOT3D:

PLOT3D(s1,s2,s3. о)

В качестве элементарных графических структур можно использовать уже описанные выше объекты POINTS, CURVES, POLYGONS и TEXT — разумеется, с добавлением в списки параметров третьей координаты. Пример такого построения дан на рис. 8.20.

Рис 8.20 Пример создания структуры трехмерной графики

Кроме того, могут использоваться некоторые специальные трехмерные структуры. Одна из них — структура GRID:

GRID(a..b,c..d,listlist) — задание поверхности над участком координатной плоскости, ограниченной отрезками [a, b] и [с, d], по данным, заданным переменной-списком listlist:=[[z11,…z1n], [z21,…z2n],…[zm1…zmn]] с размерностью n×m. Заметим, что эта переменная задает координату z для равноотстоящих точек поверхности.

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

Рис. 8.21. Пример задания графической структуры типа GRID

Еще один тип трехмерной графической структуры — это MESH:

MESH(listlist) — задание трехмерной поверхности по данным списочной переменной listlist, содержащей полные координаты всех точек поверхности (возможно задание последней при неравномерной сетке).

Обычная форма задания этой структуры следующая:

MESH([[[x11, y11, z11], . [x1n, y1n, z1n]], [[x21, у21, z21], . [x2n, y2n, z2n]], . [[xm1, ym1, zm1] . [xmn, ymn, zmn>]])

Пример задания такой структуры представлен на рис. 8.22.

Рис. 8.22. Пример задания графической структуры типа MESH

Описанные структуры могут использоваться и в программных модулях. Много таких примеров описано в книгах, поставляемых с системой Maple.

8.5. Применение графики пакета plots

8.5.1. Пакет plots и его возможности

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

Warning, the name changecoords has been redefined

[animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, display, display3d, fieldplot, fieldplot3d, gradplot, gradplot3d, graphplot3d, implicitplot, implicitplot3d, inequal, interactive, listcontplot, listcontplot3d, listdensityplot, listplot, listplot3d, loglogplot, logplot, matrixplot, odeplot, pareto, plotcompare, pointplot, pointplot3d, polarplot, polygonplot, polygonplot3d, polyhedra_supported, polyhedraplot, replot, rootlocus, semilogplot, setoptions, setoptions3d, spacecurve, sparsematrixplot, sphereplot, surfdata, textplot, textplot3d, tubeplot]

Ввиду важности этого пакета отметим назначение всех его функций:

• animate — создает анимацию двумерных графиков функций;

• animate3d — создает анимацию трехмерных графиков функций;

• animatecurve — создает анимацию кривых;

• changecoords — смена системы координат;

• complexplot — построение двумерного графика на комплексной плоскости;

• complexplot3d — построение трехмерного графика в комплексном пространстве;

• conformal — конформный график комплексной функции;

• contourplot — построение контурного графика,

• contourplot3d — построение трехмерного контурного графика;

• coordplot — построение координатной системы двумерных графиков;

• coordplot3d — построение координатной системы трехмерных графиков;

• cylinderplot — построение графика поверхности в цилиндрических координатах;

• densityplot — построение двумерного графика плотности;

• display — построение графика для списка графических объектов;

• display3d — построение графика для списка трехмерных графических объектов;

• fieldplot — построение графика двумерного векторного поля;

• fieldplot3d — построение графика трехмерного векторного поля;

• gradplot — построение графика двумерного векторного поля градиента;

• gradplot3d — построение графика трехмерного векторного поля градиента;

• implicitplot — построение двумерного графика неявной функции;

• implicitplot3d — построение трехмерного графика неявной функции;

• inequal — построение графика решения системы неравенств;

• listcontplot — построение двумерного контурного графика для сетки значений;

• listcontplot3d — построение трехмерного контурного графика для сетки значений;

• listdensityplot — построение двумерного графика плотности для сетки значений;

• listplot — построение двумерного графика для списка значений:

• listplot3d — построение трехмерного графика для списка значений;

• loglogplot — построение логарифмического двумерного графика функции;

• logplot — построение полулогарифмического двумерного графика функции;

• matrixplot — построение трехмерного графика со значениями Z, определенными матрицей;

• odeplot — построение двумерного или трехмерного графика решения дифференциальных уравнений;

• pareto — построение диаграммы (гистограммы и графика линиями);

• pointplot — построение точками двумерного графика;

• pointplot3d — построение точками трехмерного графика;

• polarplot — построение графика двумерной кривой в полярной системе координат;

• polygonplot — построение графика одного или нескольких многоугольников с вершинами, задаваемыми списками их координат;

• polygonplot3d — построение одного или нескольких многоугольников в пространстве;

• polyhedraplot — построение трехмерного многогранника;

• replot — перестроение графика заново;

• rootlocus — построение графика корней уравнения с комплексными неизвестными;

• semilogplot — построение графика функции с логарифмическим масштабом по оси абсцисс;

• setoptions — установка параметров по умолчанию для двумерных графиков;

• setoptions3d — установка параметров по умолчанию для трехмерных графиков;

• spacecurve — построение трехмерных кривых;

• sparsematrixplot — построение двумерного графика, отличных от нуля значений матрицы;

• sphereplot — построение графика трехмерной поверхности в сферических координатах;

• surfdata — построение трехмерного графика поверхности по численным данным;

• textplot — вывод текста на заданное место двумерного графика;

• textplot3d — вывод текста на заданное место трехмерного графика;

• tubeplot — построение трехмерного графика типа «трубы».

Среди этих функций надо отметить, прежде всего, средства построения графиков ряда новых типов (например, графиков в комплексной плоскости, в виде линий равного уровня, векторных полей и т.д.), а также средства объединения различных графиков в один. Особый интерес представляют две первые функции, обеспечивающие анимацию как двумерных (animate), так и трехмерных графиков (animate3d). Этот пакет вполне заслуживает описания в отдельной книге. Но, учитывая ограниченный объем данной книги, мы рассмотрим лишь несколько характерных примеров его применения. Заметим, что для использования приведенных функций нужен вызов пакета, например, командой with(plots)

8.5.2. Построение графиков функций в полярной системе координат

В пакете plots есть функция для построения двумерных (2D) графиков в полярной системе координат. Она имеет вид polarplot(L,o), где L — объекты для задания функции, график которой строится, и о — необязательные параметры. На рис. 8.23 сверху представлен пример построения графика с помощью функции polarplot.

Рис. 8.23. Графики, построенные с помощью функций polarplot и implicitplot

В первом примере для большей выразительности опущено построение координатных осей, а график выведен линией удвоенной толщины. График очень напоминает лист клена, весьма почитаемого в Канаде и ставшего эмблемой СКМ Maple.

8.5.3. Импликативная графика

В математике часто встречается особый тип задания геометрических фигур, при котором переменные х и у связаны неявной зависимостью. Например, окружность задается выражениемх²+y²=R², где R — радиус окружности. Для задания двумерного графика такого вида служит функция импликативной графики:

implicitplot(eqn,х=а..b,у=с..d,options)

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

8.5.4. Построение графиков линиями равного уровня

Графики, построенные с помощью линий равного уровня (их также называют контурными графиками) часто используются в картографии. Эти графики получаются, если мысленно провести через трехмерную поверхность ряд равноотстоящих плоскостей, параллельных плоскости, образованной осями X и Y графика. Линии равных высот образуются в результате пересечения этих плоскостей с трехмерной поверхностью.

Для построения таких графиков используется функция contourplot, которая может использоваться в нескольких форматах:

contourplot(expr1, х=а..b, у=с..d)

contourplot(f,a..b,c..d)

contourplot([exprf,exprg,exprh],s=a..b,t=c..d)

contourplot([f,g,h],a..b,c..d)

contourplot3d(expr1,x=a..b,y=c..d)

contourplot3d(f,a..b,c..d)

contcurplot3d([exprf, exprg, exprh], s=a..b, t=c..d)

contourplot3d([f,g,h],a..b,c..d)

Здесь f, g и h — функции; expr1 — выражение, описывающее зависимость высоты поверхности от координат x и y: exprf, exprg и exprh — выражения, зависящие от s и t, описывающие поверхность в параметрической форме; а и b — константы вещественного типа; c и d — константы или выражения вещественного типа; х, у, s и t — имена независимых переменных.

На рис. 8.24 показано построение графика линиями равного уровня для одной функции. Параметр filled=true обеспечивает автоматическую функциональную окраску замкнутых фигур, образованных линиями равного уровня. Порою это придает графику большую выразительность, чем при построении только линии равного уровня.

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

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

Функция contourplot позволяет строить и графики ряда функции. Пример такого построения показан на рис. 8.25. Множество окружностей на этом рисунке создается четырьмя поверхностями, заданными функциями с1, с2, c3 и с4.

Рис. 8.25. Пример построения графиков многих функций линиями равного уровня

Обратите внимание, что на многих графиках Maple по умолчанию вписывает легенду, то есть список линий с обозначениями. Иногда (как, например, на рис. 8.25), этот список оказывается просто некстати. Легенду можно убрать, расширив заодно место для графика, сняв флажок Show Legend в контекстном меню Legend правой клавиши мыши (это меню видно на рис. 8.25). Заодно запомните, что легенду можно редактировать, выполнив команду Edit Legend.

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

8.5.5. График плотности

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

densityplot(expr1, х=а..b,у=с..d)

densityplot(f,a..b,c..d)

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

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

Рис. 8.26. Графики плотности и поля векторов

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

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

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

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

fieldplot(f, r1, r2)

fieldplot(f, r1, r2, . )

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

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

8.5.7. Трехмерный график типа implicitplot3d

Трехмерные поверхности также могут задаваться уравнениями неявного вида. В этом случае для построения их графиков используется функция implicitplot3d:

implicitplot3d(expr1,х=а..b,y=c..d,z=p..q,)

implicitplot3d(f,a..b,c..d,p..q, )

На рис. 8.27 показаны два примера построения любопытных объемных фигур с помощью функции implicitplot3d.

Рис. 8.27. Примеры применения функции implicitplot3d

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

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

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

На рис. 8.28 показана одна из таких фигур. Она поразительно напоминает раковину улитки. Функциональная окраска достигнута доработкой графика с помощью панели форматирования — она, как и контекстное меню правой клавиши мыши, показана на рис. 8.28.

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

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

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

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

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

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

Рис. 8.30. Построение поля в трехмерном пространстве с помощью векторов

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

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

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

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

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

8.5.11. Визуализация сложных пространственных фигур

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

Рис. 8.32. Тор с обмоткой — толстой спиралью

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

Рис. 8.33. Тор с тонкой обмоткой

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

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

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

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

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

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

8.5.12. Новая функция сравнения двух зависимостей от комплексного аргумента

В пакет Plots СКМ Maple 9.5 введена новая функция для сравнения двух зависимостей f(z) и g(z) комплексного аргумента z. Функция может использоваться в нескольких формах:

plotcompare(f(z), g(z), z = a+c*I..b+d*I, options);

plotcompare(f(z) = g(z), . );

plotcompare(f, g, a+c* I..b+d*I, options);

plotcompare(f=g, . );

Здесь a, b, c, d — константы реального типа. Функция на одном рисунке строит графики действительной и мнимой частей зависимостей f(z) и g(z). С помощью опций можно менять цветовую гамму рисунков, их ориентацию в пространстве и др. характеристики графиков. В справке по данной функции дается множестве примеров ее применения, так что ограничимся одним, показанным на рис. 8.36.

Рис. 8.16. Пример графического сопоставления двух зависимостей от комплексного аргумента

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

8.6. Динамическая графика

8.6.1. Анимация двумерных графиков

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

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

animatecurve(F, r, . )

Эта функция просто позволяет наблюдать медленное построение графика. Формат ее применения подобен используемому в функции plot.

При вызове данной функции вначале строится пустой шаблон графика. Если активизировать шаблон мышью, то в строке главного меню появляется меню Animation. Меню Animation содержит команды управления анимацией. Такое же подменю появляется и в контекстном (рис. 8.37).

Рис. 8.37. Пример анимационного построения графика функцией animatecurve

Указанное подменю содержит следующие команды анимации:

• Play — запуск построения графика;

• Next — выполнение следующего шага анимации;

• Backward/Forward — переключение направления анимации (назад/вперед);

• Faster — ускорение анимации;

• Slower — замедление анимации;

• Continiuus/Single cycle — цикличность анимации.

При исполнении команды Play происходит построение кривой (или нескольких кривых). В зависимости от выбора команд Faster или Slower построение идет быстро или медленно. Команда Next выполняет один шаг анимации — построение очередного фрагмента кривой. Переключатель Backward/Forward позволяет задать направление построения кривой — от начала к концу или от конца к началу. Построение может быть непрерывным или циклическим в зависимости от состояния позиции Continiuus/Single cycle в подменю управления анимацией. При циклической анимации число циклов задается параметром frames=n.

8.6.2. Проигрыватель анимированной графики

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

1. Поле координат перемещающейся точки графика.

2. Остановка анимации

3. Пуск анимации

4. Переход к следующему кадру (фрейму).

5. Установка направления анимации от конца в начало.

6. Установка направления анимации из начала в конец (по умолчанию).

7. Уменьшение времени шага анимации.

8. Увеличение времени шага анимации.

9. Установка одиночного цикла анимации.

10. Установка серии циклов анимации.

Итак, кнопки проигрывателя по существу повторяют команды подменю управления анимацией.

Нажав кнопку пуска (с треугольником, острием обращенным вправо), можно наблюдать изменение вида кривой для функции sin(х)/(х). Другие кнопки управляют характером анимации. Проигрыватель дает удобные средства для демонстрации анимации, например, во время занятий со школьниками или студентами.

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

Более обширные возможности анимации двумерных графиков обеспечивает функция animate:

animate(F, х, t)

animate(F, x, t, o)

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

Рисунок 8.38 показывает применение функции animate.

Рис. 8.38. Анимация функции sin(i*x)/(i*x) на фоне неподвижной синусоиды

В документе рис. 8.38 строятся две функции — не создающая анимации функция sin(x) и создающая анимацию функция sin(i*x)/(i*x), причем в качестве переменной t задана переменная i. Именно ее изменение и создает эффект анимации. Проигрыватель анимационных клипов и меню, описанные выше, могут использоваться для управления и этим видом анимации. Обратите внимание на вызов графических функций в этом примере командой with и на синтаксис записи этих функций.

К сожалению, картинки в книгах всегда неподвижны и воспроизвести эффект анимации невозможно. Можно лишь представить несколько текущих кадров анимации. Представленная на рис. 8.38 картина соответствует последнему кадру анимации.

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

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

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

animate3d(F,х,у,t,o)

Здесь F — описание функции (или функций); х, у и t — диапазоны изменения переменных х, у и t. Для задания числа кадров N надо использовать необязательный параметр о в виде frame=N. Примеры применения этой функции мы рассмотрим позже.

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

Рис. 8.39. Подготовка трехмерного анимационного графика

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

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

8.6.5. Анимация с помощью параметра insequence

Еще один путь получения анимационных рисунков — создание ряда графических объектов p1, p2, p3 и т.д. и их последовательный вывод с помощью функций display или display3d:

display(p1,p2,р3. nsequence=true)

display3d(p1,p2,p3. insequence=true)

Здесь основным моментом является применение параметра insequence=true. Именно он обеспечивает вывод одного за другим серии графических объектов р1, р2, p3 и т.д. При этом объекты появляются по одному, и каждый предшествующий объект стирается перед появлением нового объекта. Этот метод анимации мы рассмотрим чуть позже.

8.7. Графика пакета plottools

8.7.1. Примитивы пакета plottools

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

arc arrow circle cone cuboid

curve cutin cutout cylinder disk

dodecahedron ellipse ellipticArc hemisphere hexahedron

hyperbola icosahedron line octahedron pieslice

point polygon rectangle semitorus sphere

tetrahedron torus

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

Большинство примитивов пакета plottools имеет довольно очевидный синтаксис. Например, для задания дуги используется примитив arc(c, r, а..b,…), где с — список с координатами центра окружности, к которой принадлежит дуга, r — радиус этой окружности, а..b — диапазон углов. На месте многоточия могут стоять обычные параметры, задающие цвет дуги, толщину ее линии и т.д. Конус строится примитивом cone(c,r,h…), где с — список с координатами центра, r — радиус основания, h — высота и т.д. В необходимых случаях стоит проверить синтаксис того или иного примитива с помощью справки по пакету plottools.

8.7.2. Пример применения двумерных примитивов пакета plottools

На рис. 8.40 показано применение нескольких примитивов двумерной графики для построения дуги, окружности, закрашенного красным цветом эллипса и отрезка прямой. Кроме того, на графике показано построение синусоиды.

Рис. 8.40 Примеры применения примитивов двумерной графики пакета plottools

Во избежание искажений пропорций фигур надо согласовывать диапазон изменения переменной x. Обычно параметр scalling=constrained выравнивает масштабы и диапазоны по осям координат, что гарантирует отсутствие искажений у окружностей и других геометрических фигур. Однако при этом размеры графика нередко оказываются малыми. Напоминаем, что эту параметр можно задать и с помощью подменю Projection.

8.7.3. Пример построения стрелок

Рис. 8.41 иллюстрирует построение средствами пакета plottools четырех разноцветных стрелок, направленных в разные стороны. Цвет стрелок задан списком цветов с, определенным после команды загрузки пакета. Для построения стрелок используется примитив arrow с соответствующими параметрами. Обратите внимание на наклон стрелок — он задан прибавлением 1 к аргументу тригонометрических функций. Уберите 1 и стрелки расположатся под прямым углом.

Рис. 8.41. Построение разноцветных стрелок, направленных в разные стороны

8.7.4. Пример построения диаграммы Смита

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

Рис. 8.42. Построение диаграммы Смита

Обратите внимание на то, что начиная с рис. 8.42 мы не указываем загрузку пакета plottools, поскольку она уже была проведена ранее. Однако надо помнить, что все примеры этого раздела предполагают, что такая загрузка обеспечена. Если вы использовали команду restart или только что загрузили систему Maple 9 то для исполнения примера рис. 8.42 и последующих примеров надо исполнить команду with(plottools).

8.7.5. Примеры применения трехмерных примитивов пакета plottools

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

Рис. 8.43 показывает построение цилиндра и двух граненых шаров. Цилиндр строится примитивом cylinder, а граненые шары — примитивом icosahedron.

Рис. 8.43. Построение цилиндра и двух граненых шаров

Другой пример (рис. 8.44) иллюстрирует построение на одном графике двух объемных фигур, одна из которых находится внутри другой фигуры. Этот пример демонстрирует достаточно корректное построение вложенных фигур.

Рис. 8.44. Построение двух объемных фигур

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

Рис. 8.45. Примеры применения примитивов трехмерной графики пакета plottools

Построение еще одной забавной трехмерной фигуры — «шкурки ежа» — демонстрирует рис. 8.46. В основе построения лежит техника создания полигонов.

Рис. 8.46. Построение трехмерной фигуры — «шкурки ежа»

Построение фигур, очень напоминающих улитки, показано на рис. 8.47. При построении этих фигур используется функция tubeplot. Обратите внимание на то, что строятся две входящие друг в друга «улитки».

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

Наконец, на рис. 8.48 показано построение фигуры — бутылки Клейна. Фигура задана рядом своих фрагментов, определенных в процедуре cleinpoints. Эта процедура является еще одним наглядным примеров программирования графических построений с помощью Maple-языка.

Рис. 8.48. Построение фигуры «бутылка Клейна»

С другими возможностями этого пакета читатель теперь справится самостоятельно или с помощью данных справочной системы. Много примеров построения сложных и красочных фигур с применением пакета plottools можно найти в Интернете на сайте фирмы Maple Software, в свободно распространяемой библиотеке пользователей системы Maple и в книгах по этой системе.

8.7.6. Построение графиков из множества фигур

В ряде случаев бывает необходимо строить графики, представляющие собой множество однотипных фигур. Для построения таких графиков полезно использовать функцию повторения seq(f,i=a..b). На рис. 8.49 показано построение фигуры, образованной вращением прямоугольника вокруг одной из вершин.

Рис. 8.49. Построение фигуры, образованной вращением прямоугольника

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

8.7.7. Анимация двумерной графики в пакете plottols

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

Рис. 8.50. Пример анимации двумерной графики

Этот пример наглядно показывает возможности применения анимации для визуализации достаточно сложных физических и математических закономерностей. Перспективы применения системы Maple 9.5 в создании виртуальных физических и иных лабораторий трудно переоценить. Хотя большие возможности в этой области представляет СКМ MATLAB с пакетом расширения Simulink.

8.7.8. Анимация трехмерной графики в пакете plottools

Хорошим примером 3D-анимации является документ, показанный на рис. 8.51. Представленная на нем процедура springPlot имитирует поведение упругой системы, первоначально сжатой, а затем выстреливающей шар, установленный на ее верхней пластине. Упругая система состоит из неподвижного основания, на котором расположена упругая масса (например, из пористой резины), и верхней пластины.

Рис. 8.51. Имитация отстрела шара сжатой упругой системой

Управление анимацией, реализованной средствами пакета plottools, подобно уже описанному ранее. Последний пример также прекрасно иллюстрирует возможности применения Maple 9.5 при математическом моделировании различных явлений, устройств и систем.

8.8. Расширенные средства графической визуализации

8.8.1. Построение ряда графиков, расположенных по горизонтали

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

Рис. 8.52. Пример расположения трех графиков в строке вывода по горизонтали

Пример достаточно прост и нагляден, так что читатель может пользоваться данной возможностью всегда, когда ему это нужно.

8.8.2. Конформные отображения на комплексной плоскости

В пакете plots имеется функция для конформные отображений:

conformal(F, r1, r2, о)

где F — комплексная процедура или выражение; r1, r2 — области, задаваемые в виде а..b или name=a..b; о — управляющие параметры. Таким образом, для построения нужного графика достаточно задать нужное выражение и области изменения r1 и r2. Пример построения конформных изображений для трех выражений дан на рис. 8.53.

Рис. 8.53. Конформное отображение на комплексной плоскости графиков трех зависимостей

Средства конформного отображения в Maple 9.5/10, к сожалению, остаются рудиментарными и вряд ли достаточными для специалистов в этой области математики.

8.8.3. Построение сложных фигур в полярной системе координат

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

Рис. 8.54 демонстрирует две из таких фигур. Первая это семейство из 10 кардиоид разного размера, построенных функцией polarplot. Параметр scalling=constrained обеспечивает правильное отображение фигур — каждая кардиоида вписывается в огибающую ее невидимую окружность. Размер кардиоид задается значением параметра а.

Рис. 8.54. Семейство кардиоид на одном графике и крест из пяти фигур на комплексной плоскости

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

По образу и подобию приведенных фигур читатель может опробовать свои силы в создании новых красочных фигур в полярной системе координат. Некоторые из них поразительно напоминают снежинки, картинки в калейдоскопе и изображения морских звезд. Если убрать параметр color=black, введенный ради черно-белой печати картинок в книге, то можно усилить красочность фигур за счет их разноцветной окраски.

8.8.4. Построение сложных фигур импликативной графики

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

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

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

8.8.5. Визуализация поверхностей со многими экстремумами

Maple дает прекрасные возможности для визуализации поверхностей, имеющих множество пиков и впадин, другими словами, экстремумов. Рисунок 8.56 показывает задание «вулканической» поверхности с глубокой впадиной, окруженной пятью пиками. Здесь полезно обратить внимание на способ задания такой поверхности f(a, b, с) как функции трех переменных a, b и с. Он обеспечивает индивидуальное задание координат каждого экстремума и его высоты (отрицательной для впадины).

Рис. 8.56. Построение графика поверхности с множеством экстремумов

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

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

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

При построении этого рисунка также используются функциональная окраска и построение контурных линий.

8.9. Визуализация решений уравнений и неравенств

8.9.1. Визуализация решения систем линейных уравнений

Системы линейных уравнений могут решаться как с помощью функции solve, так и с помощью матричных методов. Замечательной возможностью функции solve является возможность решения относительно ограниченного числа переменных. Например, систему линейных уравнений с переменными х, у, z, t и v можно решить относительно только первых трех переменных х, у и z. При этом решения будут функциями относительно переменных t и v и можно будет построить наглядный график решения (рис. 8.58).

Рис. 8.58. График, представляющий решения системы линейных уравнений

На рис. 8.58 система задана пятью равенствами: e1, e2, e3, е4 и е5. Затем функцией solve получено вначале решение для всех переменных (для иллюстрации), а затем для трёх переменных х, у и z. Для получения решения в виде списка, а не множества, как в первом случае для всех переменных, использована функция подстановки subs. После этого функция plot3d строит плоскость решения в пространстве.

8.9.2. Визуализация решения систем неравенств

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

inequal(ineqs, xspec, yspec, options)

Параметры этой функции следующие: ineqs — одно или несколько неравенств или равенств или список неравенств или равенств; xspec — xvar=min_x..max_x; yspec — yvar=min_y..max_y; о — необязательные параметры, например, указывающие цвета линий, представляющих неравенства или равенства, и областей, образованных этими линиями и границами графика. Пример применения этой функции представлен на рис. 8.59.

Рис. 8.59. Пример графической интерпретации решения системы неравенств

Обратите внимание на задание цветов: optionsfeasible задает цвет внутренней области, для которой удовлетворяются все неравенства (равенства), optionsopen и optionsclosed задают цвета открытых и закрытых границ областей графика, optionsexcluded используется для цвета внешних областей. График дает весьма наглядную интерпретацию действия ряда неравенств (или равенств).

8.9.3. Иллюстрация итерационного решения уравнения f(x)=х

Классическим методом решения нелинейных уравнений является сведение их к виду х = f(x) и применение метода простых итераций хk = s(хk-1) при заданном значении x0. Приведем пример такого решения:

> f := х ->3*ln(x+1);

f := х→3ln(x + 1)

> for k from 1 to 16 do x||k := evalf(f(x||(k-1))); od;

x1 := 1.216395324 x2 := 2.387646445 x3 : = 3.660406248 x4 : = 4.617307866 x5 := 5.177557566 x6 : = 5.462768931 x7 := 5.598173559 x8 := 5.660378631 x9 := 5.688529002 x10 := 5.701181910 x11 := 5.706851745 x12 := 5.709388956 x13 := 5.710523646 x14 := 5.711030964 x15 := 5.711257755 x16 := 5.711359134

Нетрудно заметить, что значения х_k в ходе итераций явно сходятся к некоторому значению. Проведем проверку решения, используя встроенную функцию solve:

> f(x) = х; solve(%, х);

3 ln(x + 1) = х 0, -3LambertW(-1, -1/3e (-1/3) )-1

Результат выглядит необычно — помимо довольно очевидного корня х=0 значение другого корня получено в виде специальной функции Ламберта. Впрочем, нетрудно найти и его численное значение:

0., 5.711441084

К нему и стремятся промежуточные результаты решения. Однако как сделать процесс решения достаточно наглядным? Обычно для этого строят графики двух зависимостей — прямой х и кривой f(x) — и наносят на них ступенчатую линии перемещения точки х_k. Специальной функции для графиков подобного рода Maple не имеет. Однако можно составить специальную процедуру для их построения. Ее листинг, взятый из примера, описанного в пакете обучения системе Maple — PowerTools —представлен на рис. 8.60.

Рис. 8.60. Иллюстрация процесса итераций

На рис. 8.60 представлено задание процедуры rec_plot( f1, а, b, х0).

Параметрами этой процедуры являются: f1 — функция f(x): а и b — пределы изменения х при построении графика; х0 — значение х, с которого начинаются итерации. Используя эту процедуру можно наблюдать график, иллюстрирующий итерационный процесс. Он представлен на рис. 8.60 снизу.

Нетрудно заметить, что для данной функции процесс итераций, хотя и не очень быстро, но уверенно сходится к точке пересечения прямой у=х и кривой y=f(x). Вы можете, меняя зависимость f(x), провести исследования сходимости уравнений x=f(x).

8.9.4. Визуализация ньютоновских итераций в комплексной области

Теперь займемся довольно рискованным экспериментом — наблюдением ньютоновских итераций с их представлением на комплексной плоскости. На рис. 8.61 задана функция f(z) комплексного аргумента. Проследить за поведением этой функции на комплексной плоскости в ходе ньютоновских итераций в соответствии с выражением z=f(z) позволяет графическая функция complexplot3d из пакета plots.

Рис. 8.61. Наблюдение за процессом ньютоновских итераций в трехмерном пространстве

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

8.10. Визуализация геометрических построений

8.10.1. Визуализация теоремы Пифагора

Средства Maple 9.5 весьма удобны для визуализации геометрических построений.

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

В этом примере используется функция построения многоугольников. Наглядность построений усиливается выбором разной цветовой окраски треугольников и квадрата.

Рис. 8.62. Графическая иллюстрация к теореме Пифагора

8.10.2. Визуализация построения касательной и перпендикуляра

В ряде геометрических построений нужно строить касательную и перпендикуляр к кривой, отображающей произвольную функцию f(x) в заданной точке х=а. Рисунок 8.63 поясняет, как это можно сделать. Линии касательной Т(х) и перпендикуляра N(x) определены аналитически через производную в заданной точке.

Рис. 8.63. Построение касательной и перпендикуляра к заданной точке графика функции f(x)

Во избежание геометрических искажений положения касательной и перпендикуляра при построении графика функцией plot надо использовать параметр scaling=constrained.

8.10.3. Визуализация вычисления определенных интегралов

Часто возникает необходимость в геометрическом представлении определенных интегралов в виде алгебраической суммы площадей, ограниченных кривой подынтегральной функции f(x), осью абсцисс х и вертикалями х=a и х=b (пределами интегрирования). При этом желательно обеспечение закраски верхней и нижней (отрицательной и положительной) площадей разными цветами, например, зеленым для верхней площади и красным для нижней. Как известно, численное значение определенного интеграла есть разность этих площадей.

К сожалению, в Maple 8 нет встроенной функции, явно дающей такое построение. Однако ее несложно создать. На рис. 8.64 представлена процедура a_plot, решающая эту задачу. Параметрами процедуры являются интегрируемая функция f(x) (заданная как функция пользователя), пределы интегрирования а и b и пределы слева am и справа bm, задающие область построения графика f(x).

Рис. 8.64. Графическое представление определенного интеграла

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

8.11. Расширенная техника анимации

8.11.1. Анимирование разложения функции в ряд Тейлора

Анимация позволяет повысить наглядность некоторых математических операций. Обычно для этого используются функции animate и animate3d пакета расширения plots, загружаемые командой with(plots). Пример этого представлен на рис. 8.65. Этот документ внизу показывает кадр анимированного процесса улучшения приближения синусоидальной функции рядом с различным числом членов (и порядком последнего члена ряда).

Рис. 8.65. Анимационная демонстрация приближения синусоиды рядом с меняющимся числом членов

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

8.11.2. Анимирование разложения импульса в ряд Фурье

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

Здесь мы расширим представление об анимации и рассмотрим не вполне обычный пример — наблюдение в динамике за гармоническим синтезом некоторой произвольной функции f(x) на отрезке изменения x от 0 до 1. Значения функции f(x) могут быть одного знака или разных знаков. В этом примере можно наблюдать в динамике синтез заданной функции рядом Фурье с ограниченным числом синусных членов (гармоник) — до 1, 2, 3. N. На рис. 8.66 представлен документ, реализующий такое разложение и затем синтез для пилообразного линейно нарастающего импульса, описываемого выражением f(x)=-1+2*x. На графике строится исходная функция и результат ее синтеза в динамике анимации.

Рис. 8.66. Один из первых стоп-кадров анимации разложения импульса в ряд Фурье

Рис. 8.67 показывает завершающий стоп-кадр анимации, когда число гармоник N равно 30. Нетрудно заметить, что такое число гармоник в целом неплохо описывает большую часть импульса, хотя в его начале и в конце все еще заметны сильные отклонения.

Рис. 8.67. Второй (завершающий) кадр анимации

Для f(x) = 1 строится приближение для однополярного импульса с длительностью 1 и амплитудой 1, при f(x)=x приближение для пилообразного линейно нарастающего импульса, при f(x)=x^2 — приближение для нарастающего по параболе импульса, при f(x) = signum(x-1/2) — приближение для симметричного прямоугольного импульса — меандра и т.д. Фактически можно наблюдать анимационную картину изменения формы импульса по мере увеличения числа используемых для синтеза гармоник. Выбор используемого числа гармоник осуществляет амплитудный селектор — функция af(t, k), основанная на применении функции Хевисайда.

Самым интересным в этом примере оказывается наблюдение за зарождением и эволюцией эффекта Гиббса — так называют волнообразные колебания на вершине импульса, связанные с ограничением числа гармоник при синтезе сигнала. С ростом числа гармоник эффект Гиббса не исчезает, просто обусловленные им выбросы вблизи разрывов импульса становятся более кратковременными. Амплитуда импульсов может достигать 9% от амплитуды перепадов сигнала, что сильно ухудшает приближение импульсных сигналов рядами Фурье и вынуждает математиков разрабатывать особые меры по уменьшению эффекта Гиббса.

8.11.3. Визуализация всех фаз анимации разложения импульса в ряд Фурье

Можно ли наблюдать одновременно все фазы анимации? Можно! Для этого достаточно оформить анимационную картину, созданную функцией animate, в виде отдельного графического объекта, например, g, после чего можно вывести все его фазы оператором display. Это и иллюстрирует рис. 8.68. На этот раз задано f(x)=signum(x-1/2) и N=25. Таким образом, рассматриваются симметричные прямоугольные импульсы — меандр. У каждого рисунка координатные оси с делениями удалены параметром axes=none.

Рис. 8.68. Иллюстрация получения всех кадров анимации двумерного графика

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

При внимательном просмотре рис. 8.68 заметно, что, после некоторого периода установления, фазы анимационной картинки практически повторяются. Это связано с известным обстоятельством — установившийся спектр меандра содержит только нечетные гармоники. Поэтому, к примеру, вид спектрального разложения при 22 гармониках будет тот же, что и при 21 гармонике, при 24 гармониках тот же, что при 23 и т.д. Однако, эта закономерность проявляется только при установившемся (стационарном) спектре.

8.11.4. Наблюдение кадров анимации поверхности

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

Как и для случая анимации двумерного графика, большой интерес представляет построение всех фаз анимации на одном рисунке. Делается это точно так же, как в двумерном случае. Это иллюстрирует рис. 8.69. На нем представлены 8 фаз анимации трехмерной поверхности cos(f*x*y/3), представленной функцией трех переменных t, х и у. При этом изменение первой переменной создает фазы анимации поверхности.

Рис. 8.69. Фазы анимации трехмерной поверхности

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

8.11.5. Иные формы применения функций анимации

Наряду с описанной выше формой применения функций анимации animate и animate3d возможны и иные формы их применения. Ограничимся парой примеров такого применения. В приведенном ниже примере анимация импликативного графика заключается в превращении окружности в наклонный эллипс:

plots[animate](implicitplot, [х^2+А*х*y+y^2=2, x=-2..2, y=-2..2,

grid=[50,50]], A=0..1, frames=25);

Для этого задано 25 кадров (фреймов) изменения параметра А от 0 до 1. В другом примере анимация задает деформацию мембраны в виде квадрата с жестко закрепленными границами:

> plots[animate](plot3d, [sin(А)*ехр(-х^2-y^2), х=-2..2, y=-2..2],

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

8.12. Некоторые другие возможности графики

8.12.1. Смена осей координат, масштабирование и сдвиг графиков

Иногда возникает необходимость сменить координаты к какого-то графика или изменить масштаб по определенной оси. Первая задача может несколько озадачить пользователя. Однако она легко решается средствами графики пакета stats — см. примеры на рис. 8.70. Масштабирование и сдвиг решаются проще — введением масштабных коэффициентов и констант сдвига. Но и эти задачи еще проще решаются указанными выше средствами графики.

Рис. 8.70. Примеры смены координат и масштабирования графиков

В первом примере рис. 8.70 используется функция xyexchange(p) меняющая оси у графического объекта р. Во втором случае используется функция xscale(k,p) масштабирующая объект по оси х в k раз. А в третьем примере используется функция сдвига объекта xshift(xs,p) на расстояние xs и масштабирования zscale(k,p) в k раз по оси z. О других функциях подпакета статистической графики можно судить по названиям его функций.

8.12.2. Построение стрелок в пространстве

В пакет plots была введена новая функция построения стрелок в пространстве arrow. Она задается в виде:

arrow(u,[v,]opts)

arrow(U,opts)

Построение стрелок задается по одномерными массивами координат начала стрелок и их направления u и v или двумерным массивом U, которые могут быть представлены векторами, списками или множествами. Вид стрелок задается параметром opts, который может иметь значения shape, length, width, head_width, head_length или plane и задает вид стрелок (форму, длину, ширину и т.д.). Детали задания параметров можно найти в справке по данной функции. Рис. 8.71 дает наглядное представление о ее возможностях.

Рис. 8.71. Построение стрелок с помощью функции arrow

8.12.3. Построение сложных комбинированных графиков

Maple 9.5 позволяет строить достаточно сложные комбинированные графики, содержащие различные графические и текстовые объекты. Пример построения такого графика представлен на рис. 8.72.

Рис. 8.72. Пример построения сложного объекта, состоящего из 8 графических и текстовых объектов

Представленный на рис. 8.72 объект задает построение восьми графических объектов от р1 до р8. Среди них цилиндр, две пересекающие его плоскости и иные (в том числе текстовые) объекты. Обратите внимание на способ вывода этих объектов функцией display3d. Этот пример показывает, что с помощью графических программных средств Maple 9 можно строить достаточно замысловатые графики, которые могут использоваться для визуализации тех или иных геометрических и иных объектов.

8.12.4. Визуализация дифференциальных параметров кривых

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

Для такого анализа особенно удобен новый пакет Calculus 1, включенный в пакет расширения Student. На рис. 8.73. показано применение функции FunctionChart для визуализации дифференциальных параметров кривой, которая представляет собой сложную функцию. По умолчанию анализ ведется в интервале изменения х от -10 до +10. Экстремальные точки помечаются ромбиком, точки перегиба крестиком, нули кружочками, а области кривых — заливкой цветом.

Рис. 8.73. Анализ и визуализация сложной функции, заданной функцией пользователя

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

Функция FunctionChart может использоваться с многочисленными опциями, существенно влияющими на вид рисунка — рис. 8.74. В данном случае анализируется функция sin(x)/x.

Рис. 8.74. Визуализация функции sin(x)/x

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

8.12.5. Анимация колебаний мембраны

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

Рис. 8.75. Задание поверхности — мембраны

На рис. 8.76 задана упругая поверхность мембраны, закрепленной по периметру. Мембрана имеет ряд выпуклостей и впадин, переходящих друг в друга. Начальный вид мембраны представлен на рис. 8.76. Там же показано контекстное меню мыши, с помощью которой можно запустить анимацию — в том числе по кадрам.

Рис. 8.76. Организация анимации мембраны и ее начальное положение

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

Рис. 8.77. Промежуточный кадр анимации поверхности мембраны

8.13. Визуализация поверхностей и параметров их полей

8.13.1. Визуализация экстремумов поверхности

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

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

Рисунок 8.78 иллюстрирует поиск трех локальных экстремумом поверхности, представленной функцией двух переменных. Экстремумы — минимумы ищутся с помощью функции fsolve по нулям частных производных по поверхности, вычисляемым функцией cliff пакета VectorCalculus. Это расширяет методы поиска экстремумов функций двух переменных.

Рис. 8.78. Визуализация поиска локальных минимумов поверхности

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

8.13.2. Визуализация поля функции и вихрей

На рис. 8.79 представлена визуализация стрелками поля функции F и вихря F_curl. Заинтересованному читателю нетрудно разобраться с тем, какие стрелки представляют эти графические объекты — к сожалению для их представления в виде черно-белого рисунка книги пришлось отказаться от цветового выделения стрелок, которое существенно повышает наглядность подобных графиков.

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

8.13.3. Визуализация поверхности и дивергенции ее поля

На другом рисунке (рис. 8.80) стрелками представлена трехмерная поверхность F, а сплошными линиями дивергенция ее поля, предварительно вычисленная в приведенном фрагменте документа.

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

Эта техника визуализации может быть распространена и на другие характеристики поверхностей и полей.

8.13.4. Визуализация теоремы Стокса

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

Рис. 8.81. Иллюстрация теоремы Стокса

8.13.5. Визуализация поля электрических зарядов

Рассмотрим поле двух точечных единичных зарядов, расположенных на расстоянии 0,25 м друг от друга. Нас интересует визуализация картины электрического поля между ними для случая, когда заряды равны по величине и противоположны по знаку. Воспользуемся упрошенной формулой для вычисления потенциала любой точки (х, у) из которой удален множитель 1/4πε. Рисунок 8.82 показывает применение этой формулы для построения трехмерного графика распределения потенциала для двух зарядов (положительного и отрицательного), расположенных на расстоянии 0,25 (единицы условные).

Рис. 8.82. Расчет и построение графика нормированного распределения поля двух зарядов противоположных знаков

Потенциал зарядов pot(x,y) представляет поверхность с пиком для положительного заряда в точке (0, 0) и впадиной в точке (0,25,0). Ввиду упрощения выражения для заряда точных данных эта зависимость не несет и используется для качественных представлений.

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

Рис. 8.83. Контурные графики электрического поля и его градиента

Иногда полезно отслеживать изменение графика электрического поля при изменении одного из зарядов. Рис. 8.84 показывает пример построения такого анимационного графика при изменении величины правого заряда с отрицательного на положительный. Представлен один из кадров анимации.

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

Большое число других примеров на вычисление параметров полей и визуализацию их можно найти в размещенных в Интернете (на сайте корпорации Waterloo Maple) пакетах Calculus IV и V.

8.14. Новые средства графики Maple 10

8.14.1. Новые средства двумерной графики в Maple 10

Возможности двумерной графики в системах Maple 9.5 и 10 практически равноценны. В Maple 10 расширены возможности форматирования двумерных графиков с помощью средств позиции Plot меню и контекстного меню правой клавиши мыши. Введена новая опция gridlines для функции plot, позволяющая выводить (в том числе раздельно по осям) линии масштабной сетки. Пример ее применения был представлен на рис. 1.49. Эта опция и новые формы синтаксиса функции plot доступны только при стандартном интерфейсе Maple 10 — при классическом интерфейсе они просто не работают.

8.14.2. Новые средства трехмерной графики в Maple 10

Незначительному улучшению подверглись средства трехмерной графики. Введена новая опция glossiness (лоск, глянец) улучающая вид графика при окраске поверхности. Ее влияние иллюстрирует рис. 8.85 (сверху).

Рис. 8.85. Трехмерная графика в Maple 10

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

8.14.3. Графические наброски в Maple 10

В Maple 10 введены новые графические объекты — наброски (sketch — набросок). Они напоминают бумагу, разлинованную в клетку, на которой можно рисовать электронным карандашом (pencil) или распылителем (Highlighter). Есть также стиралка Eraser. Вставка наброска (см. рис. 8.86) выполняется командой sketch в позиции меню Insert. Средства работы с набросками сосредоточены в специальной позиции меню Sketch, представленной на рис. 8.86 в открытом виде.

Рис. 8.86. Пример вставки наброска и рисования в нем

Те же самые средства имеются в контекстном меню правой клавиши мыши. Для редактирования набросков служит команда Canvas Style. которая выводит окно редактирования, представленное на рис. 8.87. В окне можно задавать вывод вертикальным и горизонтальных линий сетки, устанавливать расстояние между ними (шаг) и изменять цвета объектов наброска — линий разметки и фона. Окно выбора цвета показано также на рис. 8.87.

Рис. 8.87. Окно редактирования набросков (слева) и окно установки цвета (справа)

Команда Stroke Styles… открывает окно установки стиля карандаша и распылителя, показанное на рис. 8.88 с открытой вкладкой карандаша. Помимо заведомо определенных стилей можно задать свой собственный стиль и установить для него толщину линии и ее цвет. Аналогичные средства для распылителя есть на второй вкладке этого окна.

Рис. 8.88. Окно установки стилей карандаша и распылителя

Представленные выше графики записаны в файл newg_m10. Применение графических набросков разнообразит документы системы Maple 10

  • Альтернативная медицина
  • Астрономия и Космос
  • Биология
  • Военная история
  • Геология и география
  • Государство и право
  • Деловая литература
  • Домашние животные
  • Домоводство
  • Здоровье
  • История
  • Компьютеры и Интернет
  • Кулинария
  • Культурология
  • Литературоведение
  • Математика
  • Медицина
  • Научная литература — прочее
  • Педагогика
  • Политика
  • Психология
  • Религиоведение
  • Сад и огород
  • Самосовершенствование
  • Сделай сам
  • Спорт
  • Технические науки
  • Транспорт и авиация
  • Учебники
  • Физика
  • Философия
  • Хобби и ремесла
  • Шпаргалки
  • Эзотерика
  • Юриспруденция
  • Языкознание

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

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