Лекция №9 Метод Ньютона для СНАУ, теорема о квадратичной

advertisement
Лекция 9
6 ноября 2006 года
Теорема о квадратичной сходимости метода Ньютона.
Сформулируем и докажем теорему для одномерного (скалярного) случая. Аналогичная
теорема будет справедлива и для систем нелинейных уравнений.
Теорема. Пусть существуют первые две ограниченные производные функции f(u) и, кроме
того, существует
 f u(u)1 ;
причем имеют место оценки
fuu  C2 ,
 f (u)
1
 C1
(отображение f(u) равномерно невырождено), а начальное приближение выбирается из
условия
С12C2 f (u 0 )  q  1.
Тогда метод Ньютона сходится с квадратичной скоростью сходимости.
Доказательство. Разложим f(uk+1) в ряд Тейлора в окрестности f(uk), ограничившись
квадратичными членами разложения:
f (u k 1 )  f (u k )  fu(u k ) uk  O(2uk ).
Здесь введено обозначение uk  uk 1  uk . Переходя к абсолютной величине и учитывая,
что для метода Ньютона f (uk )  fu(uk ) uk  0, или u  [ fu(u)]1 f (uk ), получим
2
f (uk 1 )  O( 2uk )  C2   2uk  C2 [ fu(u )]1 f (uk )  C2C12 f (uk ) ,
так как  f u (u )
1
2
 C1 .
Введем в рассмотрение невязку как rk  f (u k ) , получим rk 1  Crk2 , где C  C 2 C12 .
Можно выписать цепочку соотношений
r1  Cr02 , r2  Cr12  C 3r04 , r3  Cr22  C 7 r08 , и т.д., в результате для невязки на k итерации
k
получается выражение rk  C 1 (Cr0 )2 .
k
Неравенства rk 1  Crk2 и rk  C 1 (Cr0 ) 2 являются определением квадратичной скорости
сходимости.
Для сходимости итерационного процесса Ньютона достаточно, чтобы было выполнено
условие, следующее из неравенства Сr0  C f (u 0 )  q  1. Отсюда следуют ограничения
на начальное приближение, в частности, f (u0 )  1/ C. Теорема доказана.
Замечание. Несложно показать, что погрешность, определяемая, как  k  (u k  U) , или, в
скалярном случае,  k  uk  U , убывает квадратично. Для этого разложим f(uk+1) в
окрестности uk в ряд Тейлора до первого члена (или линеаризуем f(uk+1))
f 
f (uk 1 )  f (u k )  f (u k )(u k 1  u k ) 
(uk 1  uk ) 2 .
2
Так как в методе Ньютона приближения находятся достаточно близко к корню уравнения
и u k 1  U , получим
2
f  
0  f (U )  f (uk )  f (uk )(U  uk ) 
(U  u k )  .

2 
Разделив полученное равенство на f u (u k ), приходим к оценке

f (u k ) 
f ()
 u
U  u k 
(U  u k )2 , откуда следует


f (u k )  2 fu (u k )


U  (uk 
max fu()
f (uk )
2
)
U  uk , uk  , k  0,1,
fu(uk )
2 fu(uk )
Левая часть последнего неравенства по формуле Ньютона равна  k 1  U  u k 1 . В таком
случае
 k 1  C2k , где C 
max f ()

