- •Раздел 6.
- •Раздел 6. Модели и алгоритмы решения задач численными методами с использованием математических пакетов Рекомендации по использованию учебного пособия
- •Тема 6.1. Элементы теории погрешностей
- •6.1.1. Точные и приближенные числа
- •6.1.2. Абсолютная и относительная погрешность
- •Тема 6.2. Методы решения нелинейных уравнений
- •6.2.1. Постановка задачи
- •Отделение корней (локализация корней);
- •Итерационное уточнение корней.
- •6.2.2. Отделение корней
- •6.2.2.1. Графическое отделение корней
- •6.2.2.2. Аналитическое отделение корней
- •6.2.3. Уточнение корней
- •6.2.3.1. Метод половинного деления
- •6.2.3.2. Метод итерации
- •6.2.3.3. Метод Ньютона (метод касательных)
- •6.2.3.4. Метод хорд
- •6.2.3.5. Сравнение методов решения нелинейных уравнений
- •6.2.4. Технология решения нелинейных уравнений средствами MathCad
- •Тема 6.3. Интерполяция функций
- •6.3.1. Постановка задачи
- •6.3.2. Интерполяционная формула Лагранжа
- •6.3.3. Интерполяционные формулы Ньютона
- •6.3.3.1. Конечные разности
- •6.3.3.2. Первая интерполяционная формула Ньютона
- •6.3.3.3. Вторая интерполяционная формула Ньютона
- •6.3.4. Сплайн – интерполяция
- •6.3.5. Сравнение интерполяционных многочленов по применению
- •6.3.6. Технология интерполяции функций в среде математических пакетов
- •Тема 6.4. Численное интегрирование
- •6.4.1. Постановка задачи
- •6.4.2. Метод прямоугольников
- •6.4.3. Формула трапеций
- •6.4.4. Формула Симпсона
- •6.4.5. Оценка погрешности численного интегрирования
- •6.4.6. Технология вычисления интегралов в среде математических пакетов
- •Тема 6.5. Методы решения обыкновенных дифференциальных уравнений
- •6.5.1. Постановка задачи
- •6.5.2. Метод Эйлера
- •6.5.3. Методы Рунге-Кутты
- •6.5.4. Решение оду n-го порядка
- •6.5.5. Сравнение методов решения оду
- •6.5.6. Технология решения обыкновенных дифференциальных уравнений средствами математических пакетов
- •6.6.2. Метод дихотомии
- •6.6.3. Метод золотого сечения
- •6.6.4. Сравнение методов
- •6.6.5. Технология решения задач одномерной оптимизации средствами математических пакетов
- •Тема 6.7. Аппроксимация функций
- •6.7.1. Постановка задачи аппроксимации
- •6.7.2. Метод наименьших квадратов
- •6.7.3. Технология решения задач аппроксимации функций средствами математических пакетов
- •Тема 6.8. Многомерная оптимизация
- •6.8.1. Постановка задачи и основные определения
- •6.8.2. Методы спуска
- •6.8.3. Метод градиентного спуска с дроблением шага
- •6.8.4. Метод наискорейшего спуска
- •6.8.5. Проблема оврагов. Метод покоординатного спуска
- •6.8.6. Технология решения задач многомерной оптимизации средствами математических пакетов
- •Список литературы
- •Тема 6.4. Численное интегрирование................................................71
- •Тема 6.5. Методы решения обыкновенных дифференциальных Уравнений............................................................................. 92
- •Тема 6.6. Одномерная оптимизация................................................ 115
- •Тема 6.7. Аппроксимация функций....................................................132
- •Тема 6.8. Методы многомерной оптимизации............................... 149
- •Список литературы.................................................................... 204
6.3.5. Сравнение интерполяционных многочленов по применению
Интерполяционные многочлены Лагранжа и Ньютона предназначены для получения приближенной аналитической записи функции, заданной таблично.
Формулу Лагранжа можно применять для таблиц с различными расстояниями между узлами, а формулы Ньютона – только для таблиц с равноотстоящими узлами.
Формулы Ньютона имеют следующее преимущество перед формулой Лагранжа. Увеличение степени интерполяционного полинома на единицу (добавление в таблицу значений функции одного узла) при использовании формулы Лагранжа ведет не только к увеличению числа слагаемых, но и к необходимости пересчета каждого коэффициента заново, тогда как при использовании формулы Ньютона достаточно добавить к уже существующему многочлену только одно слагаемое.
В сравнении с рассмотренными методами большую точность интерполяции можно получить применением методов сплайн – интерполяции.
6.3.6. Технология интерполяции функций в среде математических пакетов
Для решения задач интерполяции в Mathcad имеются встроенные функции двух видов: позволяющие увидеть аналитическую зависимость, то есть возвращающие набор аппроксимирующих коэффициентов, и не позволяющие увидеть аналитическую зависимость, а позволяющие только получить значения функции в промежуточных точках. Кроме того, в Mathcad имеется несколько функций интерполяции, различающихся способом «соединения» точек (прямой линией или кривыми).
Рассмотрим средства интерполяции в системе Mathcad на примерах.
Пример 6.3.6-1. Пусть значения функции, полученные в ходе эксперимента, представлены в виде таблицы:
-
X
1.2
1.4
1.6
1.8
2.0
y(x)
-0.085
-0.462
0.128
3.546
2.654
Выполнить линейную интерполяцию данных (экспериментальные точки соединяются отрезками прямой) с использованием функции linterp(x, y, t), где x – вектор значений аргументов, y – вектор значений функции и t – текущее значение аргумента, при котором вычисляется функция.
Пример 6.3.6-2. Выполнить интерполяцию таблично заданной функции по методу Лагранжа.
Преимущество этой формулы в том, что число и расположение узловых точек могут быть любыми (в том числе неравномерными).
Помимо вычисления значений функций в пределах интервала данных все рассмотренные ранее функции могут осуществлять экстраполяцию (прогнозирование поведения функции за пределами интервала заданных точек) с помощью зависимости, основанной на анализе расположения нескольких исходных точек на границе интервала данных. В Mathcad имеется и специальная функция предсказания predict(Y, m, n), где Y – вектор заданных значений функции, обязательно взятых через равные интервалы аргумента, а m – число последовательных значений Y, на основании которых функция predict возвращает n значений Y.
Значений аргумента для данных не требуется, поскольку по определению функция действует на данных, идущих друг за другом с одинаковым шагом. Функция использует линейный алгоритм предсказания, который точен, когда экстраполируемая функция гладкая. Функция может быть полезна, когда требуется экстраполировать данные на небольшие расстояния.
Пример 6.3.6-3. Задан массив .
На основании первых m точек провести экстраполяцию (предсказание) значений n точек.
MathCad имеется три сплайн-функции:
cspline( )
pspline( )
lspline( )
Эти функции возвращают вектор коэффициентов вторых производных, который мы будем называть S. Этот вектор обычно используется в функции interp( ) , описанной ниже. Аргументы должны быть вещественными векторами одинаковой длины. Значения вектора должны быть расположены в порядке возрастания.
Эти три функции отличаются только граничными условиями:
функция lspline( ) генерирует кривую сплайна, которая приближается к прямой линии в граничных точках;
функция pspline( ) генерирует кривую сплайна, которая приближается к параболе в граничных точках.
функция cspline( ) генерирует кривую сплайна, которая может быть кубическим полиномом в граничных точках.
interp возвращает интерполируемое значение, соответствующее аргументу .
Вектор вычисляется на основе векторов данных и одной из функций pspline( ), lspline( ) или cspline( ).
Пример 6.3.6-4. Пусть значения функции, полученные в ходе эксперимента, представлены в виде таблицы:
-
X
1.2
1.4
1.6
1.8
2.0
y(x)
-0.085
-0.462
0.128
3.546
2.654
Применить кубическую сплайн-интерполяцию, при которой экспериментальные точки соединяются отрезками кубических полиномов.
Для этого одновременно используются две функции: interp(s,x,y,t) и cspline(x,y), где x – вектор значений аргументов, y – вектор значений функции, s – вектор вторых производных, создаваемый функцией cspline, t – значение аргумента, при котором вычисляется функция.