
- •Численные методы и универсальные математические пакеты (Номер занятия в оглавлении равен номеру лабораторной работы. Лабораторные работы состоят из практических заданий из соответствующих занятий)
- •Введение
- •Занятие 1. Теория погрешностей Источники и классификация погрешностей.
- •Приближенные числа.
- •2. Погрешность произведения.
- •3. Погрешность частного.
- •Введение в Maple
- •Константы
- •Переменные, неизвестные и выражения
- •Команды преобразования выражений
- •Упрощение выражения: simplify()
- •Раскрытие скобок в выражении: expand()
- •Разложение полинома на множители: factor()
- •Ограничения на неизвестные: assume()
- •Сложные типы данных
- •Последовательность выражений
- •Списки и множества
- •Внутренняя структура выражений
- •Подстановка и преобразование выражений
- •Практическое задание
- •Занятие 2. Приближение функций
- •Приближение полиномом Тейлора
- •Приближение функий заданных таблицей своих значений
- •Алгебраическое интерполирование
- •Интерполяционный многочлен Лагранжа
- •Многочлены Чебышева
- •Разделенные разности и многочлен Ньютона
- •Решение уравнений, неравенств и их систем
- •Команда solve()
- •Команда fsolve()
- •Решение неравенств
- •Дифференцирование и интегрирование
- •Int(выражение, переменная);
- •Практическое задание 1
- •Практическое задание 2
- •Занятие 3. Построение кривой по точкам
- •Линия, построенная методом наименьших квадратов
- •Метод линеаризации данных для экспоненциальной кривой
- •Нелинейный метод наименьших квадратов
- •Линейный метод наименьших квадратов
- •Интерполирование сплайнами
- •Графика в Maple
- •Команда двумерной графики plot()
- •Двумерные команды пакета plots
- •Несколько советов
- •Пространственная графика, команда plot3d()
- •Трехмерные команды пакета plots
- •Практическое задание 1.
- •Практическое задание 2.
- •Практическое задание 3.
- •Практическое задание 4.
- •Занятие 4. Численное дифференцирование Приближение производной
- •Анимация
- •Двумерная анимация
- •Трехмерная анимация
- •Практическое задание 1
- •Практическое задание 2
- •Занятие 5. Численное интегрирование
- •Квадратурные формулы
- •Основы программирования в Maple
- •If булево_выражение then последовательность_операторов
- •Практическое задание 1.
- •Практическое задание 2.
- •Практическое задание 3.
- •Занятие 6. Решение нелинейных уравнений
- •Метод простой итерации
- •Метод бисекции (деления пополам)
- •Метод Ньютона
- •Процедуры в Maple
- •Практическое задание 1.
- •Практическое задание 2.
- •Практическое задание 3.
- •Практическое задание 4.
- •Занятие 7. Решение систем Линейные системы. Метод Гаусса
- •Пакет LinearAlgebra
- •Основные типы данных
- •Элементарные операции с матрицами и векторами
- •Решение систем линейных уравнений
- •Практическое задание 1.
- •Практическое задание 2
- •Практическое задание 3
- •Занятие 8. Решение дифференциальных уравнений
- •Задача Коши
- •Метод Эйлера
- •Методы Рунге-Кутта
- •Системы дифференциальных уравнений
- •Решение обыкновенных дифференцильных уравнений в Maple
- •Практическое задание 1
- •Практическое задание 2.
- •Практическое задание 3.
Команда fsolve()
По умолчанию Maple пытается найти аналитическое выражение для корней уравнения. Если это ему не удается, то, как отмечалось выше, он просто ничего не печатает в области вывода. В подобных случаях (если корни действительно существуют) можно воспользоваться командой fsolve(), которая находит численное решение уравнения или системы уравнений. Формат команды отличается от формата команды solve() наличием третьего параметра опция:
fsolve(уравнения, переменные, опция);
Задание первых двух параметров соответствует заданию аналогичных параметров в команде solve(), а параметр опция может принимать значения:
Таблица. Значения параметра опция команды fsolve()
Значение |
Смысл |
complex |
Разыскиваются комплексные корни (только для полиномов) |
Fulldigits |
Используется арифметика с максимальной мантиссой |
Maxsols=n |
Разыскивается n решений (только для полиномов) |
а..b или х=а..b |
Задан промежуток [а,b], на котором разыскивается решение (во второй форме задания этой опции х обозначает имя неизвестной переменной в уравнении) |
> eq:=2*x^5-11*x^4-7*x^3+12*x^2-4*x;
> fsolve({eq});
Решение неравенств
Для решения неравенств и систем неравенств в области вещественных чисел следует использовать команду solve() точно так же, как и для решения уравнений и систем уравнений.
Пример 2.55. Решение неравенств
> solve((x+2)/(3-x)>2,{x});
> solve({x+y<10,x^2=9},{x,y});
Дифференцирование и интегрирование
Maple позволяет вычислять обыкновенные и частные производные аналитического выражения по одной или нескольким переменным. Для этой процедуры предназначены команды diff().
Синтаксис команды дифференцирования следующий:
diff(выражение,переменная_1,переменная_2,...,переменная_n);
В результате выполнения любой из приведенных команд будет вычислена частная производная n-го порядка от заданного первым параметром выражения по заданным переменным.
При формировании производных высокого порядка полезен оператор последовательности $, который позволяет проще и нагляднее задать производную. Например, для вычисления третьей производной функции f(х) по переменной х можно использовать команду diff(f(х),х,х,х) или diff(f(x),х$3).
Пример. Вычисление производных
> f:=sin(x)+cos(y)*x/y;
> diff(f,x);
> diff(f,x$2);
> diff(f,x,y);
Интегрирование выражений по заданной переменной осуществляется командой int. Эта команда позволяет вычислять как неопределенный интеграл от выражения (при этом, правда, в ответе не будет никакой постоянной интегрирования) с использованием следующего синтаксиса команды:
Int(выражение, переменная);
так и определенный интеграл с помощью следующего синтаксиса команды
int(выражение, переменная=а..b);
где а и b являются пределами интегрирования, причем эти пределы могут быть и аналитическими выражениями.
Пример. Интегрирование функций
> f:=a*x^2*sin(2*x);
> int(f,x);
> int(f,x=0..1);
> int(f,x=0..a);
> int(f,x=0..Pi);
В системе Maple имеется набор команд для полного исследования функций: limit() — для отыскания предела функции, sum() — для нахождения всевозможных конечных сумм, series() — для разложения функций в ряды Тейлора, Маклорена и Лорана, minimize() и maximize() — для поиска минимума и максимума функции на заданном промежутке. Описание всех этих и других команд можно найти в Справке Maple.