- •Вместо введения: о погрешностях при решении прикладных задач
- •Глава I. Численные методы решения уравнений
- •§ 1. Задача локализации корней
- •Ограничение корней
- •Локализация корней
- •Простейший (грубейший) алгоритм локализации корней:
- •§ 2. Понятие об итерационных методах уточнения корней
- •Метод деления пополам (метод вилки)
- •§ 3. Методы хорд и касательных
- •Метод хорд для монотонных выпукло-вогнутых функций
- •Метод касательных для монотонных выпукло-вогнутых функций
- •§ 4. Метрические и банаховы пространства. Теорема о неподвижной точке
- •Матричные нормы
- •§ 5. Метод простой итерации
- •§ 6. Применение метода простой итерации к решению
- •Условие h([; ]) [; ] :
- •Глава II. Вычисления в линейной алгебре
- •§ 1. Метод Гаусса и его улучшения для повышения точности решения
- •§ 2. Метод простой итерации и метод Зейделя
- •§ 3. Подготовка к применению метода простой итерации
- •§ 4. Проблема собственных значений
- •Глава III. Численное интегрирование
- •§ 1. Метод прямоугольников
- •§ 2. Метод трапеций
- •§ 3. Метод Симпсона (параболическое интерполирование)
- •Глава IV. Некоторые методы аппроксимации функций
- •§ 1. Интерполяционный многочлен Лагранжа
- •§ 2. Интерполяционный многочлен Ньютона
- •§ 3. Метод наименьших квадратов
- •Глава V. Некоторые методы численного решения дифференциальных уравнений
- •Приложение: Сводка характеристик численных методов
- •Характеристики метода:
- •Характеристики метода:
- •Характеристики метода:
- •Характеристики метода:
- •Характеристики метода:
Глава IV. Некоторые методы аппроксимации функций
Слово аппроксимация
означает приближение. Более конкретно,
будут рассматриваться приближения
функций многочленами. В качестве меры
приближения рассматривается норма
.
Сразу нужно
отметить, что область изменения x
здесь должна
быть ограниченной и замкнутой: легко
понять, что для функции f(x)
= ex
не существует многочлена p(x)
со свойством
,
ибо при x
+
экспонента
возрастает быстрее любого многочлена.
В то же время, и на отрезке [a; b] не всякую непрерывную функцию можно сколь угодно близко приблизить многочленом: например, это нельзя сделать для функции Пеано f : [0; 1] [0; 1][0; 1], непрерывно отображающей отрезок [0; 1] на весь единичный квадрат [0; 1][0; 1]. Тем не менее, будет доказано, что некоторые бесконечно дифференцируемы на (a; b) функции можно сколь угодно близко приблизить многочленами:
f
С
([a;
b],
R)
> 0
p(x)
R[x]
.
Часто в вычислительных задачах функции задаются не формулами, а конечным числом значений, вычисленных в некоторых точках, т.е. таблицами вида
x1 |
x2 |
… |
xn–1 |
xn |
y1 = f(x1) |
y2 = f(x2) |
… |
yn–1 = f(xn–1) |
yn = f(xn) |
Задача о нахождении по такой таблице приближённого значения f(x) в точке x [x1 ; xn] называется задачей интерполяции (interia – внутри), а задача нахождения приближённого значения f(x) в точке x [x1 ; xn] – задачей экстраполяции (exteria – вне).
Все эти задачи будут обсуждаться в настоящей главе.
§ 1. Интерполяционный многочлен Лагранжа
Часто в вычислительных задачах функции задаются не формулами, а конечным числом значений, вычисленных в некоторых точках, т.е. таблицами вида
x1 |
x2 |
… |
xn–1 |
xn |
y1 = f(x1) |
y2 = f(x2) |
… |
yn–1 = f(xn–1) |
yn = f(xn) |
Естественно возникает вопрос о нахождении формулы, дающей в заданных точках указанные значения. Одним из простейших видов зависимостей, определяющих функции, являются многочлены. Поэтому возникает вопрос: всегда ли найдётся многочлен p(x) C[x], принимающий в попарно различных точках x1 , … , xn С значения y1 , … , yn C : p(xi) = yi (1 i n) ?
Сразу нужно отметить, что решение этого вопроса существенно зависит от области коэффициентов: например, многочлен с целыми коэффициентами f(x) = fkxk + … + f1x + f0 Z[x] не может принимать значение y1 = 2 при x1 = 2 и значение y2 = 5 при x2 = 4. Действительно, первое условие f(2) = fk2k + … + f12 + f0 = 2 гарантирует чётность свободного члена f0 Z, вопреки второму условию f(4) = fk4k+…+f14+f0 = 5.
Теорема (интерполяционная формула Лагранжа). Пусть даны попарно различные точки поля x1 , … , xn F, и произвольные y1 , … , yn F . Тогда существует однозначно определённый многочлен L(x) F[x] степени не выше n – 1, принимающий в точках x1 , … , xn значения y1 , … , yn : L(xi) = yi (1 i n). При этом имеет место явная формула для нахождения многочлена L(x), называемая интерполяционной формулой Лагранжа:
L(x)
=
.
Доказательство. Формула Лагранжа корректно определена, т.к. точки x1 , … , xn попарно различны, и значит, знаменатели всех слагаемых ненулевые.
Подставляя в
формулу Лагранжа значение x
= xi
, непосредственно
убеждаемся, что
при i
≠ k.
Поэтому получаем:
.
Таким образом, указанный в формуле Лагранжа многочлен действительно принимает заданные значения yi при x = xi (1 i n).
Многочлен L(x), будучи суммой многочленов степени n – 1, сам имеет степень не выше n – 1. Таким образом, L(x) – искомый многочлен степени не выше n – 1. Он определён однозначно, т.к. если p(x) – ещё один многочлен степени не выше n – 1, принимающий заданные значения yi при x = xi (1 i n), то разность L(x) – p(x) тоже имеет степень не выше n – 1 и обращается в ноль в n различных точках x1 , … , xn вопреки теореме о числе корней многочлена.
Теорема доказана.
Пример: Найти комплексный многочлен не выше второй степени, принимающий в точках 0, 1, 2 значения –1, 2, –3 соответственно.
По интерполяционной формуле Лагранжа имеем:
Теорема (общий вид интерполяционного многочлена). Пусть F – поле, x1 , … , xn – попарно различные точки поля F, y1 , … , yn F . Тогда любой многочлен p(x) F[x], принимающий в точках x1 , … , xn заданные значения y1 , … , yn (1 i n) имеет вид
p(x) = L(x) + (x – x1)…(x – xn)q(x),
где q(x) – некоторый многочлен над F.
Доказательство. Многочлен p(x) – L(x) обращается в ноль при любом значении x = xi (1 i n). По теореме Безу рассматриваемая разность делится на каждый из двучленов x – xi , а значит, и на их произведение: p(x) – L(x) = (x – 1)…(x – n)q(x) при некотором q(x) F[x].
Теорема доказана.
Описанные выше методы позволяют решить и более сложную интерполяционную задачу: всегда ли найдётся такой многочлен f(x) F[x], что в различных точках x1 ,…, xn F он принимает заданные значения y1 , … , yn F , в то время как его производная f(x) в тех же точках принимает значения z1 , … , zn : f(xi) = yi , f(xi) = zi (1 i n) ?
Теорема (об интерполяции с производными). Пусть F – поле, x1 , … , xn – попарно различные точки поля F, y1 , … , yn , z1 , … , zn F. Тогда существует такой однозначно определённый многочлен f(x) F[x] степени не выше 2n – 1, принимающий в точках x1 , … , xn заданные значения y1 , … , yn , что значения его производной в этих же точках равны z1 , … , zn соответственно: f(xi) = yi , f(xi) = zi (1 i n). Таким образом, любой многочлен степени 2n – 1 над полем полностью определяется своими значениями и значениями своей производной в n попарно различных точках.
Доказательство. Если f(x) – искомый многочлен, то предыдущая теорема позволяет искать его в виде f(x) = L(x)+(x–x1)…(x–xn)q(x), где q(x) – некоторый многочлен степени не выше n–1 (учтено ограничение d(f) 2n–1). Остаётся найти многочлен q(x). Сведём эту задачу к предыдущей, вычислив значения многочлена q(x) в точках x1 , … , xn .
Имеем f(x) = L(x)+[(x–x1)…(x–xn)]q(x)+(x–x1)…(x–xn)q(x) =
=
=
Поэтому zi = f(xi) = L(xi)+q(xi)(i –x1)…(xi –xi–1)(xi –xi+1)…(xi –xn), и значения
однозначно определены. Поэтому многочлен q(x) степени не выше n–1 однозначно восстанавливается.
Теорема доказана.
Пример. Найти многочлен, принимающий в точках 0, 1, 2 значения 1, 2, 3 и имеющий в этих точках значения производной –1, 0, 1 соответственно.
Согласно теореме будем искать многочлен в виде
f(x) = L(x)+x(x–1)(x–2)q(x),
где q(x)
– многочлен
степени не выше
2, а L(x)
= x
+ 1. Тогда
L(x)
= 1 и
. Решаем
задачу интерполяции для q(x)
по
формуле
Лагранжа:
= –
(x2
– 3x
+ 2) – (x2
– 2x)
= –
x
2+
x
– 1.
Итак, окончательно получаем
f(x) = x
+ 1 + x(x
– 1)(x
– 2)(
–
x2
+
x
– 1)
=
= x + 1+ x(x2 – 3x + 2)( – x2 + x – 1 ) =
= x +
1+ x(–
x4
+ 8x3
–
x2
+
10x
– 2) =
= –
x5
+ 8x4
–
x3
+ 10x2
– x
+ 1 .
Упражнения: 1. Существует ли многочлен с целыми коэффициентами, принимающий в точках 1, 2, 3 значения 5, 6, 7 соответственно ? Найдите такой многочлен с рациональными коэффициентами.
Найти все многочлены над R, принимающие в точках –1, 0, 1, 2 значения –2, –1, 0, 1 соответственно.
Найти все многочлены над R, принимающие в точках –1, 0, 1, 2 значения –2, –1, 0, 1 соответственно и имеющие значение производной в этих точках 0, 1, 0, –1 соответственно.
Конечно, построенный многочлен может совершенно не отражать свойств исходной функции, поскольку через заданные n точек можно провести бесконечное число графиков различных функций. Поэтому для задач аппроксимации важно уметь оценивать величину |f(x) – L(x)| отклонения интерполяционного многочлена от исходной функции с точки зрения той или иной нормы на пространстве функций.
Теорема (о величине отклонения многочлена Лагранжа). Пусть функция f : [a; b] R является n раз непрерывно дифференцируемой на отрезке [a; b]. Если по заданным точкам x1 , … , xn [a; b] и значениям функции в этих точках y1 = f(x1), … , yn = f(xn) построен многочлен Лагранжа L(x), то справедлива оценка
,
где
Пn(x)
= (x
– x1)
… (x
– xn),
Mn
=
.
Доказательство. Рассмотрим функцию u(x) = f(x) – L(x) – cПn(x), где c – некоторая постоянная, значение которой будет указано позднее. Поскольку Пn(x) = 0 при x = xi , f(xi) = L(xi) (1 i n), то функция u(x) имеет на отрезке [a; b], как минимум, n корней xi [a; b].
Выберем точку p
[a;
b],
не совпадающую с x1
, … , xn
и положим
. Тогда функция u(x)
будет обращаться в ноль и в точке p,
т.е. она будет иметь не менее n
+ 1 корня на
отрезке [a;
b].
Пусть (для определённости) p
(xi
; xi+1).
Тогда функция u(x)
на концах
каждого из отрезков [x1
; x2],
… , [xi–1
; xi],
[xi
; p],
[p
; xi+1],
[xi+1
; xi+2],
… ,
[xn–1
; xn]
принимает
одинаковые (нулевые) значения. По
теореме Ролля на каждом из этих отрезков
производная u(x)
обращается в ноль. Эти n
нулей
производной образуют систему из (n
– 1)-го
отрезка, на
каждом из концов которых u(x)
принимает
одинаковые (нулевые) значения. Значит
к производной снова можно применить
теорему Ролля и найти n
– 1 нуль
второй производной u(x).
Продолжая этот процесс, найдём, по
крайней мере, один нуль n-й
производной u(n)(x)
– точку
[a;
b].
Поскольку L(x)
– многочлен
степени не выше n
– 1, а Пn(x)
– многочлен
степени n,
то L(n)(x)
0, Пn(n)(x)
= n!
и 0 = u(n)()
= f
(n)()
– 0 – cn!
, т.е.
. Это значение должно совпадать с
выбранным ранее:
, так что f(p)
= L(p)
+
Пn(p).
Поскольку точка
p
выбиралась
произвольно с единственным условием
p
xi
(1
i
n),
то получена формула f(x)
= L(x)
+
Пn(x)
(x
[a
; b]),
которая верна и при x
= xi
: f(xi)
= L(xi)
,
Пn(xi)
= 0. Поэтому
|f(x)
– L(x)|
=
и
.
Теорема доказана.
Следствие (об аппроксимации многочленами некоторых бесконечно дифференцируемых функций). Если f – бесконечно дифференцируемая на (a; b) функция, причём все её производные ограничены одной константой на [a; b], т.е. M R x [a; b] |f (n)(x)| M, то функция f сколь угодно близко аппроксимируется многочленом :
> 0 p(x) R[x] .
Доказательство.
Разобьём отрезок [a;
b]
на n
равных
отрезков точками x1
= a,
x2
, … , xn
= b
и построим интерполяционный многочлен
Лагранжа L(x).
Тогда
, и последняя
величина при больших n
может быть
сделана меньше любого
> 0, т.к.
по формуле Стирлинга
.
Следствие доказано.
Замечание:
Условие
равномерной ограниченности всех
производных на отрезке [a
; b]
существенно:
для функции
на отрезке [–1;
1]
интерполирование по равномерной сетке
с шагом 2 / n
не приводит
к близкой аппроксимации, т.к.
.
Причина кроется в неограниченности
производных этой бесконечно дифференцируемой
функции при n
.
Интерполяционный многочлен Лагранжа применяется для решения задачи интерполяции функций.
Пример. Найти приближённое значение функции, заданной таблично, в точке x = 1,0663
xi |
1,055 |
1,060 |
1,065 |
1,070 |
1,075 |
1,080 |
yi = f(xi) |
1,79887 |
1,62689 |
1,47690 |
1,32160 |
1,17447 |
1,04921 |
Воспользуемся интерполяционной формулой Лагранжа:
,
которая может быть
переписана в виде
,
где
Пn+1(x) = (x – x0)(x – x1) … (x – xn),
Di = (xi – x0) … (xi – xi–1)(x – xi) (xi – xi+1) … (xi – xn).
Для равноотстоящих
друг от друга узлов имеем xi+1
= xi
+ h
(0
i
n–1),
где h
=
. Поэтому
Di = (xi – x0) … (xi – xi–1)(x – xi) (xi – xi+1) … (xi – xn) =
= ih(i – 1)h…h(x – xi)(–h)…(i – n)h = (–1)n–ii!(n – i)!(x – xi)hn =
= (–1)n–ii!(n – i)!(x – x0 – ih)hn = (–1)n–ii!(n – i)!(t – i)hn+1
при t
=
. Кроме того,
Пn+1(x)
= (x
– x0)(x
– x1)
… (x
– xn)
=
= th(t – 1)h…(t – n)h = t(t – 1)…(t – n)hn+1,
так что
, где
Пn+1(t) = t(t – 1)…(t – n), Сi = (–1)n–ii!(n – i)! .
По этой формуле и
вычисляем y(x)
Ln(x).
При этом, как доказано выше, в предположении
о (n+1)-кратной
непрерывной дифференцируемости функции
y(x)
выполняется оценка
, где
.
Вычисления можно оформить в виде таблицы:
Итак, y(x) 1,43688.