2 f (u k )
, откуда последовательно находим q ( k )  f (u ) .
Задача численного интегрирования
Формулы численного интегрирования функций одного переменного называют
квадратурными формулами. Задача приближенного вычисления определенного интеграла
(на отрезке или по многомерной области) фактически разбивается на две самостоятельные
подзадачи. Первая — это интегрирование таблично заданной функции (полученной,
например, при проведении лабораторного эксперимента). В таком случае априорная
информация о гладкости подынтегральной функции отсутствует, весьма ограничены
возможности в выборе узлов интегрирования. Для этой задачи наиболее эффективными
будут квадратурные формулы интерполяционного типа и правило Рунге оценки
погрешности.
Вторая задача — подсчет значения определенного интеграла от известной функции.
При этом самая ресурсоемкая операция с точки зрения вычислений — подсчет значения
функции. Желательно построить численный метод, позволяющий получать как можно
более высокую точность при наименьшем количестве вычислений, при этом выбор узлов
квадратурных формул целиком в руках вычислителя. В этом случае наиболее
эффективными окажутся квадратурные формулы типа Гаусса.
Квадратурные формулы интерполяционного типа (формулы Ньютона –
Котеса)
Простейшую квадратурную формулу (формулу численного интегрирования) можно
получить следующим образом. Пусть необходимо вычислить интеграл
b
I   f (t )dt.
a
Положим, что f(t) на рассматриваемом отрезке [a,b] не изменяется (f(t) ≈ const). Тогда:
ab
, то получим формулу прямоугольников с
I  f ()(b  a),   a, b. Если  
2
центральной точкой
ab
I  (b  a )  f (
).
2
Конечно, для константы приведенная выше формула точна — говорят, что
построенная квадратурная формула будет точна на полиномах степени 0. Легко можно
доказать, что формула прямоугольников с центральной точкой будет давать точное
значение и в случае линейной функции. Для всех других функций эту формулу будем
рассматривать как приближенную.
Если предположить, что функция f(t) на отрезке интегрирования [a, b] достаточно
близка к линейной, то можно заменить приближенное значение интеграла I площадью
трапеции с высотой (b – a) и основаниями f(a) и f(b). Тогда получается формула трапеций
f (a)  f (b)
I  (b  a )
.
2
В общем случае квадратурные формулы получаются при помощи интегрирования
интерполяционного многочлена, аппроксимирующего подынтегральную функцию.
Семейство квадратурных формул, получающихся таким образом, называется формулами
интерполяционного типа (формулы Ньютона–Котеса).
1.
Введем на отрезке интегрирования сетку, определим значения функции в узлах
сетки. Узлы в дальнейшем будем именовать узлами квадратурной формулы (или
N
квадратуры). Пусть, как и в задаче интерполяции, имеется совокупность узлов t n n0 ,
t n  a  n ,   (b  a ) / N , t  a, b . Пусть также задана таблица f n   f (tn )n0 . Отрезок
N
[tk, tk+ 1] далее иногда будем называть элементарным отрезком.
Заменим подынтегральную функцию ее интерполяционным полиномом в форме
Лагранжа. Будем полагать, что
b
b

f (t )dt   Ln (t )dt.
a
a
Рассмотрим некоторые частные случаи.
Формула трапеций. На отрезке [tk, tk+ 1] проводим замену подынтегральной функции
интерполяционным полиномом первой степени:
f (t k 1 )  f (t k )
f (t )  f (t k ) 
(t  t k ),
t k 1  t k
после чего, выполнив интегрирование по элементарному отрезку, получим приближенное
значение интеграла на [tk, tk+ 1]:

1
I k  (tk 1  tk )  f (tk 1 )  f (tk )   k  f (tk 1 )  f (tk ) .
2
2
После суммирования интегралов по всем элементарным отрезкам [tk, tk+ 1] получаем
формулу трапеций для отрезка [a, b]:
N 1
N 1
1 N 1
I   I k   k  f (tk )  f (tk 1 )  , k  tk 1  tk , k  0  N ;  k  b  a.
2 k 0
k 0
k 0
На равномерной сетке (сетке с равноотстоящими узлами) при k    (b  a) / N
полученная формула принимает вид
 N 1

I    f (tk )  f (tk 1 )    f (t0 )  2 f (t1 )   2 f (t N 1 )  f (t N ) .
2 k 0
2
Формула Симпсона. Заменим подынтегральную функцию f(t) на отрезке [tk-1, tk]
интерполяционным полиномом (в форме Лагранжа) второй степени. Для простоты
положим   (b  a) / N  tk  tk 1  const для всех k — сетка на отрезке интегрирования
равномерная. Тогда
F (t )  f k 1
(t  t k 1 / 2 )(t  t k )
(t k 1  t k 1 / 2 )(t k 1  t k )
 f k 1/ 2
