- •1. Общие сведения. Ядро и интерфейс пакета Математика
- •2. Точные и приближенные вычисления. Численные и аналитические операции
- •3. Рабочий документ и ячейки. Основные команды
- •4. Сеанс работы в системе Математика. Глобальный характер данных
- •5. Правила написания. Основные встроенные функции
- •Примеры выражений
- •Формы обращений к функциям
- •Нескольких аргументов
- •6. Функции комплексного аргумента
- •Логические операторы
- •7. Циклические операции
- •7.1. Цикл For
- •7.2. Цикл While
- •7.3. Цикл Do
- •7.4. Функция If
- •7.5. Логические выражения
- •8. Функции пользователя. Составление программ
- •8.1. Функции пользователя. Описания типов аргументов
- •8.2. Немедленное и задержанное присваивание
- •8.3. Альтернативные определения функций
- •8.4. Составление программ. Глобальные и локальные переменные
- •8.5. Прерывание вычислений
- •9. Списки
- •9.1. Создание списков. Обращение к элементам списков
- •9.2. Преобразование списков
- •9.3. Матричные функции
- •10. Массивы
- •1 1. Основные типы графиков
- •11.1. Двумерные графики
- •11.2. Функции Show, GraphicsRow, GraphicsGrid. Графические примитивы.
- •11.3. Изображения трехмерных объектов
- •11.4. Анимация
- •12. Функция Manipulate
- •13. Аналитические операции. Интерполяция. Решение уравнений
- •13.1. Аналитические операции
- •13.2. Интерполяция
- •13.3. Решение алгебраических уравнений
- •13.4. Решение дифференциальных уравнений
- •14. Преобразование выражений
- •14.1. Стандартная форма выражений
- •Примеры выражений
- •14.2. Обращение к элементам выражений
- •14.3. Представление выражения в виде дерева
- •14.4. Операции преобразования выражений
- •14.5. Повторное выполнение операций
- •14.6. Анонимные функции
- •14.7. Функциональные операторы Outer и Inner
- •Вопросы для повторения
- •Массивы.
- •Функция Manipulate.
- •Упражнения
11.3. Изображения трехмерных объектов
Т ипы графиков.
Plot3D[{f1[x,y], f2[x,y], …}, {x, xmin, xmax}, {y, ymin, ymax}] – график одной или нескольких поверхностей f1, f2, … . По умолчанию по каждой координате берется 25 отсчетов.
ParametricPlot3D[{{x1(t, u), y1(t, u), z1(t, u)}, {x2(t, u), y2(t, u), z2(t, u)}, …},
{t, tmin, tmax}, {u, umin, umax}]
– график одной или нескольких поверхностей, заданных параметрически.
P arametricPlot3D[{{x1(t, ), y1(t, ), z1(t, )}, {x2(t, ), y2(t, ), z2(t, )}, …}, {t, tmin, tmax}]
– график одной или нескольких пространственных кривых, заданных параметрически.
ContourPlot[f, {x, xmin, xmax}, {y, ymin, ymax}] – поверхность представляется с помощью линий уровня, подобно тому, как изображается рельеф на географических картах.
Для трехмерных графиков опция ViewPoint -> {x, y, z} определяет координаты точки, из которой наблюдается трехмерный объект. Установка по умолчанию: ViewPoint -> {1.3, -2.4, 2}.
Варианты выбора точки наблюдения:
{0, -2, 0} – прямо спереди;
{0, -2, -2} – спереди и сверху;
{-2, -2, 0} – из левого угла и т.д.
Используются также следующие обозначения: Above (положительные значения z), Below (отрицательные значения z), Back (положительные значения y), Left (отрицательные значения x), {Left, Top} и т.д.
Пример 11.5
На рис. 11.6. приведены два изображения поверхности z[x, y] = x2 – x y2. Программа построения графиков:
In[ ] := z[x_,y_]=x^2-y^2 x;
a=Plot3D[z[x,y],{x,-2.5,4},{y,-2,2},
ColorFunction(Hue[1-#]&),AxesLabel{x,y,z},
BoxRatios{1,1,0.5},BoxedFalse];
b=ContourPlot[z[x,y],{x,-2.5,4},{y,-2,2},
ColorFunction(Hue[1-#]&),AxesTrue,AxesLabel{x,y}];
Show[GraphicsRow[{a,b}]]
Опция ColorFunction -> (Hue[ 1- # ] &) делает графики цветными.
Пример 11.6
Следующий рисунок (рис. 11.7.) представляет собой параметрический график конуса и секущей плоскости:
In[ ] := ParametricPlot3D[ {
{Cos[fi Pi](1-z/2), Sin [fi Pi](1-z/2), z}, (* – Конус *)
{-1+fi, -1+z, 0.5+z/2}}, (* – Секущая плоскость *)
{fi, 0, 2}, {z, 0, 2}, AxesLabel -> {x, y, z}]
Пример 11.7 Нарисуем свертывающуюся спираль (рис. 11.8). Для построения пространственной кривой используем параметрический график, в котором координаты зависят только от одного параметра t. По оси x отложим функцию , а по оси z – производную x(t). Добавим прямую линию – ось спирали.
I n[ ] := a=0.05; x[t_]=E^-(a t) Cos[t]; z[t_]=x'[t];
ParametricPlot3D[ { {x[ t], t, z[t]}, (* Спираль *)
{0, t, 0}}, (* Ось спирали *)
{t, 0, 8Pi}, Boxed ->False , BoxRatios ->{1, 6.2, 1},
ViewPoint -> {0.7, -3, 0.6} ,
AxesLabel -> {"x[t]", "t", "z[t]" }]
Пакет Математика включает ряд трехмерных примитивов. Информация о них содержится в разделе Graphics3D.
Пример 11.8. Построим график конуса и сферы (рис. 11.9):
In[ ]:= Graphics3D[ {Cone[], Magenta, Sphere[{3, 0, 0}]} ]
11.4. Анимация
П акет Математика позволяет “оживлять” построенные графики; для этого нужно выделить их и выбрать команду меню Graphics – Rendering – Animate Selected Graphics (Ctrl+Y). Графики будут поочередно сменять друг друга на экране монитора. При анимации может оказаться полезной команда выравнивания графиков: Graphics – Rendering – Align Selected Graphics.
Другой способ построения анимированных объектов – использование функции Animate.
Функция Animate[expr, {u, umin, umax}] создает анимацию выражения expr, в котором параметр u меняется от umin до umax. Может быть указан шаг изменения параметра: {u, umin, umax, du}. При этом выражение expr может быть любым, не обязательно рисунком.
Пример 11.8. Команда
In[ ]:= Animate[{n, Prime[n]}, {n, 1, 50, 1}]
выводит на экран поочередно простые числа вместе с порядковым номером числа.
Пример 11.9. Написанная ниже программа выводит на экран анимированный график – катящееся колесо. Точка обода колеса вычерчивает циклоиду. Один из кадров графика показан на рис. 11.10.
In[ ]:= tp=0.2; Animate[ ParametricPlot[
{ {Cos[Pi/2-t*4Pi]+4Pi*tp, Sin[Pi/2-t*4Pi]+1}, (*Колесо *)
{Cos[Pi/2-t*4Pi*tp]+4Pi*t*tp, Sin[Pi/2-t*4Pi*tp]+1}, (*Циклоида*)
{4Pi*tp+Cos[Pi/2-4Pi*tp]*t, 1+Sin[Pi/2-4Pi*tp]*t}, (*Радиус*)
{-1+t*(4Pi+2), 0} , (*Рельс*)
{0, t*2.5} (*Начало координат*)
}, {t, 0, 1},
AspectRatio -> Automatic, PlotRange -> All ],
{tp, 0, 1, 0.01}, AnimationRunning -> False]