ЧИСЛЕННЫЕ МЕТОДЫ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ. (ЛЕКЦИИ темы:0-3) Тема 0: Основные понятия курса.

advertisement
ЧИСЛЕННЫЕ МЕТОДЫ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ.
(ЛЕКЦИИ темы:0-3)
Тема 0: Основные понятия курса.
П.1. Характеристики алгоритмов численных методов.
1. Погрешность (точность вычисления);
2. Трудоемкость (необходимое число действий, вычислений);
3. Необходимая память.
П.2. Абсолютная и относительная погрешности.
Пусть x - приближенное значение некоторой величины, а
x0– ее точное значение , тогда абсолютной погрешностью x называется величина x=|x-x0| , тогда: x= x0x
Относительной погрешностью измерения называется величина :
x 
x
| x0 |
x  x0 (1  x)
Обязательное условие: x|x| , x1
В значении погрешности необходимо учитывать, приблизительно, до 1,2 значащих знаков.
Значение величины берется на 1-2 знака больше величины погрешности.
Пример:
Х=9,86543  0,01395
9,865  0,01
98654  0,014
Х=3,7867  0,578
3,79  0,6
3,787  0,58
П.3. Изменение абсолютной и относительной погрешностей в результате
арифметических операций.
Теорема 1.1.
При сложении абсолютные погрешности складываются, т.е. абсолютная погрешность суммы не превосходит сумму абсолютных погрешностей.
х=х0 х
у=у0 у
x  y  x0  x  y0  y  ( x0  y0 )  (x  y)
Абсолютная погрешность разности не превосходит сумму абсолютных погрешностей.
Задача: Исследовать изменение относительной погрешности при сложении и
вычитании. (8 балов)
Замечание:
При многократном суммировании величины с абсолютной погрешностью Δx
итоговая абсолютная погрешность будет не n*Δx, а несколько меньше - порядка nx (по закону больших чисел).
Теорема 1.2.
При умножении и делении складываются относительные погрешности, т.е. относительная погрешность произведения (частного) не превосходит сумму относительных погрешностей.
x  x0 (1  x)
y  y 0 (1  y )
xy  x0 y 0 (1  x)(1  y )  x0 y 0 (1  x  y  xy )
xy  x, y
Задача: доказать утверждение для деления (5 балов).
Задача: умножение и деление. Использовать изменение абсолютной погрешности при умножение и делении (6 балов).
П.4. Изменение погрешности при вычислении функций.
Абсолютная погрешность при вычислении функции равна:
f ( x)  f ( x0  x)  f ( x0 )  f ' ( x0 )x  f ( x0  x)  f ( x0 )  f ( x0 ) 
( f ( x0  x)  f ( x0 ))x
 f ' ( x0 )x
x
1. Степенная функция:
 f ( x0 ) 
f ( x)  x 


f ( x)  f ( x0  x)  ( x0  x)  ( x0 (1  x))   x0 (1  x)  x0 (1  x)
Вывод: при вычислении степенной функции относительная погрешность увеличивается в  раз.
2.Экспоненциальная функция:
f(x)=ex
х=х0+х
e x  e x0  x  e x0 e  x  e x0 (1  x)
Вывод: относительная погрешность при вычислении экспоненты равна абсолютной погрешности аргумента.
3.Логарифмическая функция:
ln x  ln x0 
1
x  ln x0  x
x0
Вывод: абсолютная погрешность при вычислении логарифмической функции
равна относительной погрешности аргумента.
Правило работы с погрешностями:
1. Вычисления погрешностей производить с точностью до 0.01;
2. Значение величины берется на 1-2 знака больше порядка погрешности.
Договоренность: если известно, что число приближенное, а записывают, как
точное, то погрешность равна половине последнего разряда.
Задача: исследовать относительную, абсолютную погрешности при вычислении sin (7 балов).
П.5. Источники погрешностей.
1. Неточные исходные данные;
2. Округление результатов при вычислениях;
3. Погрешности некоторых математических методов (при суммировании
бесконечных рядов и т.д.).
Тема 1: Методы решения СЛАУ.
Методы решения СЛАУ делятся на две группы:
1. Точные методы;
2. Приближенные (итерационные).
Точные методы позволяют точно получить решение в предположении, что все
вычисления производились абсолютно точно (м. Гаусса, м. обратных корней).
Приближенные методы не позволяют получить точное решение на конечном
шаге. Оно лишь является пределом последовательности приближенных вычислений (м. простой итерации, м. Зейделя).
§1.Точные методы решения СЛАУ.
П.1. Метод Гаусса.
Рассмотрим произвольную СЛАУ с квадратной матрицей (только квадратной
матрицей!):
a11 x1  a12 x 2  ...  a1n x n  b1
a x  a x  ...  a x  b
 21 1
22 2
2n n
2

:::::::::: :::::::::: :::
a n1 x1  a n 2 x 2  ...  a nn x n  bn
Ax  b
 a11 ... a1n 
 x1 


 
A   : :::
:  x : 
a

x 
 n1 ... a nn 
 n
(1.1)
(1.2)
 b1 
 
b : 
b 
 n
Основная идея метода Гаусса: с помощью элементарных преобразований строк
(учитывая правые части) привести исходную матрицу А к треугольному виду.
Это делается следующим образом:
Первая строка умножается на (-а21/а11) и складывается со второй, затем умножается на (-а31/а11) и складывается с третьей строкой и т.д.
После этого все элементы первого столбца под главной диагональю будут нулевыми, а а11 – ведущий элемент на первом этапе. На втором этапе обнуляются
все элементы второго столбца под главной диагональю, т.е. вторая строка
умножается на (-а32/а22) и суммируется с третьей и т.д.. Необходимое количество этапов - (n-1). В результате, первоначальная СЛАУ (1,1) будет приведена к
СЛАУ в форме верхней треугольной матрицы, которая легко решается "обратным ходом" (порядок вычисления: xn, затем xn-1,...,x2,x1).
Пример: рассмотрим систему:
 x  y  z  1

2 x  y  2 z  3
3x  y  z  3

(1.3)


  1  1 1  1   1  1 1 1    1  1 1 1 

 
 

 2  1 2 3    0  3 4 1    0  3 4 1  , на первом этапе обнуляются
4 4
 3  1 1 3   0  4 4 0  0
0   

 

3 3

2-ая и 3-я строки в 1-ом столбце, на втором 3-я строка во 2-ом столбце, на этом
прямой ход закончен: z=1, y=1, x=1.
Модификация метода Гаусса – метод Гаусса с выбором наибольшего элемента.
В ходе решении системы (1,3) при обнулении первого столбца ведущим элементом был: а11=-1, а ведущим элементом при обнулении второго столбца был:
а22=-3.
Отличие метода Гаусса с выбором наибольшего элемента от обычного метода
Гаусса состоит в том, что на каждом шаге в качестве ведущего элемента выбирается наибольший по модулю среди возможных (т.е. стоящих не выше главной диагонали). После этого осуществляется перестановка строк, чтобы
наибольший ведущий элемент стоял на главной диагонали. Остальные этапы
решения аналогичны обычному методу Гаусса.
Решение системы (1,3) с помощью метода Гаусса с выбором наибольшего элемента
  1  1 1  1  3  1 1 3 

 

 2  1 2 3    2  1 2 3   обнуляется 1 столбец.
 3  1 1 3    1  1 1  1

 

Рассмотрим первый столбец, выбираем максимальный элемент и меняем местами строки
3
1
1 3  3
1
1 3  3
1
1 3

 
 

  0  1 / 3 4 / 3 1    0  4 / 3 4 / 3 0    0  4 / 3 4 / 3 0  , z=1, y=1, x=1
 0  4 / 3 4 / 3 0  0  1/ 3 4 / 3 1   0
0
1 1 

 
 
Замечание: Метод Гаусса с выбором наибольшего элемента работает заметно
точнее обычного метода Гаусса и позволяет решить на ЭВМ систему с большим количеством АЛУ.
Оценим трудоемкость метода Гаусса:
Система уравнений n*n. Необходимо обнулить (n-1) столбец. Это потребует
3(n+1)[(n-1)+(n-2)+...+1] действий при прямом ходе.( (n-1)-число обнуляемых
строк в первом столбце; (n-2) – число обнуляемых строк во втором столбце; 3 –
число операций сложения строк).
При обратном ходе: 1+3+5+...+(2n-1): количество действий равно n2 (n – количество действий при вычислении xn).
Всего действий:
3(n  1)( n  1)n
3
 n2  n3
2
2
При модифицированном методе Гаусса потребуется еще n2 операций сравнения и n2 перестановок элементов.
П.2. Метод квадратных корней (МКК)- точный метод решения СЛАУ.
Метод квадратных корней применим для решения СЛАУ с положительно
определенной симметричной матрицей.
Определение: матрица А называется симметричной, если А=АТ , т.е. аij=aji .
Основная идея метода К.К.: представить исходную СЛАУ АХ=b к виду,
ТТ*ТХ=b, для этого ищется верхняя треугольная матрица Т – такая, что
ТТ*Т=а.
Решение системы (1,4) ТТ*ТХ=b проводится в два этапа:
1. находится y – такое, что ТТ*y=b (ТТ – нижняя треугольная матрица) – это
осуществляется аналогично обратному ходу метода Гаусса, так как ТТ –
нижняя треугольная матрица .
2. Находится х – такое, что ТХ=y, оно и будет искомым.
Основная задача: разложить матрицу А=ТТ*Т (1,5).
Неизвестными являются коэффициенты матрицы:
 t11 t12 ... t1n 
 t11



 0 t 22 ... t 2 n 
