Идея обратной интерполяции

advertisement
ЧИСЛЕННЫЕ МЕТОДЫ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ.
(ЛЕКЦИИ темы:4-8)
Тема 4: ПРИМЕНЕНИЕ ИНТЕРПОЛЯЦИИ
§1. Обратное интерполирование
С помощью обратной интерполяции можно решать нелинейные уравнения вида:
f(x)=a ( f(x)=0 ).
Идея обратной интерполяции:
Пусть в точках x0, х1, …, хп заданы значения
у0=f(x0), у1=f(х1)…, уп=f(хп)
Предположим, что функция f на участке x0, х1, …, хп монотонна – для определенности - монотонно возрастает, тогда существует обратная функция f -1 . Определим функцию f –1(y) и найдем значение функции f(xi)=yi в точке a – это и будет
решением нелинейного уравнения f(x)=a. Таким образом получена обычная задача интерполяции. Для решения этой задачи используется какой-либо метод интерполяции, например, интерполяция многочленами: метод Лагранжа.
Х0
Пример:
х у
10 3
11 7
12 11
13 17
у(х)=10 (это ~ 16,5)
проводим интерполяционный многочлен через точки у0, у1, у2, у3 принимающие в
этих точках значения указанные в таблице.
( у  7)( у  11)( у  17)
( у  3)( у  11)( у  17)
10 
15 
(3  7)(3  11)(3  17)
(7  3)(7  11)(7  17)
( у  3)( у  7)( у  17)
( у  3)( у  7)( у  11)

17 
20
(11  3)(11  7)(11  17)
(17  3)(17  7)(17  11)
Р3 ( у ) 
чтобы найти корень, необходимо найти Р3(10)=16,641 – это решение уравнения.
§2.Численное дифференцирование функций
П.0 Постановка задачи численного дифференцирования
В узлах х0, х1,…, хп заданы значения функции у0=f(х0)…уп=f(хп)
Задача:
Найти производную f’ и производные высших порядков от функции f в любой заданной точке х.
П.1 Формула численного дифференцирования (ЧД)
Общая идея ЧД: Неизвестную функцию f заменить на интерполирующую функцию g ( то есть на функцию g: g(xi)=yi и заменить f’(x) на g’(x) ) . В качестве интерполирующей функции рассмотрим только интерполяционный многочлен.
В дальнейшем будем считать, что узлы хi=х0+iх, i=0, n равностоящие с шагом
х. Рассмотрим первый интерполяционный многочлен Ньютона:
q
q(q  1) 2
q (q  1)( q  2) 3
q(q  1)( q  2)( q  3) 4
у 0 
 у0 
 у0 
 у 0  ...
1!
2!
3!
4!
х  х0 dy dy dq dy 1
где: q 
,

*

*
dx dq dx dq х
х
1
q2  q 2
q 3  3q 2  2q 3
q 4  6q 3  11q 2  6q 4
у ( х) 
( у 0  qу 0 
 y0 
 y0 
 y 0  ...)q 
х
2
6
24
1
2q  1 2
3q 2  6q  2 3
2q 3  9q 2  11q  3 4

(0  у 0 
 y0 
 y0 
 y 0  ...)  у ( х)
(4.2)
х
2
6
12
у ( х)  у 0 
Как и в первой интерполяционной формуле Ньютона суммирование в формуле
(4.2) можно прервать. При этом, если в формуле взято k слагаемых (не считая 0),
то будет получена производная от интерполяционного многочлена, интерполирующая функцию не во всех точках, а только в крайних левых (k+1) точках. Продифференцировав формулу (4.2) по х еще один раз, получаем:
(4.3) у ( х) 
1
6q 2  18q  11 4
2
3
(

у

(
q

1
)

y

 y 0  ...)
0
0
12
(х) 2
[5.2]
Если в (4.3) взять первые k слагаемых, то получим вторую производную от интерполяционного многочлена, проходящего через (k+2) точки х0, х1,…, хк+1.
Часто необходимо найти у’ и у”.
1
1
1
1
(у 0  2 y 0  3 y 0  4 y 0  ...)
[5.3] доказательство 4 балла
х
2
3
4
1
11
у ( х0 ) 
(2 y 0  3 y 0  4 y 0  ...)
[5.4]
2
12
(х)
(4.4) у ( х0 ) 
(4.5)
На практике удобнее дифференцировать не первый интерполяционный многочлен Ньютона ( он односторонний ), а центральную формулу Стирлинга, так как
узлы интерполяции располагаются симметрично относительно начальной точки
x0
(см т.3 пар.1 п.4). Выпишем первые два слагаемых:
у 1  у0
q
2
1 у 1  у 0
1 ( у 0  у 1 )  ( у1  у 0 )
у ( х0 ) 
(
)
(
)
х
2
х
2
1
(4.6)

( у1  у 1 )  у ( х)
[5.5]
2х
у ( х)  у 0 
Формула (4.6) точнее, чем (4.2) с одним слагаемым. Аналогично на основе интерполяционного многочлена Стирлинга могут быть получены формулы:
(4.7)
у ( х) 
1
( у  2  8 у 1  8 у1  у 2 )
12х
[5.6]
эта формула будет получена, если взять в интерполяционном многочлен Стирлинга первые три слагаемых и х=х0 (т.е. q=0) :
(4.8)
у ( х) 
1
( у 1  2 у 0  у1 )
(х) 2
[5.7]
эта формула будет получена при двукратном дифференцировании первых трех
слагаемых интерполяционного многочлен Стирлинга при х=х 0.
П.2 Оценка погрешностей численного дифференцирования
При численном дифференцировании, как и при интерполяции, возникает два типа
погрешностей. Погрешность усечения – из-за замены функции на ее интерполирующий многочлен и ее производной на производную от интерполяционного
многочлена. Погрешность округления – из-за того, что значение уi известны не
точно, а с некоторой погрешностью . Оценим погрешность усечения.
Теорема 4.1
Погрешность усечения при численном дифференцировании (при использовании
производной от первой интерполяционной формулы Ньютона – формула (4.2)),
при суммировании k-слагаемых имеет следующую оценку:
(rк , ( х)) |1х  х0  ( f ( х)  Рк ( х)) |1х  х0  (1) к
(х) к ( к 1)
f
( )
к 1
(4.9)
(погрешность усечения можно оценить только в узлах интерполяции)
где   [х0,хк].
Доказательство:
Вспомним оценку остаточного члена первой интерполяционной формулы Ньютона
rк ( х) 
f ( к 1) ( )
( х  х0 )( х  х1 )...( х  хк )
(к  1)!
Дифференцируем по х:


1
( f ( к 2 ) ( )) |1х *( х  х0 )( х  х1 )...( х  х к )  f ( к 1) ( )(( х  х0 )( х  х1 )...( х  х к )) |1х 
( к  1)!
1
d

[( f ( к 2 ) ( ))
( х  х0 )( х  х1 )...( х  х к )  f ( к 1) ( ){( х  х0 )1х ( х  х1 )( х  х2 )...( х  х к ) 
( к  1)!
dх
( rк ( х )) 
 ( х  х1 )1х ( х  х0 )( х  х2 )...( х  х к )  ...  ( х  х к )1х ( х  х0 )( х  х1 )...( х  х к 1 )}]  {поставим х  х0 } 

1
1
{0  f ( к 1) ( )[1( х0  х1 )( х0  х2 )...( х0  х к )  0  ...  0}] 
f ( к 1) ( )(  х )( 2х ) *
( к  1)!
( к  1)!
* ( 3х )(  кх ) 
( 1) к f ( к 1) ( )
( х ) к
к 1
Комментарий:
При доказательстве теоремы был использован неявно тот факт, что функция (x)дифференцируемая.
Замечание 4.2
Погрешность усечения численного дифференцирования из теоремы 4.1 удобнее
оценивать следующим образом:
(rк ( х)) |1х  х0 
М к 1
(х) к , где М к 1  max f ( к 1) ( )
к 1
f [ х0 , хк ]
(4.10)
если трудно оценить значение (к+1) производной от функции f, то f заменяют на
конечную разность (к+1) порядка.
( rк ( х )) |
1
х  х0

