Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы.doc
Скачиваний:
37
Добавлен:
14.08.2019
Размер:
4.24 Mб
Скачать

Глава 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 , непосредственно убеждаемся, что при ik. Поэтому получаем:

.

Таким образом, указанный в формуле Лагранжа многочлен действительно принимает заданные значения 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). По теореме Безу рассматриваемая разность делится на каждый из двучленов xxi , а значит, и на их произведение: p(x) – L(x) = (x1)(xn)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)+(xx1)(xxn)q(x), где q(x) – некоторый многочлен степени не выше n–1 (учтено ограничение d(f) 2n–1). Остаётся найти многочлен q(x). Сведём эту задачу к предыдущей, вычислив значения многочлена q(x) в точках x1 , … , xn .

Имеем f(x) = L(x)+[(xx1)(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 соответственно ? Найдите такой многочлен с рациональными коэффициентами.

  1. Найти все многочлены над R, принимающие в точках –1, 0, 1, 2 значения –2, –1, 0, 1 соответственно.

  2. Найти все многочлены над 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) = (xx1)(xxn), 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)hh(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) = (xx0)(xx1)(x – xn) =

= th(t – 1)h(tn)h = t(t – 1)(tn)hn+1,

так что , где

Пn+1(t) = t(t – 1)(t – n), Сi = (–1)n–ii!(ni)! .

По этой формуле и вычисляем y(x) Ln(x). При этом, как доказано выше, в предположении о (n+1)-кратной непрерывной дифференцируемости функции y(x) выполняется оценка , где .

Вычисления можно оформить в виде таблицы:

Итак, y(x) 1,43688.