T  t12
,  T =
T 
:
: ::: : 
:



 0 0 ... t 
t
nn 

 1n
0
t 22
:
t 2n
0

0
::: : 

... t nn 
...
...
TT*T=A
aij  t1i * t1 j  t 2i * t 2 j  ...  t ni * t nj  t1i * t1 j  t 2i * t 2 j  ...  t ii * t ij  0  ...  0, где : i  j
находим t11,  a11  t11t11  t11  a11 ,
находим t11,  a12  t11t12  t12 
j=2,..,n t1 j 
a1 j
t11
a12
,
t11
, т.к. : a1 j  t1 j t11
аналогично: t 2 j 
a 2 j  t12t1 j
t 22
; j  3,..., n
Получаем следующий набор формул для МКК:
t11  a11
t1 j 
a1 j
t11
(j=2,3,…,n)
i 1
i 1
t ii  aii   t ki t ki
t ij 
k 1
aij   t ki t ki
k 1
t ii
; при : i  j , t ij  0
Метод КК применим в чистом виде только для СЛАУ с симметричной положительно определенной матрицей. Любую СЛАУ можно привести к подобной с
помощью метода симметризации. Для этого исходную СЛАУ умножают на
матрицу АТ слева (обе части АХ=b) при этом получают АТ*АХ=АТ*b, после чего решают систему СХ=d, где С=АТ*А, d=АТ*b. В этой системе матрица С –
симметричная и положительно определенная, т.е. для нее применим МКК, полученная система эквивалентна исходной.
§2. Итерационные (приближенные) методы решения СЛАУ.
П.1. Справочный материал.
Пусть х=(х1,х2,...,хn) – n – мерный вектор.
Его нормой называется – число ||х||,
|| x |||| ( x1 , x2 ,..., xn ) ||
Удовлетворяющее условиям:
1. ||x||0, если ||X||=0, то х=0=(0,0,…,0)
2. ||x||=||*||x||
3. ||x+y||||x||+||y||
Примеры норм:
1. Евклидова норма (l2-норма):
( x1 , x2 ,..., xn ) 2  x12  x22  ...  xn2
2. Первая норма (l1-норма):
( x1 , x2 ,..., xn ) 1  x1  x2  ...  xn
3. Бесконечная норма (l-норма):
( x1 , x2 ,..., xn )

 max  x1  x2  ...  xn

Пример:
Х=(1,2,-2)
||(1,2,-2)||2=3
||(1,2,-2)||1=5
||(1,2,-2)||=2
Определение:
Нормой матрицы А называется число :
А  max
x 0
Ax
x
Теорема 1:
Норма матрицы удовлетворяет всем свойствам нормы
Доказательство:
1. ||A||0 – очевидно, т.к.
Ax
x
0
Если ||A||=0, то ||Aх||=0 для всех х и т.к. Ах – вектор, то Ах=0 (для всех х), но это
возможно только тогда, когда все координаты матрицы А аij=0.
 а1 j 
 
а 
Если у матрицы А имеется аij0, то взяв х=(0,0,1,0,0) получим Ах   ij  - i-тое
:
 
а 
 nj 
место. (остальное доказать по 3 бала).
Теорема 1.2:
АВ  А * В
(1.6).
Доказательство:
Имеем:
Ax
А  max
 max
x
x 0
AВx В x
 max
Вx x
x 0
AВx
Вx
x 0
 max
x 0
Вx
Ay
 max
Вx
* max
y
y 0
x 0
Вx
x
 А* B
Примеры матричных норм:
Ax
А 1  max
А
2 ,
max среди сумм по столбцам
1
x1
x 0
 max
Ax
x
x 0
2( )
max среди сумм по строкам
2( )
Теорема 1.3:
m
n
|| A ||   max  | aij |
|| A ||1  max  | a ij |
А=n*n- матрица.
j
i
i 1
j 1
Доказательство:
m
n
Ax
А 1  max
1
x1
x0
 max
x0

Ax
i 1
m
x
j 1
m
 max
x0
n
 a
j 1 i 1
m

j 1
ij
xj
i
 max
x0
j
 max
x0
j 1 j 1
m
x
n
x a
j 1
 aij x j
j 1
m
xj
n
j
m

j 1
i 1
xj
m
 max
 max
x0
 a
i 1 j 1
x
j
j 1
x
j 1
ij
xj

m
x0
m
ij
n
j
n
j
max  aij
j
i 1
m
x
j 1
n
 max  aij
j
i 1
j
Доказали для первой нормы.
Необходимо доказать, что в неравенстве достигаются равенства.
П.2. Метод простой итерации.
Рассмотрим СЛАУ Ах=в с квадратной невырожденной матрицей А=n*n.
Предположим все диагональные элементы матрицы А не равны нулю. Тогда
поделив все строки СЛАУ на соответствующие диагональные аij, получим матрицу, у которой диагональными элементами являются единицы.
Матрица А имеет вид :
 1 ... a1n 


A   : ::: :  , представим матрицу А как сумму матриц: А=Е+С
a

 n1 ... 1 
 1 ... 0 
 0 ... a1n 




Е   : ::: :  С   : ::: : 
 0 ... 1 
a



 n1 ... 0 