( к 1) у0
( к  1)х к 1
( к 1) у 0
( к 1)
f
( х) 
(х) к 1

(4.11)
Погрешности усечения формул (4.6) и (4.7) оцениваются следующим образом:
1
6
1
Для (4.7)  r4  (х) 4 М 5
30
1
Для (4.8) → r3  h 2 M 4
12
( 3)
М 5  max f (5) ( ) ,
где М 3  max f ( ) ,
Для (4.6)  r2  (х) 2 М 3
 [ х1 , х1 ]
 [ х 2 , х2 ]
M 4  max f ( 5) ( )
 [ x1 , x1 ]
Указания:
Для доказательства этих оценок необходимо продифференцировать соответственно r2(х) r4(х) в точках х=х1 и х2 соответственно. После чего сдвинуть интервалы влево [х0,х2] сдвинуть до  [х-1,х1], [х0,х4]  [х-2,х2].
Погрешности округления:
Оценим погрешности округления формул (4.7) и (4.6).
1
( у1  у 1 )
2(х)
1
f ( х0 ) 
( у 2  8 у 1  8 у1  у 2 )
12 * 2( х )
3 r
r
Очевидно, они равны
и
2 х
х
f ( х0 ) 
Погрешность усечения при уменьшении х уменьшается и при х0 она тоже
стремиться к нулю. Погрешность округления, напротив, увеличивается, а при
х0, она  .
80
у
70
Суммарн.
60
50
Погрешность
усеч.
40
30
20
Погрешность
округлен.
10
0
0
2
Δх
4
6
Δх
Шаг не следует брать слишком большой, чтобы погрешность усечения не была
велика и нельзя слишком маленький, чтобы не была велика погрешность округления.
Найдем оптимальное x для формул (4.6) (4.7) .
Для (4.6): суммарная погрешность:
1
n
(x) 2 M 3 
 min
6
x
Находим производную по x и = k
1
n
3n
* 2x * M 3 
 0, оптимальное  3
2
6
M3
x 
для (4.7): суммарная погрешность равна:
1
3 n
(x) 4 * M 5 
 min
30
2 x
1
3 n
45n
4( x ) 3 * M 5 
 0,  опт  5
2
30
2 ( x )
4M 5
Без вывода приведем погрешности усечения, округления формулы (4.8).
Для (4.8): погрешность усечения 
погрешность округления

4n
.
(x) 2
1
2
M 4 x  , где M 4  max f ( 4 ) ( ) ,   x1 , x1 
12
Пример (численного дифференцирования):
f x  lg x
У
у
2у
3у
1,699 0,041 -0,0036 0,0005
0
4
55 1,740 0,037 -0,0031
4
8
60 1,778 0,034
2
7
65 1,812
9
По формуле из теоремы 4:
у’(50)=1/5(0,0414-1/2(-0,0076)+1/3(0,0005))=0,00872
Погрешность усечения при этом (по теореме 4.1 и замечание 4.10) может быть
оценена по формулам 4.10 и 4.11. При использовании 4.10 надо найти четвертую
производную lg, а при использовании 4.11 надо найти четвертую разность от lg.
Если же будем искать 4(у), то потребуется еще одно значение функции и вычисление будет необходимо произвести с большей точностью (из-за быстрого
уменьшения конечной разности и быстрого накапливания погрешности)  используем 4.10.
х
50
M
1
* 5 , где M  max lg ( 4 )   , можно и r3  x  x 50



50
,
65

4
1
2
lg  x  
ln x  
ln 10 * x
ln 10 * x 3
1
2
lg '  x  
ln ( IV )  x  
2
ln 10 * x
ln 10 * x 4
6
 и получаем
max | ln () ( x) | достигается при х=50 и равно
ln 10 * (50) 4
2.5
(r3 ( x))' | x 50 
* 10  4  7 * 10 5
4
r3(50) 
Таблица для погрешностей центральных формул.
 усеченное
 округл ения
4.6
1 / 6h M 3
/h
4.7
1 / 30h 4 M 5
3 / 2h
2
 min
hоптим альное
3
5
3 / M 3
3
45 / 4 M 5
15/8
5
4.8
1 / 12h 2 M 4
4 / h 2
4
48 / M 4
Комментарий к погрешности усеченной формулы Симпсона:
9 2 M 3 / 2
4 4 M 5 / 45
2/ 3 M 4 h
При использовании формулы Симпсона происходит интерполяция по трем узлам,
а потому следует ожидать, что формула Симпсона будет точна для многочлена до
второй степени включительно.
На самом деле, как мы видели из формулы (4.18), формула Симпсона будет
точна для многочленов до третьей степени включительно, это явление имеет место при всех четных n.
В общем случае, если n=2k+1 – нечетное, то соответствующая квадратурная
формула будет точна для многочленов до степени 2k включительно, если же n=2k
– четное, то соответствующая квадратурная функция будет точна до степени n+1
включительно.
§3. Численное интегрирование.
П.0. Постановка задачи.
В точках х0,х1,…,хn заданы значения функции yi=f(xi) i=0,n.
Необходимо найти значение
xn
 f ( x)dx . Основная идея численного интегрирования:
x0
заменить функцию f(x) на интерполирующую ее функцию y(x) (которую можно
проинтегрировать).
xn

f ( x)dx 
x0
xn
 y( x)dx
x0
Замечание:
В качестве интерполирующей функции обычно используется интерполяционный
многочлен.
П.1. Квадратные формулы Ньютона- Котеса.
Как и в численном дифференцировании, в качестве интерполирующей функции
будем рассматривать только интерполяционные многочлены.
Интерполяционный многочлен Лагранжа:
n
( 4.12) Pn ( x )   g i ( x ) yi , где
i 0
(4.13) g i ( x) 
( x  x0 )( x  x1 )...(x  xi 1 )( x  xi 1 )...(x  xn )
( xi  x0 )( xi  x1 )...(xi  xi 1 )( xi  xi 1 )...(xi  xn )
Следовательно:
xn

x0
 x n xn
 n
f ( x )dx   Pn ( x )dx   (  g i ( x ) yi )dx  yi    g i ( x )dx    yi Ai (4.14)
i 0
 x0 x0
 i 0
x0
x0 i 0
xn
xn
n
n
Коэффициенты Аi зависят от взаимного расположения узлов интерполяции х i,
где i=0,n.
Вычислим коэффициент Аi для равноотстоящих узлов интерполяции xi=x0+i x
xn
Ai   qi ( x )dx 
x0
( x  x0 )( x  x1 )...( x  xi 1 )( x  xi 1 )...( x  xn )
dx 
( xi  x0 )( xi  x1 )...( xi  xi 1 )( xi  xi 1 )...( xi  xn )


 замена



переменных 
n

x  x0 
q( q  1)...( q  (i  1))( q  (i  1))...( q  n )
 q 

dqx 
 

x
i
(
i

1
)...

(
n

i
)

 0
dx


dq  x



 x  qx  x0 
в числителе стоит [n+1] –ая обобщенная степень q, в которой нет сомножителя (qq[ n ]
i), т.е. выражение
qi
( 1) ni x q[ n ]

dq  (( b  xn )  (a  x0 )) H i , где
i! (n  i )! 0 q  i
n
( 1) n i
q[ n ]
dq
i! (n  i )! n 0 q  i
n
Hi 
i=0,n
(4.15)
Коэффициенты Ньютона - Котеса зависят от n и от i и не зависят от х .
П.2. Формула трапеции. Формула Симсона.
Вычислим коэффициент Ньютона- Котеса для n=1.
Имеем H 0 
( 1)10 q( q  1)
q
1
1
dq  ( 1)  ( q  1)dq  (  q) 01 |  0 

