
- •1. Интерфейс программы Maple.
- •1.1. Рабочий лист и меню.
- •1.2. Панель инструментов.
- •1.3. Язык пользователя.
- •1.4. Совместимость с другими программами.
- •2. Структура команды, операторы, синтаксические символы
- •2.1. Операторы, операнды и основные синтаксические символы команды.
- •2.2. Оператор присвоения, функции пользователя и оператор подстановки.
- •3. Алгебраические операторы.
- •3.1. Равенство и неравенства.
- •3.2. Алгебраические действия.
- •3.3. Специальные константы.
- •3.4. Комплексные числа.
- •3.5. Подстановка численных значений и простые вычисления.
- •3. Специальный оператор вычисления: eval.
- •3.6. Использование символов последовательности, списка, множества.
- •3.7. Элементарные трансцендентные функции.
- •4. Алгебраические преобразования.
- •4.1. Факторизация алгебраических выражений.
- •4.2. Приведение подобных членов.
- •4.3. Упрощение и развёртывание.
- •4.4. Нормализация дробных выражений.
- •4.5. Комбинирование выражений.
- •4.6. Преобразование функций.
- •4.7. Условия на переменные и параметры.
- •5. Вычисления множества значений функции.
- •5.1. Вычисление множества значений данной функции для множества значений аргумента с заданным шагом.
- •5.2. Вычисление множества значений данной функции для выбранного множества значений аргумента.
- •5.3. Вычисление множества значений данной функции для множества значений аргумента с заданным условием.
- •6. Суммы, суммирование последовательности, вычисление сумм.
- •7. Таблицы.
- •8. Графики.
- •8.2. 3-Мерные графики функций двух переменных.
- •8.3. Анимация графиков.
- •9. Решение алгебраических уравнений и их систем.
- •9.1. Решение отдельного уравнения.
- •9.2. Решение системы линейных уравнений.
- •9.3. Решение системы линейного и квадратного уравнений.
- •9.4. Решение системы квадратных уравнений.
- •10. Решение трансцендентных уравнений.
- •10.1. Решение одного уравнения.
- •10.1.1. Справка о функции Ламберта.
- •10.2. Решение системы, содержащей трансцендентные уравнения.
- •11. Пределы и асимптотика функций.
- •11.1. Пределы.
- •11.2. Асимптотическое поведение функций.
- •12. Дифференцирование функций.
- •13. 1-Кратные интегралы (неопределённые и определённые).
- •13.1. Неопределённый интеграл.
- •13.1.1. Справка о функции erf(X) (Интеграл ошибок или интеграл вероятности).
- •13.1.2. Справка о функции (z)
- •13.2. Определённый интеграл.
- •14. Многократные интегралы.
- •1. Неопределённый интеграл. Формат команд:
- •15. Вычисление и графическое представление интегралов.
- •16. Ряды, разложение функций в ряды.
- •16.1. Суммирование рядов.
- •16.1.1. Справка по функциям Бесселя.
- •16.1.2. Справка по дзета-функции Римана.
- •16.2. Разложение функций в ряды.
- •3. Примеры.
- •16.3. Конвертирование рядов и аппроксимация функций полиномами.
- •16.3.1. Приложение аппроксимаций к решению трансцендентных уравнений
- •17. Обыкновенные дифференциальные уравнения и их решение.
- •17.1. Общее решение оду.
- •17.1.1. Справка о функциях Бесселя.
- •17.2. Решение с начальными условиями.
- •17.3. Использование решений дифференциальных уравнений.
- •18. Дифференциальные уравнения в частных производных.
- •18.1. Разделение переменных.
- •18.2. Решение командой pdsolve.
- •18.3. Графическое представление решения.
- •1. Контрольные вопросы для самопроверки
- •5.1. Напишите команду вычисления значений функции для множества значений аргумента с данным шагом.
- •5.2. Напишите команду вычисления значений функции для выбранного множества значений аргумента.
- •2. Задания для лабораторных работ
- •Тема 1. Ознакомление с программой Maple и простейшие вычисления с её помощью.
- •Тема 2. Построение графиков.
- •Тема 3. Решение алгебраических уравнений и их систем.
- •Тема 4. Трансцендентные функции и решение трансцендентных уравнений.
- •Тема 5. Дифференцирование функций.
- •Тема 6. Ряды и их суммы. Представление функций рядами.
- •Тема 7. Интегралы.
- •Тема 8. Обыкновенные дифференциальные уравнения.
- •Тема 9. Дифференциальные уравнения в частных производных.
- •Общая характеристика программы ……………………………………………………. 3
5.2. Вычисление множества значений данной функции для выбранного множества значений аргумента.
Структура команды (множество значений аргумента дано списком, см. 3.6) [i] - нумерация.
> x:=[1,2,3,4,5];
> for i from 1 to 5 do A[i]:=(x[i])^2 end do;
> y:=[-2,-1,0,1,2]; for k from 1 to 5 do f[k]:=exp(y[k])-1 end do;
Здесь e - число Непера - выведено символом. Для получения десятичных значений использует оператор evalf.
Вычисляемая функция может содержать внутренние операторы. Ниже пример - вычисление в десятичных числах.
> for k from 1 to 5 do f[k]:=evalf(exp(y[k])-1) end do;
Возможны и более сложные представления вычисляемого выражения. Ниже - примеры: вычисление множества решений квадратного уравнения при различных значениях аргумента. (О решениях алгебраических уравнений см. п. 9)
> y:=[-2,-1,0,1,2];
> for i from 1 to 5 do z[i]:=solve((y[i])^2-4*y[i]*x[i]+4*(x[i])^2=0) end do;
Программа выводит две последовательности, т. к. квадратное уравнение имеет 2 корня.
> x:=[-2,-1,0,1,2];
> for i from 1 to 5 do solve((y[i])^2-1=(x[i])^2,y[i]) end do;
>
5.3. Вычисление множества значений данной функции для множества значений аргумента с заданным условием.
Цикл при условии "пока" (или В то время, как… ) (в Help см. "while" - оператор повторения, вызывающий последовательность).
Структура команды.
| for <name> | | from <expr> | | by <expr> | | to <expr> | | while <expr> | do <statement sequence> end do;
или
| for <name> | | in <expr> | | while <expr> | do <statement sequence> end do;
Операторы, показанные между скобками | | выше, являются произвольными и могут появляться в любом порядке, исключая оператор for, который, если использован, должен появиться первым.
Оператор повторения обеспечивает способность выполнять заданную последовательность неоднократно, или счётное число раз (используя операторы for...to ), или пока условие удовлетворено (используя оператор while).
Обе формы операторов могут присутствовать одновременно.
Пример 1. Найти сумму всех целых чисел, меньших 11.
> tot := 0: for i from 1 by 1 while i < 11 do tot := tot + i end do: tot;
tot- символ суммируемых членов. Промежуточные значения не выведены!
Пример 2. Найти все попарные произведения целого числа на следующее, пока первое из них меньше 6
> for k from 0 by 1 while k<6 do k*(k+1) end do;
Пример 3. Найти все квадраты целых чисел, не превышающие 100.
> for n from 0 by 1 while n^2<101 do n^2 end do;
Пример 4. Получить все значения функции exp(-x) для неотрицательных значений аргумента, начиная с 0, с шагом 0.2, пока эти значения не станут меньше 0,1.
> for x from 0 by 0.2 while 0.1<exp(-x) do exp(-x) end do;
С повышением точности вычислений работа программы замедляется. Превышение точности сверх возможностей программы может привести к "зависанию" системы и ненадёжным результатам (это может выразиться в том, что выводимые значения бессистемно "пляшут" или меняют знак).
>
6. Суммы, суммирование последовательности, вычисление сумм.
Символ суммы - sum. Общий вид команды с оператором суммы:
> sum(a[k], k); sum(a[k], k=m..n); sum(a[k], k=0..infinity);
k - индекс суммирования - целое число, m..n - нижний и верхний номера суммируемых членов (целые; возможны и бесконечные) (многоточие здесь и далее в командах программы задаётся двумя точками - не путать с двоеточием!).
Далее задаём последовательность её общим членом (ниже - f). Операторы суммирования: sum(f, k); sum(f, k=m..n); sum(f, k=alpha); sum(f, k=expr); f - любое алгебраическое выражение, зависящее от целочисленного индекса k. Эти операторы необходимы, когда вычисляется сумма большого числа членов.
1. Конечные суммы.
> sum(k^2, k=0..4);
Отложенное вычисление обозначается одиночными кавычками (см. 3.5), напр. 'k' (' = э (en)). С этим обозначением:
> sum('k^2', 'k'=0..10);
Конечная сумма в общем виде и подстановка:
> sum('k^2', 'k'=0..n); simplify(%); S:=factor(%);
Запись предыдущего одной командой:
> S=factor(simplify(sum('k^2', 'k'=0..n)));
Отложенное вычисление:
> n:=8; S;
2. Бесконечные суммы (ряды)
> sum('1/k!', 'k'=0..infinity); evalf(%);
Получили известное число Непера - основание натурального логарифма.
> sum('1/k^2', 'k'=1..infinity); evalf(%);
Сумма бесконечной убывающей геометрической прогрессии (q<1!) и её первых членов.
> sum('q^k', 'k'=0..infinity); evalf(subs(q=1/2,%));
> sum('q^k', 'k'=0..5): evalf(subs(q=1/2,%));
Промежуточное выражение не выведено. Уже 5 первых членов суммы дают 98% суммы бесконечного числа её членов.
>