- •Численные методы
- •Содержание
- •Введение
- •1. Вычисление определенных интегралов Справочная информация
- •Формула средних прямоугольников
- •Формула трапеций
- •Формула Симпсона (j.Gregory(Грегори)1668,Th.Simpson1743)
- •Пример решения в среде Matlab
- •Контрольные задания
- •2. Решение нелинейных уравнений Справочная информация
- •Метод простых итераций Метод основывается на приведении исходного уравнения к форме
- •Относительная разница между значениями приближения корня на третьей и четвёртой итерациях составляет
- •Метод хорд
- •Пример решения на пэвм в среде Matlab
- •Контрольные задания
- •3. Решение систем линейных алгебраических уравнений Справочная информация
- •Метод Гаусса с выбором главного элемента
- •Метод простых итераций
- •О выборе метода решения систем уравнений
- •Пример решения на пэвм в среде Matlab
- •Контрольные задания
- •4. Интерполяция таблично заданных функций Справочная информация
- •Кусочно-линейная интерполяция
- •Пример решения на пэвм в среде Matlab
- •Контрольные задания
- •5. Аппроксимация таблично заданных функций Справочная информация
- •Пример решения на пэвм в среде Matlab
- •Контрольные задания
- •6. Решение задачи коши для обыкновенных дифференциальных уравнений 1-го порядка Справочная информация
- •Усовершенствованный метод Эйлера
- •Оценка погрешностей методов
- •Программное обеспечение
- •Пример решения на пэвм в среде Matlab
- •Контрольные задания
- •7. Решение задачи коши для нормальных систем обыкновенных дифференциальных уравнений и уравнений высших порядков Справочная информация
- •Метод Эйлера
- •Усовершенствованный метод Эйлера
- •Оценка погрешностей методов
- •Пример решения на пэвм в среде Matlab
- •Контрольные задания
- •Приложение. Основы работы в среде matlab Интерфейс среды
- •Переменные и константы
- •Арифметические операторы
- •Операторы отношения
- •Логические операторы
- •Элементарные функции
- •Простейшие способы ввода–вывода информации
- •Векторы и матрицы
- •Оператор двоеточие «:»
- •Оператор разветвления if
- •Операторы циклов
- •Вывод информации в файл
- •Форматный вывод информации
- •Ввод данных из файла
- •Построение графиков
- •Сообщения об ошибках и исправление ошибок
- •Список литературы
Контрольные задания
Найти решение системы линейных алгебраических уравнений . Для этого составить программу, реализующую один из описанных в этом разделе методов. Выбор итерационных методов решения систем должен быть обоснован предварительной проверкой матрицы системы на условие сходимости выбираемого метода. В случае применения итерационных методов принять относительную разницу между соседними приближениями вектора решения не более чем 0.000001. Оценить относительную погрешность полученного решения. Матрицу А и вектор b взять по номеру своего варианта, заменяя величину n номером своего варианта.
1–5. |
|
6–10. |
|
11–15. |
|
16–20. |
|
21–25. |
|
26–30. |
|
4. Интерполяция таблично заданных функций Справочная информация
Интерполяцией называется представление функции, значения которой заданы в виде таблицы, некоторой другой функцией, имеющей аналитическое описание и совпадающей с исходной при табличных значениях аргумента.
Простейшая задача, приводящая к интерполяции функций, заключается в следующем. В дискретные моменты времени x1,x2,...,xnизмеряется значение некоторой физической величиныy, то есть наблюдается зависимость функцииyот аргументаx, и строится таблица
x |
x1 |
x2 |
... |
xn |
y |
y1 |
y2 |
... |
yn |
По этой таблице требуется восстановить значения функции при любых других значениях аргумента x из отрезка [x1, xn] или подобрать аналитическое выражение для приближающей функции y(x) достаточно простого вида, значения которой совпадали бы с заданными в таблице
.
Г
Рис.1.
В зависимости от требований, которые накладываются на приближающую функцию, могут применяться различные формы её представления: линейная, квадратичная, кубическая или более высокого порядка. К простейшим из них относятся кусочно-линейная интерполяция, интерполяция кубическим сплайном и интерполяция многочленами, в частности, многочленом Лагранжа и другие.
Кусочно-линейная интерполяция
К
Рис.2.
.
В результате кусочно-линейная приближающая функция на отрезке [xi–1,xi] имеет вид
и является непрерывной, однако её первая производная оказывается уже кусочно-непрерывной функцией, которая в каждом узле интерполяции имеет точку разрыва первого рода. Это часто накладывает существенные ограничения на её дальнейшее использование.
x |
0 |
1 |
2 |
3 |
4 |
y |
2 |
0.5 |
1 |
4 |
4.5 |
Для решения этой задачи строятся линейные функции для каждого отрезка между узловыми точками таблицы:
для отрезка [0, 1] между первой и второй точками
,
для отрезка [1, 2] между второй и третьей точками
,
для отрезка [2, 3] между третьей и четвёртой точками
,
для отрезка [3, 4] между четвёртой и пятой точками
.
Таким образом, табличная функция в случае кусочно-линейной интерполяции представляется в виде функции
Значение интерполирующей функции в заданной точке x= 1.5, принадлежащей отрезку [1, 2], будетy(1.5) = 0.5 + 0.5(1.5 – 1) = 0.75.
Многочлен Лагранжа (J.L.Lagrange, 1795)
Представляет собой случай полиномиального представления приближающей функции. Она ищется в виде линейной комбинации базисных функций k(x), которые должны быть определены для всего отрезка интерполяции [x1, xn] и линейно независимы, а их количество должно быть равно числу узлов таблично заданной функции
.
Коэффициенты a1, a2,..., an определяются исходя из условий равенства значений приближающей и исходной функций при табличных значениях аргумента, что сводит задачу к системе n линейных алгебраических уравнений относительно них, а в качестве функций k(x) используются полиномы (n–1)-й степени
,
которые для пяти узловых точек записываются в виде
,
…………………………………………
.
Графики этих полиномов представлены на рис.3. Для каждого полинома характерно то, что для всех значенийxi узловых точек он принимает нулевые значения, кроме k-ой, где его значение равно единице.
Рис.4.
Рис.3.
При таком выборе базисных функций коэффициенты приближающей функции оказываются ординатами таблично заданной функции, а сама она приобретает характерный для многочлена Лагранжа вид
.
Процесс построения интерполирующего многочлена Лагранжа для пяти узловых точек показан на рис.4.
x |
0 |
1 |
2 |
3 |
y |
2 |
0.5 |
1 |
4 |
Сначала строятся четыре базовых полинома:
,
,
.
Они позволяют записать интерполирующий многочлен Лагранжа в виде
Для аргумента x= 1.5 многочлен Лагранжа даёт значение
Интерполяция кубическим сплайном (I.J.Schoenberg, 1946)
Сплайнами называется широкий класс приближающих функций, используемых для кусочной интерполяции с использованием различных функций. В их число входят полиномы, в частности, кубический полином. При его использовании табличная функция внутри каждого отрезка [x1, x2], [x2, x3],…,[xi, xi+1],…,[xn–1, xn] представляется следующим образом
,
,
……………………………………………………………………
,
……………………………………………………………………………
где нижние индексы интерполирующих функций, записанные через тире, указывают на номера узлов, между которыми проведён сплайн (см. рис.5).
О
Рис.5.
, .
Эти условия дают 2(n – 1) уравнений для определения коэффициентов сплайна.
Кроме этого, требуется, чтобы полином данного отрезка сопрягался с полиномами соседних отрезков, как по углу наклона касательной в узловых точках, так и по радиусу кривизны. Сопряжение по углу наклона соответствует равенству значений первых производных соседних полиномов в каждой узловой точке, а по радиусу – вторых производных. Это даёт ещё по два условия для каждой внутренней узловой точки
,
т.е. получается ещё 2(n – 2) уравнений. Таким образом, приведённые выше соотношения дают (4n – 6) уравнений для определения коэффициентов ai и для доопределения системы не хватает ещё двух уравнений. С целью построения недостающих уравнений можно задавать в граничных точках значения угла наклона касательной (исходя из физической сути задачи или с помощью интерполяции по 2÷4-м крайним точкам с последующим вычислением производной)
.
Возможны и иные способы задания граничных условий. Например, можно задавать граничные значения не первых, а вторых производных
.
Особый способ, называемый условием «нет узла» или «запрет стыка», состоит в приравнивании третьих производных полиномов на стыке двух крайних отрезков
.
Перечисленные условия дают систему из 4(n – 1) линейных алгебраических уравнений, позволяющую вычислить коэффициенты для каждого отрезка сплайна. Полученная интерполирующая функция будет непрерывной и гладкой вместе со своей первой производной, её вторая производная будет только непрерывной функцией, которая имеет точки излома в местах сопряжения сплайнов, т.е. в узловых точках.
Рассмотрим работу метода на примере таблично заданной функции (см. приведённую таблицу)
x |
0 |
1 |
3 |
y |
2 |
0.5 |
4 |
и поиска значения этой функции при х = 1.5.
Для решения задачи интерполяции заданной функции кубическими сплайнами требуется составить систему из 8-ми уравнений, позволяющую определить коэффициенты сплайнов для каждого из отрезков [0, 1] и [1, 3]
,
.
Их производные, необходимые для формирования системы, имеют вид
,
,
,
.
Тогда условия формирования сплайнов, записанные в последовательности узловых точек, будут выглядеть следующим образом
точка №1 (x = 0):
,
точка №2 (x = 1): ,
,
,
,
точка №3 (x = 3): ,
.
Недостающие значения тангенсов углов наклона касательных в крайних узловых точках могут быть вычислены из геометрических соображений, основанных на приближённом построении интерполирующей кривой (см. рис.6)
.
Т
Рис.6.
Её решение осуществляется каким-либо известным способом решения систем линейных алгебраических уравнений. В результате получается следующее её решение
a1 = 2, a2 = –2.5, a3 = 0.9267, a4 = 0.07333,
a5 = 0.5, a6 = –0.4267, a7 = 1.147, a8 = –0.02917.
При этом искомые сплайны будут иметь вид
,
,
а интерполирующая функция может быть записана как
Её значения при х = 1.5 будет
.
Приведённая выше схема сплайн-интерполяции достаточно трудоёмка. Поэтому в настоящее время используется её «экономичный» вариант, который основан на представлении сплайна в виде нескольких специально подобранных кубических полиномов
,
,
……………………………………………………………………………
,
где yi – ординаты узловых точек, αi – углы наклона графика сплайнов в узловых точках, hi – расстояния между абсциссами i-й и (i+1)-й узловых точек, а полиномы имеют вид
, ,
, .
Такой подход гарантированно сопрягает сплайны по местоположению узловых точек и по углу наклона касательных в них (равенство первых производных). Таким образом, задача сводится к необходимости сопряжения сплайнов в узловых точках только по радиусу кривизны (равенство вторых производных)
.
Эти (n – 2) уравнения служат для вычисления тангенсов углов наклона касательных в узловых точках. Недостающие два уравнения формируются по описанной выше схеме учёта граничных условий.
Для иллюстрации этого подхода рассмотрим решение предыдущей задачи.
Сплайны для каждого из отрезков [0, 1] и [1, 3] в соответствии с предлагаемым подходом имеют вид
,
.
Учитывая координаты узловых точек
x1 = 0, x2 = 1, x3 = 3,
y1 = 2, y2 = 0.5, y3 = 4,
можно вычислить расстояния между их абсциссами
h1 = 1 и h2 = 2
и переписать сплайны как
,
,
где
, ,
, ,
, ,
, .
Вторые производные сплайнов, необходимые для формирования системы уравнений, имеют вид
,
,
где
, ,
, ,
, ,
, .
Тогда условия формирования сплайнов, записанные в последовательности узловых точек, будут выглядеть следующим образом
точка №1 (x = 0): ,
точка №2 (x = 1):
,
точка №3 (x = 3): .
Значения тангенсов углов наклона касательных в крайних узловых точках известны из предыдущего решения
.
В результате их подстановки в уравнение для 2-й точки получается одно уравнение для тангенса угла наклона касательных в этой точке
.
В итого получается следующее его значение
.
При этом искомые сплайны будут иметь вид
,
.
Тогда значение интерполирующей функции при х = 1.5 будет
.