0!*1!*1 0
q
2
2
2
0
1
1
2
( 1)11 q( q  1)
1
H1 
dq 

1!*0!*1 0 q  1
2
1
Следовательно:
b x1

a  x0

f ( x )dx  A0 y0  A1 y1 
ba
ba
 y  y1 
y0 
y1  (b  a ) 0

2
2
 2 
b
b
a
a
 f ( x)dx   P ( x)dx  S
1
трапеции
Вычислим коэффициенты Н.-К. для n=2.
H0 
2
2
 2 1
(1) 2 g ( g  1)( g  2)
1
1 g3 3 2
2
dg

(
g

3
g

2
)
dg

  g  2 g  |0 


0!*2!*2 0
g
40
4 3 4
6

2
2
(1)1 g ( g  1)( g  2)
1
1 g3
2
2
2 2
H1 
dg


(
g

2
g
)
dg


  g  |0 


1!*1!*2 0
g 1
20
2 3
3

(1) 0 g ( g  1)( g  2)
1
1 g3 g2  2 1
2
dg

(
g

g
)
dg

   |0 
2!*0!*2 0
g 2
4 0
4 3
2
6
2
H2 
2
По формуле (4.15) получаем:
x2
 f ( x)dx  A y
0
x0
0
2
1 
y
 A1 y1  A2 y 2  (b  a ) 0  y1  y 2  -формула Симпсона.
6 
 6 3
Таблица коэффициентов Котеса.
i
n
H0
H1
H2
H3
H4
H5
H6
H7
H8
1
½
½
2
1/6
2/3
3
1/8
3/8
4
7/90
32/90
5
19/288
75/288
1/6
3/8
12/90
60/288
1/8
32/90
50/288
7/90
75/288
19/288
6
41/840
216/84
0
27/840
272/84
0
27/840
216/84
0
41/840
7
751/17280
3577/1728
0
1323/1728
0
2989/1728
0
2989/1728
0
1323/1728
0
3577/1728
0
751/17280
8
989/28350
5888/28350
-928/28350
10496/2835
0
*/28350
10496/2835
0
-928/28350
*5888/2835
0
989/28350
П.3. Погрешность формул численного интегрирования.
При численном интегрировании возникают два типа погрешностей:
1. усечения
2. округления.
Погрешность усечения возникает из-за замены функции f(x) на интерполирующие ее многочлены. Погрешность округления возникает из-за того, что значение
функции yi в узлах интерполяции известно не точно, а приближенно, с некоторой
погрешностью η. Оценим погрешность формулы усечения трапеции:
R
x1
 f ( x)dx 
x0
x1  x0
( f ( x1 )  f ( x0 ))
2
Рассмотрим погрешность усечения R, как функцию шага  при этом x1  x0  x
R
x1  x

f ( x )dx 
x0
x
( f ( x0  x )  f ( x0 ))
2
b( x)
 f (t )dt
F ( x) 
a( x)
F ' ( x)  f (b( x)) * b' ( x)  f (a( x)) * a' ( x)
1
R' (x)  f ( x0  x) * 1  f ( x0 ) * 0  1 *  f ( x0  x)  f ( x0 )  x( f ' ( x0  x)  
2
1
1
x
 f ( x0  x)  f ( x0 ) 