Получаем:(Е+С)х=в
Ех+Сх=в
х+Сх=в
х=в-Сх (1.7)
(1.7)- эквивалентно первоначальной СЛАУ (1.2).
Рассмотрим итерационный процесс:
х(к+1)=в-Сх(к) (1.8).
Теорема 1.4:
Если итерационный процесс сходится (т.е. существует вектор: x ()  lim x ( k ) , то
k 
предельный вектор х() этого итерационного процесса будет решением (1.7), а
следовательно и исходной системы (1.2).
Доказательство:
Перейдем в (1.8) к пределу при к получим: lim x ( k 1)  lim в  Сх ( к ) 
k 

k 
х =в-Сх , ч.т.д.
Исследуем условия, при которых итерационный процесс сходится.
Замечание:
Для того, чтобы запустить итерационный процесс необходимо задать значения
первоначального приближения х(0), а все остальные значения х(к) вычисляются
по формуле (1.8) .
В качестве х(0) обычно берут 0, в этом случае х(1)=в или х(0)=в.
Теорема 1.5 (достаточное условие сходимости итерационного процесса (1.8)):
Если ||C||<1 (любая норма 1,2,…,), то процесс (1.8) сходится.
Доказательство:
()
Считаем, что (к1>к2), тогда: x ( k1 )  x ( k2 )  (
k1
 C (1) )b
i
i
и
i  k 2 1
k1
x ( k1 )  x ( k2 )  (
 C i (1) i )b 
i  k 2 1

C
k1 1
 C
C 1
k1

i  k 2 1
(C i (1) i )b 
k1

i  k 2 1
Ci * b 
k1
C
i
*b 
i  k 2 1
k 2 1
* b 0
итерационный процесс (1.8) необходимо продолжать до тех пор, пока погрешность решения ||xk-x|| не будет меньше  - заданной погрешности. Иногда оценивают не погрешность решения, а погрешность первой части (Ах(к)-Ах() )
Оценим погрешность решения через погрешность правой части и наоборот:
_
_
_
Ах=в, х- точное решение, найдено х - приближенное решение  А х  в . Если
_
_
_
_
А х  в , тогда х=х- х - погрешность решения, в=в- в - погрешность правой ча-
сти.
_
_
_
А( х  х)  Ах  А х  в
в



 в
(1.9).
 Ах
||b||=||A*x||||A||*||x|| - оценка погрешности правой части через погрешность
решения.
Умножив (1.9) на А-1 слева, получим:
А*А-1х=А-1b
х=А-1b
||x||||A-1||*||b|| - оценка погрешности решения через погрешность правой части.
Число СА=||A||*||A-1|| называется коэффициентом обусловленности матрицы.
Матрица, у которой СА1, называется плохо обусловленной. При решении
СЛАУ с такими матрицами погрешности сильно возрастают.
П.3. Оценка скорости сходимости метода простой итерации.
Формула итерационного процесса:
k
x ( k )  ( Е   C i (1) i )b
(1.10),
i 1
1. если ||C||<1, то (как доказано в теореме (1.5)) процесс сходится.

х  х (  )  lim x ( k )  ( Е   C i (1) i )b
(1.11)
i 1
Вычисляя разность двух уравнений (1.11)-(1.10), получаем следующее соотношение
x  x ( k )  (  C i (1) i )b
i  k 1
xx
(k )

 (  C (1) )b 
i  k 1
i
i

 C (1)
i  k 1
i
i
b 

C
i  k 1
i
*b 
C
k 1
1 C
*b
- обладающее свойствами геометрической прогрессии со знаменателем ||С||.
||b||||A||*||x||||A||*(||C||k+1/(1-||c||))*||b|| - норма оценки правой части.
Условие диагонального преобладания:
Условие - |С||<1 – равносильно тому, что для исходной матрицы системы (до
деления ее на диагональные элементы) выполняется условие диагонального
преобладания по строкам.
___
аij - элементы первоначальной матрицы
___
2. 
i j
aij
___
aii
___
___
 1; т.е. :  aij  aii - условие диагонального преобладания по строкам, т.е.
i j
элемент, стоящий на диагонали, больше суммы модулей всех остальных элементов своей строки. Это является достаточным условием сходимости процесса простой итерации.
Задача (6 балов): используя норму с индексом 1 получить достаточное условие
сходимости процессов простой итерации.
___
___
3.  aij  aii - условие диагонального преобладания по столбцам.
i j
П.4. Метод Зейделя.
Исходную СЛАУ Ах=в тем же приемом, что и в методе простой итерации,
приведем к виду х=в-Сх(к) :
 x1( k 1)
 ( k 1)
 x2

::::::::::
 x ( k 1)
 n
 b1  (0  a12 x 2k  a13 x3k  ...  a1n x nk
 b2  (a 21 x 2k  0  a 23 x3k  ...  a 2 n x nk
:::::::::: :::
(1.12)
 bn  (a n1 x1k  a n 2 x 2k  ...  0
При нахождении xi( k 1) (на к+1 шаге) используется x1( k 1) , x2( k 1) ,…, xi(k11) найденные
на шаге (к+1) и x i(k1) ,…, x n( k ) -найденные на предыдущем шаге итерации.
Метод Зейделя работает несколько быстрее метода простой итерации. Скорость сходимости метода сравнима со скоростью сходимости процесса простой итерации. Условие (любое из трех) диагонального преобладания будет достаточным для его сходимости.
Тема 2. Методы решения нелинейных уравнений и системы нелинейных уравнений (НУ и СНУ).
§1. Метод половинного деления.
Рассмотрим f(х)=0: нелинейное уравнение, где f(x) – некоторая нелинейная
функция (непрерывная).
Алгоритм метода:
1. Найти интервал [а,b], на котором функция f меняет свой знак, т.е.
f(a)*f(b)<0.
2. Поделить интервал [а,b] пополам точкой с=(a+b)/2.
3. Выяснить, на какой из половин [a,c] или [c,b] функция f меняет знак, и в качестве нового отрезка рассмотреть ту половину, на которой происходит
смена знака. После чего повторить пункт (2) (если решение не было найдено
с заданной точностью . Если же оно было найдено, то (4))
4. Ответ: х=(a+b)/2((b-a)/2<) – погрешность решения.
Скорость сходимости метода половинного деления: погрешность на каждом
шаге итерации уменьшается вдвое, т.е. для добавления одного верного десятичного знака надо проделать 3-4 (шага) итерации.
ba
, где b и a – левая и правая границы последнего полученного ин2
b  a
тервала. Необходимое число шагов: N  log 2
 

Точность:
§2. Метод Хорд – модификация метода половинного деления.
В МПД интервал многократно делится пополам, а в методе хорд интервал делится на неравные части, пропорциональные f(a) и f(b), т.е. точка с - это точка
пересечения хорд с осью ox.
Алгоритм метода:
1. Найти интервал [а,b], такой, что
f(a)*f(b)<0.
2. Найти соединение этих точек хордой.
Найти пересечение хорды с осью ОХ
(т.е. x1 
f (b) * a  f (a) * b
)
f (b)  f (a)
3. Из отрезков [a,x1] и [x1,b] выбрать
тот, на котором функция меняет
знак. Если заданная точность не
достигнута, то повторить пункт
(2).
Критерий прерывания итерационного процесса:
|C(k)-C(k+1)|<  - если данное условие выполнено, то процесс прекращается, а в
качестве точного значения берется C(k+1) . Данный критерий прерывания рекомендуется использовать во всех итерационных процессах, если явно не указан
какой-либо другой теоретический обоснованный критерий.
Оценка скорости сходимости в методе хорд.
Теорема 2.1:
Если на интервале [a,b] функция f непрерывна и дифференцируема, а ее производная f ’ на интервале [a,b] имеет постоянный знак (т.е. на [a,b] f –монотонна),
то верна следующая оценка:
|x-xn|((M-m)/m)*|xn-xn-1|, где:
m  min | f ( x) | , M  max | f ( x) | , х  [a,b].
x[ a ,b ]
x[ a ,b ]
Следствие2.2:
Если М близко по своему значению к m (например: М  2m), то |x-xn||xn-xn-1|,
следовательно, как только разность между двумя последовательно приближенными xn и xn-1 меньше , т.е. |xn-xn-1| < , то xn можно взять в качестве искомого
решения. Это универсальный критерий прерывания.
Следствие 2.3:
Скорость сходимости в методе хорд не хуже геометрической прогрессии со
знаменателем (M-m)/m, т.е. |x-xn|((M-m)/m)n*(b-a), т.е. в целом метод хорд
сходится быстрее метода половинного деления, если (M-m)/m)<1/r
§ 3 Метод Ньютона (метод касательных)
п1. Идея и алгоритм метода:
1. В качестве первоначального приближения х0 выбрать любую точку, достаточно близкую к корню.
2. В точке (х0) провести касательную к графику функции до пересечения с
осью ОХ в точке х1.
3. В точке (х1, f(x1)) провести касательную до пересечения с осью ОХ, получить x2 и т.д.
Повторяем процесс пока не достигнута заданная точность.
xn,f(xn) k=f ’ (xn), к – угловой коэффициент
y=f(xn)+ k(x-xn)=f(xn)+f ’ (xn)(x-xn)=0
x= xn- (f(xn)/f ’ (xn)), т.е. xn+1= xn- (f(xn)/f ’ (xn))
Теорема 2.4
Если функция f(x) дважды непрерывна и дифференцируема на [a,b], f’ и f” на
[a,b] не меняют своих знаков(т.е. функция монотонна и выпукла вверх или
вниз), то имеет место следующее неравенство:
|x-xn+1|1/2(M2 / m1)*|x-xn|2, где
m1  min | f ( x) |
x[ a ,b ]
M 2  max | f ( x) | обеспечивает эффект удвоения знаков после каждой итерации.
x[ a ,b ]
Пример: найти отрезок, на котором функция меняет знак, например [1, 2].
х0 берем 2.
x1= x0- (f(x0)/f ’ (x0))=2-2/4=1,5 f(x)=x2-2=0
f ' (x)=2x на отрезке [1, 2] f меняет знак в f и f’’ - разных знаков; f и f’’ - одного
знака.
x2= x1- (f(x1)/f ’ (x1))=3/2-(1/4)/3=1,4166
x3= x2- (f(x2)/f ’ (x2))=17/12-(1/244)/(17/6)=1,4142156
к сведению 2 =1,414213562
Число верных знаков каждый раз (т.е. после каждой итерации) удваивается.
п 2. Видоизмененный метод Ньютона
Иногда бывает затруднительно вычислять на каждом шаге f ‘ (xn). В этом случае ее заменяют на f ‘ (x0) и формула приобретает вид: xn+1= xn- (f(xn)/f ’ (x0)).
Этот метод работает не хуже, чем метод Ньютона, эффекта удвоения знаков не
будет.
п 3. Комбинированный метод (сочетание метода Ньютона и метода хорд)
Достоинство комбинированного метода:
От метода хорд наследуется свойство всегда сходиться, а от метода Ньютона
позаимствована очень быстрая скорость сходимости.
п 4. Многомерный вариант метода Ньютона
В отличие от МПД и метода Хорд, которые применимы только лишь для решения НУ, метод Ньютона может быть применим и для решения СНУ.
 f1 ( x1 , x 2 ,..., x n )  0
 f ( x , x ,..., x )  0
n
Рассмотрим систему нелинейных уравнений:  2 1 2
:::::::::: :::::::::: :::::::::: ::::::::::
 f n ( x1 , x 2 ,..., x n )  0
Основная идея: заменить функцию F на : F(X)F(X0)+F|x0(x-x0) (2.1)
Перепишем (2.1) в матричном виде:
 f1

f1 ( x1 , x 2 ,..., x n )  f1 ( x1 , x 2 ,..., x n )  x1
 f
0
0
0
f 2 ( x1 , x 2 ,..., x n )  f 2 ( x1 , x 2 ,..., x n )  1
+ x1

:::::::::: :::::::::: :::::::::: :::::::::: :::::::::: ::
 :
0
0
0
f n ( x1 , x 2 ,..., x n )  f n ( x1 , x 2 ,..., x n )  f1
 f
 1
0
0
0
f1
f 2
f 2
f 2
:
f n
f 2
f1
x n
f 2
...
x n
:::
:
f1
...
f n
...


  x1  x10 
  x  x0 
  2 2
  : : : 

 
0
x

  n xn 

 x0
Все частные производные существуют в точке х0. Заменим в (2.1)  на = … и
найдем х.
F(x0)+F|x0(x-x0)=0
F(x0)+W(x-x0)=0
W-1*W(x-x0)= -F(x0)
W-1*W(x-x0)= W-1F(x0)
получим: x=x0 - W-1F(x0)
Найденный х возьмем в качестве следующего приближения: xn+1=xn - W-1F(xn),
где W-1n - матрица, обратная Wn, т.е. Wn =F|xn - матрица частных производных
в точке хп.
Многомерный метод Ньютона, так же как и метод Ньютона работает быстро
(удваивая знаки после каждой итерации), но не всегда срабатывает (если не
удачно выбрано х0).
Итерационный процесс продолжать до тех пор, пока разность |xn-xn-1| не станет
меньше . Как только это произошло, в качестве решения взять хп.
Замечание:
Для нахождения Y= W-1F не обязательно находить матрицу W-1, так как Y решение системы линейных уравнений (W – известно, F – известно).
§ 4. Метод итерации
Рассмотрим нелинейные уравнения вида x=U(x) (2.2) и итерационный процесс
xn+1=V(xn) (2.3). U - непрерывная и гладкая.
Теорема 2.5
Если итерационный процесс сходится, а U непрерывна в x∞, то предельное
значение x∞=limxn будет решением исходного НУ.
Доказательство:
Перейдем к (2.3) при n  . lim xn+1= lim (V(xn))=V(lim (xn))=U(x)
Замечание:
Итерационный процесс (2.3) не всегда сходится.
Пример:
X2-2=0
приведем к виду x=U(x)
x=x2+x-2
возьмем в качестве х0 = 1 получим: х1 = 0, х2 = -2, х3 = 0, х4 = -2. Значит, последовательность итерации не сходится, и метод не работал.
Попытаемся разобраться, когда итерационный процесс сходится.
Рассмотрим график:
В данном случае итерационный процесс сходится к точному решению - х.
В данном случае итерационный процесс расходится.
Итерационный процесс сходится, но не монотонно.
Итерационный процесс расходится (по спирали).
Вывод: итерационный процесс сходится, если |U’(x)|<1 в близи х.
Многомерный вариант метода итерации.
Рассмотрим систему нелинейных уравнений (СНУ)
 x1 
 U 1 ( x1 ..x n ) 
 


(2.4) x=U(x), где x   :  , U   :::::

x 
U ( x ..x ) 
 n
 n 1 n 
тогда итерационный процесс xn+1=U(xn) (2.5) сходится или расходится, в зависимости от выполнения условий функции U и ее производной. Если он сходится, то его предельное значение х - решение уравнений (2.4).
Доказательство:
Такое же, как в теореме 2.5.
Теорема 2.6 (с сжимающим отображением)
Пусть U - вектор функция. Из |Rn|→Rn (т.е. у нее n- аргументов и n координат).
Тогда, если V отображает некоторую область G в себя (в G) и является сжимающим отображением, т.е. существует g1, такое, что ||U(X)-U(Y)||g||X-Y||, то
итерационный процесс (2.5) сходится, следовательно, существует неподвижная
точка х (т.к. х=U(х)) при этом скорость сходимости итерационного процесса
(2.5) – аналогична геометрической прогрессии со знаменателем g, т.е.
|| хn- х||const gn.
Доказательство:
Заметим, что ||x-xn+1||=||U(xn)-V(xn-1)||(т.к. U- сжимающая отображение)
q||x-xn+1|| (2.6), тогда (пусть кl) имеем ||xk-xl||||(xk-xk-1)+ (xk-1-xk-2)+…+
+(xl+1-xl)|| (по неравенству треугольников) ||(xk-xk-1)||+ ||(xk-1-xk-2)||+…+
+||(xl+1-xl)|| ( 2.7) ||(x1-x0)||qk-1+||(x1-x0)||qk-2+…+||(x1-x0)||ql 0 (2.8). – последовательность Коши.
Следовательно, итерационный процесс сходится.
На основании (2.6) получаем: ||(xn-1-xn)||||(xn-xn-1)||q||(x1-x0)||qn (2.7).
Для того, чтобы доказать, что скорость сходимости – геометрическая прогрессия, оценим скорость сходимости итерационного процесса. Для этого подставим в формулу (2.8) к =, l=n, получим :
x  x n 
x1  x0
q  qn
x1  x0  q n
 const
q 1
1 q
Теорема 2.7
Если U отображение U из |Rn|Rn матрица частных производных
 U 1

 x1
W  dU   :
 U n
 x
 1
U 1
x n
:::
:
U n
...
x n
...



 имеет норму всюду q, то отображение U сжимающее



с коэффициентом U, т.е. ||U(X)-V(Y)||q||X-Y||
Доказательство: (15 баллов)
Если сопоставить теорему 2.6 и теорему 2.7, то получаем, что итерационный
процесс 2.5 сходится со скоростью геометрической прогрессии со знаменателем g, если норма матрицы частных производных ||W||q.
Тема 3: Интерполирование
§ 0. Постановка задач интерполяции.
Основная идея.
Задача:
Пусть имеются точки х0, х1, х2… хп в которых известны значения функции f –
соответственно у0, у1, у2… уп.
Необходимо вычислить функцию f в любой другой заданной точке х. Если х
принадлежит х[ х0, хп], то это задача интерполяции. Если х не принадлежит
х[ х0, хп], то это задача экстраполяции.
Основная идея интерполяции: заменить функцию f на некоторую другую
функцию у(х) (которая выбирается из некоторого фиксированного класса
функций. Например, многочленов, сплайнов, тригонометрических функций),
такую что у(xi) =уi, i = 0, n (т.е. любое от 0 до n).
Конкретизируем эту процедуру.
Пусть М – некоторый заданный класс функций, в котором мы будем искать
нужную нам функцию g.
Класс М всякий раз подбирается некоторым специальным образом, в зависимости от того, какую функцию f мы интерполируем, но при этом класс М должен быть достаточно широким, чтобы интерполирующая функция обладала
требуемыми свойствами, и не очень широким, чтобы интерполирующая функция g была единственной.
В зависимости от М – класса интерполирующих функций, мы будем рассматривать 3 вида интерполяции:
 интерполяция полиномами;
 интерполяция сплайнами;
 интерполяция тригонометрическими функциями.
§ 1. Интерполяция многочленами
(т.е. функция выбирается среди многочлена)
п 1. Интерполяционный многочлен Лагранжа.
Теорема 3.1
Для любых х0х1 х2… хп и у0, у1, у2… уп существует единственный многочлен
ррп (т.е. многочлен р в степени  n) такой, что р(xi) =уi, i = 0, n
Доказательство:
Докажем сначала единственность многочлена р. Предположим, что существует
два интерполирующих многочлена р1 и р2. Имеем P1(xi)=yi
P2(xi)=yi , где i  0, n . Рассмотрим многочлен h=P1-P2, очевидно его степень не
выше n.h(xi)=0 имеет не менее (n+1) корней. Как известно из алгебры, у ненулевого многочлена степени n корней не может быть больше n, следовательно, h
тождественно 0. h≡0 и P1=P2 Докажем теперь существование многочлена р:
n
рассмотрим для этого следующий набор многочленов P( x )   yi qi ( x ) , где
i 0
( x  x0 )( x  x1 )...( x  xi 1 )( x  xi 1 )...( x  xn )
qi ( x ) 
( xi  x0 )( xi  x1 )...( xi  xi 1 )( xi  xi 1 )...( xi  xn )
Заметим, что все qi многочлены степени n, следовательно, Pn(x) будет многочлен степени не выше n. Докажем, что pn(x) искомый, т.е. pn(xi)=yi для этого
подсчитаем qi в точках xi
0, j  i
qi ( xi )  
1, j  i
Следовательно, p(x)=y0q0(xj)+…+yjqj(xj)+…ynqn(xj)=yj
Таким образом, многочлен построен. Он называется интерполяционным многочленом Лагранжа.
Как следует из теоремы 3.1, такой интерполяционный многочлен единственен,
но формул для него существует много, все эти формулы дают один и тот же результат.
Пример:
n=1 (интерполируем по двум точкам)
p1 ( x )  y 0
x  x0
x  x1
 y1
x0  x1
x1  x0
n=2 (интерполируем по трем точкам)
p2 ( x )  y 0
( x  x0 )( x  x2 )
( x  x0 )( x  x1 )
( x  x1 )( x  x2 )
 y1
 y2
( x0  x1 )( x0  x2 )
( x1  x0 )( x1  x2 )
( x2  x0 )( x2  x1 )
Схема Эйткена в вычислении интерполяционного многочлена.
Теорема 3.2: если Px , x ... x ( x ) - многочлен, интерполирующий функцию f в точках x0..xn-1 (степени не выше n-1), а Px , x ... x ( x ) - многочлен интерполирующий
функцию в точках x1…xn (степени не выше n-1), то многочлен Px , x ... x ( x ) - многочлен интерполирующий функцию в точках x0…xn (степени не выше n) может
быть вычислена по формуле:
0
1
n 1
1
2
n
0
Px0 , x1 ... xn ( x ) 
1
n
Px0 , x1 ... xn 1 ( x )( x  xn )  Px1 , x2 ... xn ( x )( x  x0 )
x0  x n
Доказательство:
Многочлен Px , x ... x ( x ) имеет степень не выше n.
Осталось проверить, что данный многочлен в узлах интерполяции задает значения yi. Px , x ... x ( xi )  yi , i  0, n
Рассмотрим три возможности:
1. i=0
0
0
1
Px0 , x1 ... xn ( x0 ) 
1
n
n
Px0 , x1 ... xn 1 ( x0 )( x0  xn )  Px1 , x2 ... xn ( x0 )( x0  x0 )
x0  x n

y0 ( x0  xn )  Px1 ... xn ( x0 ) * 0
x0  x n
 y0
2. i=n
Px0 , x1 ... xn ( xn ) 
Px0 , x1 ... xn 1 ( xn )( xn  xn )  Px1 , x2 ... xn ( xn )( xn  x0 )
x0  x n
 yn
3. i  0, n  1
Px0 , x1 ... xn ( xi ) 
Px0 , x1 ... xn 1 ( xi )( xi  xn )  Px1 , x2 ... xn ( xi )( xi  x0 )
x0  x n
 yi
Формула Эйткена для слияния двух интерполяционных многочленов
Pxk , xk 1 ... xl ( x ) 
Pxk , xk 1 ... xl ( x )( x  xl )  Pxk 1 , xk  2 ... xl ( x )( x  xk )
x k  xl
Трудоемкость метода Эйткена.
Трудоемкость одного слияния – 7.
Всего слияний n  (n  1)  (n  2)  ...  1 
7n ( n  1) 7 2
~ n
2
2
n( n  1)
2
У схемы Эйткена, по сравнению с формулой Лагранжа, имеется два
больших преимущества:
1. более устойчива по сравнению с формулой Лагранжа к вычислительным
погрешностям (возникающих при округлении на вычислительной машине).
2. в отличие от формулы Лагранжа, обрываема, т.е. вычисления по схеме
Эйткена можно не доводить до конца и при этом будет получено значение близкое к точному.
Объясняется это тем, что если в схеме Эйткена вычисления до конца не довести, то будет получен интерполяционный многочлен, который интерполирует функцию не во всех узлах x0…xn, а только лишь в некоторых из них. При
этом его значение близко к значению интерполяционного многочлена Px ... x .
Очень часто при вычислении по схеме Эйткена поступают следующим образом: добавляют по одному узлу интерполяции, пока не будет достигнута заданная точность.
Замечание:
При практической реализации схемы Эйткена выгодно не добавлять точки
интерполяции с одной стороны (слева или справа), а добавлять их поочередно
– одну справа, одну слева.
0
n
п 2. Оценка погрешности интерполяционного многочлена Лагранжа.
При интерполировании возникает два типа погрешностей:
1. погрешность усечения (возникает из-за замены функции на интерполирующий многочлен);
2. погрешность округления (возникает из-за того, что значения интерполируемой функции f в узлах интерполяции известны не точно, а приближенно, с некоторой погрешностью η)
Очевидно, что εреальное не превосходит εу+εо
Если узлы - x0…xn - равноотстоящие, то  0  2 n 1
Для εусеч справедлива оценка:
 усеч 
M n 1
( x  x0 )( x  x1 )...( x  xn )
(n  1)!
M n 1  max f ( n 1) (t ) , где t  [ x0 , xn , x ]
Теорема:
εусеч
rn ( x )  f ( x )  Pn ( x ) 
с
учетом
знака
для
интерполирующего
многочлена
f
( )
( x  x0 )...( x  xn ), где ξ некоторая точка  [ x0 , xn , x ]
(n  1)!
( n 1)
Доказательство:
Рассмотрим П(x)=(x-x0)…(x-xn) со старшим коэффициентом равным 1.
Введем функцию U(x)=rn(x)-kП(x), где k некоторая const подобранная специальным образом, для этого фиксируем точку x , не совпадающую ни с одним
узлом интерполяции
k
rn ( x )
П ( x)
U ( x )  f ( x )  Pn ( x ) 
rn ( x )
П ( x)
П ( x)
U ( xi )  f ( xi )  Pn ( xi )  k  0  0
U ( x )  rn ( x ) 
i  0, n
rn ( x )
П ( x)  0
П ( x)
Следовательно, функция U на интервале [x0,xn,x] обращается в 0, как минимум
(n+2) раза. Тогда, ее производная U΄ обращается в 0, как минимум (n+1) раз.
U΄΄ как минимум n раз. Следовательно, U(n+1) обращается на этом интервале хотя бы один раз в 0, т.е. существует   [ x0 , xn , x]
U ( n 1) ( )  0
U ( n 1) ( )  f ( n 1) ( )  0  k ( n  1)!  0
rn ( x )
( n  1)!
П ( x)
f ( n 1) ( ) 
f ( n 1) ( )
rn ( x ) 
П ( x)
( n  1)!
Заменим x на x и получим формулу.
Пример вычисления интерполяционного многочлена и оценка εусеч в узлах
x0=100, x1=121, x2=144, y0=10, y1=11, y2=12. Найдем 115 , используя интерполяцию по трем точкам.
P2 (115)  10
(115  121)(115  144)
(115  100)(115  144)
(115  121)(115  100)
 11
 12
 10.7228
(100  121)(100  144)
(121  100)(121  144)
(144  100)(144  121)
εреальное=1٠10-3
Оценим εусеч  усеч  M 3 (115  100)(115  121)(115  144)  2  10 3
3!
f '''
3
x
8

M 3  max
5
2
3 5 / 2 3 5
x
 10
8
8
εокр=0, т.к. значения функции в узлах интерполяции были известны точно.
 реальное  103   усеч   окр  2 103
п 3. Конечные разности интерполяционный многочлен Ньютона
Конечной разностью функции у=f(х) называется функция y ( x )  f ( x  h )  f ( x ) ,
где h – фиксированный шаг. Конечные разности иногда называются конечными разностями первого порядка.
При взятии конечной разности от многочлена n-ой степени, его степень понижается на единицу, а старший коэффициент увеличивается в (n*h) раз.
n 1 y ( x )  ( n y ( x ))
Пример:
2 y ( x )  ( y ( x ))  ( f ( x  h )  f ( x ))  f ( x  2h )  f ( x  h)  [ f ( x  h )  f ( x )] 
 f ( x  2h )  2 f ( x  h )  f ( x )
(похоже на бином Ньютона)
Конечная разность от многочлена.
Пусть y ( x )  Pn ( x )  a0 x n  a1 x n1  ...  an
y  aa ( x  h ) n  a1 ( x  h ) n 1  ...  an  [a0 x n  a1 x n 1  ...an ]  [бином Ньютона ] 
 a0 ([ x n  cn1 x n 1h  cn2 x n 2 h 2  ..]  x n )  a1 ([ x n 1  cn1 1 x n 2 h  cn21 x n 3h 2  ..]  x n 1 )  ... 
 a0 hn x n 1  ... x n 2  ...
Конечная разность похожа на производную.
Теорема 3.2
n f ( x )  h n f n ( ), где точка   [ x0 , xn ]
(формула справедлива, если функция дифференцируема n раз)
Следствие:
При n=1 данная теорема называется теоремой Лагранжа.
f ( x )  hf ' ( )
Если за 1 обозначить тождественный оператор, то после применения оператора
получим: (1+Δ)f(x)=f(x)+Δf(x)=f(x)+f(x+h)-f(x)=f(x+h). Таким образом, оператор (1+Δ)f – оператор превращения и сдвига на h (увеличивает аргумент на h).
Соответственно, если оператор применить n раз, то:
(1+Δ)nf(x)=f(x+nh)
Свойство оператора :
1. Δ(f+y)=Δf+Δy
2. Δ(αf)=αΔf
3.Δ(fg)=Δf*g+Δg*f
4. Δk(Δlf)=Δk+lf
Если функция f(x) задана своими значениями yi в равноотстоящих узлах
xi с шагом h, xi=x0+ih, i  0, h , то конечные разности в точках xi удобно вычислять с помощью таблицы конечных разностей.
Рассмотрим функцию f(x)=2x3-2x2+3x-1
xi=x0+ih=0+i*1, i  0,5
x
y
Δy
Δ2y
Δ3y
Δ4 y
Δ5y
0
-1
3
8
12
0
0
1
2
11
20
12
0
2
13
31
32
12
3
44
63
44
4
107
107
5
214
Обобщенная степень и ее свойства.
Обобщенной степенью числа х называется выражение
x[n]=x(x-h)(x-2h)…(x-(n-1)h) (шаг h фиксированная константа), x[0]=0, x[1]=x.
При h→0 обобщенная степень превращается в обычную степень.
Вычислим конечную разность обобщенной степени.
Δkx[n]=x[n-k]n(n-1)(n-k+1)hk
Построение интерполяционного многочлена Ньютона (первая интерполяционная формула Ньютона)
Строим многочлен Pn(x)=a0+a1(x-x0)+a2(x-x0)(x-x1)+…+an(x-x0)(x-x1)…(x-xn-1)
Задача: найти неизвестные коэффициенты многочлена а0, а1, …ап.
Найдем сначала а0, имеем Pn(xi)=yi, y0=Pn(x0)=a0+0+…  а0=у0. Найдем а1, для
этого сосчитаем первую конечную разность в точке х0. Для этого, многочлен
Pn(x) перепишем через обобщенные степени:
Pn(x)=a0+a1(x-x0)+a2(x-x0)(x-x0-h)+a3(x-x0)(x-x0-h)(x-x0-2h)+…+an(x-x0)(x-x0h)…(x-x0-(n-1)h)=a0+a1(x-x0)[1]+a2(x-x0)[2]+…+an(x-x0)[n]
Используя, свойства конечных разностей получаем
ΔPn(x)=Δa0+a1*1*h(x-x0)[0] +a2*2h(x-x0)[1]+…+an*nh(x-x0)[n-1]
Подставим вместо x – x0
Δy0=ΔPn(x0)=a1h*1+a2*2*(x0-x0)+0+…
a1 
y 0
h
Для нахождения а2 составим вторую конечную разность
Δ2y0=Δ2Pn(x0)=a2*2*1*h2*1+0+…
a2 
2 y 0
2h 2
Продолжая эту процедуру, приходим к выводу, что
ΔkPn(x)=ak*k(k-1)…1*hk(x-x0)[0]+ak+1(k+1)k…2h2(x-x0)[1]+…
Δky0=ΔkPn(x0)=ak*k!*hk  ak=Δky0/(hk*k!)
Окончательно:
Pn ( x )  a0  a1 ( x  x0 )[1]  a2 ( x  x0 )[ 2 ]  ...  an ( x  x0 )[ n ] 
n
n
k y0
k y0
[k ]
(
x

x
)

q( q  1)( q  2)...( q  k  1) 

0
2
k!
k  0 k! h
k 0
n
  a k ( x  x0 ) [ k ]  
k 0
y0
2 y0
n y0
q
q( q  1)  ... 
q( q  1)...( q  n  1),
1!
2!
n!
x  x0
( x  x0 ) [ k ]
,
 q( q  1)( q  2)...( q  k  1) (3.7) – первая интерполяционгде q 
h
hk
 y0 
ная формула Ньютона.
Вторая интерполяционная формула Ньютона.
Она выводится аналогично первой интерполяционной формуле Ньютона и
имеет вид:
k y n k
y
2 y n 2
n y0
q( q  1)...( q  k  1)  y n  n 1 q 
q( q  1)  ... 
q( q  1)...( q  n  1),
k!
1!
2!
n!
k 0
x  xn
q
h
n
Pn ( x )  
где
(3.8)
Сравнение интерполяционных многочленов Ньютона и Лагранжа (ИМЛ и
ИМН):
Достоинство ИМЛ в том, что он работает всегда, а не только для равностоящих
узлов интерполяции (как многочлен Ньютона).
Достоинство ИМН: суммирование в формулах 3.7 и 3.8 можно прерывать
раньше времени. Если в этих формулах были взяты L первых слагаемых, то при
этом получился интерполяционный многочлен степени  (L-1), которая интерполирует заданную функцию в L крайних узлах (L первых узлов х0, х1,… хl-1
для формулы 3.7, для L последних узлов хn-l+1, хn-l+2 …хn для формулы 3.8)
В интерполяционной формуле Лагранжа прерывать суммирование раньше времени нельзя.
Первая интерполяционная формула Ньютона применяется, когда х близко к х0.
Вторая интерполяционная формула Ньютона применяется, когда х близко к хn.
Замечание:
Если в формулах 3.7, 3.8 оставить все слагаемые, то получится один и тот же
интерполяционный многочлен, который, согласно теореме 3.1, единственен и
совпадает с интерполяционным многочленом Лагранжа.
Погрешности 1-ого и 2-ого интерполяционных многочлена Ньютона.
Как известно (3.3) погрешность усечения при интерполировании многочлена:
 усеч 
M n1
n1 y0
x  x0
(3.9)
( x  x0 )( x  x1 )...( x  xn ) 
q( q  1)...( q  n) , где q 
(n  1)!
(n  1)!
h
При использовании 1-ой и 2-ой интерполяционных формул Ньютона, возникают погрешности округления. Если уi были известны с точностью η, то уi будет известно с точностью – εокругл≤2n-1η.
п 4. Интерполяционная формула Стирлинга и Бесселя (без вывода).
Формулы Ньютона - первая и вторая - односторонние, т.е. при добавлении нового слагаемого добавляется один узел интерполяции: слева направо для первой формулы Ньютона (левосторонняя формула), справа налево для второй
формулы Ньютона (правосторонняя формула). Лучше добавлять узлы интерполяции поочередно: слева и справа, тогда εусеч будет меньше.
Центральными интерполяционными формулами являются формулы Бесселя и
Стирлинга.
Формула Стирлинга.
q y 1  y 0 q 2 2
q( q 2  12 ) 3 y 2  3 y 1 q 2 ( q 2  12 ) 4

 y 1 

 y 2 
1!
2
2!
3!
2
4!
q( q 2  12 )( q 2  2 2 ) 5 y 3  5 y 2 q( q 2  12 )( q 2  2 2 ) 6


 y 3  ... 
5!
2
6!
x  x0
q( q 2  12 )...( q 2  ( n  1) 2 ) 2 n

 y n , где q 
( 2n  1)!
h
P2 n ( x )  y 0 
Это многочлен степени 2n, интерполирующий функцию в узлах x-n,xn+1,…x0,x1,…xn. Формула Стирлинга допускает обрывание раньше времени. При
добавлении новой пары, слагаемые добавляются по одному узлу интерполяции
слева и справа.
Формула Бесселя.
y 0  y1
p 2  1 / 2  2 y 1  2 y 0 p( p 2  1 / 2  ) 3
P( x ) 
 py 0 

 y 1 
2
2!
2
3!
2
2
2
2
( p 2  1 / 2  )( p 2  3 / 2  ) 4 y 2  4 y 1 p( p 2  1 / 2  )( p 2  3 / 2  ) 5


 y 2 
4!
2
5!
2
2
2
2
2
2
( p 2  1 / 2  )( p 2  3 / 2  )( p 2  5 / 2  ) 6 y 3  6 y 2 p( p 2  1 / 2  )( p 2  3 / 2  )( p 2  5 / 2  ) 7


 y 3 
6!
2
7!
2
2
2
( p 2  1 / 2  )( p 2  3 / 2  )...( p 2  ( 2n  1) / 2  ) 2 n y n  2 n y n 1
 ... 

2n!
2
2
2
2
p( p 2  1 / 2  )( p 2  3 / 2  )...( p 2  ( 2n  1) / 2  ) 2 n 1

 y n
( 2n  1)!
x  x1 

x  0

2 
P
h
2
2
Суммирование в формуле Бесселя можно обрывать. При добавлении пары слагаемых добавляются две точки интерполяции: одна слева и одна справа.
Преимущество этих многочленов перед ИМЛ и ИМН: большая точность при
практических вычислениях.
§ 2. Тригонометрическая интерполяция. Интерполяция по ортонормированным системам функций.
п 1. Справочный материал
Договоренность: пусть xi некоторая фиксированная сетка. Далее будем отожествлять функцию у=f(х) с ее набором значений в узлах xi.
f~(f(x0),f(x1)…f(xn))
и использовать комплексные числа вида: а+iв.
Скалярное произведение. Его свойства. Примеры скалярных произведений.
Скалярное произведение двух векторов х и у – число обозначаемое (х, у) и удовлетворяющее следующим свойствам.
1. (x,x)≥0, если (х, х) = 0, то х=0
2. дистрибутивность по первому аргументу
(x+y,z)=(x,z)+(y,z)
3. однородность по первому аргументу
(αx,y)=α(x,y)
4. (y,x)= ( x, y )
Примеры скалярного произведения:
x=(x0,…xn), y=(y0,…yn) (координаты векторов)
n
( x, y )   x k , y k
k 0
Система векторов x(0)…x(m) называется ортогональной, если k≠l  (x(k),x(l))=0
Система векторов x(0)…x(m) называется ортонормированной, если она
1. ортогональная: k≠l  (x(k),x(l))=0
2. нормированная: (x(k),x(k))=1
Примечание: обычные вектора i,j,k в трехмерном пространстве образуют ортонормированную систему.
Теорема 3.3
Любая ортонормированная система векторов линейно независима
Доказательство:
Предположим, что найдется набор чисел αk, где   0, m
m

k 0
k
x (k )  0
Тогда для любого L:
m
m
m
k 0
k 0
k 0
(0, x ( l ) )  (   k x ( k ) , x ( l ) )   ( k x ( k ) , x ( l ) )    k ( x ( k ) , x ( l ) )   0 * 0  ...   l * 1  0...   l
Все коэффициенты αl=0 в линейной комбинации, - получено противоречие
предположению о нетривиальной линейной комбинации и доказывает теорему.
Следствие 3.4:
Ортонормированная система из n+1 векторов (n+1 – размерность пространства)
будет базисом этого пространства
Доказательство:
По теореме 3.3 наша система линейно независима, а т.к. там ровно n векторов,
то они составляют базис, в данном случае размерность пространства не n, а
n+1, что и доказывает теорему.
Лемма 3.5: если x(0)…x(n) – ортонормированная система и базис пространства,
тогда вектор (x,x(l))=0  l  0, n  x  0
Доказательство:
Т.к. количество векторов совпадает с размерностью пространства и они ортонормированны, то по следствию 3.4 вектора xl l  0, n
Данный вектор x разложим по этому базису:
n
x    l x ( l ) и данное выражение подставим в скалярное произведение
l 0
n
0  (   l x ( l ) , x ( k ) )  0   k  0  0...
l 0
все  k  0  x  0
n
x  l x l
l 0
Теорема 3.6: (дискретное разложение Фурье). Если вектора х0… х(k) ортонормированны (составляют базис n+1 мерного пространства), то как известно из
линейной алгебры, любой вектор x можно разложить по этому базису.
n
x   ( x, x ( k ) ) x ( k )
k 0
Доказательство:
чтобы доказать теорему, необходимо и достаточно доказать, что вектор
n
y  x   ( x, x ( k ) ) x ( k )  0 . используя, выше доказанную формулу приходим к выk 0
воду, что необходимо доказать: (y,x(l))=0
n
n
n
k 0
k 0
( y, x ( l ) )  ([ x   ( x, x ( k ) ) x ( k ) ], x ( l ) )  ( x, x ( l ) )  (( x, x ( k ) ) x ( k ) , x ( l ) )  ( x, x ( l ) )  ( x, x ( k ) )( x ( k ) , x ( l ) ) 
k 0
 ( x, x )  (0  ...  0  ( x, x ) * 1  0...)  0
(l )
(l )
п 2. Тригонометрическая интерполяция
Теорема 3.7:
Система функций y(j)(x)=exp(2πi(j0+j)x), где j  0, n  1 , а j0 - целое число, образует ортонормированную систему на сетке х0… хп-1…xk=0+n/k, где k  0, n  1 xk –
это равномерное разбиение единичного отрезка от 0 до 1 с шагом 1/n, из которого удалена правая крайняя точка, относительно скалярного произведения.
Доказательство:

1, j  j2  x k  kh
1 n 1 ( j1 )
y ( x k ) y ( j2 ) ( x k )   1



n k 0
0, j1  j2  y j ( x )  exp( 2i ( j0  j ) x )
1 n 1
1 n 1
  exp( 2i ( j0  j )kh)exp( 2i ( j0  j )kh)   exp( 2i ( j0  j )kh) exp( 2i ( j0  j )kh) 
n k 0
n k 0
( y ( j1 ) , y ( j2 ) ) 


по формуле геом. прогр.


1 n 1
  exp ( 2ik ( j1  j0  j1  j0 )   q  exp( 2ih ( j1  j2 ))

n k 0


k 1
1  q  ...q l  q  1



q 1
1 exp( 2i ( h  1  1)h ( j1  j2 )  1)

0
n
exp( 2ih ( j1  j2 ))
Рассмотрим j1=j2
1 n 1
 exp( 0)  1
n k 0
Используя разложение Фурье, идею тригонометрической интерполяции и выше
доказанную теорему, получим следующие формулы тригонометрической интерполяции (при xk=kh, где h=1/n, k  0, n  1 ).
n 1
n 1
y ( x )   A j  y ( j ) ( x )   A j exp( 2i ( j  j0 ) x )
j 0
Aj  ( y * y ( j ) ) 
j 1
n 1
1
1 n 1
k
( j)
y
(
x
)
y
(
x
)

y k exp( 2i ( j  j0 )


k
k
n k 0
n k 0
n
n 1
y ( x )   A j exp( 2i ( j  j0 ) x )
j 0
Эти формулы применимы только для узлов xk=k/n, т.е. равномерного разбиения
интервала (0,1). Чтобы перейти от этих узлов к равноотстоящим узлам на произвольной сетке, нужно сделать соответствующую замену. В этих формулах
необходимо выбрать j0=-[(n-1)/2] .Это сделано для того, чтобы в формулах возникали exp: exp(lk) и exp(-lk), а при сложении таких exp их мнимые части сокращаются. Если в формуле сделать замену по x и в качестве j0 взять j0=-[(n1)/2], то формулы преобразуются к виду:

x  x0
) (3.1)
 y ( x )   A j exp( 2ij
nh
n
n

  j
2
2

n

1

kj
1
 A j   y k exp( 2i ) (3.2)
n k 0
n

Эти формулы применимы для равноотстоящих узлов интерполяции на произвольной сетке, где k  0, n  1
п 3. Быстрое преобразование Фурье
Дискретным преобразованием Фурье называется перевод набора значений
функции (yn…yn-1) в набор коэффициентов (A0…An-1), участвующих в разложении Фурье.
Замечание:
 - прямое преобразование Фурье (yn…yn-1)  (A0…An-1)
 - обратное преобразование Фурье (A0…An-1)  (yn…yn-1)
Задача тригонометрической интерполяции: по набору уi получить набор Аi.
По формуле 3.1 интерполируем функцию в любой точке.
Если использовать формулу 3.2, то для вычисления набора коэффициентов
требуется cn2 действий (для каждого Аi потребуется С*n2 операций).
Для ускорения этой процедуры используют быстрое преобразование Фурье.
§ 3. Интерполяция кубическими сплайнами
п 1. Кубические сплайны.
Кубическим сплайном на сетке x0,x1,…xn называется функция S(х), которая:
1. на каждом интервале [хi-1, хi], где 1  i  n, функция S(х) является кубическим многочленом (обозначим его Si(х)).
2. на всем интервале [х0, хп] S(х) – дважды непрерывно дифференцируемая
функция
3. на краях интервала вторая производная обращается в ноль.
S΄΄(x0)=S΄΄(xn)=0
Замечание к свойству 2:
Внутри интервала [хi-1, хi] S(х), будучи кубическим многочленом, непрерывно
дифференцируема бесконечно много раз. Необходимо, чтобы в узлах х i:
а) Si(xi)=Si+1(xi) - непрерывность S в точке хi;
б) Si΄(xi)=S΄i+1(xi) - непрерывность S’ в точке хi;
в) Si΄΄(xi)=S΄΄i+1(xi) - непрерывность S” в точке хi.
Свойство кубического сплайна
Теорема 3.8
Пусть на сетке хi, где i  0, n задана функция f со своими значениями уi=f(хi).
Тогда среди всевозможных функций у(х), интерполирующих f на сетке хi
именно для кубического сплайна достигается минимум интеграла энергии изxn
гиба I ( y )   ( y ' ' ( x )) 2 dx Без доказательства:
x0
Комментарии к этой теореме:
Из математического анализа известно, что радиус кривизны функции у(х):


y' ' ( x)
R( x )  
2 3/ 2 
 (1  ( y ' ( x ) )) 
1
 k ( x ) 1 (k(x) – кривизна изгиба). Из физики известно, что
при изгибе линейки необходима энергия
b
I 
a
 ( x )k 2 ( x )
2
dx (К – коэффициент
упругости) , если γ=const, т.е. линейка однородна и y΄(x)<<1, тогда
dl  1  ( y ' ) 2 dx  dx , k(x)=y΄΄
Сплайн (англ. – spline) – линейка.
Раньше интерполяцию производили с помощью гибкой металлической линейки, пропускаемую через точку (хi, уi). Третье свойство сплайна связано с тем,
что на концах интервала [х0, хп] линейка не сгибается, а представляет собой
прямую.
Исследуем вопрос о единственности сплайна, интерполирующего f в точке хi.
Сплайн задается набором из n-кубических многочленов Si=aix3+bix2+cix+di,
итого 4n коэффициентов, которые необходимо найти. Сколько уравнений?
1-ая группа уравнений:
Si(xi)=yi , i  1, n
*
2– я группа уравнений:
Si(xi-1)=yi-1 , i  1, n
*
Т.к. функция S на всем интервале I дважды непрерывно дифференцируема, то в
смежных точках (xi…xn-1) должны совпадать значения функции, а так же знаки
первой и второй производных слева и справа, для того, чтобы функция, а так
же первая и вторая производные в этих точках были непрерывны.
S- - правый предел функции
S+ - левый предел функции
S-(xi)= S+(xi)
Si(xi)=Si+1(xi)
Эти условия являются очевидным следствием условий (*)
S ' ( xi )  S ' ( xi ) 
 ( n  1) условий
Si' ( xi )  Si'1 ( xi ) 
S '' ( xi )  S '' ( xi ) 

 ( n  1) условий
''
''
Si ( xi )  Si 1 ( xi ) 

Всего (4n-2) условий. Последние два условия берутся из 3-его пункта определения кубического сплайна. Итак, для нахождения кубического сплайна, а
именно, 4n его коэффициентов, получим 4n уравнений (все эти уравнения нечетные). Можно вычислить кубический сплайн, решая соответствующее уравнение.
На самом деле при вычислении кубического сплайна используется другой алгоритм.
Обозначим S΄΄(xi)=Mi i  0, n
М0=0=Мn
Для неизвестных Мi система уравнений получится проще и через Мi нетрудно
вычислить и Si(х). Т.к. S(х) кусочно кубическая функция, то S”(х) – кусочно
линейная функция. Следовательно, на интервале [х i-1, хi] S΄΄ многочлен первой
степени и непрерывная функция.
Следовательно, x  [ xi 1 , xi ] :
Si'' ( x ) 
x  xi
x  xi 1
x x
x  xi 1
M i 1 
M i  M i 1 i
 Mi
, hi  xi  xi 1
xi 1  xi
xi  xi 1
hi
hi
(уравнение прямой проходящей через две точки).
Чтобы получить Si(x) проинтегрируем Si’’(x) дважды.
Si' ( x )   M i 1
Si'' ( x )  M i 1
( xi  x ) 2
( x  xi 1 ) 2
 Mi
c
2hi
2hi
( xi  x ) 3
( x  xi 1 ) 3
 Mi
 cx  d
6hi
6hi
константу интегрирования находим из краевых условий:
 S ( xi 1 )   yi 1

 S ( xi )  y i
S i ( x )  M i 1
( xi  x ) 3
( x  xi 1 ) 3 
M h2  x  x 
M h 2  x  xi 1
 Mi
  yi 1  i 1 i  i
  yi  i i 
, (3.18)
6hi
6hi
6  hi
6  hi


Теперь для расчета кубического сплайна необходимо найти неизвестные моменты Mi. Их находим, используя условия непрерывности первой производной.
i  0, n  1
Si-1’(xi)=Si’(xi)
После всех преобразований эти условия превращаются в СЛАУ размера (n1)(n-1)
CM=d, (3.19)
где
 M1 


M2 
M 



 M n 1 
 h1  h2

 3
h2
C
 6

 0

h3
6
h2  h3
3
h3
6
0
h3
6
h3  h4
3

0

0

h4 

6
т.е. элементы матрицы С вычисляются по формулам:
h  h
i 1
i j
 i
 3

 hi  1
j  i 1

Cij   6

 hi j  i  1
6

0 i  j  2

 d1 


 d2 
d 
, где


 d n 1 
y
y  yi 1
d i  i 1  i
hi 1
hi
Алгоритм расчета кубического сплайна:
1. Формируем матрицу С, вектор-столбец d правых частей в СЛАУ (3.19).
2. решаем СЛАУ (3.19) и находим неизвестные моменты Mi (например, методом Гаусса);
3. по формуле (3.18) вычисляем значение кубического сплайна в заданной
точке x.
Систему линейных уравнений 3.19 можно решать обычным методом Гаусса. На
самом деле в матрице С очень много нулевых элементов, она – трехдиагональная. Для подобных матриц разработан специальный метод – метод прогонки.
Приведем формулу метода прогонки для трехдиагональной матрицы:
Ах=α
 a1

 b2
0

0
 ...

 ...

c1
a2
b3
0
...
...
0
c2
a3
b4
...
...
0
0
c3
a4
...
...
0 ... ...
0 0 ...
0 0 0
c4 0 0
... ... ...
... ... bn
... 

... 
... 

0... 
... 

a n 
 1 
 
 
  2
 
 n 
1. прямой этап метода прогонки:
Вычисляем:
k 
ck
a k  bk  ck
k 
 k  bk  k 1
a k  bk  k 1
k = 1, 2, …, n.
При этом полагают α0=β0=b1, Сn =0
2. на обратном этапе метод прогонки вычисляют:
xk=αkxk+1+βk
xn-1=0
Метод прогонки = метод Гаусса для трехдиагональных матриц:
Трудоемкость метода прогонки 6n действий на прямом ходе и 2n действий на
обратном, итого 8n действий.
Теорема 3.9
Система линейных уравнений 3.19 всегда имеет единственное решение.
Доказательство:
В матрице С имеет место диагональное преобладание по строкам. Следовательно, метод простой итерации будет сходиться (для системы 3.19), а как известно он сходится к точному решению. Следовательно, 3.19 всегда имеет решение. Если эта система линейных уравнений Ах=d с квадратной матрицей С
имеет решение для любого d, то это решение всегда единственно.
п 2. Локальные кубические сплайны.
Недостаток кубического сплайна – продолжительная затухающая реакция на
возмущение.
Замечание:
Интерполяционный многочлен реагирует на возмущение заметно хуже. И вообще у кубического сплайна погрешность округления меньше, чем у интерполяционного многочлена. Чтобы избавиться от неограниченно долгой реакции
на возмущение вместо обычных кубических сплайнов иногда применяют локальные кубические сплайны.
Стандартным локальным кубическим сплайном называется сплайн
2
1 3
2
x 1
3  x  2 x

1
B( x )   (2  x ) 3 1  x  2
6
0 x  2


Задача:
Доказать, что В(х) – кубический сплайн – 4 балла.
Лемма: В – кубический сплайн.
Доказательство:
Необходимо проверить, что для В выполняются все свойства кубического
сплайна (на сетке –2,-1,0,1,2).
Очевидно, что на каждом интервале В – кубический многочлен
S΄΄(2)=S΄΄(-2)=0
В точках –2,-1,0,1,2 функция В дважды непрерывно дифференцируема:
для этого необходимо проверить условия в каждой точке
S-(xi)= S+(xi)
S΄-(xi)=S΄+(xi)
S΄΄-(xi)=S΄΄+(xi)
S΄΄-(1)=S΄΄+(1)
S΄΄+(1)=  (2  x ) 3 
1
6


1
x 1
2
1
S΄΄-(1)=   x 2  x 3 
2 
3
4
1
x 1
Пусть xi равноотстоящие узлы с шагом h, тогда локальным кубическим сплайном первого (второго) типов называется функция:
B (i ) ( x) 
n 1

k  1
(i )
k
 x  kh 
B
,
 h 
где
 k( i )  вычисляются следующим образом
i=1 (локальный кубический сплайн первого типа)
 k1  y k
k  0, n
 1  y 1  2 y0  y1 

 n 1  y n 1  2 y n  y n 1 
экстраполяция по двум крайним точкам
i=2 (локальный кубический сплайн второго типа)
 k( 2 )  (8 y k  y k 1  y k 1 ) / 6
k   1, n  1
При этом потребуется по два новых y слева и справа.
Экстраполяция по четырем точкам
y 1  4 y 0  6 y1  4 y 2  y 3


y 2  10 y 0  20 y1  15 y 2  4 y 3 
y n 1  4 y n  6 y n 1  4 y n 2  y n 3
y n 2  10 y n  20 y n 1  15 y n 2  4 y n 3
Теорема 3.10
Значения локального кубического сплайна В(i)(x) в точках x зависит только от
значений функции в 4 соседних узлах (2 справа и 2 слева) при i=1 и, соответственно, от 6 соседних узлов при i=2 (3 слева и 3 справа)
Доказательство:
Самостоятельно 5 баллов
Вывод:
Возмущения затухают полностью за 2 шага для локального кубического сплайна 1-ого типа и за 3 шага для локального кубического сплайна 2-ого типа
Замечание:
Локальные кубические сплайны обоих типов не интерполируют заданную
функцию f.
Локальные кубические сплайны аппроксимируют заданную функцию f, сглаживая ее неровности и скачки. При этом локальные кубические сплайны 1-ого
типа лучше сглаживают скачки, но хуже совпадают с функцией f в узлах интерполяции, а второго типа наоборот, хуже сглаживают скачки, но ближе к
функции f в узлах интерполяции.
§ 4. Многомерная интерполяция
Рассмотрим функцию 2-ух переменных f(х, у) заданную на прямоугольной сетке .
Задача: найти значение функции f в любой заданной точке (х, у).
Интерполируя по у находим значения f в (*). После этого интерполируя по х,
используя найденные значения в (*), находим значение f в точке, т.е. f(х,у).
Замечание:
Предложенный вариант интерполяции зависит от порядка интерполяции (сначала по у, а потом по х, как было разобрано или сначала по х, а потом у). Результат получается разный, но близкий.
Существуют и другие методы многомерной интерполяции.
Метод интерполяции выбирают в зависимости от вида функции и точки х, в
которой необходимо интерполяцию сделать.
Выгодно использовать интерполяцию многочленами, когда функция f(х) –
плавная или узлы расположены достаточно часто, т.е.
Интерполяция кубическим сплайном даст вполне удовлетворительный результат даже для довольно редкой сетки.
Недостаток кубического сплайна – “спрямление” функции около точек х0 и хn.
Недостаток тригонометрической интерполяции: удачно интерполирует только
периодические непрерывные функции. Очень часто функцию приводят к такому виду с помощью специальных преобразований.
Download