- •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. Вопросы по практике
23. Решение функциональных, рекуррентных и др. Уравнений. Функция RootOf. Функция RootOf
В решениях уравнений нередко появляется функция RootOf, означающая, что корни нельзя выразить в радикалах. Эта функция применяется и самостоятельно в виде RootOf(expr) или RootOf(expr, х), где expr — алгебраическое выражение или равенство, х — имя переменной, относительно которой ищется решение. Если переменная х не указана, ищется универсальное решение по переменной _Z. Когда expr задано не в виде равенства, решается уравнение expr=0. Для получения решений вида RootOf в явном виде может использоваться функция allvalues.
Примеры применения функции RootOf (файл RootOf):
> RootOf(х^2+1=0,х);
RootOf (_Z² + 1)
> allvalues(%);
I, -I
> RootOf(а*b^2+а/b,b);
RootOf(_Z³ + 1)
> allvalues(%);
-1, ½ +½I√3, ½-½I√3
> RootOf(x^3-1,x) mod 7;
RootOf(_Z³ + 6)
> allvalues(%);
-6(1/3), ½6(1/3) - ½I√3 6(1/3), ½6(1/3) + ½I√3 6(1/3)
> evalf(%);
-1.817120593, .9085602965-1.573672596 I, .908560296+1.573672596 I
> RootOf(х^2-2*х+1,х) mod 5;
1
Итак, функция RootOf является эффективным способом представления решения в компактном виде. Как уже отмечалось, наряду с самостоятельным применением она часто встречается в составе результатов решения нелинейных уравнений.
Решение функциональных уравнений
Решение функционального уравнения, содержащего в составе равенства некоторую функцию f(х), заключается в нахождении этой функции. Для этого можно использовать функцию solve, что демонстрируют приведенные ниже примеры (файл solvefe):
> A:=solve(f(х)^2-х+1,f);
А := proc(x) RootOf(_Z^ 2 -х + 1, label =_L7) end proc
> convert(A(x),radical);
> allvalues(%);
> B:=solve(f(x)*x=ln(x^2),f);
В := proc(x) ln(x^2)/x end proc
> convert(B(x),radical);
> C:=solve(f(x)*х^2=а*х^2+b*х+с, f);
C := proc(x) (ax×x^2 + bx×x + c)/x^2 end proc
> convert(C(x),radical);
Решение рекуррентных уравнений — rsolve
Функция solve имеет ряд родственных функций. Одну из таких функций — fsolve — мы рассмотрели выше. В справочной системе Maple можно найти ряд и других функций, например rsolve для решения рекуррентных уравнений, isolve для решения целочисленных уравнений, msolve для решения по модулю m и т.д. Здесь мы рассмотрим решение уравнений важного класса — рекуррентных. Напомним, что это такие уравнения, у которых заданный шаг решения находится по одному или нескольким предшествующим шагам.
Для решения рекуррентных уравнений используется функция rsolve:
rsolve(eqns, fens)
rsolve{eqns, fens, 'genfunc'(z))
rsolve(eqns, fens, 'makeproc')
Здесь eqns — одиночное уравнение или система уравнений, fens — функция, имя функции или множество имен функций, z — имя, генерирующее функциональную переменную.
Ниже представлены примеры применения функции rsolve (файл rsolve):
> restart;
> rsolve(f(n)=-2*f(n-1)-f(n-2), f(k));
(-f(0) -f(1))(k + 1)(-1)k +(f(1) +2f(0))(-1)k
> rsolve({f(n)=-3*f(n-1)-2*f(n-2),f(1..2)=1), {f});
{f(w) = -3(-1)n +(-2)n}
> rsolve({y(n)=n*y(n-1), y(0)=1),y);
Г(n + 1)
> rsolve((y(n)*y(n-1)+y(n)-y(n-1)=0,у(0)=a},y);
> rsolve({F(n)=F(n-1)+F(n-2),F(1..2)=1),F, 'genfunc'(x));
> rsolve({y(n+1)+f(n)=2*2^n+n, f(n+1)-y(n)=n-2^n+3, y(k=1..5)=2^k-1,f(5)=6), {y, f});
{f(n)=n+1, y(n) = 2n - 1}
А теперь приведем результат вычисления функцией rsolve n-го числа Фибоначчи. Оно задается следующим выражением:
> eq1 := (f(n+2) = f(n+1) + f(n), f(0) = 1, f(1) = 1};
eq1 := {f(n+2) = f(n+1)+f(n), f(0) = 1, f(1) = 1}
В нем задана рекуррентная формула для числа Фибоначчи — каждое новое число равно сумме двух предыдущих чисел, причем нулевое и первое числа равны 1. С помощью функции rsolve в Maple 9.5 можно получить поистине ошеломляющий результат:
> a1:=rsolve(eq1, f);
Числа Фибоначчи — целые числа. Поэтому представленный результат выглядит как весьма сомнительный. Но на самом деле он точный и с его помощью можно получить числа Фибоначчи (убедитесь в этом сами). Любопытно отметить, что решение в Maple8 заметно отличается от приведенного выше для Maple 9.5. Но только по форме, а не по сути.