f ' ( x0  x)
2
2
2
R’(0)=0 (так же как и R(0)=0).
Найдем R x   ( f x0  x  * 1  f x0  * 0  1 * ( f ( x0  x )  f ( x0 )  x( f ( x0  x )) )' 
1
2
1
1
x
f ' ( x0  x )  f ( x0 ) 
f ' ( x0  x )
2
2
2
Проинтегрируем дважды по x учитывая, что R’(0)=R(0)=0.

Используем теорему о среднем (из курса высшей математики):
b
 f ( x)dx  (b  a) * f ( ) , где   a, b .
a
Другой вариант теоремы о среднем.
b

a
b
f ( g (t )) h(t )dt  f ( g ( ))  h(t )dt
a
Для любой непрерывной функции f, g и h найдется точка  такая, что имеет место
равенство:
интегрируем первый раз R’(h) имеем
h
R' (h)   R' ' ( s)ds  R' (0)  (*)
0
R ( h) 
x0  h

x0
f (t )dt 
h
 f ( x 0  L)  f ( x 0 ) 
2
h
теорема  о 
h(t )
t
h2
(*)   
f ' ' ( x0  t )dt  

f
'
'
(
x


)

dt


f
'
'
(
x


(
h
))

0
0
0 2
2
4
среднем

0
h
h
h
0
0
R(h)   R' ( s)ds  R(0)    f ' ' ( x0   ( s))
R ' ' ( h)  
R ( h)  
h
f ' ' ( x 0  h)
2
h
s2
s2
h3
ds   f ' ' ( x0   ( ))  ds   f ' ' ( x0   ( ))
4
4
12
0
(4.16)
_
_
h3
f ' ' ( x) , где x  [ x 0 , x 0  h]
12
(4.17)
Формула трапеции верна для линейных функций.
Если f’’ всюду > 0, т.е. функция выпукла вниз, то интеграл по формуле трапеции
найден с избытком (R<0).
Если f’’<0, то R>0 и интеграл по формуле трапеции найден с недостатком.
Оценка погрешности усечения формулы Симпсона:
Узлы х0,х0+h; х0+2h переведем в узлы х0-h, х0,х0+h и формула Симпсона для узлов
примет вид:
x0  h

x0  h
2
1
1

f ( x)dx  2h  f ( x0  h)  f ( x0 )  f ( x0  h)
3
6
6

R ( h) 
x0  h

f ( x)dx 
x0  h
h
4
h
f ( x 0  h)  f ( x 0 )  f ( x 0  h)
3
3
3
R' (h)  f ( x0  h) * 1  f ( x0  h) * (1) 
1
h
4
1
h
f ( x 0  h)  f ' ( x 0  h)  f ( x 0 )  f ( x 0  h)  f ' ( x 0  h)
3
3
3
3
3
R(0)  0; R' (0)  0
1
1
4
1
h
f ' ( x 0  h)  f ' ( x 0  h)  f ( x 0 )  f ( x 0  h)  f ' ( x 0  h)
3
3
3
3
3
1
1
h
1
R ' ' ( h)  f ' ( x 0  h)  f ' ( x 0  h)  f ' ( x 0  h)  f ' ( x 0  h)  f ' ' ( x 0  h)  f ' ( x 0  h) 
3
3
3
3
1
h
1
1
h
 f ( x 0  h)  f ' ' ( x 0  h)  f ' ( x 0  h)  f ' ( x 0  h)   f ' ' ( x 0  h)  f ' ' ( x 0  h) 
3
3
3
3
3
2
2h ( IV )
R ' ' ' ( h)  
f
( )
3
R ' ' ( h)  f ' ( x 0  h)  f ' ( x 0  h) 
Трижды проинтегрируем R''(h)
h
R' ' (h)   R' ' ' ( s)ds  R' ' (0)   f
h
( IV )
0
h
2s 2
2
( ) 
ds   f ( IV ) ( ) h 3
3
9
0
R' (h)   R' ' ( s )ds  R' (0)   f ( IV ) ()
0
h
_
R(h)   R' ( s )ds  R(0)   f ( IV ) ( x)
0
_
R(h)   f ( IV ) ( x)
1 4
h
18
_
1 5
h , где x  [ x0  h, x0  h]
90
_
1 5
h , где x  [ x0  h, x0  h]
90
(4.18)
Комментарий к погрешности усечения формулы Симпсона:
Формула точна для многочленов до третьей степени включительно. При использовании формулы Симпсона происходит интерполяция по трем узлам, поэтому
формула Симпсона точна для многочленов до второй степени включительно. На
самом деле, как видно из выше рассмотренной формулы она будет точна для многочлена третей степени –парадокс: при n=7 – до многочлена седьмой степени,
при n=8 до многочлена восьмой степени. В общем случае, если n=2k+1 – нечетное, то соответствующая квадратурная формула будет точна для многочлена до
степени 2k включительно. Если n=2k – четное, то квадратурная формула будет
точна для многочлена до степени 2k+1 включительно. Квадратурные формулы
(формулы вида 4.14) более высоких степеней практически не используется, если
необходимо вычислить
xn
 f ( x)dx
при большом числе узлов интерполяции (n), то
x0
весь интервал (х0,хn) разбивают на маленькие участки интерполирования. Для
формулы трапеции две точки – один интервал, для формулы Симпсона три точки
– два интервала.
Общий график есть сумма графиков по коротким отрезкам.
Общая формула трапеции:
на

кажом 


f ( x)dx   f ( x)dx   f ( x)dx  ...   f ( x)dx  


интервале
a  x0
x0
x1
xn 1


( xi 1 , xi ) 

 y  y1 
 y n 1  y n  b  a n y i 1  y i
 y1  y 2 
 x  0


x

...


x



 n 
 2 
2
2


 2 


i 1
b  xn
x1
x2
xn
b x
n
n 1
ba
1
1

(
 x)  y 0  y n   y i    f ( x)dx
n
2
i 1
2
 a  x0
Общая формула Симпсона:
(4.19)
xn
x2
x0
x0
 f ( x)dx  
n  2 k  


f ( x)dx   f ( x)dx  ...   f ( x)dx  четное  
x2
xn  2
число 


xn
x4

2
1 
2
1 
1
1
 2(x  x 2  x0 )  y 0  y1  y 2   2(x  x 4  x 2 )  y 2  y 3  y 4   ... 
3
6 
3
6 
6
6
k
2
1  b  a 1
2
1 
1
 2x  y n  2  y n 1  y n  
y

y

y 2i 

2
i

2
2
i

1
3
6 
k i 1  6
3
6 
6
b  a 1
1
2
1


y 0  y n   y1  y 3  y 5  ...  y 2 n 1    y 2  y 4  ...  y n  2  

k 6
6
3
3

(4.20)
xn
 f ( x)dx
x0
Погрешности усечения общей формулы трапеции и общей формулы Симпсона
состоят из суммы погрешностей усечения формулы трапеции и формулы Симпсона на каждом интервале.
Для формулы трапеции погрешность усечения R:
_
_
h3
h3
f ' ' ( x 1  [ x 0 , x1 ]) 
f ' ' ( x 2  [ x1 , x 2 ]) 
12
12
(4.21)
_

1
h2
f ' ' ( x i ) *  (b  a)
f ' ' ( x) 
n
12
R  ( R1  [ x 0 , x1 ])  ( R2  [ x1 , x 2 ])  ...  Rn  {( 4.17)}  
 ... 
_
h3
ba
h3 n
f ' ' ( x n  [ x n 1 , x n ])  (n 
)(  )
12
h
12 i 1
=R усечения для общей формулы трапеции .
Аналогично выводу формулы (4.21):
h 4 ( IV ) 
f
( x) (4.22)
R усечения для общей формулы Симпсона=  (b  a)
180
Погрешность округления общей формулы трапеции и общей формулы Симпсона:
(b  a ) *  .
h k
 ( y2i 2  y2i1  y2i ) ,
3 i 1
погрешность округления  (b  a) * .
Общая формула Симпсона:
При использовании квадратурных формул до порядка n  7 погрешность округлеn
ния не превосходит (b  a) * *  H i , с n>7
i 1
n
H
i 1
i
>1 растет очень быстро.
П.4. Метод двойного пересчета.
При практических вычислениях часто бывает затруднительно оценить погрешность усечения формулы трапеции или формулы Симпсона из-за того, что
неизвестна f’’ или f(IV) (для формулы Симпсона). В этом случае используется метод двойного пересчета.
Идея метода:
Вычислить интеграл по формуле трапеции с шагом h-Ih, и вычислить интеграл по формуле трапеции с шагом h/2-Ih/2.При этом по формуле (4.21) имеем:
2
_

(b  a )
(b  a )
h
I  Ih 
f ' ' ( x ) * h 2 , аналогично I  I h / 2  
f ' ' ( x) *   . Предположим, что:
12
12
2
_

f ' ' ( x)  f ' ' ( x) , в этом случае: I-Ih=4(I-Ih/2), (т.е. верхняя величина в 4 раза меньше
нижней).
Ih
Ih/2 I
I
Поэтому: Ih-Ih/2=3(Ih/2-I).
Следовательно, если Ih-Ih/2 <3  , то | Ih-Ih/2|<  .
Вывод (практический):
Вычислить Ih, Ih/2 , если их разность по модулю не превосходит 3  , где  - заданная погрешность интеграла, то считают, что: Ih/2 – значение интеграла с погрешностью  .
Коррекция после двойного пересчета:
Как видно из графика, в качестве Iточного выгодно использовать:
I=Ih/2+1/3(Ih/2-Ih)=Iкор После коррекции по этой формуле точность метода возрастает на порядок, т.е. метод трапеции будет не второго, а третьего; а Симпсона – пятого порядка точности. |Ih-Ih/2 |<3  .
При использовании формулы Симпсона в методе двойного пересчета вместо 3 
будет 15  .
Если |Ih-Ih/2 |<15  , то Ih/2 – значение интеграла с погрешностью, не больше  .
Тема 5: Решение дифференциальных уравнений и
систем дифференциальных уравнений.
П.0. Постановка задачи.
Дифференциальное уравнение – это уравнение, в котором участвует f(x,y,y΄…y(k1)
)=0 – ДУ kтого порядка.
Обычно ДУ бывает разрешено относительно старшей производной, т.е.
y(k)=f(x,y,y΄…y(k-1))
Необходимо решить дифференциальное уравнения или систему дифференциальных уравнений, т.е. найти решение этого уравнения или системы в любой заданной точке с заданной точностью.
П.1. Простейший вариант задачи (уравнение первого порядка
с задачей Коши) и простейшие методы решения (Эйлера, Рунге- Кутта).
Задача Коши:
 y' ( x)  f ( x, y)

 y ( x0 )  y 0
(5.1)
Общая идея всех методов численного решения ДУ и СДУ:
Зафиксируем шаг h. Найдем последовательно с помощью некоторого стандартного метода y(x0+h),y(x0+2h),…,y(x0+nh)=, пока не попадем в интересующую нас
точку
=y(xn)=y(b), где b – заданная точка. Шаг h выбирается достаточно маленьким,
чтобы полученное значение y(b) отличалось от точного решения ДУ не больше,
чем на заданную погрешность  .
Метод Эйлера:
tg=y’(x0)={(5.1)}=f(x0,y0)
В методе Эйлера заменяют точное значение (y(x0+h)) на значение касательной,

проведенной к графику у(х) в точке (х0,у0), т.е. y ( x0  h)  y ( x0 )  hf ( x0 , y 0 ) (5.2)

Аналогично: y( x2 )  y( x1 )  hf ( x1 , y1 ) - формула метода Эйлера
Обоснование метода Эйлера и его модификации. Оценка локальной
погрешности этих методов.
h
y( x0  h)  y( x0 )   y' ( x0  t )dt
(5.3)
0
h
Если заменить  y' ( x0  t )dt по формуле прямоугольника на hy’(x0)=hf(x0,y0), то
0
формула (5.3) преобразуется в формулу (5.2). При этом локальная погрешность
формулы Эйлера:
h
 y( x
0
 f )dt  hy ( x0 )  const * h 2 . Если в формуле (5.3) заменить интеграл
0
 t )dt , по формуле трапеции, на
