- •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. Вопросы по практике
29. Трёхмерные команды пакета plots. Трёхмерные графические структуры Maple.
Графические структуры трехмерной графики строятся функцией PLOT3D:
PLOT3D(s1,s2,s3,...,о)
В качестве элементарных графических структур можно использовать уже описанные выше объекты POINTS, CURVES, POLYGONS и TEXT — разумеется, с добавлением в списки параметров третьей координаты. Пример такого построения дан на рис. 8.20.
Рис 8.20 Пример создания структуры трехмерной графики
Кроме того, могут использоваться некоторые специальные трехмерные структуры. Одна из них — структура GRID:
GRID(a..b,c..d,listlist) — задание поверхности над участком координатной плоскости, ограниченной отрезками [a, b] и [с, d], по данным, заданным переменной-списком listlist:=[[z11,…z1n], [z21,…z2n],…[zm1…zmn]] с размерностью n×m. Заметим, что эта переменная задает координату z для равноотстоящих точек поверхности.
На рис. 8.21 показан пример создания структуры трехмерной графики на базе GRID. Изображение представляет собой линии, соединяющие заданные точки.
Рис. 8.21. Пример задания графической структуры типа GRID
Еще один тип трехмерной графической структуры — это MESH:
MESH(listlist) — задание трехмерной поверхности по данным списочной переменной listlist, содержащей полные координаты всех точек поверхности (возможно задание последней при неравномерной сетке).
Обычная форма задания этой структуры следующая:
MESH([[[x11, y11, z11], ... [x1n, y1n, z1n]], [[x21, у21, z21], ... [x2n, y2n, z2n]], ... [[xm1, ym1, zm1] ... [xmn, ymn, zmn}]])
Пример задания такой структуры представлен на рис. 8.22.
Рис. 8.22. Пример задания графической структуры типа MESH
Описанные структуры могут использоваться и в программных модулях. Много таких примеров описано в книгах, поставляемых с системой Maple.
30. Меню для работы с трёхмерной графикой. Трёхмерные команды пакета plottools.
Хорошим примером 3D-анимации является документ, показанный на рис. 8.51. Представленная на нем процедура springPlot имитирует поведение упругой системы, первоначально сжатой, а затем выстреливающей шар, установленный на ее верхней пластине. Упругая система состоит из неподвижного основания, на котором расположена упругая масса (например, из пористой резины), и верхней пластины.
Рис. 8.51. Имитация отстрела шара сжатой упругой системой
Управление анимацией, реализованной средствами пакета plottools, подобно уже описанному ранее. Последний пример также прекрасно иллюстрирует возможности применения Maple 9.5 при математическом моделировании различных явлений, устройств и систем.
31. Символьные преобразования выражений. Команда simplify, expand. Упрощение выражений — simplify
Функция simplify — одна из самых мощных в системах символьной математики. Она предназначена для упрощения математических выражений. «Все гениальное просто» — любим мы повторять, хотя это далеко не всегда так. Тем не менее, стремление представить многие математические выражения в наиболее простом виде поощряется в большинстве вычислений и нередко составляет их цель.
В системе Maple функция упрощения используется в следующем виде:
• simplify(expr) — возвращает упрощенное выражение expr или повторяет его, если упрощение в рамках правил Maple невозможно;
• simplify(expr, n1, n2, …) — возвращает упрощенное выражение expr с учетом параметров с именами n1, n2, … (в том числе заданных списком или множеством);
• simplify(expr,assume=prop) — возвращает упрощенное выражение expr с учетом всех условий, представленных равенством или списком равенств.
Функция simplify — многоцелевая. Она обеспечивает упрощение математических выражений, выполняя следующие типовые действия (для простоты обозначим их как ->):
• комбинируя цифровые подвыражения (3*х*5->15*х, 10*x/5->2*x);
• приводя подобные множители в произведениях (х^3*а*х->а*х^4);
• приводя подобные члены в суммах (5*х+2+3*х->8*х+2);
• используя тождества, содержащие ноль (а+0->а, х-0->х);
• используя тождества, содержащие единицу (1*х->х);
• распределяя целочисленные показатели степени в произведениях ((3*х*у^3)^2->9*х^2*у^6);
• сокращая expr на наибольший общий полиномиальный или иной множитель;
• понижая степень полиномов там, где это возможно;
• используя преобразования, способные упростить выражения.
Несмотря на свою гибкость, функция simplify не всегда способна выполнить возможные упрощения. В этом случае ей надо подсказать, в какой области ищутся упрощения и где можно найти соответствующие упрощающие преобразования. С этой целью в функцию simplify можно включать дополнительные параметры.
В качестве параметров могут задаваться имена специальных математических функций и указания на область действия упрощений: BesselI, BesselJ, BesselK, BesselY, Ei, GAMMA, RootOf, LambertW, dilog, exp, ln, sqrt, polylog, pg, pochhammer, trig (для всех тригонометрических функций), hypergeom, radical, power и atsign (для операторов).
Полезен также параметр symbolic, задающий формальные символьные преобразования для многозначных функций, например, таких как квадратный корень (примеры из файла simplify):
> g:=sqrt(х^2);
> simplify(g);
csgn(x)x
> simplify(g,assume=real);
|x|
> simplify(g,assume=positive);
x
> simplify(g,symbolic);
x
Но, чуть иначе:
> g:=sqrt(х^у);
> simplify(g);
> simplify(g,assume=real);
> simplify(g,assume=positive);
> simplify(g,symbolic);
Возможно также применение функции simplify в форме simplify[<name>] где <name> — одно из следующих указаний: atsign, GAMMA, hypergeom, power, radical, RootOf, sqrt, trig.
Ниже даны примеры применения функции simplify:
> simplify(4^(1/2)+3);
5
> simplify((х^у)^z+3^(3),power);
(хy)z + 27
> simplify(sin(х)^2+cos(х)^2,trig);
1
> e:=cos(х)^5+sin(х)^4+2*cos(х)^2-2*sin(х)^2-cos(2*х);
е: = cos(x)5 + sin(x)4 + 2cos(x)2 - 2sin(x)2 -cos(2x)
> simplify(e);
cos(x)5 + cos(x)4
> simplify(GAMMA(n+4)/GAMMA(n),GAMMA);
n(n+1)(n+2)(n+3)
> r:=RootOf(х^2-2=0,х):
> simplify(r^2,RootOf);
2
> simplify(1/r,RootOf);
½ RootOf(_Z² - 2)
> simplify(ln(x*y),power,symbolic);
ln(x) + ln(y)
> е:=(-5*b^2*а)^(1/2);
> simplify(e,radical);
> simplify(e,radical,symbolic);
> simplify(GAMMA(n+1)/n!);
1
Действие функции simplify существенно зависит от областей определения переменных. В следующем примере упрощение выражения не произошло, поскольку результат этой операции неоднозначен:
> restart;
> simplify(sqrt(х^4*у^2));
Однако, определив переменные как реальные или положительные, можно легко добиться желаемого упрощения:
> simplify(sqrt(х^4*у^2),assume=positive);
x² у
> simplify(sqrt(х^4*у^2),assume=real);
x²|y|
С помощью равенств можно задать свои правила преобразования, например:
> eq:=x^2+2*x*y+y^2;
eq:=х² +2ху + y²
> simplify(eq,{х=1));
y² + 2y + 1
> simplify(eq,{х^2=х*у, у^2=1});
3хy + 1
> simplify(eq,{х,у});
0
Обратите внимание на то, что указание в списке равенств только левой части равенства означает, что правая часть принимается равной нулю. Если функция simplify не способна выполнить упрощение выражения expr, то она просто его повторяет. Это сигнал к применению опций, уточняющих преобразования.
Сложность упрощаемых выражений зависит от объема ОЗУ и вида интерфейса. Очень большие выражения надо разбивать на подвыражения и работать с ними раздельно.