- •2. Алфавит Maple-языка и его синтаксис. Основные объекты (определение, ввод, действия с ними). Числа. Обыкновенные дроби.
- •3. Основные объекты (определение, ввод, действия с ними). Радикалы. Константы. Переменные, неизвестные и выражения.
- •4. Последовательности, списки, множества. Массивы. Вектора.
- •Создание массивов, векторов и матриц
- •5. Аналитические преобразования. Операции с формулами. Преобразование типов. Операции оценивания.
- •Оценивание выражений
- •6. Работа с последовательностями, списками, множествами. Последовательности с заданным числом членов
- •Основные функции для произведения членов последовательностей
- •7. Работа с массивами, таблицами. Создание Maple-таблиц и их применение
- •Создание массивов, векторов и матриц
- •8. Внутренняя структура объектов Maple. Подстановка и преобразование типов. Преобразования чисел с разным основанием
- •Контроль за типами объектов
- •9. Операции с полиномами. Определение полиномов
- •Выделение коэффициентов полиномов
- •Оценка коэффициентов полинома по степеням
- •Оценка степеней полинома
- •Контроль полинома на наличие несокращаемых множителей
- •Разложение полинома по степеням
- •Вычисление корней полинома
- •Основные операции с полиномами
- •Операции над степенными многочленами с отрицательными степенями
- •10. Решение уравнений и неравенств.
- •11. Математический анализ. Пределы, суммы. Ряды. Пределы
- •Суммы и ряды
- •12. Математический анализ. Исследование функций. Разложение и приближение функций.
- •13. Математический анализ. Дифференцирование функций. Интегрирование. Производные
- •Интегралы
- •14. Обзор пакетов Maple 15. Пакет linalg. Элементарные операции с матрицами и векторами. Состав пакета linalg
- •15. Пакет LinearAlgebra. Элементарные операции с матрицами и векторами. Назначение и загрузка пакета LinearAlgebra
- •Примеры матричных операций с применением пакета LinearAlgebra
- •Методы решения систем линейных уравнений средствами пакета LinearAlgebra
- •16. Решение систем линейных уравнений. Пакет student. Функции пакета student
- •Функции интегрирования пакета student
- •Иллюстративная графика пакета student
- •17. Основы программирования в maple 15. Задание функций пользователя. Задание функции пользователя
- •10.1.2. Конструктор функций unapply
- •Визуализация функции пользователя
- •18. Основы программирования в maple 15.Условные выражения. Циклы. Операторы пропуска и прерывания. Условные выражения
- •Циклы for и while
- •10.2.5. Операторы пропуска и прерывания циклов
- •19. Процедуры функции. Процедуры. Средства отладки процедур, их сохранение и использование (подключение).
- •Графические процедуры
- •Просмотр кодов процедур
- •Оператор возврата значения return
- •Статус переменных в процедурах и циклах
- •Объявления переменных локальными с помощью оператора local
- •Объявления переменных глобальными с помощью слова global
- •Ключи в процедурах
- •Общая форма задания процедуры
- •20. Решение алгебраических уравнений и систем уравнений. Основная функция solve. Решение систем линейных уравнений
- •21. Одиночные нелинейные и тригонометрические уравнения. Решение одиночных нелинейных уравнений
- •Решение тригонометрических уравнений
- •22. Системы нелинейных и трансцендентных уравнений. Решение уравнений в численном виде. Решение систем нелинейных и трансцендентных уравнений
- •Решение в численном виде — функция fsolve
- •23. Решение функциональных, рекуррентных и др. Уравнений. Функция RootOf. Функция RootOf
- •Решение функциональных уравнений
- •Решение рекуррентных уравнений — rsolve
- •24. Решение обыкновенных дифференциальных уравнений и уравнений в частных производных Примеры аналитического решение оду первого порядка
- •Функция pdsolve
- •25. Двумерная графика в системе maple 15. Команда plot(). Функция plot для построения двумерных графиков
- •26. Двумерные команды пакета plots. Двумерные графические структуры Maple.
- •27. Двумерные команды пакета plottols. Анимация двумерных графиков.
- •28. Пространственная графика в Maple. Команда plot3d().
- •Параметры функции plot3d
- •29. Трёхмерные команды пакета plots. Трёхмерные графические структуры Maple.
- •30. Меню для работы с трёхмерной графикой. Трёхмерные команды пакета plottools.
- •31. Символьные преобразования выражений. Команда simplify, expand. Упрощение выражений — simplify
- •Расширение выражений — expand
- •32. Символьные преобразования выражений. Команда factor, collect. Разложение выражений (факторизация) — factor
- •Комплектование по степеням — collect
- •33. Решение тригонометрических уравнений.
- •34. Решение систем линейных уравнений. Решение систем линейных уравнений
- •35. Решение систем нелинейных и трансцендентных уравнений.
- •36. Поиск эсктремумов функции командой solve.
- •37. Поиск эсктремумов функции командой extrema.
- •38. Поиск минимумов и максимумов аналитической функции командами minimize, maximize.
- •39. Работа с функцией из отдельных кусков. Функция piecewise. Работа с функциями piecewise
- •40. Численное решение дифференциальных уравнений. Команда dsolve.
- •II. Вопросы по практике
Интегралы
Для нахождения определенных и неопределенных интегралов в Maple используется функция int, зависящая от двух аргументов, первый из которых представляет собой подынтегральное выражение, а второй - переменную, по которой ведется интегрирование. Если для второй переменной указан диапазон изменения переменной, то Maple ищет определенный интеграл, а в противном случае - неопределенный (возращается одна из первообразных).
> int(sin(x)*x^2, x);
-x2 cos(x) + 2 cos(x) + 2 x sin(x)
> Int(x/(x^2+x+1),x)=int(x/(x^2+x+1),x);
> int(x^3-t*x^2+4*t, x=1..4);
> int(sin(x)/x, x);
Si(x)
Последний интеграл не выражается конечным числом элементарных функций. В таких случаях Maple пытается найти интеграл, используя специальные функции. В приведенном примере это несложно сделать с помощью интегрального синуса. Если же Maple все-таки не сможет взять интеграл в конечном числе элементарных и специальных функций (это не обязательно означает, что он не берется), то результатом вызова функции int будет перевод всей команды в математический формат так, как если бы мы использовали инертную форму функции интегрирования ( Int ).
> g:= int(sin(1/cos(x)), x);
> diff(g, x);
Для численного интегрирования команда int используется в комбинации с функцией evalf . Причем в этом случае неважно, какая форма функции Int используется: активная или инертная.
> evalf(int(sin(x^2), x=1..2)); evalf(Int(cos(x^2), x=1..2));
.4945081882
-.4430627755
14. Обзор пакетов Maple 15. Пакет linalg. Элементарные операции с матрицами и векторами. Состав пакета linalg
Несомненно, что уникальной возможностью системы Maple, как и других систем компьютерной алгебры, является возможность решения задач линейной алгебры в символьном (формульном, аналитическом) виде. Однако такое решение представляет скорее теоретический, чем практический интерес, поскольку даже при небольших размерах матриц (уже при 4–5 строках и столбцах) символьные результаты оказываются очень громоздкими и трудно обозримыми. Они полезны только при решении специфических аналитических задач, например с разреженными матрицами, у которых большинство элементов имеют нулевые значения.
Поэтому разработчики Maple были вынуждены реализовать в своей системе численные методы решения задач линейной алгебры, которые широко используются в основных сферах ее приложения — математическом моделировании систем и устройств, расчетах в электротехнике, механике, астрономии и т.д. Решение задач линейной алгебры в численном виде можно рассматривать как одну из форм визуализации результатов вычислений, относящихся к линейной алгебре.
В ядро Maple, как отмечалось, введены очень скромные и минимально необходимые средства для решения задач линейной алгебры. Основной упор в их реализации сделан на подключаемые пакеты. Основным из них, унаследованным от предшествующих реализаций системы, является пакет решения задач линейной алгебры linalg. Это один из самых обширных и мощных пакетов в области решения задач линейной алгебры. Для их просмотра достаточно использовать команду:
> with(linalg);
Для большинства пользователей системой Maple набор функций пакета оказывается чрезмерно обширным и потому опущен. Укажем, однако, наиболее употребительные функции пакета linalg:
• addcol — добавляет к одному из столбцов другой столбец, умноженный на некоторое число;
• addrow — добавляет к одной из строк другую строку, умноженную на некоторое число;
• angle — вычисляет угол между векторами;
• augment — объединяет две или больше матриц по горизонтали;
• backsub — реализует метод обратной подстановки при решении системы линейных уравнений (см. также forwardsub);
• band — создает ленточную матрицу;
• basis — находит базис векторного пространства;
• bezout — создает Bezout-матрицу двух полиномов;
• BlockDiagonal — создает блок-диагональную матрицу;
• blockmatrix — создает блок-матрицу;
• cholesky — декомпозиция Холесского для квадратной положительно определенной матрицы;
• charmat — создает характеристическую матрицу (charmat(M,v) матрица, вычисляемая как v∙E-М);
• charpoly — возвращает характеристический полином матрицы;
• colspace — вычисляет базис пространства столбцов;
• colspan — находит базис линейной оболочки столбцов матрицы;
• companion — вычисляет сопровождающую матрицу, ассоциированную с полиномом;
• cond — вычисляет число обусловленности матрицы (cond(M) есть величина norm(M)∙norm(M-l));
• curl — вычисляет ротор вектора;
• definite — тест на положительную (отрицательную) определенность матрицы;
• diag — создает блок-диагональную матрицу;
• diverge — вычисляет дивергенцию векторной функции;
• eigenvals — вычисляет собственные значения матрицы;
• eigenvects — вычисляет собственные векторы матрицы;
• equal — определяет, являются ли две матрицы равными;
• exponential — создает экспоненциальную матрицу;
• ffgausselim — свободное от дробей Гауссово исключение в матрице;
• fibonacci — матрица Фибоначчи;
• forwardsub — реализует метод прямой подстановки при решении системы линейных уравнений (например для матрицы L и вектора b forwardsub(L,b) возвращает вектор решения х системы линейных уравнений L∙x=b);
• frobenius — вычисляет форму Фробениуса (Frobenius) матрицы;
• gausselim — Гауссово исключение в матрице;
• gaussjord — синоним для rref (метод исключения Гаусса-Жордана);
• geneqns — генерирует элементы матрицы из уравнений;
• genmatrix — генерирует матрицу из коэффициентов уравнений;
• grad — градиент векторного выражения;
• GramSchmidt — вычисляет ортогональные векторы;
• hadamard — вычисляет ограничение на коэффициенты детерминанта;
• hessian — вычисляет гессиан-матрицу выражения;
• hilbert — создает матрицу Гильберта;
• htranspose — находит эрмитову транспонированную матрицу;
• ihermite — целочисленная эрмитова нормальная форма;
• indexfunc — определяет функцию индексации массива;
• innerprod — вычисляет векторное произведение;
• intbasis — определяет базис пересечения пространств;
• ismith — целочисленная нормальная форма Шмитта;
• iszero — проверяет является ли матрица ноль-матрицей;
• jacobian — вычисляет якобиан векторной функции;
• JordanBlock — возвращает блок-матрицу Жордана;
• kernel — находит базис ядра преобразования, соответствующего данной матрице;
• laplacian — вычисляет лапласиан;
• leastsqrs — решение уравнений по методу наименьших квадратов;
• linsolve — решение линейных уравнений;
• Ludecomp — осуществляет LU-разложение;
• minpoly — вычисляет минимальный полином матрицы;
• mulcol — умножает столбец матрицы на заданное выражение;
• mulrow — умножает строку матрицы на заданное выражение;
• multiply — перемножение матриц или матрицы и вектора;
• normalize — нормализация вектора;
• orthog — тест на ортогональность матрицы;
• permanent — вычисляет перманент матрицы — определитель, вычисляемый без перестановок;
• pivot — вращение относительно элементов матрицы;
• potential — вычисляет потенциал векторного поля;
• Qrdecomp — осуществляет QR-разложение;
• randmatrix — генерирует случайные матрицы;
• randvector — генерирует случайные векторы;
• ratform — вычисляет рациональную каноническую форму;
• references — выводит список основополагающих работ по линейной алгебре;
• rowspace — вычисляет базис пространства строки;
• rowspan — вычисляет векторы охвата для места столбца;
• rref — реализует преобразование Гаусса-Жордана матрицы;
• scalarmul — умножение матрицы или вектора на заданное выражение;
• singval — вычисляет сингулярное значение квадратной матрицы;
• singularvals — возвращает список сингулярных значений квадратной матрицы;
• smith — вычисляет Шмиттову нормальную форму матрицы;
• submatrix — извлекает указанную подматрицу из матрицы;
• subvector — извлекает указанный вектор из матрицы;
• sumbasis — определяет базис объединения системы векторов;
• swapcol — меняет местами два столбца в матрице;
• swaprow — меняет местами две строки в матрице;
• sylvester — создает матрицу Сильвестра из двух полиномов;
• toeplitz — создает матрицу Теплица;
• trace — возвращает след матрицы;
• vandermonde — создает вандермондову матрицу;
• vecpotent — вычисляет векторный потенциал;
• vectdim — определяет размерность вектора;
• wronskian — вронскиан векторных функций.
Назначение многих функция вполне очевидно из названия. Далее мы рассмотрим более подробно некоторые функции из этого пакета. С деталями синтаксиса (достаточно разнообразного) для каждой из указанных функций можно ознакомиться в справочной системе Maple. Для этого достаточно использовать команду ?name;, где name — имя функции (из приведенного списка).