(t  t k 1 )(t  t k )
(t k 1 / 2  t k 1 )(t k 1 / 2  t k )
 fk
(t  t k 1 )(t  t k 1 / 2 )
(t k  t k 1 )(t k  t k 1 / 2 )

2
(t  tk 1/ 2 )(t  tk ) fk 1  2(t  tk 1 )(t  tk 1/ 2 ) fk 1/ 2  (t  tk 1 )(t  tk 1/ 2 ) f k .
2
После вычисления интеграла от полинома получим приближенное значение интеграла по
элементарному отрезку

I k   f k 1  4 f k 1/ 2  f k .
6
Суммируя по всем элементарным отрезкам [tk-1, tk], получим
 N
I    f k 1  4 f k 1/ 2  f k  
6 k 1

  f 0  4 f1/ 2  2 f1  4 f3 / 2   2 f N 1  4 f N 1/ 2  f N  ,
6

f k  f (tk ),
где
f k 1/ 2  f (
tk  tk 1
2
). Формулу Симпсона можно также записать, не
используя дробных индексов

I  ( f 0  4 f1  2 f 2  4 f3   2 f N 2  4 f N 1  f N ),
6
если локальную формулу получать путем интегрирования интерполяционного полинома
второй степени по отрезку [tk–1, tk+1]:
tk 1

I k   F (t )dt  ( f k 1  4 f k  f k 1 ),
3
tk 1
где F (t ) — интерполяционный полином, построенный на отрезке [tk–1, tk+1] по точкам tk–1,
tk, tk+1. В этом случае N — число разбиений отрезка на элементарные отрезки — должно
быть четным.
Еще одна используемая на практике квадратурная формула интерполяционного типа —
так называемое «правило 3/8». Она получается при замене подынтегральной функции
интерполяционным полиномом третьей степени, построенным по четырем точкам.
Расчетные формулы для правила 3/8 приведем без вывода:
b
1
3  2a  b  3  a  2b  1

 f (t )dt  (b  a)  8 f (a)  8 f  3   8 f  3   8 f (b)  .






a
Конечно, существуют и формулы интерполяционного типа более высоких порядков. Они
не применяются на практике по следующим обстоятельствам. Любая формула
интерполяционного типа записывается в виде
M
I   k fk
k 0
Во всех приведенных выше формулах коэффициенты αk были положительными. Такие
квадратурные формулы называются правильными квадратурными формулами. При
использовании полиномов более высоких степеней получаются квадратурные формулы,
не являющиеся правильными.
Для степени интерполяционного полинома более 7 среди коэффициентов встречаются
отрицательные. Д. Пойа показал, что
n
lim   nk  ,
n  k  0
где αnk — веса квадратурной формулы, получающейся при замене подынтегрального
выражения интерполяционным полиномом степени n. Такое увеличение суммы
абсолютных значений коэффициентов связано с быстрым ростом постоянной Лебега при
алгебраической интерполяции на равномерной сетке.
Получим теперь погрешность формулы прямоугольников (со средней точкой) для
k    const :

ba
24
max ft(t ) 2 ,
[ a ,b ]
погрешность формулы трапеций

ba
12
max ft(t ) 2 ,
[ a ,b ]
погрешность формул Симпсона (с дробными и без дробных индексов соответственно):


ba
2880
ba
180
max ft (4) (t ) 4 ,
[ a ,b ]
max ft (4) (t ) 4 .
[ a ,b ]
Заметим, что если функция f(t) имеет только три непрерывных производных, то оценка
погрешности формулы Симпсона ухудшается на порядок:

ba
12
max ft (t ) 3 .
Интеграл I может быть представлен в виде:
I
I p (h)  Ch p ;
I
h
 h
I p    2C1  
p
,
 2
 2
где I p (h) — приближенные значения интеграла, вычисленные по формуле с порядком
h
точности p с шагом h, I p   — значение интеграла, вычисленное по той же формуле с
2
шагом вдвое меньшим. При малых h константы C и C1 близки. Этот факт тоже
необходимо доказывать. Доказательство труда не представляет, пользуясь теоремой
Лагранжа о среднем легко получить, что эти величины отличаются на O(hp). Тогда
получим
I p (h)  Ch p

