
- •Численные методы и универсальные математические пакеты (Номер занятия в оглавлении равен номеру лабораторной работы. Лабораторные работы состоят из практических заданий из соответствующих занятий)
- •Введение
- •Занятие 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.
Нелинейный метод наименьших квадратов
Предположим, что заданы точки и требуется выполнить подгонку экспоненциальной кривой
Т.е. требуется найти минимум
При приравнивании частных производных к нулю получим следующие уравнения для определения неизвестных и
Данные
уравнения являются нелинейными, их
можно решить, например, методом Ньютона.
Однако, проще непосредственно найти
минимум
.
Линейный метод наименьших квадратов
Предположим,
что заданы
точек
и совокупность
линейно-независимых функций
.
Требуется найти
таких коэффициентов
,
чтобы функция
,
заданная в виде
,
минимизировала сумму квадратов ошибок
Например, для параболы, построенной методом наименьших квадратов
,
коэффициенты находятся из условия
.
Замечание 1.
Заманчиво использовать построение полиномов методом наименьших квадратов для подгонки нелинейных данных. Но если данные не проявляют полиномиальной природы, то полученная кривая будет сильно осциллировать. Этот феномен называется полиномиальное раскачивание. Оно явно наблюдается у полиномов высокой степени, поэтому полиномы степени 6 или выше редко используются.
Замечание 2.
Данный метод распространяется и на трехмерный случай:
Заданы
точек
и совокупность
линейно-независимых функций
.
Требуется найти
таких коэффициентов
,
чтобы функция
,
заданная в виде
,
минимизировала сумму квадратов ошибок
Интерполирование сплайнами
Вычерчивание
полиномиальной кривой по совокупности
точек применяется в CAD
(проектирование с помощью компьютера),
CAM (применение компьютера в обрабатывающей
промышленности) и системах компьютерной
графики. Оператор хочет нарисовать
гладкую кривую, проходящую через
заданные точки. Математически это
реализуется путем построения кубической
функции
на каждом интервале
,
чтобы полученная в результате составная
кривая
и ее первые и вторые производные были
непрерывны на интервале
.
Непрерывность первой производной
означает, что график
не будет иметь острых углов, а непрерывность
второй производной означает, что радиус
кривизны определен в каждой точке.
Предположим,
что
‑
точка, где
.
Функция
называется кубическим сплайном,
если выполняются следующие условия:
на каждом подынтервале функция является кубическим полиномом
функция и ее первые и вторые производные непрерывны в узлах.
При построении сплайна необходимо указание ограничения в двух крайних точках
Естественный кубический сплайн («релаксированная кривая»):
и
.
постоянна около крайних точек:
и
.
и
.
и
.
Функции, реализующие линейный метод наименьших квадратов и построение сплайнов, находятся в пакете CurveFitting.
Функция построения сплайна может быть вызвана двумя способами, отличающимися способом задания координат узлов
Spline(списокXY, имяНезПер, степень, граничныеУсловия);
Spline(списокX, списокY, имяНезПер, степень, граничныеУсловия);
где
списокXY – координаты узлов в виде списка [[x0, y0], [x1, y1], ..., [xn, yn]]
списокX ‑ координаты независимой переменной в виде списка [x0, x1, ..., xn]
списокY ‑ координаты зависимой переменной в виде списка [y0, y1, ..., yn]
имяНезПер – имя переменной, от которой будет зависить сплайн
степень – степень полинома, задается в виде degree=число
граничныеУсловия – вид ограничений в крайних точках, задаются в виде endpoints=условие, где условие это одно 'natural' (естественный сплайн №1), 'notaknot' (постоянная кривизна №2) или 'periodic' (№3) или просто число список значений (№4).
Метод наименьших квадратов реализован функцией:
LeastSquares(списокXY, имяНезПер, curve= функция);
LeastSquares(списокX, списокY, имяНезПер, curve= функция);
Где
списокXY – координаты узлов в виде списка [[x0, y0], [x1, y1], ..., [xn, yn]]
списокX ‑ координаты независимой переменной в виде списка [x0, x1, ..., xn]
списокY ‑ координаты зависимой переменной в виде списка [y0, y1, ..., yn]
имяНезПер – имя переменной, от которой будет зависить полученная функция
функция – общий вид линейной кривой с нейзвестными коэффициентами, например, a*v^2+b*v+c для параболы. Если не указывать параметр curve= функция, то по умолчанию будет построена прямая.
Данная
функция реализует лишь линейный метод
наименьших квадратов. Для построения
нелинейной кривой, необходимо найти
минимум квадрата расстояния
.
Для этого можно восспользовать функцией minimize, однако, она не всегда находит решение. Существует еще одна функция для нахождения минимума Minimize, она находится в пакете Optimization. Команды данного пакета выполняют численные расчеты с использованием арифметики процессора Numerical Algorithms Group (NAG).