
- •Численные методы и универсальные математические пакеты (Номер занятия в оглавлении равен номеру лабораторной работы. Лабораторные работы состоят из практических заданий из соответствующих занятий)
- •Введение
- •Занятие 1. Теория погрешностей Источники и классификация погрешностей.
- •Приближенные числа.
- •2. Погрешность произведения.
- •3. Погрешность частного.
- •Введение в Maple
- •Константы
- •Переменные, неизвестные и выражения
- •Команды преобразования выражений
- •Упрощение выражения: simplify()
- •Раскрытие скобок в выражении: expand()
- •Разложение полинома на множители: factor()
- •Ограничения на неизвестные: assume()
- •Сложные типы данных
- •Последовательность выражений
- •Списки и множества
- •Внутренняя структура выражений
- •Подстановка и преобразование выражений
- •Практическое задание
- •Занятие 2. Приближение функций
- •Приближение полиномом Тейлора
- •Приближение функий заданных таблицей своих значений
- •Алгебраическое интерполирование
- •Интерполяционный многочлен Лагранжа
- •Многочлены Чебышева
- •Разделенные разности и многочлен Ньютона
- •Решение уравнений, неравенств и их систем
- •Команда solve()
- •Команда fsolve()
- •Решение неравенств
- •Дифференцирование и интегрирование
- •Int(выражение, переменная);
- •Практическое задание 1
- •Практическое задание 2
- •Занятие 3. Построение кривой по точкам
- •Линия, построенная методом наименьших квадратов
- •Метод линеаризации данных для экспоненциальной кривой
- •Нелинейный метод наименьших квадратов
- •Линейный метод наименьших квадратов
- •Интерполирование сплайнами
- •Графика в Maple
- •Команда двумерной графики plot()
- •Двумерные команды пакета plots
- •Несколько советов
- •Пространственная графика, команда plot3d()
- •Трехмерные команды пакета plots
- •Практическое задание 1.
- •Практическое задание 2.
- •Практическое задание 3.
- •Практическое задание 4.
- •Занятие 4. Численное дифференцирование Приближение производной
- •Анимация
- •Двумерная анимация
- •Трехмерная анимация
- •Практическое задание 1
- •Практическое задание 2
- •Занятие 5. Численное интегрирование
- •Квадратурные формулы
- •Основы программирования в Maple
- •If булево_выражение then последовательность_операторов
- •Практическое задание 1.
- •Практическое задание 2.
- •Практическое задание 3.
- •Занятие 6. Решение нелинейных уравнений
- •Метод простой итерации
- •Метод бисекции (деления пополам)
- •Метод Ньютона
- •Процедуры в Maple
- •Практическое задание 1.
- •Практическое задание 2.
- •Практическое задание 3.
- •Практическое задание 4.
- •Занятие 7. Решение систем Линейные системы. Метод Гаусса
- •Пакет LinearAlgebra
- •Основные типы данных
- •Элементарные операции с матрицами и векторами
- •Решение систем линейных уравнений
- •Практическое задание 1.
- •Практическое задание 2
- •Практическое задание 3
- •Занятие 8. Решение дифференциальных уравнений
- •Задача Коши
- •Метод Эйлера
- •Методы Рунге-Кутта
- •Системы дифференциальных уравнений
- •Решение обыкновенных дифференцильных уравнений в Maple
- •Практическое задание 1
- •Практическое задание 2.
- •Практическое задание 3.
Несколько советов
Maple умеет работать с разрывными функциями, имеющими разрывы любого рода. Для задания кусочно-непрерывных функций следует использовать команду piecewise() со следующим синтаксисом:
piecewise(условие1,значение1,условие2,значение,..., условиеn,значениеn,значение-иначе);
Параметры этой команды идут парами и определяют интервал изменения независимой переменной в виде булева выражения условиеn и значение функции на этом интервале значениеn, которое является выражением от независимой переменной. Последний параметр значение-иначе определяет вид функции на оставшихся интервалах вещественной оси. Например, чтобы задать функцию
следует выполнить команду:
> f:=x->piecewise(x<=1,-1,1<x and x<2,x^2,3):
Отобразим график этой функции командой
> plot(f(x),x=0..3,thickness=2);
Maple вычерчивает вертикальные линии в точках разрыва, соединяя значения функции справа и слева от точки разрыва. Чтобы избежать такого некорректного отображения разрывной функции, следует при ее вычерчивании устанавливать значение true опции discont:
> plot(f(x),x=0..3,thickness=2,discont=true);
Графики функций с разрывами второго рода следует строить с обязательным заданием интервала изменения ее значений (интервал по y).
Пространственная графика, команда plot3d()
В Maple подобную процедуру визуализации функции двух переменных выполняет команда plot3d(), которая, как и команда отображения графика функции одной переменной plot(), расположена в стандартной библиотеке, а поэтому доступна пользователю в любой момент. Эта команда позволяет отображать графики функций, заданных как в явном виде, так и в параметрическом виде.
Синтаксис команды plot3d() практически полностью соответствует синтаксису команды plot() с небольшим очевидным дополнением, связанным с наличием второй независимой переменной:
plot3d(expr,x=a..b,у=с..d,опции)
Здесь параметр ехрr представляет алгебраическое выражение или обращение к пользовательской функции двух переменных с диапазонами изменения, определяемыми вторым и третьим параметром, в которых вместо х и у следует задавать имена переменных.
Границы диапазонов представляются числами, хотя для второй независимой переменной они могут быть выражениями, зависящими от первой переменной. В этом случае график функции двух переменных отображается не на прямоугольной области, а на четырехугольной, у которой две противоположные границы являются криволинейными. Например, следующая команда
> plot3d(cos(x)*sin(t),х=-1..1,t=-5..х^2);
отображает график функции на области, у которой одна из границ представлена параболой.
Опции для команд трехмерной графики определяются так же, как и для команд графического отображения на плоскости, в виде уравнения, в левой части которого стоит имя опции, а в правой ее значение. Многие опции команд пространственной графики полностью соответствуют своим двумерным аналогам, правда в некоторых опциях добавлена дополнительная функциональность (смотри, например, опцию color), но есть и специальные опции, отражающие специфику пространственной графики.
Таблица. Некоторые опции команд трехмерной графики
Опция |
Описание |
ambientlight |
Задает цвет внешнего источника интенсивностями его красной, зеленой и синей составляющих, представленными трехэлементным списком вещественных чисел из интервала [0,1]. Эта опция имеет значение при определении пользователем собственной схемы освещенности поверхности. |
axes |
Определяет тип отображаемых осей координат. Эта опция может принимать следующие значения: NORMAL, BOXED, FRAME и NONE |
axesfont |
Задает шрифт для надписей под засечками вдоль осей координат. Значение этой опции аналогично значению опции font |
color |
Задает цвет отображаемой поверхности. Аналогично plot() |
contours |
Определяет количество линий уровня при отображении их на поверхности или список значений отображаемых линий уровня. Значение по умолчанию равно 10 |
coords |
По умолчанию при выводе как явно заданной функции, так и параметрически заданной функции используется декартовая система координат (cartesian), т. е. задаваемое уравнение кривой рассматривается именно в этой системе координат. Данная опция меняет тип системы координат. Возможные значения: cylindrical, spherical, ellipsoidal и т.д. Их описание можно получить в справочной системе Maple с помощью команды ?coords |
filled |
Установка значения данной опции равным true приводит к тому, что область, ограниченная поверхностью и плоскостью ху, отображается как твердое непрозрачное тело и закрашивается в соответствии с используемой цветовой схемой |
font |
Задает шрифт для вывода текста на рисунке. |
grid |
Эта опция определяет прямоугольную равномерную сетку значений независимых переменных отображаемой функции, на которой вычисляются ее значения для построения поверхности и задается в виде двухэлементного списка [m, n], в котором каждый элемент является целым числом, определяющим количество точек по соответствующей координате. По умолчанию используется сетка [25,25] |
gridstyle |
Задает тип отображаемой сетки: составленной из прямоугольников или треугольников на основании вычисленных ее значений в соответствии с установками, определяемыми опцией grid. Она может приниматьодно из двух значений: RECTANGULAR и TRIANGULAR |
labels |
Задание названий осей координат в виде списка [х,у,z]. Параметры х, у и z задаются в виде строк и соответствуют отображаемым названиям трех осей декартовой системы координат. По умолчанию оси не подписываются |
labeldirections |
Эта опция определяет направление отображения названия осей. Аналогично plot() |
labelfont |
Задает шрифт, которым отображаются названия осей координат. |
linestyle |
Определяет тип линии на поверхности. Значением этой опции является целое число n. При n=0 или 1 линии отображаются как сплошные, значение, равное 2, соответствует отображению линий точками, 3 — пунктиром и 4 — штрихпунктиром |
numpoints |
Определяет минимальное количество n вычисляемых точек, по которым строится поверхность (значение по умолчанию равно 625=25^2). Эта опция перекрывает задание сетки опцией grid, определяя ее новые значения по осям независимых переменных, равными равномерно распределенным sqrt(n) точкам в диапазонах изменения независимых переменных |
scaling |
Задает масштаб, в котором отображается поверхность. Аналогично plot(). Возможные значения: CONSTRAINED, UNCONSTRAINED |
shading |
Определяет, какая схема закрашивания применяется при отображении поверхности. Допустимые значения: XYZ, XY, ZGRAYSCALE, Z, ZHUE, NONE. |
style |
Определяет, как будет отображаться поверхность. Допустимые значения: POINT, HIDDEN, PATCH, WIREFRAME или LINE, CONTOUR, PATCHNOGRID, PATCHCONTOUR |
symbol |
Определяет тип символа, которым помечаются точки поверхности функции при опции style=POINT. Может принимать следующие значения: BOX, CROSS, CIRCLE, POINT и DIAMOND |
symbolsize |
Задает размер символа в пунктах. По умолчанию используются символы размером 10 пунктов. |
thickness |
Задает толщину линий на поверхности. Значение является целым числом и изменяется от 0 до 3, соответствуя изменению толщины линии от самой тонкой до самой жирной |
tickmarks |
Определяет число точек, не менее которого должно быть помечено по горизонтальной и вертикальной оси координат. Значение задается в виде списка [l,n,m] |
title |
Определяет строку, которая выводится как заголовок рисунка. |
titlefont |
Определяет шрифт для заголовка рисунка. Значение этой опции аналогично значению опции font |
view |
Определяет минимальное и максимальное значения координаты z, между которыми отображается поверхность, а также диапазоны изменения независимых координат в виде [xmin..xmax, ymin..ymax, zmin..zmax]. |
Командой plot3d() можно отображать параметрически заданные поверхности. Только надо помнить, что для параметризации трехмерной поверхности следует использовать два параметра, т.е. задать три координаты точек поверхности как функции или выражения двух переменных. Синтаксис команды plot3d() в этом случае будет иметь следующий вид:
plot3d([x-expr,y-expr,z-expr],диапазон-парам1,диапазон-парам2,опции)
Пример. Отображение параметрически заданной поверхности
> plot3d( [sin(x),cos(x)*sin(y),sin(y)], x=-Pi..Pi, y=-Pi..Pi,style=hidden, grid=[40,40]);