h
h
I p    2C1   
 2
 2
 h
 h
Ip
 2C
 
 2
p
  ,
 2
откуда следует
h
I p    I p ( h)
 2
C  C1 
.
p
h


h p  2 
 2
Подставив C во вторую формулу для вычисления I(c,h/2), получим:
h
2 p 1 I p    I p (h)
h
 2
I  I p  
.
2 p 1  1
 2
Во-первых, эта простая формула позволяет относительно дешевым способом уточнить
вычислительное значение интеграла с шагом h/2. Во-вторых, получаем возможность
контролировать точность численного интегрирования путем вычисления значения
интеграла дважды (с шагами h и h/2).
Примечание. Легко получается аналог правила Рунге при вычислении интеграла для
табличной функции. Необходимо лишь с использованием одних и тех же квадратурных
формул вычислить интеграл с шагом таблицы h и затем повторить вычисления, выкинув
половину точек, с шагом 2h.
Поскольку формулы Ньютона–Котеса являются интерполяционными, очевидно, что
они не могут успешно использоваться для получения формул высокой точности по
причине неустойчивости интерполяционного процесса для многочленов высокого
порядка. Как отмечалось выше, постоянные Лебега растут с увеличением количества
узлов интерполяции для равномерной сетки как 2N. По этой причине обычно
используются полиномы степени от нуля до трех (соответственно, формулы
прямоугольников со средней точкой, трапеций, Симпсона, 3/8). Вычисление с их
помощью интегралов от функций, обладающих высокой степенью гладкости, например,
близким к полиномам высокой степени, представляется нерациональным. В выражение
для погрешности этих формул входят первая, вторая или четвертая производные.
Погрешность определяется низким порядком производной при высокой степени гладкости
интегрируемой функции. Этих недостатков лишены квадратуры Гаусса.
Формулировка задачи построения квадратурных формул, поставленная Гауссом,
такова.
Для заданного количества точек, а именно, для (N+1) точки, найти такое
расположение узлов и такие веса ci, чтобы квадратурная формула
b

N
f (t )dt   ci f (ti )  rN (t )
i 0
a
была точной для полиномов как можно более высокой степени, т.е. чтобы rN (t )  0.
Пояснение. Для некоторых классов функций существуют квадратурные формулы с
rN (t )  0 , которые называются точными. Примером такого класса функций являются
полиномы
PN (t ) 
N
 ak t k
k 0
на отрезке [a, b]. Определим на этом отрезке узлы t i , i = 1,…,N и веса сi так, что
b
N
a
i 0
 PN (t )dt   ci PN (ti ).
Представим PN(t) в виде интерполяционного полинома
N
N (t  t )
k
PN (t )   PN (ti ) 
,
k

i
(ti  tk )
i 0
k 0
при этом остаточный член интерполяции полинома равен нулю: PN( N 1) (t )  0.
Тогда из предыдущего условия следует
b N
(t  tk )
ci   
dt ,
k i (t  t )
i
k
a
k 0
где сi являются базисными функциями полиномов Лагранжа. Квадратурная формула
b
N
a
i 0
 PN (t )dt   ci PN (ti )
является точной для любого полинома степени N. Оказывается, эта формула может быть
точной и для полиномов более высокой степени, а именно, 2N + 1, что используется при
построении квадратурных формул Гаусса.
Пусть формула численного интегрирования имеет вид
b
I   f (t )dt  c0 f (t0 )  c1 f (t1 ) 
 cN f (t N )  rN ,
a
где ci – веса, rN – остаточный член квадратуры.
Положим, что существует многочлен PM(t) степени M > N, для которого
квадратурная формула точна, т.е. rN = 0 при f(t) = PM(t):
f (t )  PM (t )  a0  a1t  a2t 2   aM t M ,
где ai — коэффициенты. В этом случае получим
a0  dt  a1  tdt  a2  t 2dt   aM  t M dt 
 c0 (a0  a1t0  a2t02 
c1 (a0  a1t1  a2t12 
 aM t0M ) 
 aM t1M ) 