0
h
 y ( x
h
( y ( x0 )  y ( x 0  h)) , то локальная погреш2
0
ность = const*h3 (5.4)
f(x0,y0) (по формуле 5.1) f(x0+h,y(x0+h), где x0 найдем по формуле Эйлера.
Получаем набор формул:
y ( x 0  h)  y ( x 0 ) 


h
f ( x0 , y 0 )  f ( x0  h, y1* ) , где y 1*  y ( x0 )  hf ( x0 , y 0 )
2
Оценим погрешность формулы (5.5)
используя (5.2) получаем, что погрешность равна:
(5.5)


h
h
h
h
f ( x0 , y 0 )  f ( x0  h, y1* )   y ' ( x0  t )dt   f ( x0 , y 0 )  f ( x0  h, y ( x0  h))    y ' ( x0  t )dt 
2
2
0
0


h
 f ( x0 , y0 )  f ( x0  h, y( x0  h))  h f ( x0 , y0 )  f ( x0  h, y1* )  {(5.4)} 
2
2

h
h
 consth 3  f ( x0  h, y1* )  f ( x0  h, y ( x0  h))  consth 3  f ' y ( x0  h, y )consth 2  consth 3
2
2



Каждый раз const может быть разной.
Формулы (5.5) (с локальной погрешностью соnst*h3), называются модификацией
метода Эйлера или методом Рунге- Кутта – 2-ого порядка.
Вторая модификация метода Эйлера (метод Рунге- Кутта 2-ого порядка):
n
Если  y' ( x0  t )dt на hy’(x0+h/2) (с погрешностью const*h3)
0
h
2
(5.6) y( x0  h)  y( x0 )  h * f ( x0  ; y *1 ), где y *1  y( x0 ) 
2
2
h
f ( x0 , y 0 ) =
2
локальная погрешность формулы (5.6)-const*h3.
П.2. Сведение дифференциальных уравнений высших порядков к системе
дифференциальных уравнений первого порядка.
Рассмотрим дифференциальное уравнение nого порядка, разрешенное относительно старшей производной.
Задачи Коши:
(5.7) y n  ( x)  f ( x, y, y , y ,..., y n1 ) дифференциальное уравнение
 y ( x0 )  y 0*

'
 y ' ( x0 )  y 0
 ( n 1)
( x0 )  y 0n 1
y
- начальные условия.
Чтобы свести (5.7) к СДУ 1-ого порядка
y ' ( x)
 y ( x) 
 y ' ( x)  




 

y ' ' ( x)
 y ' ( x) 
 y ' ' ( x)  






  F ( X , (Y  y, y ' ,..., y ( n 1) ))
Y ( x)  y ' ' ( x) ,тогда: Y ' ( x) 

:
:


 ( n 1)  

:
( x)  
y ( n 1) ( x)


y

 y ( n 1) ( x) 
 y ( n ) ( x)   f ( x, y, y ' ,..., y ( n 1) ) 



 

 y0 


 y'0 
(5.8)
Y ( x0 )   y ' ' 0 


 : 
 y ( n 1) 
 0

Y '  F ( X , Y )
- СДУ в векторной форме.
Y ( x0 )  Y0
Таким образом (5.7) преобразовалось к 
Решить СДУ (5.8) можно любым известным способом.
Сведение ДУ высших порядков к СДУ первого порядка.
Рассмотрим ДУ nого порядка.
 y ( n )  f ( x, y , y '... y ( n 1) )
 
(0)
  y ( x0 )  y 0
  ( n 1)
( x0 )  y 0( n 1)
  y
(5.8.1.)
Чтобы свести ДУ (5.8.1.) nго порядка к СДУ первого порядка, введем вектор функцию Y(x), тогда для этой векторной функции справедливо следующее ДУ.
 y'



 y' '



Y ' ( x)  

 y ( n 1)



( n 1) 
f
(
x
),
y
'...
y


y



 y' 
Y ( x)  



 y ( n 1) 


В итоге ДУ (5.8.1.) преобразуется к СДУ (5.8.2.):
Y '  F ( x, Y )
(5.8.2.), где

Y ( x0 )  Y0
 y'



 y' '



F ( x, y , y '... y ( n 1) )  
,
(
n

1
)
y



( n 1) 
)
 f ( x, y... y
 y 0( 0 ) 


Y0  

 ( n 1) 
 y0 
(5.8.2.) можно решать методом Эйлера и Рунге-Кутта, только работать не с
числами, а с векторами.
Сведение дифференциальных уравнений 2-ого порядка к СДУ первого порядка и
выполнение 2-х шагов:
 y ' '2 y ' x  y  1
 y

, вводим Y    . Имеем для Y ДУ(СДУ)
 y (1)  2
 y'
 y ' (1)  2


 y'


Y '  
1

2
y
'
x

y



,возьмем шаг h=0,1. Имеем:


2



Y (1)   2 2 



 2
 2 
 1,8   y (1,1)


Y (1,1)  Y (1)  0,1F (1, Y (1))   2   0,1
1  2 * (2) *1  2    2,5   y ' (1,1)

2




1.8 
  2,5
 1,55   y (1,2)
  0,1


Y (1,2)  Y (1,1)  0,1F (1,1, Y (1,1))  
1  2(2,5)1,1  1,8    3,13   y ' (1,2)
  2,5 



П.3. Метод Рунге- Кутта 4-ого порядка.
k1  f ( x i , y i )
h
h
k 2  f ( x i  , y i  k1 )
2
2
(5.9)
h
h
k 3  f ( xi  , y i  k 2 )
2
2
k 4  f ( xi  h, y i  hk 3 )
h
y i 1  y i  (k1  2k 2  2k 3  k 4 ) - формулы Р.-К. 4-ого порядка.
6
Погрешность на одном шаге метода Рунге- Кутта =const h5 – локальная погрешность. Глобальная погрешность (т.е. погрешность вычисляется на фиксированном
интервале [a,b]) всегда на порядок меньше локальной погрешности.
Методы
М.Э. – (5.2)
М.Р. – К. 2пор(1) –
(5.5)
М.Р. – К. 2пор(2) –
(5.6)
М.Р. – К. – (5.9)
Локальная
const*h2
const*h3
Глобальная
const*h
const*h2
const*h3
const*h2
const*h5
const*h4
П.4. Оценка погрешности методов Эйлера и Рунге- Кутта.
Лемма 5.1:
 y ' ( x)  y ( x) f ( x)
 y (a)  y 0
Решения задачи Коши: 
(5.10)
x
Будет функция: y( x)  y0 * exp(  f (t )dt )
(5.11)
a
dy
 yf ( x)
dx
dy
 f ( x) dx
y
dy
ln y  
 f ( x)dx  c1
y 
x
F ( x)  F (a)   f ( z )dt
a


y ( x)  exp   f ( z )dt  * c
a

x
x
Используя условие у(а)=у0 получаем y(a)  exp(  f ( z )dt ) * c  c  y0
a
Лемма 5.2:
Пусть функции y1(x), y2(x) являются решениями задачи Коши с одной и той же
функцией f и начальными условиями, заданными в одной точке, т.е.
 y1' ( x)  f ( x, y1 )

 y1 (a)  y1
 y 2' ( x)  f ( x, y 2 )

 y 2 (a)  y 2
у1(х)
у2(х)
_
тогда существует функция у( х)  [ y1 ( x), y 2 ( x)] - такая, что для любой точки b имеет
b

место равенство y2 (b)  y1 (b)  ( y2 (a )  y1 (a )) * exp(  f y' ( x, y( x)) dx)
(5.11.1)
a
Доказательство:
_
x  [ a, b] имеем: ( y2 ( x)  y1 ( x))'  f ( x, y2 ( x))  f ( x, y1 ( x))  f y' ( x, y( x)) * [ y2 ( x)  y1 ( x)]
Воспользуемся леммой 5.1, взяв у=у2-у1, f=f’y получаем нужное нам утверждение.
Как следует из формулы (5.11.1) расхождение между решениями задачи Коши с
одним и тем же ДУ но разными начальными условиями, (заданными в одной точке) оцениваются через разность начальных условий и экспоненты от


f y' ( x, y ( x )) dx .
Теорема 5.3: (оценка погрешности метода Эйлера и Рунге- Кутта)
Рассмотрим любой метод, имеющий локальную погрешность const hp+1, тогда на
интервале (а,b) решение дифференциального уравнения (5.1), полученное по этому методу отличается от точного решения не больше, чем на (5.12)
exp( L(b  a))[ consth p (b  a)  n  ] , где L  max f y ' ( x, y) ,  -max погрешность на
( x , y )D
каждом шаге, - погрешность, с которой было известно у0, n – число шагов =(ba)/h.
Комментарий к теореме (5.3) и формуле (5.12):
Если при h 0,  0, n  0 , то погрешность решения дифференциального
уравнения стремится к нулю. Но на практике, если (exp(L(b-a))) - велико, то достичь малой погрешности бывает практически невозможно.
Теорема 5.4(оценка глобальных погрешностей одношаговых методов)
Если в области D: f ’ y(x,y)-k<0, где k – некоторая const, то оценку теоремы 5.3.
можно быть заменить на оценку y n  y ( xn )  const (h p 

nk
)    exp( k (b  a ))
Доказательство:
y n  y ( xn )  (*)  ( consth
p 1
  )  ( consth p 1   ) exp( kh)  (consth p 1   ) exp( krh)  ... 
 (consth p 1   ) exp( k (n  1)h )  const (h p 1   ) exp( knh) 
const (h p 1   )
  exp( knh) 
kh

 const p  

h     exp( knh)    (5.13)  const (h p  )   exp( k (b  a ))
kn 
hk
 k
Комментарий к формуле 5.13:
В 5.13 нет большого множителя exp(L(b-a)), поэтому оценка в 5.13 гораздо меньше, а, следовательно, лучше. Но чтобы 5.13 была верна, надо потребовать
f ' y -k <0. Область D - эта область на плоскости XOY, на которой все происходит.
п 5. Многошаговые методы решения ДУ и СДУ
Рассмотренные выше методы модификаций Эйлера, Рунге-Кутта – одношаговые
методы, т.к. в каждом из них для нахождения Yi+1 использовалось только одно
значение Уi, найденное на предыдущем шаге. В многошаговых методах используется для нахождения Уi+1 не только Уi, но и Уi-1, Уi-2 и т.д. Метод называется n
шаговым, если для нахождения Уi+1 использовалось n предыдущих значений.
Многошаговые методы дают лучший результат по сравнению с одношаговыми.
Они менее чувствительны к ошибкам вычислений, погрешность у них накапливается медленнее.
Многошаговых методов много. С повышением точности на ЭВМ актуальность
многошаговых методов снизилась. Наиболее распространенным является метод
Милна. Сначала находим yi  yi 4 
4h
(2 f ( xi 3 , y i 3 )  f ( xi  2 , y i  2 )  2 f ( xi 1 , y i 1 ))
3
h
3
Затем yi  yi 2  ( f ( xi 2 , yi 2 )  4 f ( xi 1 , yi 1 )  f ( xi , yi )) Метод Милна 4-х шаговый метод (для нахождения yi+1 используются четыре предыдущих значение). Погрешность (глобальная) метода Милна макая же, как у метода Рунге-Кутта четвертого
порядка: const*n4.
п 6. Оценка погрешности решения ДУ и СДУ методом двойного пересчета.
Коррекция решения.
Явные оценки для погрешности решения весьма затруднительны, т.к. const,
участвующие в оценке погрешности весьма трудно оценить, поэтому поступают,
как и в численном интегрировании – используют двойной пересчет. Т.е. находят
решение ДУ на [a,b] дважды с шагом h и с шагом h/2. после этого сравнивают
значения во всех точках x (в которых были вычислены оба значения) и их разность с 1ε для первого порядка, 3ε для второго порядка, 15ε для четвертого порядка.
Замечание 1: если ε не достигнута, т.е. хотя бы в одной точке неравенство не выполняется, то h делят на 2 и т.д. 2: после двойного пересчета необходимо сделать
коррекцию, т.е. где были вычислены значения с шагом h и h/2 можно найти yкор
y кор  y h / 2 
1
( yh / 2  yh )
2 1
p
(5.13.1)
В качестве точного значения можно взять yh/2 или yкор.
yкор.- точнее, после коррекции точность метода возрастает на порядок.
3: если требуется найти решение ДУ в точке x, которая не совпадает ни с одним
из узлов xn , используют интерполяцию.
4: при двойном пересчете и расчете СДУ или ДУ высших порядков, сведенных к
СДУ, мы можем контролировать выполнение неравенства (5.13.1) не только для
y, но и для y’,y’’.
5: где и как можно применять метод двойного пересчета?
При решении ДУ и СДУ, при численном интегрировании, очевидно, что этот метод можно применять к задачам численного дифференцирования (так как меняется шаг и аналогичная погрешность).
п. 7. Краевые задачи для дифференциальных уравнений
Выше рассматривалось решение ДУ и СДУ с начальными условиями, заданными
в одной точке, так называемую задачу Коши, но для ДУ высших порядков часто
бывает необходимо решить не з. Коши, а так называемую краевую задачу, т.е. ДУ
+ начальные условия, которые заданы в разных точках.
Рассмотрим простейшую краевую задачу для ДУ 2 порядка.
 y   f ( x, y, y ' )

(5.14)
 y (a)  y 0
 y (b)  y
1

Для решения 5.14 решают набор обычных задач Коши.
 y   f ( x, y, y ' )

(5.15), где параметр k меняют, подбирая его, чтобы выполнялось
 y (a)  y 0
 y (b)  k

условие у(в) = у1
Этот метод называется методом стрельб
90
80
70
60
50
40
30
20
10
0
Восток
Запад
1 кв
2 кв
3 кв
4 кв
Процесс перестрелки ведем до тех пор, пока не будет достигнута заданная
точность. Задачу Коши (5.15) решаем любым методом: Эйлера, Коши, Милна,
Рунге-Кутта. При прицеливании необходимо решить нелинейное уравнение
у(к)=у1, где у(к) – решение задачи 5.15 в точке х=в. Оно зависит от числа k, которое можно найти с некоторой заданной точностью.
Рекомендации:
Так как ДУ не может быть решено относительно старшей производной y(n)
то на каждом шаге выбранного метода необходимо находить старшую производ-
ную из ДУ т.е. на каждом шаге необходимо решать нелинейное уравнение для
старшей производной. При этом выгодно использовать самый быстрый способ
решения НУ (м.Ньютона), который может не сходиться, если первоначальное
приближение x0 далеко от корня, поэтому до использования метода Ньютона
необходимо сделать несколько шагов МПД, который всегда гарантировано сходится.
Замечание к теме 5:
Во всех формулах (Эйлера, Милна, Рунге-Кутта) решение ДУ 1-ого порядка можно заменить уУ, fF и решать, таким образом, не ДУ 1-ого порядка, а СДУ 1ого порядка.
Тема 6: Аппроксимация.
П.0. Постановка задачи аппроксимации.
Функция у=f(x) задана своими значениями в точках х0,х1,...,хn, yi=f(хi). Фиксирован некоторый класс функций G.
Задача аппроксимации: выбрать среди
функций g  G некоторую функцию g’, которая лучше всего приближает функцию f
в узлах xi. В отличие от интерполяции при
аппроксимации не требуется, чтобы
g(xi)=yi, а требуется лишь g(xi)  yi. Обычно
аппроксимацию применяют, когда значения функции f были известны с некоторой
погрешностью.
Уточнение задачи аппроксимации.
Для оценки близости функции g к набору yi составляется вектор невязок (погрешности) (g(x0)-y0, g(x1)-y1, ... , g(xn)-yn). Его надо минимизировать с помощью
выбора функции g. В аппроксимации по методу наименьших квадратов используется 2-я норма. В классе функций G рассматривают всевозможные линейные
комбинации.G={a0g0(x)+a1g1(x)+...+akgk(x),aiR}, gi(х) некоторый фиксированный
набор функции.
Пример: G={a0} аппроксимация константы
G={a0+a1x}
G={a0+a1x+a2x}
П.1. Метод минимальных квадратов (ММК).
Задача: R2  min за счет выбора коэффициентов аj в аппроксимирующей функk
ции g ( x )   a j g j ( x ) .
j 0
Фиксирован набор функций: g0(x),g1(x),...,gk(x) даны (x0,y0),(x1,y1),...,(xn,yn).
Задача:
k
g(x)=  a j g j ( x ) - линейная комбинация функции gj
j 0
составляем вектор невязок: (g(x0)-y0, g(x1)-y1, ... , g(xn)-yn) и его 2-ю норму, стремящуюся к минимальному (изменяя аj)
S a 0 ...a k   (|| (g(x 0 ) - y 0 , g(x 1 ) - y1 , ... , g(x n ) - y n ) || 2 ) 2 
 ( ((g(x 0 ) - y 0 ) 2  (g(x 1 ) - y1 ) 2  ...  ( g(x n ) - y n ) 2 ) 2 
2
 k

  ( g ( xi )  y i )   ( a j g j ( xi ))  y i   min
i 1
i 0  j 0

n
2
n
Ищем минимум функции:
S
0
a
n
S
k

  2  a j  g j ( xi )  y i  (0  ...  0  g l ( xi )  0  ...  0)  0
a j i 0  i 0

n

i 0
k
n
 a j  g j ( xi ) g l ( xi )   y i g l ( xi )
j 0
k
i 0
n
a  g
j 0
j
i 0
n
j
( xi ) g l ( xi )   y i g l ( xi )      6.1
i 0
Теорема 6.1:
Так как СЛАУ (6.1) - квадратная ((k+1)*(k+1)), а матрица коэффициентов Cpj- не
вырожденная, то система имеет всегда единственное решение (необходимо, чтобы функции gj были линейно независимы в точках xi)
c00 a 0  c01a1  ...  c0 k a k  d 0
c a  c a  ...  c a  d
1k k
1
 10 0 11 1
     (6.2)
....

c k a 0  c k1 a1  ...  c kk a k  d k
 0
n
сlj   g j ( xi ) g l ( xi )
i 0
n
dl   y i g l ( xi )
i 0
Теорема 6.2: решение СЛАУ (6.1) – всегда точка строгого глобального min функции S.
Пример: С={a0} g0=1
Coo’a0=d0
n
C00= 1 *1  n  1
i 1
n
d 0   yi
i 0
n
a0 
y
i 0
i
n 1
- среднее арифметическое
С={a0+a1x} g0=1 g1=x=x1
c00 a0  c01a1  d 0

c10 a0  c11a1  d1
n
C00=  1 * 1
i 1
n
C01=  1 * xi1
i 1
n
C10=  xi * 1
i 1
n
C11=  xi2
i 1
n
d 0   y i *1
i 0
n
d 1   y i * xi
i 0
П.2. Аппроксимация по ортонормированным наборам функций.
Предположим, что набор функций g0(x),g1(x),...,gk(x) образует ортонормированную систему на сетке х0,х1,...,хn.
n
(gk,gl)=gk(x0)gl(x0)+...+gk(xn)gl(xn)=  g k ( xi ) g l ( xi )
i 0
0, k  l
.
1, k  l
(ортонормированная система – (gk,gl)) = 
Следовательно, для ортонормированной системы функций матрица коэффициентов Сlj в системе (6.2) будет единичная и аj легко находится.
aj=dj=(yi,gj).
Вывод:
Для ортонормированной системы функций коэффициенты аппроксимации находятся гораздо проще, чем обычно. Основная проблема: получить ортонормированную систему функций?
1. использовать тригонометрическую интерполяцию - теорема (3.7).
Для ортонормированной системы функций:
k
g(x)=  ( y, g j ) g j ( x)
(6.3)
j 0
g(x) – начальный интервал ряда Фурье функции у.
Если бы функция gj образовывала не только ортонормированную систему, но и
базис (n+1) мерного пространства, то к=n и это было бы в точности разложение
Фурье.
Если система функций gj не ортонормированная, то ее можно такой сделать с помощью процесса ортогонализации Грамма – Шмита.
П.3. Процесс ортогонализации Грамма – Шмита.
Рассмотрим не ортонормированную, линейно независимую систему векторов
h0,h1,...,hk преобразуем ее в ортонормированную за k шагов.
Рассмотрим i- ый шаг (i=1,2,...,k):
Первый i- ый вектор уже ортонормирован:
((l0,l1,...,li-1)- ортонормирован, (hi,hi+1,...,hk)- произволен) – i- ый шаг.
Сделаем hi- перпендикулярно ко всем l0,l1,...,li-1, а затем нормируем его (т.е. сделаем его длину равной единице).
1. “перпендикуляризация”
рассмотрим вектор:
i 1
ei  hi   (hi , l k )ek
k 0
Докажем, что ei  l0,l1,...,li-1, имеем ei скалярно домноженный на ej
i 1
 j  0,1,..., i  1(ei , e j )  (hi   (hi , ek )ek , e j ) 
k 0
i 1
i 1
k 0
k 0
 (hi , e j )   (hi , ek )ek , e j )  (hi , e j )   (hi , ek )[( ek , e j )  0, кроме (e j , e j )  1]  (hi , e j )  (hi , e j )  0
2. “нормирование”
e 
ei
ei
он ортогонален всем предыдущим.
2
Замечание:
ei  0 , так как ei  0 являясь линейной комбинацией линейно независимых век2
торов с нулевыми коэффициентами.
Тема 7: Нелинейная оптимизация.
Метод градиента (метод наискорейшего спуска).
П.1. Сведение системы линейных уравнений к задаче
нелинейной оптимизации (ЗНО) и наоборот.
Задача нелинейной оптимизации – найти [min f(x)]-одномерную ЗНО или [max
f(x)]- многомерная ЗНО
x=(x1,x2,...,xn)
Как известно из высшей математики, экстремум функции f достигается (если
функция дифференцируемая, гладкая) или на границе области D или в точках х
оптимальное ,в которых все частные производные обращаются в 0.
 f
 x | x  x jg nb v.  0
 1
:
 f

| x  x jg nb v.  0
 x n
(7.1),
Первая возможность рассматривать не будем.
 f
 x ( x1 ...x n )  0
 1
:
 f

( x1 ...x n )  0
 x n
(7.2),
т.е. задачу нелинейной оптимизации (7.1) свели к задаче (7.2) – системе нелинейных уравнений.
Обратная процедура (СНУ  ЗНО)
Рассмотрим СНУ:
 f1 ( x1 ...xn )  0

:
 f ( x ...x )  0
 n 1 n
n
и функцию: f ( x1 ...x n )   f i 2 ( x1 ...x n ) (7.4), так как f всюду  0, то ее
i 1
min достигается в точке х=(х1…хn) являющейся, решением (7.3).
Сводить ЗНО к СНУ и решать ее м. Ньютона хорошо теоретически, но весьма
проблемно практически, т.к. метод Ньютона может расходиться и функция f аналитически не задается, поэтому лучше использовать численное дифференцирование. При попытке численного дифференцирования возникает погрешность, из-за
которой м.Ньютона теряет скорость и на каждом шаге приходится делать много
вычислений. Поэтому на практике при решении ЗНО обычно используют специальные методы, самый распространенный – метод градиента.
П.2. Метод градиента.
Имеем min функции f(х1,…,хn) (без ограничений на область D или в предположении, что она достаточно большая, т.е. не помешает процессу).
Идея метода градиента:
1. Выбрать точку х0 достаточно близкую к точке min;
2. Найти направление наибольшего убывания f в точке х (направление наискорейшего возрастания f в точке х0 – вектор градиента (grad)
 f
gradf | x  x0  
 x1

,...,
x  x0
f
xn

 , направление: поиск убывания – противополож
x  x0 
ный градиенту: вектор – grad f |x=x0 .
3. Двигаемся по направлению градиента (по прямой) до тех пор, пока не начнем
подниматься, (т.е. пока не достигнем min на нашей одномерной траектории в
точке х1 ).
4. Из точки х1 двигаемся в направлении наискорейшего убывания (-grad f |x=x0 ) до
точки х2 . Продолжаем этот процесс, до тех пор, пока не достигнем заданного
min с заданной точностью. Критерий прерывания универсальный.
Переведем алгоритм на математический язык:
g 0 (t )  f ( x0  tgradf | x  x ) - траектория (зависит от t) движения на первом этапе.
Ищем min g0(t):
а) Предположим, что min достигается при t=t0:
х1=х0 – t grad f |x=x0
б) Рассмотрим g1(t)= f(х1 – t grad f |x=x1 )
0
x2=х1 – t1 grad f |x=x1,
и т.д.
Т.е. на каждом этапе метода градиента необходимо решать ЗНО (находить min
gi(t)).
Для нахождения градиента, функцию f необходимо дифференцировать
(аналитически или численно).
П.3. Одномерная ЗНО. Метод деления.
Первый вариант решения одномерной ЗНО - свести ее к нелинейному уравнению:
dg i
 0 и решать его любым известным методом.
dt
Этот метод применим, если gi гладкая и ее производную нетрудно явно вычислить. Часто это не удается и поэтому одномерную ЗНО решают именно как ЗНО
(т.е. в том виде, как она дана).
Будем решать одномерную ЗНО (ищем min g(t)) следующим образом:
Предположим, нам известно, что min значение t оптимальное  [a,b]. Разобьем интервал [a,b] точками: ti (a=t0<t1<…<tn=b) на маленькие интервалы и вычислим g(ti),
выберем среди них min – g(ti опт.).
Тогда, если g имела один min на [a,b], то: ti опт.-1  ti опт.  ti опт.+1.
На следующем шаге берем в качестве a=ti опт.-1, в качестве b=ti опт.+1, разбиваем полученный интервал на части и производим очередное уточнение для t оптимального.
Процесс продолжается до тех пор, пока не будет достигнута заданная точность.
Число интервалов должно быть ≥3, чтобы интервал поиска уменьшался.
При подобном методе деления на каждом шаге необходимо искать значение функции f в двух точках и длина интервала поиска уменьшается приблизительно вдвое. Для достижения заданной точности ε нам потребуется проделать
b  a
b  a


log 2   шагов и N  log 2   * 2 операций (7.3).
П.4. Метод золотого сечения.
Метод золотого сечения применяется для минимизации числа действий при реa x
x b
шении ЗНО методом деления. При этом [  ||  ] разбивается на три интервала и
выбирается min g(ti). На следующем шаге один из крайних отрезков будет обраa1
! ?
b1
щен и остается | | | | .
При удачном подборе пропорции деления первоначального интервала [a,b] и делении отрезка [a1,b1] в тех же пропорциях, потребуется вычислить значения
функции f только в одной точке, потому что значения в точке нам было известно
на предыдущем шаге.
Подберем необходимые пропорции:
Считаем, что длина [a,b]=1 и от этого интервала были отсечены два одинаковых
отрезка длины х. Тогда, если отрезок обозначим за y, то получим:
y 1 x

, y=(1-x)x, но с другой стороны y=1-2x
x
1
1  2 x  x(1  x)
3 5
2
3 5
x
 0,39 , при этом интервал [a,b] уменьшается в
2
x
 1 

 раз, что составляет:
1 x 
1
5 1

 1,61 .
1 x
2
Трудоемкость одномерного ЗНО методом золотого сечения.
ba

* 1 шагов (7.4). Данное N меньше числа N из форНам потребуется N  log 2
 

мулы (7.3). Выигрыш происходит за счет того, что мы на каждом шаге значение
функции считаем 1 раз и, несмотря на то, что длина интервала уменьшается не в 2
раза, а только лишь в 1,618 раза, происходит выигрыш по количеству итераций.
Тема 8. Применение метода Монте - Карло в численных методах.
П.0. Постановка и пример задачи, решаемой методом Монте-Карло.
Методом М.-К. можно решать самые разные задачи численных методов (вычислить интеграл, решить линейные и не линейные системы уравнений и дифференциальные уравнения).
Будем вычислять этим методом интегралы.
Обычные методы численного интегрирования (см. тема 4 §1) хорошо работают
только для интегралов небольшой кратности, выше рассматривали интегралы
только первой кратности, например, для вычисления десятичного интеграла
[0,1]*…*[0,10] с шагом h=0,1 используя аналог квадратурных формул Ньютона –
Котеса придется суммировать (11)10 слагаемых, что практически нереально.
Поэтому применяют метод М.-К..
Характерная особенность метода М.-К.:
Невозможность получения гарантированной оценки точности. Можно утверждать, что некоторая точность достигнута с определенной вероятностью.
Практическое правило:
Будем считать, что если вероятность  0,9 ( в зависимости от конкретной ситуации), то оценка является гарантированной.
П.1. Первый способ нахождения интервала методом М.-К..
Задача:
Найти n-кратный интеграл по n-мерному единичному кубу(по области D):
 ... f ( x1 ,..., xn )dx1 ...dxn (8.1)
Предположим, что область D заключена в n- мерный параллелепипед:
П=[a1,b1]*[a2,b2]*…*[an,bn]
Будем “бросать” равномерно по всему параллелепипеду точки:
Х(i)=(x1(i),…,xn(i))
Для этого первая координата х1 должна быть равномерно распределена на интервале [a1,b1],…, а хn должна быть равномерно распределена на интервале [an,bn], и
быть независимыми.
Обычно для этих целей используют стандартный датчик случайных чисел:
random  (b  a )random  a
[0,1]  [a, b]
Датчики случайных чисел бывают:
1. физические,
2. математические.
Часто используют математический ДСЧ :
Берется некоторое случайное число q 2  1,41421956147

Если полученая последовательность шестизначных чисел будет равномерно распределена на интервале: [0,..999999]  [0, a1 , a2 , a3 , a4 , a5 , a6 ] , то интервал перейдет в
интервал [0,1]. У подобного датчика случайных чисел имеется недостаток: он не
совсем случаен. Обычно для избавления от этого на математический датчик
накладывают физический датчик.
Интеграл (8.1) заменяем на многомерный объем параллелепипеда П:
V (П)
 f (x
(i )
(8.1) 
x D
N
(i )
)
,где: N – общее число испытаний, х(i)D – успешные испы-
тания.
N
I 0   ... f ( x1 ,..., x n )dx1 ...dx n 
V ( П ) f ( x (i ) D( x (i ) ))
i 1
N
(8.2)
 - функция, характеризующая область D.
1, x  D
0, x  D
D( x)  
На основании теорем из теории вероятностей можно доказать, что:

 
P I 0  I пр 
  1  const ( f , D,  ) (8.3).
N

Практический вывод из (8.3):
Для увеличения точности в k раз необходимо увеличить количество испытаний в
k2 раз.
Const – оценивается весьма сложно. Точные оценки для вероятности приведем
для второго способа вычисления интеграла.
П.2. Второй способ вычисления интеграла методом М.-К..
Изначально считаем, что :D  [0,1]n и всюду в области D;
0  f ( x)  1 - в этом случае интеграл (8.1) можно заменить, на объем (n+1) мерной
фигуры лежащей под графиком функции:
I0=V(c)
Для нахождения I0 будем “бросать” точки Z(i)=(x(i),y(i)), равномерно распределенные в [0,1]n*[0,1]. При этом V (c) 
n
, где: n – число попаданий точки Z(i) в область
N
С, N – общее число испытаний.
Z (i )  C  x (i )  D,0  y (i )  f ( x (i ) ) .
На основании неравенства Чебышева приходим к выводу, что:
I (1  I )


n
D( )
1
P I 0 
    1  2  1  0 2 0  1  2 ,
N

 N
4 N



n
,
N
D 
I 0 (1  I 0 )
. (6 балов).
N
Download