Professional Documents
Culture Documents
Програмиране и изчислителна физика
Програмиране и изчислителна физика
5. Интерполация............................................................................................................ 33
6. Числено интегриране................................................................................................ 39
8. Нелинейни уравнения............................................................................................... 56
9. Минимизация ............................................................................................................ 64
1/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
2/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Цели числа
Общият модел за представяне на едно цяло число е:
q
i = s × ∑ wk × r k −1 , (1)
k =1
където i е цялото число, s е неговият знак (+1 или -1), q е броят числови позиции
(разряди) за представяне на числото, r е основата на бройната система, а wk < r са нео-
трицателни множители.
Така, при q = 7 и записване на знака в най-левия двоичен разряд (бит) (напр. чрез
0 за „+” и 1 за „-”), поредицата 01100110 ще съответствува на
1 × 2 6 + 1 × 2 5 + 0 × 2 4 + 0 × 2 3 + 1 × 2 2 + 1 × 21 + 0 × 2 0 = 102 .
При операциите между аритметични данни от цял тип е важно да се помни, че:
3/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
− резултатът от операцията ще бъде също от цял тип – напр. 7/2 ще даде 3, 8/3 ще
даде 2, и т.н.
Реални числа
Стойността на едно реално число x се кодира чрез стойностите на две цели числа
– мантиса m и показател n:
m
x= k −1
× 2n , (2)
2
При така приетия начин на кодиране, ако мантисата се записва като цяло число в
допълнително представяне, нейните възможни стойности ще бъдат в интервала [-1, 1),
и числото 1.0 няма да има точен машинен запис. Този голям недостатък се преодолява,
като мантисата се представя поотделно чрез своя знак, за който се отделя 1 бит, и своя
модул, за който остават k-1 бита. Показателят n като правило се записва като цяло чис-
ло в допълнително представяне.
1
Теглото на най-младшия бит на мантисата, ε m ≡ , се нарича машинен епсилон.
2 k −1
Например, при дължина на полето за запис на едно реално число 32 (= 24 + 8) бита,
ε m = 10 −23 = 1.192 × 10 −7 . Машинният епсилон е мярка за минималното представимо от-
носително разстояние между две съседни реални числа и обуславя ограничената точ-
ност на машинните аритметични операции с такива числа. По тази причина обикновено
се приема, че относителната грешка на машинното представяне на едно реално число
е ε m , тъй като това е горната граница на ефекта от закръгление до най-близкото предс-
тавимо число. Както ще бъде показно по-долу, обаче, относителната грешка на резулта-
та от аритметична операция между две реални числа в някои случаи може да бъде мно-
го по-голяма.
4/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Устойчивост на алгоритмите
Устойчив е такъв алгоритъм, при който малки грешки във входните данни водят
до контролируемо малки грешки в резултата. Неустойчив е алгоритъм, при който мал-
ки грешки във входните данни могат да доведат до непропорционално големи грешки в
резултата. Неустойчивостта може да бъде и присъщо свойство на решаваната задача.
5/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
En = e −1 ∫ x n de x = e −1 x n e x − ∫ e x dx n
1 1 1
0 0 0
, (4)
= e e − n ∫ e x x n −1dx = 1 − nEn −1 , n = 2,3,...
1
−1
0
1 1 1 1
xde x = xe x − ∫ e x dx = .
1 1
където E1 = ∫
e 0 e 0 0 e
1 − En
E n −1 = , n = ...,3,2,1 (5)
n
1 1 1
E n = ∫ dxx n e x −1 ≤ ∫ dxx n = , (6)
0 0 n +1
1
(Това е така, защото при 0 ≤ x ≤ 1 , ≤ e x −1 ≤ 1 .)
e
6/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
0 < E n < E n −1 .) Тогава, например, при стартиране с n=20, абсолютната грешка на E10 ще
1 1 1 1
бъде не по-голяма от ... ≅ 7 × 10 −15 . (В действителност, поради неточност на
21 20 19 10
операциите в (5), не може да се разчита на относителна грешка на резултата, по-малка
от ε m .)
7/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Ax = b , (1)
Така наречените преки методи за решаване на задачата (1) изискват краен брой
аритметични операции и при липса на грешки от закръгление водят до точно решение.
Гаусова елиминация
Методът се състои в съставяне на система Ux = c , (2)
чието решение x съвпада с това на (1) и чиято матрица U е горна триъгълна, т.е.
uij = 0, i > j .
cn
xn =
u nn
cn −1 − u n −1,n x n
x n −1 =
u n −1,n −1
... (3)
n
ci − ∑u
j =i +1
ij xj
xi =
uii
...
8/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
за j = 1,..., n :
{за i = j + 1,..., n :
a ij
{добавяне към i-тото уравнение на j-тото, умножено с f ij ≡ − ,
a jj
~
т.е. a~ik = a ik + f ij a jk , k = j,..., n ; bi = bi + f ij b j } (4)
така че новата стойност на a ij да стане нулева}.
}
Очевиден проблем на този алгоритъм е, че знаменателят a jj , наричан водещ еле-
мент, може да се случи нулев или много малък по модул, така че действията в най-
вътрешния цикъл да не могат да се изпълнят. За преодоляване на този проблем се из-
ползува друго основно свойство на линейните системи – размяната на реда на уравне-
нията не променя решението на системата.
Така, в хода на външния цикъл, за всяко j, т.е. всеки стълб, се търси максималният
по модул матричен елемент измежду a ij , i = j,..., n . Ако това е a mj , m-тото уравнение се
разменя с j-тото, след което се пристъпва към елиминацията (4). Новият водещ елемент
ще бъде максимален по модул измежду всички възможни, а модулите на множителите
f ij ще бъдат минимални. Търсенето (и размяната) не засягат елементите над реда j, за-
9/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
~
ефектът от грешките от закръгление при пресмятане на a~ik и bi поради голям
LU разлагане
Методът се състои в намиране на долна триъгълна матрица L и горна триъгълна
матрица U, такива, че A = LU . Ако това бъде направено, системата (1) може да се реши
Ly = b
чрез две серии от последователни замествания: L(Ux ) = b ⇒ .
Ux = y
n n
− детерминантата на A може да се пресметне лесно като ∏ lii × ∏ uii . При
i =1 i =1
гаусовата елиминация това е невъзможно, защото детерминантата на U от (2)
няма проста връзка с детерминантата на A.
∑l
k =1
ik u kj = a ij , i = 1,..., n, j = 1,..., n , (5)
10/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
за j = 1,..., n :
{за i = 1,..., j :
i −1
{ uij = a ij − ∑ lik u kj
k =1
11/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
− αx = α × x , където α е скалар
− x+y ≤ x + y
Най-често се използуват следните векторни норми:
1/ p
p
− x p
= ∑ xi ,1≤ p < ∞
i
− x ∞
= max xi
i
− αA = α × A , където α е скалар
12/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
− A+B ≤ A + B
Най-често се използуват следните матрични норми:
− A max
= max a ij – max-норма
i, j
1/ 2
= ∑ aij
2
− A – норма на Фробениус
F
i, j
Ax
− A = max – операторна норма, породена от дадена векторна норма
x≠0 x
В сила са и следните твърдения и определения:
x 2
Ax
− A ∞
≡ max ∞
= max ∑ a ij
x ≠0 x i
∞ j
Ax
− A 1 ≡ max 1
= AT = max ∑ a ij
x ≠0 x1 ∞ j
i
Обусловеност на матрица
Нека x e точното решение на системата (1), а нейното числено решение x̂ е точно
решение на системата
(A + δA )xˆ = b + δb . (7)
δx δA δb
≤ κ (A ) × + ,
(8)
xˆ A A × xˆ
λmax (A )
да се покаже, че за 2-норма и нормална матрица, κ (A ) = .
λmin (A )
13/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
δx δA δb
≤ κ (A ) × + (9)
x A b
A = LU + E , където E ≤ nε m L U (11)
не за 2-нормата, то E ≤ nε m L × U .
14/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
fl (s1 ) = x1 y1 (1 + δ )
fl(s 2 ) = [x1 y1 (1 + δ ) + x 2 y 2 (1 + δ )](1 + δ ) ≈ s 2 (1 + 2δ )
fl (s3 ) = [s2 (1 + 2δ ) + x3 y 3 (1 + δ )](1 + δ ) ≈ s 2 (1 + 3δ ) + x3 y 3 (1 + 2δ )
... (11)
n
fl ∑ xi y i ≡ fl (sn )
i =1
= [sn −1 (1 + (n − 1)δ ) + x n y n (1 + δ )](1 + δ ) ≈ sn −1 (1 + nδ ) + x n y n (1 + 2δ )
n
≈ s n (1 + nδ ) ≡ ∑ xi y i (1 + nδ )
i =1
Приблизителните равенства са заради пренебрегването на членове, съдържащи δ2, а последното –
заради пренебрегване на разликата между множителя (1 + 2δ ) за последното събираемо и множителя
(1 + nδ ) за големия брой останали събираеми.
От демонстрирания резултат следва, че
fl (AB ) − AB ≤ nε m A B (12)}
На основата на горното:
b = (L + δL )yˆ
= (L + δL )(U + δU )xˆ
= [LU + L(δU ) + (δL )U + (δL )(δU )]xˆ , (14)
= [A − E + L(δU ) + (δL )U + (δL )(δU )]xˆ
= (A + δA )xˆ
Следователно:
δA ≤ 3nε m L × U . (16)
15/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
δA
LU разлагането ще бъде числено устойчиво, ако = O (ε m ) . Съгласно (16), това
A
L × U
условие ще бъде изпълнено, ако 3nε m = O (ε m ) .
A
практика g ∝ (n 1 / 2 ÷ n 2 / 3 ) .
A (x + δx ) = b + δb . (17)
A (δx ) = δb (18)
Така, системата (19) може да се реши относно грешката δx , след което да се по-
лучи подобрено приближение на решението ~ x = xˆ − δx . Тази процедура може да се пов-
16/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
17/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
1
xi( j ) = bi − ∑ aij x (j j −1) ,
(1)
aii j ≠i
Или, ако
A =D−L−U, (2)
18/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Тогава:
n n
ε (1) = ∑ α i λi v i , ..., ε ( j ) = ∑α i λij v i . (6)
i =1 i =1
Явно е, че ако |λ1| < 1, то при j → ∞ ε ( j ) ще клони към нулевия вектор и дефини-
раният итерационен процес ще се схожда към истинското решение на системата
Ax = b .
∑b
i =1
ki v 1,i = λ1 v 1,k , следва:
n v 1,i n v 1,i n
λ1 = ∑ bki
i =1 v 1,k
≤ ∑ bki
i =1 v 1,k
≤ ∑ bki < 1 .
i =1
(7)
19/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
1
xi( j ) = bi − ∑ a ik x k( j ) − ∑ a ik x k( j −1) . (8)
aii k <i k >i
x ( j ) = x ( j −1) + ω (x ( j ) − x ( j −1) ) .
~ (10)
Методът е сходящ при 0 < ω < 2 , като може да се покаже, че максимално намаля-
ване на грешката, т.е. максимално ускоряване на сходимостта, се получава при
( )
ω = 2 1 + 1 − λ21 , където λ1 е максималната собствена стойност на матрицата B на
където B ≡ (1 − CA ) и q ≡ Cb . (12)
20/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Както беше показано, такава итерационна схема ще бъде сходяща точно тогава,
когато всички собствени стойности на B са по модул по-малки от 1. Изборът на засега
произволната матрица C се прави така, че максималната по модул собствена стойност
на B да бъде минимална, тъй като е явно, че тогава ще се постигне максимална скорост
на сходимост (на намаляване на вектора на грешката).
( )
x ( j ) = x ( j −1) − α Ax ( j −1) − b = (1 − αA )x ( j −1) + αb = Bx ( j −1) + q , (13)
където B ≡ (1 − αA ) и q ≡ αb . (14)
на матрицата A лежат вътре в тази област. Така, ако собствените стойности са реални, то
m ≥ min a ii − ∑ a ik и M ≤ max a ii + ∑ a ik .)
i
k ≠i i
k ≠i
1 − αm = 1 − αM , т.е. α = 2 / (M + m ) . (15)
M −m
Явно е, че при тази стойност на α, µ1 ≡ max 1 − αλ = .
m ≤λ ≤ M M +m
21/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
α=2/(m+M)
µ=1-αλ
α<2/(m+M)
α>2/(m+M)
µmax
µmax
-1
0 m M
λ
От друга страна, измежду всички полиноми от дадена степен (напр. r) този, чийто
максимален модул е минимален при вариране на независимата променлива във фикси-
22/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
2λ − (M + m ) M + m
−1
Qr (λ ) = Tr Tr − . (19)
M − m M − m
r
r r 1
Qr (λ ) = ∏ (1 − α i λ ) = ∏ α i ∏ − λ . (21)
i =1 i =1 i =1 α i
M +m M −m π(2i − 1)
βi = + cos , (22)
2 2 2r
23/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
µ=1-αoptλ
µ=Q3(λ)
µmax
µmax
0
µ
µmax
µmax
-1
0 m M
λ
Контрол на сходимостта
Всички разгледани дотук методи се характеризират с монотонно намаляване на
модула на вектора на грешката в хода на итерациите, т.е. редицата от последователните
приближения x (0 ) , x (1) ,..., x ( j −1) , x ( j ) ,... се схожда монотонно към точното решение на ли-
нейната система x. В този смисъл, критерият за прекратяване на итерациите ще бъде
x ( j ) − x ( j −1) ≤ ε x ( j ) , където ∗ е някаква векторна норма, а ε е подходящо избрано малко
24/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
I ≡ ∫ f (x )dx = Tm + E m ,
b
(1)
a
1 1
Tm = h f 0 + f1 + ... + f m−1 + f m (2)
2 2
Em =−
(b − a)
3
f ' ' (η ), η ∈ [a , b] (3)
12m 2
Нека има две оценки, I1 и I2, получени при съответно m1 и m2 равноотдалечени аб-
сциси:
25/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
I = I1 −
(b − a)
3
f ' ' (η1 )
12m12
(4)
I = I2 −
(b − a )3 f ' ' (η 2 )
12m22
Тогава, ако се приеме, че f ' ' (η1 ) ≅ f ' ' (η 2 ) = ∆ , то от системата (4), което е с две
неизвестни – I и ∆, може да се елиминира ∆ и да се определи I:
1. Редица: {a k }k =1,...,n,...
∞ n
2. Ред: ∑ a k ⇒ {sn }n=1,... ( sn = ∑ ak )
k =1 k =1
3. Сходимост на редица. Cauchy: Редицата {a k }k =1,...,n,... се схожда тогава и само тогава, ако за
4. Сходимост на ред. Cauchy: {sn }→ s тогава и само тогава, ако за всяко ε>0
a m +1 + a m +2 + ... + a n < ε при всяко достатъчно голямо m и n>m. В частност (n=m+1) редът ще се
схожда, ако членовете am клонят към 0 при m → ∞ .
26/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
6. Σan е абсолютно сходящ, ако Σ|an| е сходящ. В противен случай редът е условно сходящ. Cauchy:
ако редът е абсолютно сходящ, той е сходящ.
s − s n +1 = C n (s − s n ); C n < 1 , (6)
C n → C , то:
s − s n +1 ≅ C (s − sn ) (7)
s − s n +1 = C (s − s n )
(8)
s − s n + 2 = C (s − sn +1 )
s − s n + 2 s − s n +1
=
s s − s2
⇒ s = n n + 2 n +1 = s n + 2 −
(sn +2 − sn+1 ) = s − (∆ n +2 )
2 2
n+2
s − s n +1 s − sn sn + 2 − 2 s n +1 + s n s n + 2 − 2 s n +1 + sn ∆ n + 2 − ∆ n +1
Числено диференциране
Общоприет начин за апроксимиране на първата производна на дадена функция е
т.нар. крайна разлика, пример за която е лявата страна на израза:
27/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
f (x + h ) − f ( x )
= f ' ( x ) + hf ' ' (x ) + ...
1
(9)
h 2
er ∝ ε f f (x ) / h , (11)
ε f f (x )
e(h ) = er + et = + h f ' ' (x ) . (13)
h
28/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
f (x )
hopt ∝ ε f = ε f xc ∝ ε f x ≈ ε m x . (14)
f ' ' (x )
f (x )
xc ≡ е приблизително равна на x , както е и в типичния случай.
f ' ' (x )
f (x + h ) − f ( x − h )
= f ' (x ) + h 2 f ' ' ' (x ) + ...
1
(16)
2h 6
f (x )
1/ 3
hopt ∝ ε f =εf xc ∝ ε f x ≈ εm
1/ 3 1/ 3 1/ 3 1/ 3
f ' ' ' (x ) x, (17)
29/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
∝ε f ∝ε f ≈ εm
2/3 2/3 2/3
. (18)
f ' (x ) f ' (x )
Следователно, при ε m ≈ 10 −7 тази грешка ще бъде ≈10-5, докато при предната кра-
f (x + hi ) − f ( x − hi )
Нека Di1 ≡ , i = 1... N , (19)
2hi
където hi = h0 c i −1 и c < 1.
f ' ' ' ( x )hi2 + f (5 ) (x )hi4 + ... = k1hi2 + k 2 hi4 + ... = ε 1 + ε 2 + ...
1 1
Ei1 = (20)
3! 5!
30/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
D = Di1 + ε 1 + ε 2 + ε 3 + ε 4 + ...
D = Di1+1 + c 2ε 1 + c 4ε 2 + c 6ε 3 + c 8ε 4 + ...
(22)
D = Di1+2 + c 4ε 1 + c 8ε 2 + c12ε 3 + c16ε 4 + ...
D = Di1+3 + c 6ε 1 + c12ε 2 + c18ε 3 + c 24ε 4 + ...
D 3 − c 6 Di3+ 2 12
D = Di4+ 3 = i + 3 − c ε 4 + ... (25)
1 − c6
и т .н .
α j = c 2α j −1
D j
− α j Di j
, където ( j = 1,...)
i +1
Di +j +11 = (26)
1−α j
α0 = 1
31/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
i→ 1 2 3 4 5 6 7 8 …
j↓
1 1 2 4 7 11 16 22 29 …
2 3 5 8 12 17 23 30 …
3 6 9 13 18 24 31 …
4 10 14 19 25 32 …
5 15 20 26 33 …
6 21 27 34 …
7 28 35 …
8 36 …
… …
( )
E t = max Di +j +11 − Di j , Di j++11 − Di +j 1 . (27)
32/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
5. Интерполация
Нека са дадени функционалните стойности
Полиномна интерполация
Ако се избере ϕ (x ) да бъде полином на x, то от условията (1) могат да се опреде-
лят общо n негови коефициента. Следователно, с изключение на частния случай, когато
стойността на коефициента пред x n −1 се окаже нулева, степента на този полином ще
бъде n-1.
33/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
n
Pn −1 (x ) = ∑ y i L(ni−) 1 ( x ) , (3)
i =1
L(ni−) 1 (xi ) = 1
L(ni−) 1 (x j ) = 0, j ≠ i
(4)
∏ (x − x ) j
(i )
(x ) = j ≠i
∏ (x − x )
Ln −1 (5)
i j
j ≠i
34/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
P1(i ) ( x ) = ω (i ) (x ) y i +1 + ω (i ) ( x ) yi , (7)
x − xi x −x
където ω (i ) (x ) ≡ и ω (i ) ( x ) ≡ i +1 = 1 − ω (i ) (x ) (8)
xi +1 − xi xi +1 − xi
n=100
n=20
Pn-1(x)
0 1 2 3 4 5 6
x
35/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
( xi +1 − xi )
(ω (x ) − ω (x )) и ψ (x ) ≡ ( xi +1 − xi )
(ω (i )3 (x ) − ω (i ) (x ))
2 2
ψ (x ) ≡
(i ) (i ) 3 (i ) (i )
(10)
6 6
1) ψ (i ) (xi ) = ψ (i ) ( xi +1 ) = 0; ψ (i )
(xi ) = ψ (i ) (xi +1 ) = 0
d 2 P3(i )
2
(x ) = ω (i ) (x )zi +1 + ω (i ) (x )zi , (11)
dx
xi − xi −1 x −x x −x y − yi yi − yi −1
zi −1 + i +1 i −1 zi + i +1 i zi +1 = i +1 − , i = 2,..., n − 1 (13)
6 3 6 xi +1 − xi xi − xi −1
36/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
a i xi −1 + bi xi + ci xi +1 = d i , i = 1,..., n
(14)
(a1 = cn = 0)
Лесно може да се провери, че след правия ход на елиминацията те ще придобият
вида:
~ ~
bi xi + ci xi +1 = d i , i = 1,..., n
, (15)
( c n = 0)
където:
~ a ~ a ~
bi = bi + − ~ i ci −1 ; d i = d i + − ~ i d i −1 , i = 2,..., n
bi −1 bi −1 (16)
(~ ~
b1 = b1 ; d 1 = d 1 )
Обратният ход за системата (15) е:
~ ~ ~
( ~
)
x n = d n bn ; xi = d i − ci xi +1 bi , i = n − 1,...,1 (17)
Намирането на този индекс може да стане чрез т.нар. двоично търсене, което изи-
сква log2 n изпълнения на стъпки 2), 3) и 4) от долния алгоритъм.
5) i = il .
37/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
2
f(x)=1/(1+25x )
2.0 интерполиращ полином на Лагранж
f(x)
интерполационни възли
1.5
1.0
0.5
0.0
-0.5
-1.0 -0.5 0.0 0.5 1.0
2
f(x)=1/(1+25x )
1.0 f(x)
естествен кубичен сплайн
интерполационни възли
0.5
0.0
-1.0 -0.5 0.0 0.5 1.0
38/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
6. Числено интегриране
Елементарни алгоритми
Правило на правоъгълниците
Методът се състои в разбиване на [a, b] на подинтервали [xi , xi +1 ], i = 1,..., n ,
(x1 = a; xn +1 = b ) , локално интерполиране на f (x ) с полиноми от нулева степен през цен-
x + xi +1
тровете на всеки подинтервал, ϕ (x ) = f (ξi ), x ∈ [xi , xi +1 ] , ξi ≡ i , интегриране на
2
този полином в границите на подинтервала, и сумиране на получените локални оценки
xi +1
Ri ≡ ∫ dxϕ (x ) :
xi
n n
I ab ≅ ∑ Ri ≡ ∑ hi f (ξi ) (hi ≡ xi +1 − xi ) (1)
i =1 i =1
f ( x ) = f (ξi ) + (x − ξi ) f I (ξi ) +
(x − ξi )2 f II (ξi ) +
(x − ξi )3 f III (ξi ) +
(x − ξi )4 f IV (ξi ) + O (hi5 )
2 6 24
(ξi ) + O (hi7 )
3 5
I i ≡ ∫ f ( x ) = hi f (ξi ) + 0 + f II (ξi ) + 0 +
xi +1 hi hi IV
f (2)
xi 3× 2 × 4 5 × 24 × 16
Правило на трапеците
Методът се състои в разбиване на [a, b] на подинтервали [xi , xi +1 ], i = 1,..., n ,
(x1 = a; xn +1 = b ) , локално интерполиране на f (x ) с полиноми от първа степен през кра-
xi +1 − x x − xi
ищата на всеки подинтервал, ϕ (x ) = f ( xi ) × + f (xi +1 ) × ,
hi hi
n n
I ab ≅ ∑ Ti ≡ ∑
hi
( f (xi ) + f (xi +1 )) (3)
i =1 i =1 2
f IV (ξi ) − O (hi5 )
2 3 4
f ( xi ) = f (ξi ) − f (ξi ) + i f II (ξi ) − i f III (ξi ) +
hi I h h hi
2 2×4 6×8 24 × 16
f IV (ξi ) + O (hi5 )
2 3 4
f ( xi +1 ) = f (ξi ) + i f I (ξi ) + i f II (ξi ) + i f III (ξi ) +
h h h hi
2 2×4 6×8 24 × 16
f IV (ξi ) + O (hi7 )
3 5
Ti = hi f (ξi ) + 0 + f (ξi ) + 0 +
hi II hi
(4)
2×4 24 × 16
f IV (ξi ) + O (hi7 )
3 5
I i ≡ ∫ f ( x ) = Ti − f II (ξi ) −
x i +1 2hi 4hi
xi 3× 2 × 4 5 × 24 × 16
= Ti − 2 E1 − 4 E2 + O (hi )7
1 1
Tab = h f 1 + f 2 + ... + f n + f n +1 (5)
2 2
40/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Ri + Ti = i ( f i + 4 f i +1 / 2 + f i +1 ) − E 2
2 1 h 2
I i = Si ≡ (6)
3 3 6 3
S ab =
h
( f1 + 4 f 2 + 2 f 3 + 4 f 4 + ... + 4 f n−2 + 2 f n−1 + 4 f n + f n+1 ) (7)
3
41/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Контрол на точността
Задачата е да се оцени грешката на квадратурната оценка. Подходът се основава
на известните връзки (2), (4), (6) между грешката и стъпката на интегриране.
h1 h
Нека при стъпки h1 ≡ b − a, h2 = ,..., hk = k −1 ,... се строи редицата T1, T2, .... от
2 2
съответни оценки на интеграла съгласно (5). Тъй като по силата на (4) тази редица ще
се схожда монотонно към истината, итерацията може да се прекъсне напр. при
Tk − Tk −1
<ε .
Tk −1
+ hk ( f 2 + f 4 + ... + f n − 2 + f n ), k = 2,3,...
Tk −1
Tk = (8)
2
новите точки е 2 k −2 .
Фиг.1 Рекурентно изграждане на редицата T1, T2, .... С кръгове са отбелязани абсцисите,
в които се пресмятат допълнителните функционални стойности за прилагане на връзка-
та (8). На последния ред са отбелязани всички абсциси, функционалните стойности в
които участвуват в оценката T4. Илюстрацията е от NUMERICAL RECIPES IN FORTRAN 77: THE
ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Copyright (C) 1986-1992 by Cambridge University
Press.
42/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Tk −1 = hk ( f1 + 0 + 2 f 3 + 0 + ... + 0 + 2 f n −1 + 0 + f n +1 )
1 1 (9)
Tk = hk f1 + f 2 + f 3 + f 4 + ... + f n − 2 + f n −1 + f n + f n +1
2 2
Вижда се, че от тях може да се формира линейна комбинация, която да бъде екви-
валентна на израза (7):
4Tk − Tk −1 hk
Sk = = ( f 1 + 4 f 2 + 2 f 3 + 4 f 4 + ... + 4 f n −2 + 2 f n −1 + 4 f n + f n +1 ) (10)
3 3
Така, със същите изчислителни усилия, които са нужни за прилагане на (8), може
4Tk − Tk −1
да се построи редица от оценки S k = , k = 2,3,... , всяка от които ще бъде с два
3
порядъка по-точна от тази по метода на трапеците. Сходимостта на тази редица, съот-
ветно, ще бъде много по-бърза от сходимостта на (8).
Гаусова квадратура
43/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
( p , p ) ≡ ∫ dxw(x ) p (x ) p (x ) = δ
i j
b
a
i j ij , (1)
n
pn +1 (x ) = xp n (x ) + ∑ α i pi (x ) , (2)
i =0
αk = −
(xpn , pk ) . (4)
( pk , pk )
Отчитайки отново взаимната ортогоналност на вече построените полиноми и постулираната реку-
k
(xp n , p k ) = ( pn , xpk ) = ( pn , pk +1 ) − ∑α i ( pn , pi ) = 0 . (5)
i =0
n
p n +1 (x ) = xp n ( x ) + ∑ α p ( x ) = ( x − β ) p ( x ) − γp
i i n n −1 , (6)
i = n −1
където β = −α n =
(xp n , pn ) и γ = −α n −1 =
(xp n , pn −1 ) . (7)
( p n , pn ) ( pn −1 , p n−1 )
Последният израз се опростява допълнително:
44/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
така че γ =
( pn , p n ) . (9)
( pn−1 , pn−1 )
pi
След ортогонализацията полиномите могат да се нормират: pi ← .
( p i , pi )
Може да се покаже, че ако {xi }i =1,...,n са нулите на p n (x ) , то те са различни и реални, и
Примери:
∑ a f (x ) ≅ ∫ dxw(x ) f (x )
b
i i
a
i =1 , (1)
w( x ) ≥ 0; ∫ dxw(x ) > 0
b
където възлите {xi }i =1,...,n и теглата {a i }i =1,...,n се избират така, че (1) да бъде точна за
За тях е в сила:
45/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
∫ dxw(x )Q (x )Q (x ) = 0, i, j ≤ n, i ≠ j ,
b
i j (2)
a
вателно:
∫ dxw(x )Q (x )q (x ) = 0
b
n n −1 (3)
a
4. Нека:
∏ (x − x )i
L (x ) =
i≠ j
∏ (x − x )
Например, полиномите на Лагранж j позволяват представянето:
j i
i≠ j
n
f ( x ) = ∑ f (xi )Li ( x ) + R ( f ; x ) . Ако f (x ) е точно полином от степен n-1, то остатъкът R ( f ; x ) = 0
i =1
n n
dxw( x ) f (x ) = ∑ f ( xi )∫ dxw( x )Li (x ) = ∑ ai f (xi ) , където ai ≡ ∫ dxw(x )Li (x ), i = 1,..., n .
b b b
и ∫
a
i =1
a
i =1
a
Φ 2 n −1 ( x ) = Qn (x )qn −1 ( x ) + rn −1 ( x ) , (4)
Тогава:
46/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
8 6 47 48
3
6447 1 448 644 472 444
n
a a
i =1
(5)
64444447444444
8 4 6447
5 44
8
n n
Вторият израз е поради (3) и (4), третият е еквивалентен на втория поради избора
на тегла, четвъртият е еквивалентен на третия поради избора на възли, а петият е ал-
тернативен запис на четвъртия (поради (4)).
Така беше доказано, че при споменатия по-горе избор на n на брой възли и тегла,
квадратурната формула (1) е точна за полиноми от степен 2n-1. Тук е уместно да се
напомни, че при разгледаните по-горе елементарни алгоритми тази степен не може да
бъде по-висока от n-1.
47/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
dy ( x )
= f ( x, y (x ))
dx (1)
y (x0 ) = y0
Едно ОДУ от по-висок ред може да се сведе до система от ОДУ от първи ред по
следния начин:
dy1 (x )
= y 2 (x ) {y1 (x ) ≡ y (x )}
dx
dy 2 (x )
= y3 (x )
dx
d y(x )
= f n (x, y , y ' , y ' ' ,..., y (n −1) ) ⇒
n
n
... (2)
dx
dy n −1 (x )
= yn (x )
dx
dy n (x )
= f n (x, y1 ,..., y n )
dx
dy ( x )
⇒ = f ( x,y )
dx
y ( x1 ) ≈ y1 = y 0 + h0 f ( x0 , y 0 ) + O (h02 )
y (x 2 ) ≈ y 2 = y1 + h1 f (x1 , y1 )
(3)
....
y (x n +1 ) ≈ y n +1 = y n + hn f (x n , y n )
48/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
∂f
y ' ' (x ) = (x ) y ' (x ) + ∂f (x ) ≡ f y f + f x
∂y ∂x
y ' ' ' (x ) = ( f yy f + f xy ) f + f y ( f y f + f x ) + f yx f + f xx (7)
= f yy f 2 + f y2 f + f y f x + 2 f xy f + f xx
и т.н.
Методи Рунге-Кута
Схемата на интегриране при тези методи е от вида:
r
y n +1 = y n + ∑ p j k j (h ) , (8)
j =1
където:
k j (h ) ≡ hf (ξ j ,η j ), j = 1,..., r
ξ j = x n + α j h, α 1 = 0 (9)
j −1
η j = y n + ∑ β jl k l (h )
l =1
49/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Примери:
а) При r = 1
Следователно,
h2
R1 (h ) = y n + hy ' n + y ' ' ( xn + θh ) − y n − p1hf (x n , y n )
2!
(11)
h2
= (1 − p1 )hy ' n + y ' ' (x n + θh )
2!
y ' n ≡ y ' (x n ) .)
y n +1 = y n + hf (x n , y n ) (12)
б) При r = 2
y n +1 = y n + p1k1 (h ) + p 2 k 2 (h )
k1 (h ) ≡ hf ( x n , y n ) , при което y ( xn +1 ) = y n +1 + R2 (h ) (13)
k 2 (h ) ≡ hf (x n + αh, y n + βk1 (h ))
Следователно,
h2 h3
R2 (h ) = y n + hy ' n + y ' ' n + y ' ' ' ( x n + θh ) − y n
2! 3!
− p1hf n − p 2 h{f n + f nxαh + f ny βk1 + O (h 2 )}
∂f
y ' n ≡ y ' (x n ) , y ' ' n ≡ y ' ' ( xn ) , f n ≡ f ( x n , y n ) , f nx ≡ (xn , y n ) , f ny ≡ ∂f (xn , y n ) .)
∂x ∂y
50/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
p1 + p 2 = 1
1
p 2α = (15)
2
1
p2 β =
2
1
Избира се p1 = p 2 = . Тогава: α = β = 1 .
2
y n +1 = y n +
h
( f (xn , y n ) + f (xn+1 , y n + hf (xn , y n ))) (16)
2
y n +1 = y n +
1
(k1 + 2k 2 + 2k 3 + k 4 )
6
k1 = hf ( xn , y n )
, при което y ( xn +1 ) = y n +1 + O (h 5 )
h k
k 2 = hf x n + , y n + 1 (17)
2 2
h k
k 3 = hf xn + , y n + 2
2 2
k 4 = hf (x n + h, y n + k 3 )
y n +1 = y n +
1
(k 1 + 2k 2 + 2k 3 + k 4 )
6
k 1 = hf ( x n , y n )
51/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
dy
ход. Натрупването на грешката може да се контролира чрез избора δ 0 ≡ εh . Тъй като
dx
0.25
δ
сега грешката се мащабира с h, коректният израз е h0 = h1 0 .
δ1
Например:
du ( x )
= 998u ( x ) + 1998v ( x )
dt
dv ( x )
= −999u ( x ) − 1999v ( x ) (20)
dt
u (0) = 1
v (0 ) = 0
52/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Решението на (1) е:
y ' = −cy
, (21)
c = const. > 0
y n +1 = y n + hy ' n = (1 − ch ) y n (22)
ва на нестабилност на решението.
ност y n .
yn
y n +1 = y n + hy ' n +1 = (23)
(1 + ch )
Схемата (23) е безусловно стабилна, защото винаги се осигурява вярното поведе-
ние на решението: y n → 0 .
h →∞
53/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
y n +1 = (1 − Ch )y n (24)
i i n→∞
2
ще се осигури само ако µ max ≡ max µi = max 1 − hλi = 1 − hλ1 < 1 , т.е. ако h < .
i i λ1
y n +1 = y n + hy ' n +1 = (1 + Ch ) y n
−1
(25)
y f
Нека y ' = f (y ) . (За случая y ' = f ( x, y ) винаги може да се положи = .)
x 1
y n +1 = y n + hf (y n +1 ) (26)
y n +1 = y n + h[f (y n ) + J (y n )(y n +1 − y n )]
∂f (27)
J (y n ) ≡
∂y yn
Така: y n +1 = y n + h[1 − hJ (y n )] f (y n )
−1
(28)
54/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
55/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
8. Нелинейни уравнения
f (x ) = 0 , (1)
Ясно е, че търсената нула може да не е единствена. Също така е ясно, че ако фун-
кцията е непрекъсната и
f (a ) × f (b ) ≤ 0 , (2)
то в интервала [a, b] тази функция заема нулева стойност нечетен брой пъти. Нека
от тук нататък интервалът [a, b] е такъв, че в него да има точно една нула на f (x ) .
b−a
Ясно е, че постижимата относителна точност , c ≠ 0 не може да бъде по-
c
добра от машинния епсилон ε m . Това твърдение се отнася и за всеки друг метод за тър-
сене на нула на функция.
56/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
f (xi )
xi +1 = xi − (5)
f ' (xi )
f (xi )
ε i +1 = ε i − , (6)
f ' (xi )
От друга страна,
ε i2 ε i2
f ( xi ) = f (x ) + f ' ( x )ε i + f ' ' ( x ) + ... = 0 + f ' (x )ε i + f ' ' (x ) + ...
2 2 (7)
f ' (xi ) = f ' ( x ) + f ' ' ( x )ε i + ...
57/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
58/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
стото, в което права, минаваща през точките (xi −1 , f ( xi −1 )) и (xi , f (xi )) , пресича абсци-
сата, т.е. като решение на линейното уравнение:
f ( xi ) − f ( xi −1 )
f ( xi ) + × ( xi +1 − xi ) = 0 (9)
xi − xi −1
lim ε i +1 ≈ const × ε i
1.618
(10)
i→∞
59/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
f (b ) − f (a )
f (b ) + × (c − b ) = 0 (11)
b−a
60/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Фиг. 6 Пример, при който методът на секущите или regula falsi ще се нуждаят от огро-
мен брой стъпки за достигане на нулата. В този случай прост и надежден метод като
разполовяването обикновено има предимство. Номерацията указва реда на получаване
на точките. Илюстрацията е от NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC
COMPUTING (ISBN 0-521-43064-X) Copyright (C) 1986-1992 by Cambridge University Press.
61/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
y (d ) = αd 2 + β d + γ = 0 (12)
Проблем при този подход е, че уравнението (12) има два корена и е нужна допъл-
нителна логика за избор на подходящия измежду тях.
62/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
∂Fi
δx j + O (δx 2 )
n
Fi (x + δx ) = Fi (x ) + ∑ (15)
i =1 ∂x j
∂Fi
където J е матрицата на Якоби с елементи J ij ≡ .
∂x j
x i +1 = x i + δx , (18)
63/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
9. Минимизация
Едномерна минимизация
Задачата се състои в намиране на позицията на локален минимум на реалната ска-
ларна непрекъсната функция на реален скаларен аргумент f (x ) . (Ясно е, че всеки ме-
тод, предназначен за търсене на такъв минимум, може да се използува и за търсене на
максимум, след замяната: f ( x ) ← − f (x ) .)
Нека локалният минимум се търси в интервала [a, c] и нека a < b < c . Тогава, ако
Постижима точност
Нека b е позицията на минимума. Тогава, за близка точка x:
64/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
x −b 2 f (b )
Или: > εm ≈ εm . (4)
b b 2 f ' ' (b )
b−a x−b
Нека a < b < x < c и w ≡ ;z≡ (5)
c−a c−a
1 − w = z + w ⇒ z = 1 − 2w (6)
65/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
стария интервал [a, c], е нужно x да се разполага в [b, c ] по същия начин, по който b се
разполага в [a, c], т.е:
z
=w (7)
1− w
w 2 − 3w + 1 = 0 (8)
3± 5
Решенията на (8) са w1, 2 = . Стойността w1 е невъзможна, защото по постро-
2
ение w < 1 . Така, за позицията на b в [a, c] остава единствената възможност:
3− 5
w= ≈ 0.38197 (9)
2
1. Сравняване на f (b ) и f (x ) .
c−a c−a
2. Сравняване на с критерия за прекъсване δ. Ако < δ , то итерациите
c+a c+a
66/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Многомерна минимизация
Най-често задачата за търсене на локален минимум на функцията на n променли-
ви f (x ) се решава чрез последователност от едномерни минимизации по подходящо
избрани направления. Тези направления трябва да бъдат такива, че изчислителните уси-
лия за техния избор, както и броят на нужните едномерни минимизации, да бъдат ми-
нимални.
67/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Фиг. 3. (а) Метод на най-бързото спускане в дълга и тясна „долина”. Броят на стъпките,
нужни за достигане до дъното, може да се окаже твърде голям. (b) Увеличен изглед на
една стъпка. Посоката е срещу локалния градиент, т.е. перпендикулярно на изолинията
в отправната точка. Праволинейното преместване приключва в точка, където направле-
нието на минимизация е успоредно на локалната изолиния. Илюстрацията е от NUMERICAL
RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Copyright (C)
1986-1992 by Cambridge University Press.
∂f
(x i )δxk + 1 ∑ ∂ f (x i )δxk δx j + ...
2
f (x i + δx ) = f (x i ) + ∑
k ∂x k 2 k , j ∂x k ∂x j
(1)
1
≈ c − b.δx + δxAδx
2
∇f (x i + δx ) = Aδx − b (2)
68/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
69/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
a) Нека има някаква система от линейно независими вектори g1, g2,…. (5)
i
v k Av i +1 = 0 = v k Ag i +1 + ∑ β l v k Av l = v k Ag i +1 + β k v k Av k
l =1
г) (8)
v Ag
⇒ β k = − k i +1 , k = 1,..., i
v k Av k
Оказва се, че при подходящ избор на базовите вектори {gi} е възможно броят на
коефициентите βk в (7) да се сведе до един (последния в сумата), с което се минимизи-
рат изчислителните разходи по прилагането на (8).
g i = Ax i − b = A (x i − x n +1 ) (11)
70/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Тогава:
v j g j = v j A (x j − b ) = v j A (x j − x n +1 ) = − ∑α l v j Av l = −α j v j Av j
n
l= j
(13)
v jg j
⇒αj = −
v j Av j
g k +1 − g k
Av k = (14)
αk
симетрична, ще се получи:
g i +1Av k =
g i +1
(g k +1 − g k ) = 0 = v k Ag i+1 , k < i (15)
αk
v i +1 = g i +1 + β i v i (16)
Доказателство на ортогоналността на {g i }
a) g j Av i = 0, j < i (17)
б) g i Av i = v i Av i (18)
71/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
v 1g 1
g 2 = g 1 + α1 Av 1 = g 1 − Av 1
v 1Av 1
v 1g 1 gg
⇒ g 1g 2 = g 1g 1 − g 1Av 1 = g 1g 1 − 1 1 v 1 Av 1 = 0
v 1Av 1 v 1Av 1
(v1 = g 1 )
………..
g k g i +1 = g k g i + α i g k Av i = 0 + 0
g i g i +1 = g i g i + α i g i Av i = g i g i + α i v i Av i = g i g i − v i g i
i −1
= g i g i − g i g i − ∑γ k g i g k = 0
k =1
72/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Практически подобрения
gigi
αi = − (следва от (9) и ортогоналността на базовите вектори) (19)
v i Av i
g i +1g i +1
βi = (20)
gigi
g i +1g i +1 = g i +1g i + α i g i +1 Av i = 0 − (g i g i ) = − (g i g i ) i i +1 = (g i g i )β i
g i +1 Av i v Ag
v i Av i v i Av i
g i +1 = A (x i + λv i ) − b = g i + λAv i (21)
v i ∇f (x i +1 ) = v i g i +1 = 0 (22)
vigi
v i g i +1 = v i g i + λv i Av i = 0 ⇒ λ = − = αi
v i Av i
73/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
74/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
75/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
ление (
N nµ , nσ . )
В частност, ако {xi }, i = 1,... имат разпределение U (0,1) , то случайната величина
12
ξ ≡ ∑ xi − 6 ще има разпределение, приближаващо се до N (0,1) .
i =1
g ( y ) dy = f (x ) dx , (8)
dx
g ( y ) = f (x ) = f (x ) ϕ (y) .
d −1
(9)
dy dy
g ( y ) = g (F ) = f ( x )
dx dF dx dF dx
= = = 1 . Тъй като, освен това, 0 ≤ F ≤ 1 , то случай-
dy dx dF dx dF
x = F −1 (ξ ) (10)
76/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
f ( x1 ,..., x n ) .
∂ (x1 ,..., x n )
p ( y1 ,..., y n )dy1 ...dy n = f (x1 ,..., x n ) dy1 ...dy n , (13)
∂ ( y1 ,..., y n )
∂ (x1 ,..., xn )
където е модулът на детерминантата на матрицата на Якоби, т.е.
∂ ( y1 ,..., y n )
∂x1 ∂x1
...
∂y1 ∂y n
det ... ... ... .
∂x n ∂x n
∂y ...
1 ∂y n
y1 = − 2 ln x1 cos 2πx 2
Нека, в частност: . (14)
y 2 = − 2 ln x1 sin 2πx 2
x1 = exp − ( y12 + y 22 )
1
2
Тогава: (15)
1 y
x2 = arctg 2
2π y1
∂ ( x1 , x 2 ) 1 − y12 2 1 − y22 2
Детерминантата на Якобиана ще бъде: = − e 2π e .
∂ ( y1 , y 2 ) 2π
77/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
78/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
y 0 ∈U (0, f (x 0 )) .
79/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
80/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Поставяне на задачата
Нека y i , i = 1,..., n (1)
y (x i ; a1 ,..., am ) ,
Нека µi = ~ (2)
По силата на централната гранична теорема (виж Глава 10), и ако твърдението (2)
е вярно, разпределението на наблюдението yi ще бъде гаусово:
1 y − µ 2
N (µi , σ i ) ≡
1
exp − i i
.
σ i 2π 2 σ i
1 y −~ ( )
2
n
P ( y1 ,..., yn )dy1...dyn = ∏
dyi y x ; a
exp − i i
(3)
i =1 σ i 2π
2 σi
където c е константа.
81/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
y (x i ; a )
2
yi − ~
n
S (a ) = −2 ln (F / c ) = ∑
2
(5)
i =1 σi
(S ) = ∫
e −t t n 2−1dt
тивно вероятностно разпределение χ 2
n
2 0
∞
, (6)
∫ e −t t n 2−1dt
0
със стойност S 02 . Ако този набор е намерен чрез минимизация на S 2 (a ) , то между мо-
82/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
y (x; a0 ) .
б) Проверка на хипотезата, че наблюденията са реализация на модела ~
Линейни модели
При линеен модел (7) функцията S 2 (a ) има единствен екстремум и той е мини-
мум. Следователно, неговата позиция може да се намери чрез решаване на уравнения-
та:
∂S 2
= 0, k = 1,..., m (8)
∂a k
n
yi − ∑ a j X j (x i )
∑ j =1
X k (x i ) = 0 (9)
i =1 σ i2
Или:
m
n X k (x i )X j (x i ) n
yi X k (x i )
∑ ∑
j =1 i =1 σi 2 j ∑
a =
σ i2
(10)
i =1
В матричен запис:
Aa = b , (11)
където:
83/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
n X i (x k )X j (x k )
Aij ≡ ∑
k =1 σ k2
(12)
n
yk X i (x k )
bi ≡ ∑
k =1 σ k2
m m
n yi X j (x i )
α k = ∑ Ckj b j = ∑ Ckj ∑ , (13)
j =1 j =1 i =1 σ i2
n m Ckj X j (x i )
Или, a k = ∑ γ i(k ) y i , където γ i(k ) = ∑ (14)
i =1 j =1 σ i2
Или:
84/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
m C X (x )
2
n
σ (ak ) = ∑ σ ∑ kj 2j i
2 2
σi
i
i =1 j =1
n m C X (x ) m C X (x )
= ∑ σ i2 ∑ kj 2j i ∑ kl l2 i
i =1 j =1 σi l =1 σi
m m
n X (x )X (x )
= ∑∑ CkjCkl ∑ l i 2 j i (16)
j =1 l =1 i =1 σi
m m m m
= ∑ Ckj ∑ Ckl Alj = ∑ Ckj ∑ Ckl Clj−1
j =1 l =1 j =1 l =1
m
= ∑ Ckjδ kj = Ckk
j =1
Нелинейни модели
Ако векторът a(0) е достатъчно близо до позицията на търсения минимум на S2, та-
ка че тейлоровият ред на S 2 (a ) да може да бъде прекъснат до квадратичния член:
S 2 (a ) ≅ S 2 (a (0 ) ) + ∑
∂S 2 (0 )
( [ ]
1 m m ∂ 2 S 2 (0 )
a ) a i − a i(0 ) + ∑∑ ( [ ][
a ) a i − a i(0 ) a j − a (j0 ) ]
m
i =1 ∂a i 2 i =1 j =1 ∂ai ∂a j
(17)
1
= c − bδa + δaHδa
2
∇S 2 (a ) = − b + Hδa (18)
[
a 0 = a ( 0) + H −1 − ∇S 2 (a ( 0 ) ] (19)
a ( j ) = a ( j −1) + (H −1 )
( j −1) ( j −1)
b , j = 1,2,... , (20)
85/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
1 ∂S 2 n
y −~ y (x i ; a ) ∂~
y (x i ; a )
bk ≡ − =∑ i
2 ∂ak i =1 σi2
∂ak
(21)
1 ∂2S 2 n
1 ∂~ y (x i ; a ) ∂~
y (x i ; a ) y (x i ; a )
∂2 ~
H kl ≡ =∑ 2 − [ yi − ~
y (xi ; a )]
2 ∂ak ∂al i =1 σ i ∂ak ∂al ∂ak ∂al
− При линеен модел този член е точно нулев, а при модел, близък до линейния –
пренебрежимо малък спрямо члена с първите производни;
86/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Метод на Levenberg-Marquardt
∂S 2
δa k = ck bk = −ck , k = 1,..., m , (24)
∂a k
1
H има точно един с тази размерност, а именно , и той може да се използува за оп-
H kk
ределяне на мащаба на ck в (24). Във всички случаи, обаче, такава оценка ще бъде дос-
87/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
1
δa k = bk (25)
λH kk
H jj ≡ H jj (1 + λ )
~
(26)
H jk ≡ H jk ( j ≠ k )
~
~
и решаване на задачата Hδa = b . (27)
Така, при малки стойности на λ задачата (27) се свежда до (20), т.е. до метода на
обратния хесиан, а при големи стойности на λ – до (25), т.е. до модификация на метода
на най-бързото спускане.
88/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
89/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Ax = λx (1)
det (A − λ 1) = 0 (2)
A = A T , или a ij = a ji (3)
A = A + , или a ij = a ji * (4)
A T A = AA T = 1 , (5)
и унитарна, ако нейната ермитово спрегната е равна на нейната обратна. От (5) се вижда, че стъл-
бовете на ортогоналната матрица, разглеждани като вектори, са взаимно ортонормирани.
90/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
AA + = A + A (6)
x T A = λx T (7)
A T x = λx (7а)
AX R = X R diag(λ1 ,..., λn )
(8)
X L A = diag(λ1 ,..., λn )X L
Ако първото уравнение се умножи отляво по XL, второто – отдясно по XR, и двете
се извадят почленно едно от друго, се получава:
91/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
A → Z −1AZ , (12)
Тъй като последният израз съвпада с лявата страна на (2), собствените стойности
на Z −1AZ съвпадат с тези на A.
A → Z T AZ , (14)
92/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Когато този диагонален (или практически диагонален) вид бъде достигнат, стъл-
бовете на ефективната матрица на преобразованието
ния полином Pn, който е също от степен n, а два полинома от еднаква степен и със съв-
падащи нули могат да са различават само по общ мащабиращ множител. Така, в конте-
кста на решаваната задача полиномът Qn ще съвпада с характеристичния полином на
матрицата A.
93/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
n n −1 i
n −1
A + ∑
i =0
b i A
y = A n
y + ∑
i =0
bi A i y = 0 (17)
Cb = d , (17a)
където:
Степенна итерация
Нека собствените вектори на A образуват базис. Тогава, всеки вектор v 0 може да
n
λi
m
v m = λ α1x1 + ∑ α i x i m
m
→ α1λ1m x1 (19a)
λ1
1 →∞
i =2
v m +1, j y.v m +1
От (19а) следва, че lim = λ1 , или λ1 = lim , (20)
m→∞ v m, j m → ∞ y.v
m
94/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
Ускоряване на сходимостта
От (19а) следва, че скоростта на сходимост на степенния метод ще зависи от от-
λ2
ношението , известно като доминантно отношение. Ако то е твърде близо до 1,
λ1
може да се приложи някой от следните методи за ускоряване.
m +1
n
λi
n
α λ 1 + ∑ β i
m +1
α1λ1m +1 + ∑ αi λim +1 1 1
i = 2 λ1 m +1
λ2
Rm = i =2
= m→ λ1 + γ . (21)
λ1
→∞
n
λ
m
α λ + ∑α λ
m m n
1 1 i i α1λ1m 1 + ∑ β i i
i =2 i = 2 λ1
λ2
Следователно, при достатъчно голямо m, Rm +1 − λ1 = r × (Rm − λ1 ) , където r = .
λ1
Тогава може да се приложи δ2-процесът на Айткен:
λ1 − Rm +2 λ1 − Rm +1
= ⇒
λ1 − Rm +1 λ1 − Rm
λ1 =
Rm Rm + 2 − Rm2 +1
= Rm + 2 −
(Rm + 2 − Rm +1 ) = R − (∆ m + 2 )
2 2
(22)
m+2
Rm + 2 − 2 Rm +1 + Rm Rm + 2 − 2 Rm +1 + Rm ∆ m + 2 − ∆ m +1
µ2
бор на τ може да се намали отношението и така да се ускори сходимостта.
µ1
µ 2 λ2
ду тях, то при τ = λn ще се ускори сходимостта, защото < . В действителност,
µ1 λ1
λ2 + λn
оптималната стойност на τ е . Ако има както положителни, така и отрицателни
2
собствени стойности, τ може да се избере така, че второто и третото по големина из-
между числата µi да бъдат приблизително равни по модул и противоположни по знак.
95/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
n n
v m Av m = v m v m+1 = ∑α i2 λi2 m +1 , а v m v m = ∑α i2 λi2 m , (23)
i =1 i =1
така че
v m v m +1 λ 2m
= λ1 + O 2 . (24)
vmvm λ1
организира итерацията
v i = (A − τ 1) v i −1 , i = 1,2,...
−1
(26)
1
µk ≡ , k = 1,..., n , (27)
λk − τ
n n
αi
v 0 = ∑α i x i и v m = (A − τ 1) v 0 = ∑
−m
x i , т.е.
i =1 (λi − τ )
m
i =1
λ j −τ
m
(λ −τ )
m
v m = α j x j + ∑α i x i → α j x j (28)
λi − τ
j m→∞
i≠ j
96/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
v m .v m = 1 ≅ (λ j − τ m )v m +1 .v m и λ j ≅ τ m +
1
. (29)
v m +1 .v m
v m+1
Преди следващата итерация v m +1 се нормира: v m +1 ← .
v m+1
1
...
c ... s
Ppq = M 1 M , (30)
− s ... c
...
1
A (k ) = Ppq
(k )
A (k −1)Ppq
(k )
T
. (31)
97/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
c 2 − s 2 a qq − a pp
ctg(2ϕ ) ≡ = (33)
2 sc 2a pq
И наистина,
В разглеждания частен случай на матрицата (30) горното твърдение може да се докаже непосредс-
твено. Нека x е произволен ненулев вектор. За елементите на вектора y = Ppq x може пряко да се прове-
98/99
Записки на лекционния курс по „Програмиране и изчислителна физика”.
И. Христосков, юни 2012 г.
∑ yi2 = ∑ xi2 . Напълно аналогично, същият резултат се получава и за y = PpqT x . Тогава, нека
i =1 i =1
B = Ppq
T
A . От горното следва, че сумата от квадратите на матричните елементи на B ще бъде равна на
начин следва, че сумата от квадратите на матричните елементи на C ще бъде равна на сумата от квадра-
тите на матричните елементи на B. Сравнението с (31) показва, че C се отнася към A както A (k ) към
A (k −1) в (31).
~
v ip = cv ip − sv iq ; ~
v iq = sv ip + cv iq , i = 1,..., n . (37)
_________________________________________________________________
99/99