cN (a0  a1t N  a2t N2   aM t NM ).
Приравняем выражения в обеих частях равенства при aj:
с0  с1 
b
 сN   dt  I 0 ,
a
b
c0t0  c1t1 
 cN t N   tdt  I1 ,
a
…,
c0t0M  c1t1M 
b
 cN t NM   t M dt  I M .
a
Получается нелинейная система из M + 1 уравнения с 2(N + 1) неизвестными ci, ti.
Отсюда следует, что максимальное значение M есть 2N + 1. Решение этой системы или
исследование на его существование и единственность в общем случае затруднительны.
Ниже будет рассмотрен пример получения квадратурной формулы Гаусса таким путем
для двух узлов.
Гаусс решил эту задачу более простым (в смысле реализации, но не решения!)
способом, доказав следующую теорему. Приведем ее без доказательства.
Теорема. Если в качестве узлов ti, i = 0,…,N в квадратурной формуле используются
нули полиномов Лежандра qN+1(t), а веса ci вычисляются по формулам
ci 
1 N
(t  tk )
 ki (t
1 k 0
i
 tk )
dt ,
то квадратурная формула
1

1
N
f (t )dt   ci f (t i )  rN (t )
i 0
точна для полиномов степени 2N + 1.
Напомним, что полиномы Лежандра образуют ортогональную систему функций на
отрезке [–1; 1]
1
 qi (t )q j (t ) dt  0,
1
при i  j ;
1
 qi (t ) q j (t )dt  0
при i  j.
1
Первые несколько полиномов Лежандра будут q0 (t )  1,
1
q1 (t )  t , q2 (t )  (3t 2  1),
3
1
1
q3 (t )  (5t 3  3t ), q4 (t )  (35t 4 30t 2  3), …, рекуррентная и общая формулы имеют
5
35
вид (n  1)qn1 (t )  (2n  1) t qn (t )  nqn1 (t ), qn (t ) 
1
n
dn
2 ( n !) dt
n
(t 2  1) n .
Заметим, что рекуррентные формулы, связывающие три полинома порядка n –1, n и n + 1
уже встречались для полиномов Чебышева. Такие рекуррентные формулы существуют
для всех систем ортогональных полиномов.
Погрешность
квадратурной
формулы
Гаусса
на
отрезке
будет
2( N 1)1
2( N 1)
rN (t )  2
N f
(), при этом   [1,1]. Для  a, b формула остаточного
члена будет rN (t )  (b  a)2( N 1)1  N f 2( N 1) (), причем коэффициент αN быстро убывает с
ростом N. Здесь  N 
( N  1)!4
.
3
2(
N

1)
!
2(
N

1)

1
 


Формулы Гаусса обеспечивают высокую точность уже при небольшом количестве узлов
(от 4 до 10) В этом случае 1  2 104 ,  2  5 107 , 3  6 1010 ,  4  4 1013. В
практических же вычислениях число узлов составляет от нескольких сотен до нескольких
тысяч. Отметим также, что веса квадратур Гаусса всегда положительны, что обеспечивает
устойчивость алгоритма вычисления сумм
N
 сi f (ti ).
i 0
В случае двух узлов N = 1 (количество отрезков разбиения), M = 2, N + 1 = 3
(степень полинома). Узлы tn и веса cn должны удовлетворять следующей системе
уравнений:
N

n 0
N
 cntnj 
cntnj
1

 t j dt ,
1
j

1  (1) 1
, j  0,
j 1
В данном случае система уравнений будет:
,M.
n 0
c0  c1 
1
 1 dt  2,
1
1
c0t  c1t1 
 t dt  0,
1
1
c0t02  c1t12 
2
 t 2dt  3 ,
c0t03  c1t13 
1
1
 t 3dt  0,
1
откуда получим
c0  c1  1;
t0  t1 
1
.
3
Формула Гаусса записывается как
 1 
 1 
f (t )dt  f  
 f 
.
3

 3
1
Эта формула будет точной для полиномов третьей степени.
1

Download