- •Численные методы
- •Содержание
- •Введение
- •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.
еометрический
смысл задачи состоит в том, что через
точки, которыми отображаются табличные
значения аргумента и функции на поле
декартовой системы координат
x0y,
как это показано на рис.1, и которые
называются узловыми точками или узлами
интерполяции, необходимо провести, по
крайней мере, непрерывную линию, подобрав
для неё аналитическое описание.
В зависимости от требований, которые накладываются на приближающую функцию, могут применяться различные формы её представления: линейная, квадратичная, кубическая или более высокого порядка. К простейшим из них относятся кусочно-линейная интерполяция, интерполяция кубическим сплайном и интерполяция многочленами, в частности, многочленом Лагранжа и другие.
Кусочно-линейная интерполяция
К
Рис.2.
усочно-линейная
интерполяция состоит в представлении
таблично заданной функции на каждом
отрезке между абсциссами узловых точек
линейной зависимостьюy
= a1+
a2x
так, как это показано на
рис.2. Коэффициенты a1
и a2
определяются для каждого отрезка [xi–1,
xi]
в отдельности из условий
.
В результате кусочно-линейная приближающая функция на отрезке [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 будет
![]()
.






