
- •Maple - cистемa аналитических вычислений для математического моделирования
- •Оглавление
- •Введение
- •Объекты, типы переменных.
- •Команды Maple
- •Выражения
- •Синтаксис
- •Стандартная библиотека
- •Операции с полиномами
- •Преобразование формул
- •Решение алгебраических уравнений
- •Решение дифференциальных уравнений
- •Линейная алгебра
- •Матричные и векторные операции.
- •Математические операции с матрицами и векторами.
- •Команды работы со структурой матриц и векторов.
- •Программирование в среде Maple.
- •Условный оператор
- •Операторы цикла.
- •Процедуры.
- •Команды ввода/вывода.
- •Графика в maple.
- •Двумерная графика.
- •Вывод графиков функций одной переменной:
- •Вывод параметрически заданной кривой:
- •Графический вывод набора точек :
- •Трехмерная графика.
- •Приложение. Список пакетов и библиотек.
- •Приложение. Список имен математических функций.
- •Приложение. Пункты меню Windows-версии
- •Литература
Выражения
Используя переменные и знаки арифметических и других операций, можно составлять выражения. Знаками операций являются:
+ ≈ сложение,
≈ ≈ вычитание,
* ≈ умножение,
/ ≈ деление,
^ возведение в степень,
! ≈ факториал,
abs() ≈ абсолютная величина
Порядок арифметических операций соответствует стандартному математическому.
В булевских операциях также применяются знаки >, <, >=, <=, <>, =.
Синтаксис
В Maple используются три вида кавычек. Двойными кавычками ≈ " ≈ обозначается предшествующий вывод. Пара двойных кавычек отсылает к предпоследнему результату. Предшественник предпоследнего результата обозначается тремя кавычками. Обратные кавычки ≈ ` ≈ указывают на строку символов, причем две обратных кавычки кряду позволяют включить саму кавычку в строку. Прямые кавычки ≈ ' ≈ (апостроф) нужны для предупреждения ошибки в том случае, если для выполнения команды используется переменная, получившая значение. Например, последовательность команд
> i:=3;
i=3
> sum(i^2,i=1..6);
приведет к ошибке, поскольку Maple воспримет второй аргумент в sum как 3=1..6. Применение кавычек даст правильный результат
> sum('i^2','i'=1..6);
91
Здесь и далее в тексте знаком '>' отмечено приглашение ввода.
Для построения Maple-предложений нужны: знак равенства "=" при формировании уравнений и знак присвоения ":=" при задании значений переменных. Различие в их использовании можно проиллюстрировать следующим примером решения системы двух уравнений:
> sols:=solve({x-y=1,x+2*y=2},{x,y});
В результате получается
sols:= (x=1,y=2)
Как видно, получаемые решения представляют собой набор уравнений для указанных переменных. Если решений несколько, то выдаются все найденные решения (заметим, что это не обязательно все решения). Переменные x и y, однако, остаются не назначенными (неопределенными). Для того, чтобы их определить, нужно воспользоваться командй assign:
> assign(sols); x;
1
Стандартная библиотека
Большинство команд, выполняющих основные математические операции - интегрирование, дифференцирование, разложение в ряды, суммирование и пр. - находится в стандартной библиотеке, т.е. доступно без указания имени библиотеки. Мнемоника этих команд и назначение параметров отражают их математический смысл и не требуют дополнительных пояснений. В данном пособии приводятся наиболее употребимые в задачах математического моделирования команды.
Список команд из стандартной библиотеки для удобства пользования приведем в алфавитном порядке.
array(1..n,list) Создает вектор (одномерный массив) из n элементов списка list.
asympt(expr,var) Вычисляет асимптотическое разложение по переменной var выражения expr относительно бесконечности.
chebyshev(expr,var=a..b) Вычисляет Чебышевское разложение выражения expr по переменной var на интервале [a..b].
coeftayl(expr,var=a,n) Вычисляет коэффициент при члене степени n для разложения в ряд Тейлора выражения expr по переменной var в точке a.
conjugate(cmplx) вычисляет комплексно-сопряженное для комплексной величины cmplx.
convert(list,array) Переводит список list в одномерный массив array с теми же элементами.
convert(list,vector) Переводит список list в вектор vector с теми же элементами.
convert(list1,...,listn ,matrix) Переводит списки list1,...,listn в матрицу.
convert(s,poly) Преобразует список s в полином poly.
convert(s,ratpoly) Преобразует список s в полиномиальное выражение.
convert(poly,series) Преобразует полином poly в список series.
copy(M) Создает копию массива M (матрицы или вектора)
D(fun) Дифференциальный оператор от функции fun.
Det(M) Вычисляет определитель матрицы M
diff(expr,var) Дифференцирует выражение expr по переменной var.
Eigenvals(M) Вычисляет собственные значения квадратной матрицы M с числовыми элементами.
eval(array) Выдает содержимое массива array.
evalc(cmplx) Вычисляет значение комплексного выражения cmplx.
evalf(expr) Вычисляет значение выражения expr в десятичной форме.
evalf(int(expr,var=a..b)) Вычисляет определенный интеграл при помощи подстановки пределов в случае успешного аналитического интегрирования или находит значение интеграла численно.
evalf(Int(expr,var=a..b)) Вычисляет определенный интеграл численно. Сначала при помощи метода Гаусса, затем формул Ньютона-Котеса.
'evalf/int'(expr,var=a..b)) Вычисляет определенный интеграл численно при помощи формул Ньютона-Котеса.
evalm(expr) Вычисляет матричное выражение expr с матрицами в качестве операндов и допустимыми операторами &*, +, -, ^.
example(comm) Показывает пример использования команды comm.
extrema(expr,eqn,var) находит точки относительного экстремума выражения expr относительно переменной var при ограничении eqn.
frac(expr) Вычисляет дробную часть действительного выражения expr.
Im(cmplx) Вычисление мнимой части выражения cmplx.
int(expr,var) Вычисляет неопределенный интеграл для выражения expr относительно переменной var.
iscont(expr,var=a..b) Определяет, неперерывно ли выражение expr на отрезке [a,b] для переменной var.
length(str) Возвращает длину строковой переменной str.
limit(expr,var=a) Вычисляет предел выражения expr при var->a.
max(exp1,..expn) Максимум из выражений exp1,...,expn.
maximize(expr) Вычисляет максимальное значение выражения expr по всем переменным.
maximize(expr,{var1,..,varn}) Вычисляет максимальное значение выражения expr по переменным var1,...,varn.
min(exp1,..expn) Минимум из выражений exp1,...,expn.
minimize(expr) Вычисляет минимальное значение выражения expr по всем переменным.
minimize(expr,{var1,..,varn}) Вычисляет минимальное значение выражения expr по переменным var1,..., varn.
mtaylor(expr,[var1,...,varn],n) Вычисляет разложение Тейлора выражения expr по переменным var1,...,varn до величин порядка n.
op(Command) Выдает внутреннюю структуру нереализованных операций Command (Diff, Limit, Product, Sum).
op(series) Выдает внутреннюю структуру списка series и обеспечивает доступ к его операндам.
order(s) Определяет порядок усечения последовательности s.
Order:=n Назначает величину глобальной переменной Order, задающей число членов в разложениях.
poisson(expr,[var1,...,varn],n) Вычисляет разложение Тейлора выражения expr по переменным var1,...,varn до величин порядка n.
polar(cmplx) Преобразование комплексного выражения cmplx в тригонометрическую форму.
product('expr','var'=a..b) Находит произведение выражений expr, вычисленных при значениях var из интервала [a,b].
Re(cmplx) Действительная часть выражения cmplx.
round(expr) Округление значения действительного выражения expr.
series(expr,var=a) Вычисляет разложение выражения expr по переменной var в окрестности точки a. Порядок разложения определяется глобальной константой Order.
singular(expr) Определяет сингулярности выражения expr.
sum('expr','var'=a..b) Находит сумму выражений expr, вычисленных при значениях var из интервала [a,b].
trunc(expr) Целая часть значения выражения expr.
taylor(expr,var=a,n) Вычисляет отрезок ряда Тейлора для выражения expr по переменной var в окрестности точки a до членов порядка n.
type(expr,kind) Определяет, является ли выражение expr объектом kind. Здесь вместо kind нужно использовать const, form, laurent, scalar, series, taylor.
Часть команд стандартной библиотеки описана в других разделах.