- •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.
- •Упражнения
10. Массивы
В пакете Математика имеется возможность создавать массивы из символических элементов. Эти массивы можно использовать в аналитических формулах, которые будут справедливы при любом выборе компонент массивов.
Команда Array[a, m] создает вектор из m элементов.
Команда Array[a, {m, n}] создает матрицу .
Для обращения к элементам массивов служат те же команды, что и для обращения к элементам списков.
Пример 10.1
Создадим двумерный массив и выведем его на экран в виде матрицы:
In[ ] := M=Array[b,{2,2}]; M//MatrixForm
Out[ ] =
Выведем на экран второй элемент первой строки, затем изменим первую строку и выведем на экран полученную матрицу:
In[ ] := {M[[1,2]], M[[1]]={2, s}; M//MatrixForm}
Out[ ] =
Создадим транспонированную матрицу. Для транспонированной матрицы найдем евклидову норму первой строки, определитель и след:
In[ ] := {B=Transpose[M]; B//MatrixForm, Norm[B[[1]]], Det[B], Tr[B]}
Out[ ] =
Создадим вектор V и найдем произведение матрицы М на вектор по правилу "строка на столбец", а также поэлементное произведение матрицы на вектор:
In[ ] := {V=Array[a,2]; MatrixForm[V], M.V//MatrixForm, MЧV//MatrixForm}
Out[ ] =
1 1. Основные типы графиков
11.1. Двумерные графики
Plot[{f1, f2, …}, {x, xmin, xmax}] – график одной или нескольких функций, заданных формулами, на отрезке от xmin до xmax.
ListPlot[{{x1, y1}, {x2, y2},…}] – график списка точек с координатами (x, y). Если x принимает натуральные значения: xi=i, i=1, 2, 3, …, – то значения x могут быть опущены.
ListPlot[{list1, list2, …}] – график нескольких списков точек.
Размер точек можно задать с помощью опции PlotStyle, например PlotStyle->PointSize[0.03]. Точки могут быть соединены; для этого используется опция Joined -> True. Если точки соединены, то действие опции PointSize отменяется.
ParametricPlot[{{x1(t), y1(t)}, {x2(t), y2(t)}, …}, {t, tmin, tmax}] – график функций, заданных параметрически.
PolarPlot[{r1, r2, ..}, {, min, max}] – график функций в полярных координатах.
Для того, чтобы построить двумерный график, например, график функции Sin[x] на отрезке [0, 2,достаточно написать простую команду:
In[ ] := p1=Plot[Sin[x], {x, 0, 2Pi}]
Полученный график показан на рис. 11.1. Данному графику присвоено имя p1. Имя не является обязательным элементом команды. Имя нам нужно только для того, чтобы рассмотреть свойства графика. Напишем команду:
In[ ] := Options[p1]
Запустив команду на счет, получим список значений опций, установленных по умолчанию:
Out[]=
{AspectRatio->1/GoldenRatio, Axes->True, AxesOrigin->{0,0}, PlotRange->{{0, 2Pi},{-1.,1.}},
PlotRangeClipping->True, PlotRangePadding->{Scaled[0.02],Scaled[0.02]}}
Помимо установок по умолчанию имеется много дополнительных возможностей для изменения свойств графиков. Подробное описание всех опций можно найти в разделе Справка (Help). Остановимся только на некоторых из опций.
PlotRange – задает диапазон изменения координаты y. Например, PlotRange->All – вывод всего диапазона изменений y, PlotRange->{0, 1} – вывод на график только значений y в пределах от 0 до 1.
A spectRatio – задает отношение длины оси y к длине оси x. По умолчанию, это отношение задается в пропорции “золотого сечения”. Это приводит к тому, что круг превращается в эллипс, квадрат – в прямоугольник и т.п. Отношение длин осей может быть задано произвольным числом. Если задана опция AspectRatio –> Automatic, то отношение длин осей подсчитывается автоматически из условия равенства масштабов по обеим осям. Значение AspectRatio –> Automatic необходимо использовать, если требуется сохранить неискаженные пропорции изображаемых фигур.
Замечание. Для параметрических, полярных графиков и примитивов по умолчанию устанавлены одинаковые масштабы по осям координат.
Опция GridLines –> Automatic вводит линии сетки.
Некоторые из опций изучим в процессе их применения.
Пример 11.1.
Напишем команду для вывода графика двух функций:
In[ ] := Plot[ {Sin[x], Cos[x]}, {x, 0, 2Pi}, PlotStyle ->{RGBColor[1, 0, 0], RGBColor[0, 0, 1]},
PlotRange ->{-1.3, 1.3}, Prolog ->Text["Sin[x]",Scaled[{0.28, 0.96}]],
Epilog -> Text["Cos[x]",Scaled[{0.51, 0.04}]], AxesLabel ->{x, None},
Ticks->{ {{/2, "/2"}, {, ""}, {3/2, "3/2"},
{2, "2"}}, {{-1, "-1"}, {1, "1"}} },
AxesStyle->{{RGBColor[1,0,1],Thickness[0.01]},{RGBColor[0,1,1],Thickness[0.01]}},
Filling->{1->Axis}]
Изображаемые функции запишем в виде списка: {Sin[x], Cos[x]}. Раскрасим графики этих функций в разный цвет, используя опцию PlotStyle и функцию RGBColor. Выберем диапазон изменения координаты y от -1.3 до 1.3 так, чтобы осталось место для подписей к графикам. Для создания подписей используем опции Prolog и Epilog и функцию Text. Второй аргумент функции Text задает координаты центра подписи. Слово Scaled означает, что используются относительные координаты: за единицу принимается размер рисунка вдоль соответствующей оси, а координаты отсчитываются от нижнего левого угла рисунка. С помощью опции AxesLabel поставим метку у оси x. Используя опцию Ticks, промаркируем оси координат. Раскрасим оси координат. С помощью функции Thickness сделаем оси утолщенными. С помощью опции Filling->{1->Axis} заполним фоном пространство между графиком функции Sin[x] и осью x. В итоге получим график, показанный на рис. 11.2.
П ример 11.2.
Построим график двух случайных последовательностей точек:
In[ ]:= ListPlot[{Table[Random[Integer, {0,4}], {15}],
Table[Random[Integer, {0,4}]+2, {15}]},
Joined->True, AspectRatio->Automatic]
Соединим точки отрезками прямых линий (опция Joined->True). График показан на рис. 11.3.