- •1. ЭЛЕМЕНТАРНАЯ ТЕОРИЯ ПОГРЕШНОСТЕЙ; ВЫЧИСЛИТЕЛЬНЫЕ ЗАДАЧИ, МЕТОДЫ И АЛГОРИТМЫ
- •1.1. Источники и классификация погрешностей результата численного эксперимента
- •1.2. Погрешности чисел
- •1.3. Погрешности арифметических операций
- •1.4. Погрешности функций
- •1.5. Особенности машинной арифметики
- •1.6. Лабораторная работа № 1. Определение абсолютной и относительной погрешностей приближенных чисел. Оценка погрешностей результата
- •1.7. Корректность вычислительной задачи
- •1.8. Обусловленность вычислительной задачи
- •1.9. Вычислительные методы, их классификация
- •2. ПРИБЛИЖЕНИЕ ФУНКЦИЙ
- •2.1. Задача приближения функций
- •2.2. Интерполяция обобщенными многочленами
- •2.3. Полиномиальная интерполяция. Многочлен Лагранжа
- •2.4. Погрешность интерполяции
- •2.5. Конечные разности и их свойства
- •Доказательство
- •2.6. Разделенные разности и их свойства
- •2.9. Лабораторная работа № 2. Интерполирование и экстраполирование данных. Интерполяционный многочлен Лагранжа
- •2.10. Интерполяционный многочлен Ньютона с конечными разностями
- •2.11. Лабораторная работа № 3. Интерполирование и экстраполирование данных. Интерполяционный многочлен Ньютона
- •2.12. Интерполяционные формулы Гаусса, Стирлинга и Бесселя
- •3. МЕТОД НАИМЕНЬШИХ КВАДРАТОВ И СПЕЦИАЛЬНЫЕ ИНТЕРПОЛЯЦИОННЫЕ МНОГОЧЛЕНЫ
- •3.1. Постановка задачи и вывод формул метода наименьших квадратов
- •3.3. Глобальная полиномиальная интерполяция
- •3.4. Чувствительность интерполяционного многочлена к погрешностям входных данных
- •3.5. Многочлены Чебышева
- •3.6. Решение задачи минимизации оценки погрешности
- •3.8. Лабораторная работа №5. Экономизация степенных рядов
- •3.9. Локальная интерполяция
- •3.10. Сплайны, их свойства и построение
- •3.11. Погрешность приближения кубическими сплайнами
- •3.13. Тригонометрическая интерполяция. Дискретное преобразование Фурье и его реализация на ЭВМ
- •3.14. Матричная форма записи дискретного преобразования Фурье (ДПФ)
- •3.15. Алгоритм реализации ДПФ
- •3.16. Пример реализации алгоритма ДПФ при
- •3.17. Лабораторная работа № 7. Дискретное преобразование Фурье
- •4. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ И ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ
- •4.1. Простейшие формулы численного дифференцирования для первой производной
- •4.2. Формулы численного дифференцирования для второй производной
- •4.3. Формулы численного дифференцирования, основанные на интерполяции алгебраическими многочленами
- •4.4. Обусловленность формул численного дифференцирования
- •4.5. Простейшие квадратурные методы численного интегрирования
- •4.6. Оценка погрешностей простейших квадратурных формул
- •4.7. Квадратурные формулы интерполяционного типа
- •4.8. Квадратурные формулы Гаусса
- •4.9. Лабораторная работа № 8. Численное дифференцирование и численное интегрирование функций
- •5. РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ И ПРОБЛЕМЫ СОБСТВЕННЫХ ЗНАЧЕНИЙ
- •5.1. Нормы векторов и матриц и их свойства
- •5.2. Обусловленность задачи решения системы линейных алгебраических уравнений
- •5.3. Метод Гаусса (схема единственного деления)
- •5.4. Метод прогонки
- •5.5. Метод простых итераций
- •5.6. Сходимость метода простых итераций
- •5.10. Постановка задачи нахождения собственных чисел
- •5.11. Подобные матрицы
- •5.12. Локализация собственных значений
- •5.13. Степенной метод
- •5.14. Вычисление собственных векторов методом обратных итераций
- •6. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ И СИСТЕМ
- •6.1. Решение нелинейных уравнений
- •6.2. Метод Ньютона для уравнений
- •6.3. Сходимость метода Ньютона и трудности его применения
- •6.4. Метод Ньютона решения систем нелинейных уравнений
- •6.6. Модификации метода Ньютона
- •6.7. Лабораторная работа № 11. Решение систем нелинейных уравнений методом Ньютона
- •7. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ КОШИ ДЛЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ И СИСТЕМ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
- •7.1. Задача Коши для дифференциального уравнения первого порядка
- •7.2. Численные методы решения задачи Коши. Основные понятия и определения
- •7.3. Решение с помощью рядов Тейлора
- •7.5. Анализ ошибок, возникающих при использовании методов Рунге - Кутты
- •7.6. Методы прогноза и коррекции
- •7.7. Сравнение методов
- •7.8. Лабораторная работа № 12. Методы интегрирования обыкновенных дифференциальных уравнений
- •7.9. Решение задачи Коши для систем обыкновенных дифференциальных уравнений
- •7.11. Лабораторная работа № 13. Численное интегрирование систем дифференциальных уравнений первого порядка
- •8. ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ (УРАВНЕНИЯ МАТЕМАТИЧЕСКОЙ ФИЗИКИ)
- •8.1. Классификация уравнений математической физики
- •8.2. Простейшие задачи, приводящие к дифференциальным уравнениям в частных производных
- •8.4. Уравнения параболического типа. Явные и неявные схемы
- •Доказательство
- •8.5. Уравнения гиперболического типа
- •8.6. Уравнения эллиптического типа
- •8.7. Свойства разностных схем для дифференциальных уравнений: способность аппроксимировать исходную дифференциальную задачу, устойчивость и сходимость
- •8.8. Некоторые обобщения
- •8.9. Лабораторная работа № 14. Решение задачи Дирихле для уравнения Лапласа методом сеток
- •8.10. Лабораторная работа № 15. Решение однородного уравнения колебаний струны методом сеток по неявной схеме.
bn = 2hn−3 (yn−1 − yn )− 2hn−−31 (yn−2 − yn−1 ). Такие системы быстро решаются специальными методами, с которыми мы познакомимся позднее.
3.11. Погрешность приближения кубическими сплайнами
Теорема 3.10. Пусть функция |
y = f (x) имеет на отрезке [a, b] непрерывную про- |
|||||||||||||||||||||
изводную четвертого порядка и M |
4 |
= max |
|
f (4)(x) |
|
. Тогда для интерполяционного куби- |
||||||||||||||||
|
|
|||||||||||||||||||||
|
[a,b] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
ческого сплайна S3 (x), удовлетворяющего граничным условиям типов 1, 2, 4 и 5, спра- |
||||||||||||||||||||||
ведлива следующая оценка погрешности: |
|
max |
|
f |
(x)− S |
|
|
(x) |
|
≤ C M |
|
h4 |
, где C - некото- |
|||||||||
|
|
|
|
|
|
|||||||||||||||||
рая константа. |
|
|
|
|
|
[a, b] |
|
|
|
|
3 |
|
|
|
|
|
|
|
4 |
max |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
не только сам аппроксимирует функцию y = f (x), но |
|||||||||||||||||||||
Характерно, что сплайн S3 (x) |
||||||||||||||||||||||
и его производные S3/ (x), S3// (x), S3/// (x) |
приближают соответствующие производные функции |
|||||||||||||||||||||
y = f (x). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Теорема 3.11. При выполнении условий теоремы 3.10 для указанных в ней |
||||||||||||||||||||||
сплайнов справедливы неравенства max |
|
f |
(k )(x)− S (k )(x) |
|
|
≤ C |
k |
M |
4 |
h4−k , k = 1,2,3. |
||||||||||||
|
|
|||||||||||||||||||||
|
|
[a, b] |
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пример. Пусть функция задана следующей таблицей:
|
i |
|
|
|
0 |
|
|
|
1 |
|
|
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
xi |
|
|
0 |
|
|
|
1 |
|
|
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
yi |
|
|
|
1.0 |
|
|
|
1.8 |
|
|
|
2.2 |
|
|
|
1.4 |
|
|
|
1.0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Построить для этой функции сплайн с граничными условиями 4 на концах отрезка. Здесь
n = 4, |
|
h = 1 = const . Запишем систему (3.10.4), реализующую эту схему в конкретном число- |
||||||||||||||||||||||||||||
вом |
|
|
|
выражении. |
Первое |
|
уравнение |
|
|
имеет |
|
|
вид |
|
|
h1−2 s0 + (h1−2 − h2−2 )s1 |
− h2−2 s2 = |
|||||||||||||
= 2h−3 |
(y |
− y |
2 |
)− 2h−3 (y |
0 |
− y |
1 |
). |
Вычисляя значения |
h − h |
−1 |
и подставляя |
h = 1 , |
получим |
||||||||||||||||
|
2 |
|
|
1 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
i |
|
i |
|
|
|
|
|
||||
s0 + 0 |
s1 − s2 = 2 (− 0.4)− 2 (− 0.8) s0 − s2 |
= 0.8. Аналогично, |
последнее |
уравнение дает |
||||||||||||||||||||||||||
h−2 s |
n−2 |
+ (h−2 |
|
− h−2 )s |
n−1 |
− h−2 s |
n |
= 2h−3 |
(y |
n−1 |
− y |
n |
)− 2h−3 |
|
(y |
n−2 |
− y |
n−1 |
), n = 4, n −1 = 3, n − 2 = 3. |
|||||||||||
n−1 |
|
n−1 |
n |
|
|
n |
|
n |
|
|
|
n−1 |
|
|
|
|
|
|
|
|||||||||||
Тогда |
|
|
h3−2 s2 |
|
+ (h3−2 |
− h4−2 )s3 |
− h4−2 s4 |
= 2h4−3 (y3 − y4 |
)− 2h3−3 (y2 |
− y3 ) s2 − 0 s3 − s4 = |
= 2 0.4 − 2 0.8 s2 − s4 = −0.8. Три внутренние узла дадут три следующих уравнения:
i = 1 : h1−1 s0 + 2 (h1−1 + h2−1 )s1 + h2−1 s 2 = 3[h1−2 (y1 − y 0 )+ h2−2 (y 2 − y1 )], |
||||||
i = 2 : h2−1 s1 + 2 |
(h2−1 |
+ h3−1 )s2 |
+ h3−1 s3 = 3 |
[h2−2 (y 2 |
− y1 )+ h3−2 (y 3 − y 2 |
)], |
i = 3 : h3−1 s 2 + 2 |
(h3−1 |
+ h4−1 )s3 |
+ h4−1 s 4 = 3 |
[h3−2 (y 3 |
− y 2 )+ h4−2 (y 4 − y 3 |
)]. |
Упрощая их аналогичным способом, что и выше, получим
s0 + 2 2 s1 + s2 = 3(0.8 + 0.4), s1 + 2 2 s2 + s3 = 3(0.4 + (− 0.8)), s2 + 2 2 s3 + s4 = 3(− 0.8 + (− 0.4)).
Тогда вся система имеет вид
88
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s0 |
|
|
|
|
|
|
− s2 |
|
|
|
|
|
|
= 0.8, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s0 |
+ 4s1 + s2 |
|
|
|
|
|
|
= 3.6, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s1 + 4s2 |
+ s3 |
|
|
|
= −1.2, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s2 |
+ 4s3 |
|
+ s4 |
= −3.6, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s2 |
− |
|
|
|
s4 |
= −0.8. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Решим эту систему методом Гаусса: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
s0 |
− s2 |
|
|
|
|
|
|
|
|
|
= 0.8, |
|
|
|
|
|
|
|
|
|
|
|
s0 |
|
|
|
− s2 |
|
|
|
= 0.8, |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
4s1 + 2s2 |
|
|
|
|
|
|
|
= 2.8, |
|
|
|
|
|
|
|
|
|
|
|
|
|
s1 + 4s2 |
+ s3 |
= −1.2, |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
s1 + 4s2 |
+ s3 |
|
|
|
|
= −1.2, |
|
|
|
|
|
|
|
|
|
|
−14s2 |
− 4s3 |
|
= 7.6, |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s2 + 4s3 + s |
|
|
= −3.6, |
|
|
|
|
|
|
|
|
|
|
|
|
s2 + 4s3 |
+ s4 = −3.6, |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s |
2 |
− |
|
|
|
s |
4 |
|
= −0.8. |
|
|
|
|
|
|
|
|
|
|
|
|
|
s |
2 |
|
− s |
4 |
= −0.8. |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
s0 |
|
− s2 |
|
|
|
|
|
|
|
= 0.8, |
|
|
|
|
|
|
|
|
|
|
s0 |
− s2 = 0.8, |
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
s1 + 4s2 |
+ s3 |
|
|
|
|
= −1.2, |
|
|
|
|
|
|
|
|
s1 + 4s2 + s3 |
|
= −1.2, |
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s2 |
+ 4s3 + s4 |
|
|
= −3.6, |
|
|
|
|
|
|
|
|
s2 + 4s3 |
+ s4 |
= −3.6, |
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
− 4s3 − 2s4 |
|
= 2.8, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s3 + 0.5s4 = −0.7, |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52s |
3 |
+14s |
4 |
|
= −42.8. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
−12s |
4 |
= −6.4. |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Отсюда |
s4 = 8 /15, s3 |
= −29 / 30, |
|
s2 |
= −4 /15, s1 |
= 5 / 6, |
s0 |
= 8 /15. |
Запись формулы (3.10.1) |
|||||||||||||||||||||||||||||||||||||||||||||||
кубического интерполяционного многочлена Эрмита, |
задавая yi−1 , |
yi , si−1 , |
si |
|
однозначно |
|||||||||||||||||||||||||||||||||||||||||||||||||||
определяет сплайн на отрезке [xi−1 , xi ]. |
Эта формула уже учитывает, что интерполированная |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
функция |
|
f (x) будет непрерывна и один раз дифференцируема везде на сетке |
|
x0 , x1 ,..., xn . |
||||||||||||||||||||||||||||||||||||||||||||||||||||
Таким образом, на каждом из четырех отрезков |
[0, 1], [1, 2], [2, 3], [3, 4] конкретный вид |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
сплайна |
|
можно |
установить |
|
по |
формуле |
(3.10.1). |
Например, |
|
|
|
для |
[0,1] |
|
имеем |
|||||||||||||||||||||||||||||||||||||||||
y0 = 1.0, |
y1 |
= 1.8, |
s0 = 8 / 15, |
s1 = 5 / 6. Тогда |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
P |
(x) |
= y |
0 |
(x1 − x)2 (2(x − x0 )+ h) |
+ y / |
(x1 − x)2 (x − x0 ) |
+ |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
3,1 |
|
|
|
|
|
|
|
|
|
|
h3 |
|
|
|
0 |
|
|
|
h2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
+ y |
(x − x0 )2 (2(x1 − x) |
+ h) |
+ y / |
(x − x0 )2 (x − x1 ) |
, h = x − x |
0 |
. |
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
h3 |
|
|
|
|
|
1 |
|
|
|
|
h2 |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
P |
|
(x)=1 (1 − x)2 (2(x − 0)+1) |
+ |
8 |
|
(1 − x)2 (x − 0) |
+1.8 (x − 0)2 (2(1 − x)+1)+ |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||
|
|
3,1 |
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
15 |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
+ |
5 |
(x − 0)2 (x −1) = (x −1)2 (2x +1)+ |
8 |
(x −1)2 x +1.8x2 (3 − 2x)+ |
|
5 |
x2 (x −1)= |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
6 |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|
6 |
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
= − |
7 |
x3 + |
1 |
x2 + |
|
8 |
x +1 = −0.233333x3 + 0.500000 x2 |
+ 0.533333x +1.000000. |
|
|
|||||||||||||||||||||||||||||||||||||||||||||
|
30 |
|
15 |
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Многочлены P3,i |
на остальных отрезках рассчитываются аналогично. Именно: |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
x [1, 2], |
x1 |
= 1, |
|
x2 |
= 2, |
|
y1 |
= 1.8, |
y2 = 2.2, |
s1 |
= 0.833333, s2 = −0.266667, |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||
P |
|
(x)= −0.233333x3 + 0.500000 x2 |
|
+ 0.533333x +1.000000. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||
3,2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x [2, 3], |
x2 |
= 2, x3 |
= 3, |
|
y2 |
|
= 2.2, |
|
y3 =1.4, s2 |
|
= −0.266667, s3 |
= −0.966667, |
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||
P |
|
(x)= 0.366667 x3 − 3.100000 x2 |
+ 7.700000 x − 3.800000. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||
3,3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x [3, 4], |
x3 |
= 3, |
x4 |
= 4, |
|
y3 |
|
=1.4, |
y4 =1.0, |
s3 |
= −0.966667, s4 |
= 0.533333, |
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||
P |
|
(x)= 0.366667 x3 − 3.100000 x2 |
|
+ 7.700000 x − 3.800000. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||
3,4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89
3.12. Лабораторная работа № 6. Аппроксимация функций кубическими сплайнами
Часто на практике, для того чтобы аппроксимировать функцию, вместо построения глобального интерполяционного многочлена на всем промежутке определения аргумента используют интерполяцию кусочными многочленами – сплайнами.
Гладкие сплайны обладают многими замечательными свойствами, которые обеспечили им успех в приложениях. Эти свойства описаны в подразд 3.10. Решим в пакете Mathcad задачу аппроксимации таблично заданной функции с помощью кубических сплайнов.
Среди одиннадцати функций интерполяции и экстраполяции в среде Mathcad имеются средства линейной интерполяции (функция linterp(vx,vy,x) – значение в точке х линейного интерполяционного многочлена векторов vx и vy) и интерполяции сплайнами, осуществляемой функцией interp(K,X,Y,x) по значениям коэффициентов K векторов линейного, параболического или кубического сплайнов. Вектор коэффициентов соответствующего сплайна вычисляется подпрограммами lspline(vx,vy), pspline(vx,vy) и cspline(vx,vy).
Различия в линейной, параболической и кубической интерполяции сплайнами заметно проявляются лишь на концах заданной сетки узлов.
Построим все три типа сплайнов и рассмотрим графическое представление данных с их помощью. Пусть
|
|
0.593 |
|
|
0.53305 |
|
|
|
0.598 |
|
|
0.53464 |
|
|
|
|
|
|
||
|
|
0.605 |
|
|
0.54160 |
|
ORIGIN := 1 |
|
0.613 |
|
|
0.54324 |
|
X := |
|
Y := |
. |
|||
|
|
0.619 |
|
|
0.54043 |
|
|
|
|
|
|
0.55598 |
|
|
|
0.627 |
|
|
||
|
|
0.632 |
|
|
0.55843 |
|
|
|
|
|
|
Проведем сначала линейную интерполяцию и построим график результата. y(x):= linterp(X ,Y , x)
Для того чтобы исходные данные представлялись в виде квадратиков, надо войти в панель форматиро-
вания графиков (Formatting Currently Selected X-Y Plot), щелкнув дважды левой кнопкой мыши по любому месту графика. В открывшейся панели
для графика № 2 (trace 2) следует выбрать представление кривой в виде точек (points) квад-
ратной формы (box).
Сплайны соответствующей степени строятся аналогично. Наберем с клавиатуры
KLS := lspline(X ,Y ) KPS := pspline(X ,Y ) KCS := cspline(X ,Y )
y1(x):= interp(KLS, X ,Y , x) y2(x):= interp(KPS, X ,Y , x) y3(x):= interp(KCS, X ,Y , x).
На всем отрезке x [0.58,0.64] графики имеют вид
На концах отрезка вблизи точек x = 0.58 и x = 0.64 все четыре графика построим от-
дельно: |
|
x := 0.56,0.5605...0.62 |
xx := 0.62,0.6205...0.64 |
Явно видимое различие трех графиков проявляется лишь при экстраполяции; внутри отрезка x [0.58,0.64] все три графика почти сливаются в один.
Из всех четырех графиков видно, что функция lspline(X,Y) строит вектор коэффициентов линейного сплайна дефекта нуль, то есть во всех внутренних узлах сетки состыкованы сама функция y = y(x) и ее первая производная. Линейный сплайн дефекта один – это ин-
терполяция ломаными, то есть функция linterp(X,Y,x), график которой приведен на самом первом рисунке.
К сожалению, в доступной автору документации пакета Mathcad нет упоминания, какого типа краевые условия употреблялись для каждого вида сплайнов. Скорее всего, это были так называемые естественные условия, то есть условия равенства нулю старшей используемой производной на концах рассматриваемого отрезка.
Составим программу вычисления коэффициентов кубического сплайна с краевыми условиями четвертого типа – «отсутствие узла». Эти коэффициенты вычисляются решением системы линейных уравнений (3.10.4) методом прогонки. Система (3.10.4) отличается от классической трехдиагональной системы уравнений, используемой в методе прогонки, тем,
91
что в первом и последнем уравнении этой системы имеется по одному лишнему (ненулевому) коэффициенту. Поэтому формулы метода прогонки, приведенные в подразд. 5.4, необходимо несколько модернизировать. Модернизация касается способа вычисления x1 и x2 в
прямом ходе и x1 в обратном; все остальные переменные определяются стандартно по фор-
мулам (5.4.1) – (5.4.6).
Progonka1–подпрограмма, реализующая модернизированный метод прогонки. Параметры: вектор b содержит коэффициенты при неизвестных левой части системы уравнений, стоящие на главной диагонали, вектор a -под главной диагональю, вектор c -над главной
диагональю. Коэффициент p1 первого уравнения системы b1 x1 + c1 x2 |
+ p1 x3 |
= d1 находится в |
cn , коэффициент p2 последнего уравнения p2 xn−2 + an xn−1 + bn xn = dn |
в a1 . |
Вектор d содер- |
жит свободные члены (правые части системы уравнений). Подпрограмма выдает вектор x - вектор решений системы. Для правильной работы подпрограммы необходимо задание
ORIGIN :=1.
Следующая подпрограмма intspline вычисляет значение кубического сплайна с краевыми условиями четвертого типа для данного значения аргумента x . X и Y - векторы исходных данных, n - число точек сетки. Структура подпрограммы intspline совершенно прозрачна. Сначала вычисляются все коэффициенты диагональной системы (3.10.4), затем эта система решается модифицированным методом прогонки. Далее по значению аргумента x
выбирается нужный кубический многочлен третьей степени P3 (x) и находится его значение
при данном x по формуле (3.10.1) кубического интерполяционного многочлена Эрмита.
В заключение приведем графики полученных кубических сплайнов в одном масштабе:
KCS := cspline (X ,Y ) y3(x1):= interp(KCS , X ,Y , x1)
i := 1...100 x2i := X 1 + (X 7 − X 1 ) (i −1) 100
y1i := intspline (X, Y,7, x2i )
Видно, что оба графика на отрезке x [0.59,0.63] абсолютно совпадают.
В этом можно убедиться и сравнить полученные интерполированные значения f (x)
по двум разным программам:
x5 := 0.6 y5 := interp(KCS, X ,Y , x5) y5 = 0.536 y55 := intspline(X ,Y ,7, x5) y55 = 0.536
x6 := 0.63 y6 := interp(KCS, X ,Y , x6) y6 = 0.560 y56 := intspline(X ,Y ,7, x6) y56 = 0.560.
94
Задание № 1. Построить для таблично заданной функции y = f (x) кубический сплайн с граничными условиями любого из четырех типов на концах отрезка:
|
|
|
|
Номера вариантов |
|
|
|
|
|
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
xi |
yi |
xi |
yi |
xi |
yi |
xi |
yi |
xi |
yi |
0.698 |
2.2234 |
0.100 |
1.1213 |
0.235 |
1.2080 |
0.095 |
1.0913 |
0.103 |
2.0128 |
0.706 |
2.2438 |
0.108 |
1.1316 |
0.240 |
1.2126 |
0.102 |
1.2349 |
0.108 |
2.0334 |
0.714 |
2.2645 |
0.119 |
1.1459 |
0.250 |
1.2217 |
0.104 |
1.2799 |
0.115 |
2.0607 |
0.727 |
2.2984 |
0.127 |
1.1565 |
0.255 |
1.2263 |
0.107 |
1.3514 |
0.120 |
2.0792 |
0.736 |
2.3222 |
0.135 |
1.1671 |
0.265 |
1.2355 |
0.110 |
1.4282 |
0.128 |
2.1072 |
0.747 |
2.3516 |
0.146 |
1.1819 |
0.280 |
1.2493 |
0.112 |
1.4826 |
0.136 |
2.1335 |
0.760 |
2.3869 |
0.157 |
1.1969 |
0.295 |
1.2633 |
0.116 |
1.6003 |
0.141 |
2.1492 |
0.769 |
2.4116 |
0.169 |
1.2134 |
0.300 |
1.2680 |
0.120 |
1.7321 |
0.150 |
2.1761 |
0.782 |
2.4478 |
0.175 |
1.2196 |
0.305 |
1.2726 |
0.125 |
1.8500 |
0.157 |
2.1805 |
|
|
|
|
Номера вариантов |
|
|
|
|
|
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
xi |
yi |
xi |
yi |
xi |
yi |
xi |
yi |
xi |
yi |
0.296 |
3.2558 |
0.050 |
0.2079 |
0.902 |
1.2351 |
0.100 |
1.8378 |
0.400 |
1.6683 |
0.303 |
3.1764 |
0.052 |
0.2081 |
0.909 |
1.2369 |
0.104 |
1.8369 |
0.405 |
1.6664 |
0.310 |
3.1218 |
0.060 |
0.2090 |
0.919 |
1.2394 |
0.118 |
1.8335 |
0.410 |
1.6645 |
0.317 |
3.0482 |
0.065 |
0.2095 |
0.940 |
1.2448 |
0.139 |
1.8286 |
0.420 |
1.6607 |
0.323 |
2.9876 |
0.069 |
0.2099 |
0.944 |
1.2458 |
0.145 |
1.8272 |
0.429 |
1.6573 |
0.330 |
2.9195 |
0.075 |
0.2105 |
0.955 |
1.2486 |
0.158 |
1.8242 |
0.440 |
1.6532 |
0.339 |
2.8360 |
0.085 |
0.2116 |
0.965 |
1.2511 |
0.167 |
1.8221 |
0.449 |
1.6499 |
0.345 |
2.7771 |
0.090 |
0.2121 |
0.975 |
1.2537 |
0.185 |
1.8179 |
0.455 |
1.6476 |
0.352 |
2.6114 |
0.096 |
0.2127 |
1.010 |
1.2628 |
0.200 |
1.8145 |
0.465 |
1.6439 |
|
|
|
|
Номера вариантов |
|
|
|
|
|
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
xi |
yi |
xi |
yi |
xi |
yi |
xi |
yi |
xi |
yi |
1.030 |
2.8011 |
0.200 |
0.0400 |
0.010 |
1.0101 |
0.100 |
0.8100 |
1.000 |
0.0000 |
1.080 |
2.9447 |
0.300 |
0.0899 |
0.105 |
1.1105 |
0.155 |
0.7140 |
1.510 |
0.2729 |
1.160 |
3.1899 |
0.350 |
0.1222 |
0.156 |
1.1681 |
0.220 |
0.6084 |
2.100 |
0.3533 |
1.230 |
3.4212 |
0.379 |
0.1431 |
0.200 |
1.2198 |
0.280 |
0.5184 |
2.750 |
0.3679 |
1.260 |
3.5254 |
0.415 |
0.1714 |
0.215 |
1.2378 |
0.375 |
0.3906 |
3.420 |
0.3595 |
1.330 |
3.7810 |
0.500 |
0.2474 |
0.289 |
1.3298 |
0.445 |
0.3080 |
3.915 |
0.3486 |
1.390 |
4.0149 |
0.596 |
0.3478 |
0.316 |
1.3645 |
0.510 |
0.2401 |
4.350 |
0.3380 |
1.450 |
4.1713 |
0.615 |
0.3693 |
0.390 |
1.4626 |
0.625 |
0.1406 |
4.800 |
0.3268 |
1.500 |
4.2390 |
0.700 |
0.4706 |
0.500 |
1.6152 |
0.770 |
0.0529 |
5.200 |
0.3171 |
|
|
|
|
Номера вариантов |
|
|
|
|
|
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
xi |
yi |
xi |
yi |
xi |
yi |
xi |
yi |
xi |
yi |
0.100 |
0.0010 |
-2.100 |
-0.674 |
-1.000 |
1.368 |
1.000 |
0.000 |
1.000 |
0.6663 |
0.210 |
0.0441 |
-1.815 |
0.914 |
-0.010 |
1.990 |
5.000 |
0.999 |
1.300 |
0.5706 |
0.295 |
0.0868 |
-1.600 |
0.574 |
0.750 |
3.117 |
15.150 |
0.411 |
1.650 |
0.5429 |
0.348 |
0.1205 |
-1.420 |
0.827 |
1.900 |
7.686 |
27.900 |
-0.186 |
1.915 |
0.5887 |
0.419 |
0.1738 |
-1.290 |
0.931 |
2.815 |
17.692 |
35.100 |
-0.405 |
2.280 |
0.7256 |
0.475 |
0.2219 |
-0.750 |
0.983 |
3.100 |
23.198 |
44.000 |
-0.599 |
2.500 |
0.8262 |
|
|
|
|
|
95 |
|
|
|
|