Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г. 1/99 ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА, 2013 г. 1. Принципи на числения анализ. Особености на машинните пресмятания ............ 2 2. Преки методи за решаване на системи от линейни алгебрични уравнения ......... 8 3. Итеративни методи за системи с големи разредени матрици .............................. 18 4. Подобряване на точността на числени оценки ...................................................... 25 5. Интерполация ............................................................................................................ 33 6. Числено интегриране ................................................................................................ 39 7. Обикновени диференциални уравнения ................................................................. 48 8. Нелинейни уравнения............................................................................................... 56 9. Минимизация ............................................................................................................ 64 10. Генериране на случайни числа с избрано разпределение................................... 75 11. Моделиране на данни ............................................................................................. 81 12. Собствени стойности и собствени вектори на матрица ...................................... 90
99
Embed
ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2013 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes13.pdf · вателно числата от 0 до 127, а с
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
1/99
ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА, 2013 г.
1. Принципи на числения анализ. Особености на машинните пресмятания ............ 2
2. Преки методи за решаване на системи от линейни алгебрични уравнения ......... 8
3. Итеративни методи за системи с големи разредени матрици .............................. 18
4. Подобряване на точността на числени оценки ...................................................... 25
При операциите между аритметични данни от цял тип е важно да се помни, че:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
4/99
− резултатът от операцията ще бъде също от цял тип – напр. 7/2 ще даде 3, 8/3 ще
даде 2, и т.н.
− ефектът от препълване е такъв, че напр. при n = 8 резултатът от операцията
125 + 5 ще бъде -126.
Реални числа
Стойността на едно реално число x се кодира чрез стойностите на две цели числа
– мантиса m и показател n:
nk
mx 2
2 1×= − , (2)
където k е броят двоични позиции на полето за запис на мантисата.
Стандартните пълни дължини на полето за запис на едно реално число са 32 и 64.
При дължина 32 за мантисата се отделят 24 бита, а за показателя – 8 бита. При дължина
64 за мантисата се отделят 54 бита, а за показателя – 10 бита.
При така приетия начин на кодиране, ако мантисата се записва като цяло число в
допълнително представяне, нейните възможни стойности ще бъдат в интервала [-1, 1),
и числото 1.0 няма да има точен машинен запис. Този голям недостатък се преодолява,
като мантисата се представя поотделно чрез своя знак, за който се отделя 1 бит, и своя
модул, за който остават k-1 бита. Показателят n като правило се записва като цяло чис-
ло в допълнително представяне.
Теглото на най-младшия бит на мантисата, 12
1−≡
kmε , се нарича машинен епсилон.
Например, при дължина на полето за запис на едно реално число 32 (= 24 + 8) бита,
723 10192.110 −− ×==mε . Машинният епсилон е мярка за минималното представимо от-
носително разстояние между две съседни реални числа и обуславя ограничената точ-
ност на машинните аритметични операции с такива числа. По тази причина обикновено
се приема, че относителната грешка на машинното представяне на едно реално число
е mε , тъй като това е горната граница на ефекта от закръгление до най-близкото предс-
тавимо число. Както ще бъде показно по-долу, обаче, относителната грешка на резулта-
та от аритметична операция между две реални числа в някои случаи може да бъде мно-
го по-голяма.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
5/99
При 8 бита за запис на показателя n, неговите възможни стойности са между -128
и +127. Следователно, модулът на четирибайтовите реални числа е в диапазона от
39128 1094.22 −− ×= до 38127 107.12 ×= .
Очевидните ограничения при аритметичните операции с реални числа са:
− опасност от препълване (заради ограниченото поле за запис на показателя);
− очаквана относителна грешка на резултата не по-малка от mε (заради ограниче-
ното поле за запис на мантисата). В частност, mε = 710192.1 −× при четирибай-
тови реални числа;
− опасност от катастрофална загуба на точност при изваждане на две почти ра-
вни числа. Нека, например, двоичните представяния на две реални числа са с
еднакви показатели, а мантисите им се различават помежду си само по съдър-
жанието на най-младшия бит. Ясно е, че в този случай ефективният брой битове,
в които може да се запише мантисата на резултата, е два (един + един за знака)
вместо 24. Така относителното тегло на грешката от закръгление на разликата,
което иначе за всеки от операндите типично е съизмеримо с mε , при разглежда-
ния пример ще бъде близко до 1/2.
Устойчивост на алгоритмите
Устойчив е такъв алгоритъм, при който малки грешки във входните данни водят
до контролируемо малки грешки в резултата. Неустойчив е алгоритъм, при който мал-
ки грешки във входните данни могат да доведат до непропорционално големи грешки в
резултата. Неустойчивостта може да бъде и присъщо свойство на решаваната задача.
Въпросът за устойчивостта на един алгоритъм може да бъде илюстриран чрез
следния пример.
Нека задачата е да се пресметнат интегралите:
,...2,1,1
0
1 == ∫− nedxxE xn
n (3)
Чрез интегриране по части може да се покаже, че
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
6/99
,...3,2,1 1
1
0
11
1
0
1
0
11
0
1
=−=
−=
−==
−−−
−−
∫
∫∫
nnEdxxenee
dxeexedexeE
nnx
nxxnxnn
, (4)
където e
dxexee
xdee
E xxx 111 1
0
1
0
1
01 =
−== ∫∫ .
Ако рекурентната връзка (4) се избере за алгоритъм за решаване на задачата (3),
този алгоритъм ще бъде неустойчив по следната причина.
Стойността на E1, с която се стартира алгоритъмът, неизбежно ще съдържа отно-
сителна грешка от закръгление, обусловена от mε . Нека, в частност, абсолютната греш-
ка на E1 е 11 Emεδ = , т.е. машинното представяне на E1 е 11 δ+E , а точната стойност е
E1. Поради по-големите от 1 и нарастващи множители n в рекурентната връзка (4), точ-
ната (без натрупване на допълнителни грешки от аритметичните операции) пресмeтна-
та стойност на E2 ще бъде 11 221 δ−− E . Така, абсолютната грешка на E2
ще бъде
12 2δδ = , абсолютната грешка на E3 ще бъде 123 233 δδδ ××== , а абслоютната грешка
на En – 1! δ×n . Относителната грешка ще нараства даже по-бързо, тъй като от (3) се
вижда, че 10 −<< nn EE . Например, при действителна стойност на E10 = 0.084 и четири-
байтово представяне на реалните числа ( mε = 710192.1 −× ) абсолютната грешка ще въз-
лезе на 0.16, а относителната ще бъде 1.9.
На основата на (4) може да се изгради устойчив алгоритъм по следния начин:
1,2,3...,,1
1 =−=− nn
EE n
n (5)
За стартиране може да се използува оценката:
1
11
0
1
0
1
+=≤= ∫∫
−
ndxxedxxE nxn
n , (6)
(Това е така, защото при 10 ≤≤ x , 11 1 ≤≤ −xee
.)
или, при достатъчно голямо n, може да се започне с 0=nE .
На всяка стъпка абсолютната грешката на текущата оценка nE ще се умножава с
1/n. (Относителната грешка ще намалява по-бързо от абсолютната, защото
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
7/99
10 −<< nn EE .) Тогава, например, при стартиране с n=20, абсолютната грешка на E10 ще
бъде не по-голяма от 1510710
1...
19
1
20
1
21
1 −×≅ . (В действителност, поради неточност на
операциите в (5), не може да се разчита на относителна грешка на резултата, по-малка
от mε .)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
8/99
2. Преки методи за решаване на системи от линейни алге-
брични уравнения
Задачата е да се реши системата от нехомогенни линейни алгебрични уравнения:
bAx = , (1)
където b е ненулев вектор. Системата ще има ненулево решение x само ако
( ) 0det ≠A .
Така наречените преки методи за решаване на задачата (1) изискват краен брой
аритметични операции и при липса на грешки от закръгление водят до точно решение.
Неточността на преките методи за решаване на такива линейни системи се обус-
лавя единствено от грешките от закръгление (грешки от дискретизация няма). Както ще
бъда показано в края на този раздел, освен от прилагания метод, тази неточност ще за-
виси и от т.нар. число на обусловеност на матрицата A на системата.
Гаусова елиминация
Методът се състои в съставяне на система cUx = , (2)
чието решение x съвпада с това на (1) и чиято матрица U е горна триъгълна, т.е.
jiuij >= ,0 .
Смисълът на преминаването от (1) към (2) е, че система с триъгълна матрица мо-
же да се реши чрез последователно заместване:
...
...
1
1,1
,111
ii
n
ijjiji
i
nn
nnnnn
nn
nn
u
xuc
x
u
xucx
u
cx
∑+=
−−
−−−
−=
−=
=
(3)
Процедурата за изграждането на системата (2) се базира на едно от основните
свойства на линейните системи, съгласно което заместването на дадено уравнение с
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
9/99
линейна комбинация между него и които и да е други уравнения не променя решението
на системата.
В този смисъл, построяването на (2) може да стане съгласно следния алгоритъм:
за nj ,...,1= :
{за nji ,...,1+= :
{добавяне към i-тото уравнение на j-тото, умножено с jj
ijij a
af −≡ ,
т.е. njkafaa jkijikik ,...,,~ =+= ; jijii bfbb +=~} (4)
така че новата стойност на ija да стане нулева}.
}
Очевиден проблем на този алгоритъм е, че знаменателят jja , наричан водещ еле-
мент, може да се случи нулев или много малък по модул, така че действията в най-
вътрешния цикъл да не могат да се изпълнят. За преодоляване на този проблем се из-
ползува друго основно свойство на линейните системи – размяната на реда на уравне-
нията не променя решението на системата.
Така, в хода на външния цикъл, за всяко j, т.е. всеки стълб, се търси максималният
по модул матричен елемент измежду njiaij ,...,, = . Ако това е mja , m-тото уравнение се
разменя с j-тото, след което се пристъпва към елиминацията (4). Новият водещ елемент
ще бъде максимален по модул измежду всички възможни, а модулите на множителите
ijf ще бъдат минимални. Търсенето (и размяната) не засягат елементите над реда j, за-
щото ще се наруши постигнатата до момента частична горна триъгълна структура на
матрицата.
Тази процедура, наречена избор на водещ елемент, повишава устойчивостта на
алгоритъма и съответно точността на решението на системата по следната причина.
− новите стойности ( )njkiaik ,...,1,~ += и на ( )njibi ,...,1~ += се формират чрез до-
бавяне към старите на относително най-малка по модул добавка (измежду въз-
можните). Така се потиска натрупването на грешки от закръгление (виж казано-
то по повод на устойчивостта в Глава 1) и се минимизира рискът от катастро-
фална загуба на точност поради вадене на близки числа. Действително, от (4)
следва, че в граничния случай на много голям множител ijf , когато
jkijik afa ×<< и jiji bfb ×<< , i-тото уравнение на системата ще бъде изцяло
подменено с j-тото и системата ще стане неопределена. В междинните случаи
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
10/99
ефектът от грешките от закръгление при пресмятане на ika~ и ib~
поради голям
множител ijf , т.е. малък по модул водещ елемент, ще бъде частична загуба на
информация за i-тото уравнение, изразяваща се в доближаване на матрицата U
на крайната система (2) до особената, т.е. до повишаване на нейното число на
обусловеност.
LU разлагане
Методът се състои в намиране на долна триъгълна матрица L и горна триъгълна
матрица U, такива, че LUA = . Ако това бъде направено, системата (1) може да се реши
чрез две серии от последователни замествания: ( )
==
⇒=yUx
bLybUxL .
Предимствата на този метод пред гаусовата елиминация са:
− LU разлагането не засяга вектора на десните части, така че е възможно с мини-
мални допълнителни изчислителни разходи (само за обратните замествания) да
се решат произволно много системи с еднаква матрица и различни вектори на
десните части, т.е. задачата BAX = , където стълбовете на B са вектори на дес-
ните части, а стълбовете на X – съответните им вектори на решението. (Такава
задача може да се реши и чрез гаусова елиминация, но само за неголям брой
предварително известни стълбове на B.) В частност, ако B е единичната матри-
ца, X ще бъде A-1, което е и общо прилаганият начин за обръщане на матрица.
− детерминантата на A може да се пресметне лесно като
×
∏∏==
n
iii
n
iii ul
11
. При
гаусовата елиминация това е невъзможно, защото детерминантата на U от (2)
няма проста връзка с детерминантата на A.
Алгоритъмът за намиране на елементите на L и U е както следва (алгоритъм на
Краут (Crout)):
– Тъй като пълният брой елементи на L и U е с n по-голям от уравненията, които
могат да се използуват за тяхното намиране, а именно
( )njniaul ij
ji
kkjik ,...,1,,...,1,
,min
1
===∑=
, (5)
се полага nil ii ,...,1,1 == (6)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
11/99
– уравненията (5) се използуват за намиране на iju и ijl в следния ред:
за nj ,...,1= :
{за ji ,...,1= :
{ ∑−
=
−=1
1
i
kkjikijij ulau
Това следва от (5) и (6). iju се записва на мястото
на ija . Лесно може да се провери, че при този ред на
обхождане на индексите всичко отдясно на равенство-то е вече определено.}
за nji ,...,1+= :
{ ∑−
=
−=1
1
j
kkjikijij ulaz
От (5) следва, че величините ijz са числителите на
ijl (jj
ijij u
zl = ). Те се записват на мястото на ija . И тук
може лесно да се провери, че при този ред на обхож-дане на индексите всичко отдясно на равенството е вече определено.}
}
Изборът на водещ елемент jju при пресмятане на ijl е абсолютно нужен за числе-
ната устойчивост на алгоритъма на Краут. Отчитайки, че изразите за ijz съвпадат по
структура с израза за jju , и че всички пресмятани величини се записват на мястото на
съответните елементи на масива A, може да се съобрази, че разместването на реда j на
този масив с ред m > j е равностойно на достигане на текущия етап от LU разлага-
нето, но на матрица, получена от първоначалната матрица A чрез предварително
разместване на въпросните нейни редове.
В този смисъл, изборът на водещ елемент се свежда до намиране на пози-
цията m на максималното по модул измежду jju и njizij ,...,1, += , и размест-
ване на редовете j и m на двумерния масив A, в който се съхраняват всички пресметнати величини и все още непроменените елементи на матри-цата A.
След което, за nji ,...,1+= :
{jj
ijij u
zl =
ijl се записват на мястото на ijz .}
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
12/99
Фиг. 1. Алгоритъм на Краут за LU разлагане на матрица. Елементите на първона-чалната матрица се променят в реда, указан от буквите a, b, c, и т.н. Маркираните учас-тъци показват вече променените елементи, които се използуват за промяната на два типични елемента, отбелязани с „×”. Илюстрацията е от NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Copyright (C) 1986-1992 by Cambridge University Press.
Анализ на грешката на решението
Векторни и матрични норми
Нормата x на вектора x е число със следните свойства:
− 0≥x , при което 0=x само за 0x =
− xx ×= αα , където α е скалар
− yxyx +≤+
Най-често се използуват следните векторни норми:
− ∞<≤
= ∑ pxp
i
p
ip1,
/1
x
− ii
xmax=∞
x
Нормата A на матрицата А е число със следните свойства:
− 0≥A , при което 0=A само за 0A =
− AA ×= αα , където α е скалар
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
13/99
− BABA +≤+
Най-често се използуват следните матрични норми:
− ijji
a,max
max=A – max-норма
−
2/1
,
2
= ∑
jiijF
aA – норма на Фробениус
− x
AxA
0x≠= max – операторна норма, породена от дадена векторна норма
В сила са и следните твърдения и определения:
− xAAx ×≤ – за всяка операторна и съответната й векторна норма, както и за F
A и
2x
− BAAB ×≤ – за всяка операторна норма, както и за F
A
− ∑=≡∞
∞
≠∞j
iji
amaxmaxx
AxA
0x
− ∑==≡∞≠
iij
j
T amaxmax1
11
Ax
AxA
0x
− ( )AA ii
λmax2
= , ако A е нормална матрица, т.е. AAAA ++ = ( ( ) ,...1, =ii Aλ са соб-
ствените стойности на A).
Обусловеност на матрица
Нека x e точното решение на системата (1), а нейното числено решение x̂ е точно
решение на системата
( ) δbbxδAA +=+ ˆ . (7)
Мярка за грешката на решението е нормата на вектора xxδx −≡ ˆ . Чрез изваждане
на (1) от (7) се получава ( )( )δbxδAAδx +−= − ˆ1 , или:
( )
×+×≤
xA
δb
A
δAA
x
δx
ˆˆκ , (8)
където ( ) AAA ×≡ −1κ се нарича число на обусловеност на матрицата A. Може
да се покаже, че за 2-норма и нормална матрица, ( ) ( )( )AA
Amin
max
λλκ = .
В рамките на този подход може също така да се покаже, че
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
14/99
( )
+×≤
b
δb
A
δAA
x
δxκ (9)
Полезна е и следната връзка между грешката на решението и лесния за пресмята-
Ако тя е по-малка от най-малката предходна аналогична оценка Emin, 1
1+
+j
iD се при-
ема за най-добро текущо приближение на производната, а за нова стойност на Emin се
приема Et. Цикълът се прекъсва, ако ( )1
min11
>
×≥−++
s
EsDD jj
jj .
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
33/99
5. Интерполация
Нека са дадени функционалните стойности
( ) nixfy ii ,...,1, =≡ , където nn xxxx <<<< −121 ... .
Интерполация е заместването на функцията ( )xf за [ ]nxxx ,1∈ с друга функция
( )xϕ , така че да са изпълнени условията:
( ) niyx ii ,...,1, ==ϕ (1)
Интерполиращата функция ( )xϕ се избира така, че да има удобен аналитичен
вид и да приближава ( )xf между възлите nixi ,...,1, = , т.е.
( ) ( ) 1, +<<≈ ii xxxxfxϕ (2)
Предполага се също, че възлите са избрани така, че двойките ( ) niyx ii ,...,1,, = да
описват „представително” поведението на ( )xf за [ ]nxxx ,1∈ . При такъв избор на въз-
лите може да се очаква, че между тях функцията ( )xf ще бъде непрекъсната и достатъ-
чно гладка. В този смисъл, за интерполиращата функция ( )xϕ е естествено да се поис-
кат същите свойства.
Полиномна интерполация
Ако се избере ( )xϕ да бъде полином на x, то от условията (1) могат да се опреде-
лят общо n негови коефициента. Следователно, с изключение на частния случай, когато
стойността на коефициента пред 1−nx се окаже нулева, степента на този полином ще
бъде n-1.
Тук е уместно да се отбележи, че полиномът, определен от условията (1), е единс-
твен. Наистина, ако допуснем противното, т.е., че ( )xPn 1− и ( )xQn 1− са два различни по-
линома от степен n-1, удовлетворяващи условията (1), то полиномът
( ) ( ) ( )xQxPxR nnn 111 −−− −≡ , който в общия случай е също от степен n-1, трябва да удовле-
творява условията ( ) nixR in ,...,1,01 ==− . Това, обаче, е невъзможно, тъй като ( )xRn 1−
може да има най-много n-1 нули. Следователно, ( )xPn 1− и ( )xQn 1− са идентични.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
34/99
Удобен начин за конструиране на единствения интерполиращ полином за двойки-
те ( ) niyx ii ,...,1,, = е следният:
( ) ( ) ( )∑=
−− =n
i
inin xLyxP
111 , (3)
където полиномите на Лагранж ( ) ( )xL in 1− имат свойството:
( ) ( )( ) ( ) ijxL
xL
jin
iin
≠=
=
−
−
,0
1
1
1 (4)
Техният явен вид е:
( ) ( )( )( )∏
∏
≠
≠− −
−=
ijji
ijj
in xx
xx
xL 1 (5)
Удобство на представянето (3) е, че полиномите на Лагранж ( ) ( )xL in 1− се строят
единствено с използуване на информация за възлите nixi ,...,1, = , а функционалните
стойности niyi ,...,1, = не са нужни.
Проблем на глобалната полиномна интерполация, т.е. на търсенето на общ поли-
ном ( )xPn 1− , удовлетворяващ всяко от условията (1) е, че степента на този полином на-
раства с броя на възлите n, а заедно с нея нараства и вероятността някои от нулите на
( )xPn 1− да попаднат между интерполационните възли. Ефектът е илюстриран на Фиг. 1.
Следователно, при голям брой възли е целесъобразно полиномната интерполация
да бъде локална:
( ) ( )( ) [ ]1,, +∈= iii
m xxxxPxϕ , (6)
където степента m на всеки от локално дефинираните полиноми ( )( )xP im е ниска, а
техните коефициенти се избират от изискването за интерполация (1) и от допълнителни
изисквания за гладкост на интерполиращата функция ( )xϕ , т.е. за непрекъснатост на
достатъчен брой нейни производни.
Интерполираща функция от вида (6), изградена съгласно споменатите изисквания,
се нарича сплайн.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
35/99
Ако, в частност, m = 1, получената прекъснато-линейна интерполираща функция
може да удовлетвори само условията (1), но не и допълнителни изисквания за гладкост.
В този случай явният вид на локалните полиноми ще бъде:
( )( ) ( )( ) ( )( ) ii
iii yxyxxP ωω += +11 , (7)
където ( )( )ii
ii
xx
xxx
−−≡
+1
ω и ( )( ) ( )( )xxx
xxx i
ii
ii ωω −=−−≡
+
+ 11
1 (8)
Вижда се, че (7) и (8) съвпадат с (3) и (5) за n = 2.
0 1 2 3 4 5 6
0
Pn-
1(x)
x
n=100 n=20
Фигура 1. Глобална полиномна интерполация на ( )xsin в интервала [ ]π2,0 . При голяма степен на полинома (n = 100) част от нулите попадат между интерполационните възли.
Естествен кубичен сплайн
Естественият кубичен сплайн е реализация на подхода (6) за случая m = 3.
Удобно е локалните полиноми ( )( ) 1,...,1,3 −= nixP i да се търсят във вида:
( )( ) ( )( ) ( )( ) ( )( ) ( )( ) ii
ii
ii
iii zxzxyxyxxP ψψωω +++= ++ 113 , (9)
където nizi ,...,1, = са подлежащи на определяне величини, ( )( )xiω и ( )( )xiω са по-
линомите от първа степен (8), а
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
36/99
( )( ) ( ) ( ) ( ) ( )( )( )xxxx
x iiiii ωωψ −−≡ + 32
1
6 и ( )( ) ( ) ( ) ( ) ( )( )( )xx
xxx iiiii ωωψ −−≡ + 3
21
6 (10)
са полиноми от трета степен със следните свойства:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
42/99
Контрол на точността
Задачата е да се оцени грешката на квадратурната оценка. Подходът се основава
на известните връзки (2), (4), (6) между грешката и стъпката на интегриране.
a) процедура на основата на правилото на трапеците
Нека при стъпки ,...2
,...,2
, 1121
−==−≡ kk
hh
hhabh се строи редицата T1, T2, .... от
съответни оценки на интеграла съгласно (5). Тъй като по силата на (4) тази редица ще
се схожда монотонно към истината, итерацията може да се прекъсне напр. при
ε<−
−
−
1
1
k
kk
T
TT.
От (5) се вижда, че съществува следната рекурентна връзка между членовете на
редицата от последователни приближения на интеграла:
( ) ,...3,2,...2 242
1 =+++++= −− kffffh
TT nnk
kk (8)
Номерацията на абсцисите (функционалните стойности) е спрямо kT . Броят на
новите точки е 22 −k .
Фиг.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.
б) процедура на основата на правилото на Симпсън
hk и редицата S1, S2, ... се дефинират аналогично на предходния случай. Аналоги-
чен е и критерият за сходимост.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
43/99
На основата на (7) и (5), рекурентната връзка между членовете на редицата от по-
следователни приближения на интеграла се строи по следния начин. Приведени към
номерацията на абсцисите (функционалните стойности) на Tk, оценките Tk-1 и Tk ще
имат вида:
( )
++++++++=
++++++++=
+−−
+−−
1124321
11311
2
1...
2
1
020...020
nnnnkk
nnkk
ffffffffhT
ffffhT
(9)
Вижда се, че от тях може да се формира линейна комбинация, която да бъде екви-
валентна на израза (7):
( )11243211 424...424
33
4+−−
− ++++++++=−= nnnnkkk
k ffffffffhTT
S (10)
Така, със същите изчислителни усилия, които са нужни за прилагане на (8), може
да се построи редица от оценки ,...3,2,3
4 1 =−= − kTT
S kkk , всяка от които ще бъде с два
порядъка по-точна от тази по метода на трапеците. Сходимостта на тази редица, съот-
ветно, ще бъде много по-бърза от сходимостта на (8).
Гаусова квадратура
Общият подход при численото интегриране, т.е. оценяване на ( )∫≡b
aab xdxfI , се
свежда до интерполиране на подинтегралната функция и приближаване на abI с анали-
тичен израз за интеграла на интерполиращата функция. Крайният резултат винаги може
да се представи във вида ( )∑=
≅n
iiiab xfaI
1
, където възлите nixi ,...,1, = са избрани по
определен начин, а коефициентите (теглата) niai ,...,1, = зависят от този избор. Ясно е,
че при полиномна интерполация и свободен избор на несъвпадащи помежду си възли
квадратурната формула ще бъде точна за подинтегрални функции, които са полиноми
от степен, не по-висока от n-1.
От друга страна, ако се поиска възлите да удовлетворяват специални условия (n
на брой), то може да се очаква, че общият брой от 2n условия (n за възлите + n от изис-
кването за интерполация) ще бъде достатъчен за конструиране на квадратурна форму-
ла, която да бъде точна за подинтегрални функции, които са полиноми от степен, не по-
висока от 2n-1. Именно такава е стратегията на т.нар. Гаусова квадратура.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
44/99
За обосноваване и прилагане на Гаусовата квадратура са нужни някои сведения за
ортогоналните полиноми и за начина на тяхното построяване.
Полиномите ( )xpi и ( )xp j , съответно от степени i и j, са взаимно ортогонални относно теглов-
ната функция ( )xw в интервала [ ]ba, , ако:
( ) ( ) ( ) ( ) ij
b
a jiji xpxpxdxwpp δ=≡ ∫, , (1)
където ijδ е символът на Кронекер.
Общата процедура за изграждане на система от ортогонални полиноми (процедура на Грам-
Шмидт) се състои в полагане на 10 =p и намиране на полиномите от по-висока степен чрез рекурентна-
та връзка
( ) ( ) ( )∑=
+ +=n
iiinn xpxxpxp
01 α , (2)
при което коефициентите iα (отделен набор за всяко n) се определят от условията
( ) nipp in ,...,0,0,1 ==+ . (3)
По-конкретно, тъй като вече ( ) ijji pp δ=, за i и j ≤ n, то условието за ортогоналност е
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
51/99
Уравненията за параметрите са:
2
12
1
1
2
2
21
=
=
=+
β
α
p
p
pp
(15)
Избира се 2
121 == pp . Тогава: 1== βα .
Така окончателно се получава следната схема:
( ) ( )( )( )nnnnnnnn yxhfyxfyxfh
yy ,,,2 11 +++= ++ (16)
в) При r = 4 начинът на намиране на параметрите е аналогичен, но за краткост
няма да бъде разглеждан. Окончателната схема е:
( )( )
( )34
23
12
1
43211
,
2,
2
2,
2
,
226
1
kyhxhfk
ky
hxhfk
ky
hxhfk
yxhfk
kkkkyy
nn
nn
nn
nn
nn
++=
++=
++=
=
++++=+
, при което ( ) ( )511 hOyxy nn += ++ (17)
Прякото обобщение на (17) за система от ОДУ е:
( )( )
( )34
23
12
1
43211
,
2,
2
2,
2
,
226
1
kyfk
kyfk
kyfk
yfk
kkkkyy
++=
++=
++=
=
++++=+
nn
nn
nn
nn
nn
hxh
hxh
hxh
xh
, при което ( ) ( )511 hx nn Oyy += ++ (18)
Избор на стъпката и контрол на точността
Нека всеки преход от x до x + 2h се изпълнява два пъти:
а) на една стъпка с резултат 1y , така че ( ) ( ) ( )651 22 hOChyhxy ++=+
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
52/99
б) на две стъпки с резултат 2y , така че ( ) ( )652 22 hOChyhxy ++=+
(Приема се, че константата C в първата компонента на грешката е обща за двата
случая, което в действителност не е точно така.)
Величината 12 yy −≡δ се избира за оценка на грешката на ( )hxy 2+ . При прие-
тото предположение за C, 5. hconst×=δ . Тогава, ако при h1 се е получила грешка δ1, то
желаната стъпка за постигане на грешка δ0 ще бъде:
2.0
1
010
=
δδ
hh (19)
Ако 10 hh < , преходът от x до x + 2h се повтаря с новата, по-малка стъпка h0. Ако
10 hh > , преходът напред продължава с новата, по-голяма стъпка h1.
В случая на система от ОДУ δδδδ е вектор и, като правило, се избира нормата
iii
yy ,1,2max −≡δ .
Възможни са и други варианти за конструиране на критерия за точност. Ако, нап-
ример, се дефинира yδ ε≡0 , ще се контролира относителната грешка за текущия пре-
ход. Натрупването на грешката може да се контролира чрез избора dx
dh
yδ ε≡0 . Тъй като
сега грешката се мащабира с h, коректният израз е 25.0
1
010
=
δδ
hh .
Твърди системи от обикновени диференциални уравнения
Една система от ОДУ е твърда, ако съществуват два или повече напълно различни
мащаба на независимата променлива, по която се менят зависимите променливи или
техни компоненти.
Например:
( ) ( ) ( )( ) ( ) ( )
( )( ) 00
10
1999999
1998998
==
−−=
+=
v
u
xvxudt
xdv
xvxudt
xdu
(20)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
53/99
Решението на (1) е:
( ) ( ) ( )( ) ( ) ( )xxxv
xxxu
1000expexp
1000expexp2
−+−−=−−−=
За стабилност на който и да е от горните методи за интегриране се изисква стъпка
1000/1<<h , независимо че членът ( )x1000exp − е с напълно пренебрежим принос в
стойностите на u и v почти веднага след началото x = 0. Тоест, за поддържане на ста-
билност се налага да се следва изменението на компонентата на решението с най-малък
мащаб.
Нека най-напред разгледаме единичното уравнение:
0.
'
>=−=constc
cyy, (21)
чието решение е ( )cxy −= exp
При схемата на Ойлер:
( ) nnnn ychhyyy −=+=+ 1'1 (22)
е нужно да се поддържа ch /2< , тъй като иначе ∞→
∞→n
ny , което е очевидна проя-
ва на нестабилност на решението.
Схемата (22) се нарича явна, защото 1+ny се получава явно от предходната стой-
ност ny .
Най-простият начин за преодоляване на строгото ограничение за размера на стъп-
ката е използуването на т.нар. неявна схема, основаваща се на развитието
( ) ( ) ( ) ...' ++−+= hxhyhxyxy :
( )ch
yhyyy n
nnn +=+= ++ 1
' 11 (23)
Схемата (23) е безусловно стабилна, защото винаги се осигурява вярното поведе-
ние на решението: ∞→
→h
ny 0.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
54/99
Обобщение за система от обикновени линейни диференциални уравне-
ния
Нека Cyy −=' , където C е положително определена матрица.
Явната схема на Ойлер дава:
( ) nn h yC1y −=+1 (24)
Нека hC1A −= . Нека 1...0 λλ ≤≤< N са собствените стойности на C. Тогава
ii hλµ −= 1 ще бъдат собствени стойности на A. Началното условие може да се предс-
тави във вида ∑=i
ii cy α0 , където ci са собствените вектори на C. Тогава,
( )∑∑ −===i
in
iii
inii
nn h ccyAy λαµα 10 , и вярното поведение на решението,
∞→→
nn 0y ,
ще се осигури само ако 111maxmax 1max <−=−=≡ λλµµ hh ii
ii
, т.е. ако 1
2
λ<h .
При неявната схема на Ойлер се получава:
( ) nnnn hh yC1yyy 111 ' −
++ +=+= (25)
Нека ( ) 1−+= hC1A . Ако 1...0 λλ ≤≤< N са собствените стойности на C, то
( ) 11 −+= ii hλµ ще бъдат собствени стойности на A. Ясно е, че винаги е в сила неравен-
ството 1<iµ (C е положително определена).
Обобщение за система от ОДУ
Нека ( )yfy =' . (За случая ( )yfy ,' x= винаги може да се положи
=
1
fy
x.)
Неявната схема на Ойлер дава:
( )11 ++ += nnn h yfyy (26)
Десните части могат да се линеаризират:
( ) ( )( )[ ]
( )n
n
nnnnnn h
yyf
yJ
yyyJyfyy
∂∂≡
−++= ++ 11
(27)
Така: ( )[ ] ( )nnnn hh yfyJ1yy 11
−+ −+= (28)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
55/99
Заради явното развитие на десните части такъв метод се нарича полунеявен.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
56/99
8. Нелинейни уравнения
Нули на функция на една променлива
Задачата е да се намери стойност на реалния аргумент x, за който
( ) 0=xf , (1)
където f е реална скаларна функция.
Ясно е, че търсената нула може да не е единствена. Също така е ясно, че ако фун-
кцията е непрекъсната и
( ) ( ) 0≤× bfaf , (2)
то в интервала [ ]ba, тази функция заема нулева стойност нечетен брой пъти. Нека
от тук нататък интервалът [ ]ba, е такъв, че в него да има точно една нула на ( )xf .
Най-простият, но и най-надежден начин за локализиране на оградената нула е
методът на разполовяването. Съгласно този метод се проверява знакът на произве-
дението ( ) ( )cfaf × , където 2
bac
+= е центърът на интервала [ ]ba, . Ако този знак е
отрицателен, b се подменя с c. В противен случай a се подменя с c. И в двата случая
дължината на новия интервал [ ]ba, , който огражда нулата, е 1/2 от дължината на ста-
рия. Свиването на интервала чрез разполовяване продължава, докато се изпълни усло-
вието
δ<− ab , (3)
където δ е точността, с която се желае локализирането на нулата.
Ясно е, че постижимата относителна точност 0, ≠−
cc
ab не може да бъде по-
добра от машинния епсилон mε . Това твърдение се отнася и за всеки друг метод за тър-
сене на нула на функция.
Методът на разполовяването не се основава на никакви предположения за пове-
дението на функцията (освен вече направеното предположение за непрекъснатост). Не-
говата сходимост е линейна и равномерна, защото ( ) ( )1−∆=∆ ii C , където ( )i∆ и ( )1−∆ i са
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
57/99
съответно текущата и предходната грешка на решението (дължина на интервала, ог-
раждащ нулата), а константата C е 1/2.
Алтернативните методи, които се базират на специални предположения за локал-
ното поведение на функцията, могат да бъдат по-бързо сходящи, ако съответното пред-
положение е изпълнено, но могат и да бъдат напълно неуспешни, ако то е силно нару-
шено.
Типичен пример е методът на Нютон-Рафсон, или на допирателните. Съгласно
него, ако текущото приближение на нулата ix е достатъчно близко до нейната истинска
стойност, и ако първата производна на функцията може да бъде пресметната, следва-
щото приближение 1+ix може да се оцени на базата на линеаризираното тейлорово раз-
витие на функцията около ix , т.е. като решение на линейното уравнение относно ix :
( ) ( ) ( ) 0' 1 =−×+ + iiii xxxfxf , или: (4)
( )( )i
iii xf
xfxx
'1 −=+ (5)
Итерациите се прекратяват, когато ( ) ( ) δ<−+ ii xx 1 , където δ е точността, с която се
желае локализирането на нулата.
Сходимостта на метода може да се обоснове по следния начин. Ако точната
стойност на търсената нула е x, то:
( )( )i
iii xf
xf
'1 −=+ εε , (6)
където xxii −≡ε и xxii −≡ ++ 11ε са грешките на последователните приближения.
От друга страна,
( ) ( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ...''''
...2
'''0...2
'''22
++=
+++=+++=
ii
ii
iii
xfxfxf
xfxfxfxfxfxf
ε
εεεε (7)
Замествайки (7) в (6), се получава:
( )( ) ( )( )
( )( )xf
xf
xfxf
xfi
iii '2
''
'''2
'' 221 ε
εεε ≈
+=+ (8)
Следователно, сходимостта на метода на Нютон-Рафсон е квадратична.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
58/99
За съжаление, ако основната предпоставка за близост на текущото приближение
до истинската стойност на нулата е силно нарушена, този метод изобщо може да не
доведе до търсеното решение.
Фиг. 1 Пример за успешно прилагане на метода на Нютон-Рафсон. Илюстрацията е от NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Copyright (C) 1986-1992 by Cambridge University Press.
Фиг. 2 Неблагоприятна ситуация, при която методът на Нютон-Рафсон се натъква на локален екстремум и търсенето на нула се проваля. Илюстрацията е от NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Copyright (C) 1986-1992 by Cambridge University Press.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
59/99
Фиг. 3 Неблагоприятна ситуация, при която методът на Нютон-Рафсон влиза в безкраен цикъл и търсенето на нула се проваля. Илюстрацията е от NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Copyright (C) 1986-1992 by Cambridge University Press.
За случаи, когато пресмятането на първата производна е невъзможно или нежела-
телно, може да се прилага методът на секущите. Този метод изисква две приближе-
ния на позицията на нулата, напр. 1−ix и ix . Новото приближение 1+ix се търси като мя-
стото, в което права, минаваща през точките ( )( )11, −− ii xfx и ( )( )ii xfx , , пресича абсци-
сата, т.е. като решение на линейното уравнение:
( ) ( ) ( ) ( ) 011
1 =−×−−+ +
−
−ii
ii
iii xx
xx
xfxfxf (9)
Както се вижда, (9) е диференчен аналог на (4). Може да се покаже, че скоростта
на сходимост на метода на секущите е:
618.1
1lim iii
const εε ×≈+∞→ (10)
Критерият за прекратяване на итерациите и ограниченията на приложимостта на
метода на секущите са аналогични на тези на метода на Нютон-Рафсон.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
60/99
Фиг. 4 Метод на секущите. Линейната интерполация или екстраполация е през двете последно получени точки, независимо от това дали те ограждат нулата. Номерацията указва реда на получаване на точките. Илюстрацията е от NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Copyright (C) 1986-1992 by Cambridge University Press.
Модификация на метода на секущите, при която нулата е винаги оградена, е ме-
тодът regula falsi. При него също се започва с две абсциси, a и b, такива, че
( ) ( ) 0≤× bfaf . Новото приближение на нулата, c, се търси по същия начин като при
метода на секущите, т.е. от уравнението:
( ) ( ) ( ) ( ) 0=−×−−+ bc
ab
afbfbf (11)
Интервалът [ ]ba, за следващата итерация се избира по следния начин. Ако
( ) ( ) 0≤× cfaf , то b се подменя с c. В противен случай а се подменя с c. Критерий за
прекратяване на итерациите не е дължината на интервала [ ]ba, , а дължината на интер-
вала, в който функцията не променя знака си, т.е. [ ]cb, в първия случай и [ ]ca, – във
втория. Поради ограждането на нулата, методът regula falsi е надежден, за разлика от
метода на Нютон-Рафсон или на секущите. Сходимостта е в най-добрия случай същата,
като при метода на секущите, но за разлика напр. от метода на разполовяването, не е
равномерна, и се обуславя от изпълнението на основното предположение за локална
линейност на функцията.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
61/99
Фиг. 5 Regula falsi. Линейната интерполация е в последно получения интервал, който огражда нулата. В показания случай точка „1” остава неподвижна в продължение на много стъпки. От цикъла се излиза, когато интервалът, в който функцията не сменя знака си, стане достатъчно малък. В показания случай това е интервалът, ограден от точки „3” и „4”. Номерацията указва реда на получаване на точките. Илюстрацията е от NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Copyright (C) 1986-1992 by Cambridge University Press.
Фиг. 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.
По-нататъшно развитие на разгледаните последни три метода е квадратичната
интерполация през три точки. Ако са налице точките ( )( )afa, , ( )( )bfb, и ( )( )cfc, , и
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
62/99
напр. cba << и ( ) ( ) 0≤× cfaf , то през тях може да се построи интерполационен по-
лином от втора степен, ( ) ( ) γβα ++== xxxPxy 22 . Новото приближение на нулата, d,
може да се намери като корен на уравнението:
( ) 02 =++= γβα dddy (12)
Проблем при този подход е, че уравнението (12) има два корена и е нужна допъл-
нителна логика за избор на подходящия измежду тях.
Методът на Брент преодолява това затруднение чрез т.нар. обратна квадрати-
чна интерполация. При него полиномът от втора степен ( ) ( ) γβα ++== yyyPyx 22 се
строи през точките ( )( )aaf , , ( )( )bbf , и ( )( )ccf , и новото приближение на нулата, d, се
намира като стойност на полинома при 0=y , т.е:
( ) ( ) γ=== 00 2Pxd (13)
Ако d е извън ограждащия нулата интервал [ ]ca, , новото приближение се отхвър-
ля и търсенето продължава по метода на разполовяването. Ако новото приближение
бъде прието, то итерациите се прекратяват, ако δ<− bd , където δ е точността, с която
се желае локализирането на нулата. Ако критерият за прекратяване на итерациите не е
изпълнен, новата тройка ( )cba ,, се избира в зависимост от позицията на d и от знаците
на функционалните стойности по начин, който тук няма да бъде разглеждан.
Системи от нелинейни уравнения
Задачата се формулира като търсене на вектор ( )nxx ,...,1≡x , който да удовлетво-
рява уравненията:
( ) nixxF ni ,...,1,0,..,1 == (14)
В общия случай този вектор не е единствен. Също така, задачата за ограждане на
нулите в многомерния случай е практически неизпълнима. Поради това, най-често при-
лаганият метод за търсене на решение на система от нелинейни уравнения, е обобще-
ние на разгледания метод на Нютон-Рафсон за функция на една променлива. Той се
основава на тейлоровото развитие на функциите (14) около текущото приближение на
решението x (като допълнително се приема, че това приближение е достатъчно близо
до истинското решение x*):
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
63/99
( ) ( ) ( )2
1
xxxx δOxx
FFδF
n
ij
j
iii +
∂∂+=+ ∑
=
δ (15)
Или, в матрично-векторен запис:
( ) ( ) ( )2xxJxFxxF δOδδ ++=+ , (16)
където J е матрицата на Якоби с елементи j
iij x
FJ
∂∂≡ .
Пренебрегвайки остатъчния член и полагайки ( ) 0xxF =+ δ , се получава следната
линейна система за вектора xδ :
( )xFxJ −=δ (17)
Така, итеративният процес ще бъде:
xxx δ+=+ ii 1 , (18)
където ix и 1+ix са съответно старото и новото приближение на търсеното реше-
ние.
Итерациите се прекратяват, когато δδ <x , където δ е точността, с която се желае
локализирането на нулата. Удобна норма е напр. ∑=
≡n
iix
1
δδx .
Както и в едномерния случай, надеждността на метода не е гарантирана, ако те-
кущото приближение е далече от търсеното решение.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
64/99
9. Минимизация
Едномерна минимизация
Задачата се състои в намиране на позицията на локален минимум на реалната ска-
ларна непрекъсната функция на реален скаларен аргумент ( )xf . (Ясно е, че всеки ме-
тод, предназначен за търсене на такъв минимум, може да се използува и за търсене на
максимум, след замяната: ( ) ( )xfxf −← .)
Нека локалният минимум се търси в интервала [ ]ca, и нека cba << . Тогава, ако
( ) ( )afbf < и ( ) ( )cfbf < , (1)
то в [ ]ca, функцията ( )xf има минимум. Това е работният критерий за наличие
на минимум на функция на една променлива в даден интервал.
Фиг. 1 Екстремуми на функция в даден интервал. Точки A, C и E са локални максимуми. Точки B и F са локални минимуми. Глобалният максимум е в т. G, която е на границата на интервала, така че първата производна на функцията там не е задължително нулева. Глобалният минимум е в т. D. В т. E са нулеви и производни от по-висок ред от първи, което може да затрудни някои алгоритми. Точките X, Y и Z „ограждат” минимума в F, тъй като функцията в Y е по-малка, отколкото в X и Z. Илюстрацията е от NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Copyright (C) 1986-1992 by Cambridge University Press.
Постижима точност
Нека b е позицията на минимума. Тогава, за близка точка x:
( ) ( ) ( )( ) ...''2
1 2 +−+= bxbfbfxf (2)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
65/99
Така, функционалните стойности ( )xf и ( )bf ще бъдат различими и проверката
(1) за наличие на минимум ще може да се приложи, ако вторият член отдясно в (2) не е
пренебрежимо малък спрямо първия, т.е.:
( )( ) ( )bfbxbf mε>− 2''2
1. (3)
Или: ( )( ) mm bfb
bf
b
bxεε ≈>
−''
22
. (4)
Следователно, постижимата относителна точност на локализиране на минимума е
пропорционална на корен от машинния епсилон (3.45×10-4 при стандартното четириба-
йтово представяне на реалните числа).
Метод на златното сечение
По-нататъшното свиване на ограждащия минимума интервал [ ]ca, , за който е в
сила (1), може да се направи чрез проверка на функционалната стойност в допълнител-
на вътрешна точка x в този интервал.
Нека cxba <<< и ac
bxz
ac
abw
−−≡
−−≡ ; (5)
Така, ако ( ) ( )bfxf < , то минимумът е в [ ]cb, и чрез заместванията ba ← и
xb ← той се избира за нов интервал [ ]ca, , удовлетворяващ изискването (1). Съгласно
(5), неговата дължина ще бъде w−1 . В обратния случай минимумът е в интервала [ ]xa,
с дължина wz+ . Чрез заместването xc ← той се избира за нов интервал [ ]ca, , удовле-
творяващ изискването (1).
Ясно е, че оптимален избор на позицията на допълнителната точка x е този, при
който и в двата случая дължината на новия интервал [ ]ca, ще бъде една и съща:
wzwzw 211 −=⇒+=− (6)
Този израз за z е равностоен на изискването точката x да се разположи симетрич-
но на b относно центъра на интервала [ ]ca, .
От заместванията при първия случай ( ( ) ( )bfxf < ) следва, че за равномерна схо-
димост, т.е. неизменно отношение на дължината на новия интервал [ ]ca, към тази на
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
66/99
стария интервал [ ]ca, , е нужно x да се разполага в [ ]cb, по същия начин, по който b се
разполага в [ ]ca, , т.е:
ww
z =−1
(7)
След елиминиране на z от (6), за относителната дължина w се получава следното
уравнение:
0132 =+− ww (8)
Решенията на (8) са 2
532,1
±=w . Стойността w1 е невъзможна, защото по постро-
ение 1<w . Така, за позицията на b в [ ]ca, остава единствената възможност:
38197.02
53 ≈−=w (9)
Получената пропорция е известна като златно сечение, а съответният алгоритъм
за итеративно локализиране на минимума на функция на една променлива е както след-
ва:
0. Избор на начален ограждащ интервал [ ]ca, . Разполагане на вътрешните точки b
и x така, че ...38197.0=−−
ac
ab и ...38197.0=
−−
bc
bx.
1. Сравняване на ( )bf и ( )xf .
Ако ( ) ( )xfbf < , то: xc ← , bx ← и разполагане на b така, че
...38197.0=−−
ac
ab
В обратния случай: ba ← , xb ← и разполагане на x така, че
...38197.0=−−
bc
bx
2. Сравняване на ac
ac
+−
с критерия за прекъсване δ. Ако δ<+−
ac
ac, то итерациите
се прекъсват. В обратния случай се отива на т. 1.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
67/99
Многомерна минимизация
Най-често задачата за търсене на локален минимум на функцията на n променли-
ви ( )xf се решава чрез последователност от едномерни минимизации по подходящо
избрани направления. Тези направления трябва да бъдат такива, че изчислителните уси-
лия за техния избор, както и броят на нужните едномерни минимизации, да бъдат ми-
нимални.
Примери са неефективен избор на направления са следните алгоритми.
А. 0. Стартиране от начална точка p0.; 1. Последователно едномерно минимизира-
не по направленията на координатните оси Ox1, Ox2, ..., Oxn, водещо до преместване
по начупената линия nppp →→→ ...10 . Повтаряне на стъпка “1” до момента, в който
текущата едномерна минимизация не води до значимо намаляване на функционалната
стойност или до значимо преместване от текущо достигнатата позиция.
Фиг. 2. Последователни минимизации по координатните направления в дълга и тясна „долина”. Освен ако долината не е оптимално ориентирана, този метод ще бъде крайно неефективен, тъй като ще изисква твърде много стъпки, съпроводени с постоянно пре-сичане на главната ос на долината. Илюстрацията е от NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Copyright (C) 1986-1992 by Cambridge University Press.
Б. 0. Стартиране от начална точка p0.; 1. Последователно едномерно минимизира-
не по направления срещу локалния градиент в текущата отправна точка, т.е. по
( )if p∇− , водещо до преместване по начупената линия nppp →→→ ...10 . Повтаряне
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
68/99
на стъпка “1” до момента, в който текущата едномерна минимизация не води до значи-
мо намаляване на функционалната стойност или до значимо преместване от текущо
достигнатата позиция. Този метод е известен като „метод на най-бързото спускане”.
Основание за предлагане на такъв метод е обстоятелството, че най-бързото нарас-
тване на функцията е по посока на градиента. И наистина, на основата на пример с
функция на две независими променливи, изменението на функцията при дадени изме-
нения на независимите променливи е ( ) ( ) ( ) dyyxy
fdxyx
x
fyxdf ×
∂∂+×
∂∂= ,,, , или
( ) ( ) rrr dfdf ⋅∇= . Ясно е, че това изменение ще бъде максимално, когато посоките на
( )rf∇ и rd съвпадат. Големината на това максимално изменение, отнесена към едини-
чно преместване, ще бъде fd
df ∇=r
.
Фиг. 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.
Метод на спрегнатите направления
Този метод е известен още като „метод на спрегнатите градиенти”. Неговото обо-
сноваване е следното.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
69/99
Нека началото на координатната система е избрано в отправната точка xi за теку-
щата едномерна минимизация. Тогава в нейната близка околност подлежащата на ми-
нимизиране функция може да се представи в следния вид:
( ) ( ) ( ) ( )
xxAxb
xxxxx
δδδ
δδδδ
2
1.
...2
1
,
2
+−≈
+∂∂
∂+∂∂+=+ ∑∑
c
xxxx
fx
x
fff
jkjki
jkkki
kii
(1)
Диференцирането на израза (1) води до следната приблизителна оценка на гради-
ента на функцията:
( ) bxAxx −=+∇ δδif (2)
Нека направлението на разглежданата едномерна минимизация е iv , а достигна-
тата позиция на минимума по това направление е 1+ix . В тази крайна позиция е в сила
съотношението ( ) 0. 1 =∇ +ii f xv . Тогава, съгласно (2), изменението на градиента при те-
Ако ( )1,0Ux∈ , то очакването на такава случайна величина е ( )2
1== ∫∞
∞−dxxxfµ , а дисперси-
ята е ( ) ( )12
122 =−= ∫∞
∞−dxxfx µσ . (6)
Нормално разпределение
Нормалното (гаусово) разпределение ( )σµ,N има следната вероятностна плътност:
( )
−−=2
2
1exp
2 σµ
πσxdx
dxxf (7)
Ако случайната величина x има разпределение ( )σµ,N , то случайната величина σ
µξ −≡ x ще
има разпределение ( )1,0N . И обратно, ако случайната величина x има разпределение ( )1,0N , то случа-
йната величина xσµξ +≡ ще има разпределение ( )σµ,N .
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
76/99
Централна гранична теорема Ако ,..., 21 xx са взаимно независими случайни величини с еднакво вероятностно разпределение,
което е с очакване µ и дисперсия σ2, то при ∞→n случайната величина ∑=
≡n
iin xs
1
ще има разпреде-
ление ( )σµ nnN , .
В частност, ако { } ,...1, =ixi имат разпределение ( )1,0U , то случайната величина
612
1
−≡∑=i
ixξ ще има разпределение, приближаващо се до ( )1,0N .
Метод на преобразуването за генериране на извадка от избрано
разпределение
Нека случайната величина ( )xy ϕ= с плътност на вероятностното разпределение
( )yg е еднозначна функция на случайната величина x с плътност на вероятностното
разпределение ( )xf . Тогава е в сила връзката:
( ) ( )dxxfdyyg = , (8)
където dx е произволно малко нарастване, а ( ) ( )xdxxdy ϕ−+ϕ= . Или,
( ) ( ) ( ) ( )ydy
dxf
dy
dxxfyg 1−ϕ== . (9)
В частност, ако ( )xFy = , където F е кумулативното разпределение (3), съответс-
твуващо на ( )xf , то от (4), (9) и факта, че F е растяща функция на x, следва, че
( ) ( ) ( ) 1=====dF
dx
dx
dF
dF
dx
dx
dF
dy
dxxfFgyg . Тъй като, освен това, 10 ≤≤ F , то случай-
ната величина ( )xFy = ще бъде с равномерно разпределение между 0 и 1.
Така, ако ξ е с равномерно разпределение между 0 и 1, то
( )ξ= −1Fx (10)
ще бъде с избраното разпределение ( )xf .
Нека, например, ( ) xexf −= , ∞<< x0 . Следователно ( ) xexF −−= 1 , така че прила-
гането на (10) води до пресмятане на случайната величина x с избраното разпределение
( )xf съгласно израза ( )ξ−−= 1lnx , където ( )1,0U∈ζ . Тъй като, от друга страна,
( )1,01 U∈−≡ ξζ , то окончателно:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
77/99
ζln−=x , където ( )1,0U∈ζ . (11)
Генериране на извадка от нормалното разпределение (метод на Бокс-
Мюлер)
Нека случайните величини nxxx ,...,, 21 имат съвместна вероятностна плътност
( )nxxf ,...,1 .
Нека също така са в сила следните еднозначни изображения:
( ) ( )
( ) ( )nnnn
nn
xxxxy
xxxxy
,...,,...,
...
,...,,...,
11
1111
ϕ
ϕ
=
=. (12)
Аналог на твърдението (8) в този случай е:
( ) ( )( ) ( ) nnn
n
nn dxdxxxfdxdx
xx
yyyyp ...,...,...
,...,
,...,,..., 111
1
11 =
∂∂
, (13a)
където ( )( )n
n
xx
yy
,...,
,...,
1
1
∂∂
е модулът на детерминантата на матрицата на Якоби, т.е.
∂∂
∂∂
∂∂
∂∂
n
nn
n
x
y
x
y
x
y
x
y
...
.........
...
det
1
1
1
1
,
и е отношението на обемния елемент в пространството на изображенията (12) към
обемния елемент ndxdx ...1 в пространството на аргументите (оригиналите).
Напълно равностойна на (13a) е и следната връзка за обратното изображение:
( ) ( ) ( )( ) n
n
nnnn dydy
yy
xxxxfdydyyyp ...
,...,
,...,,...,...,..., 1
1
1111 ∂
∂= , (13b)
Нека, в частност, бъде избрано следното изображение:
212
211
2sinln2
2cosln2
xxy
xxy
π
π
−=
−=. (14)
Тогава неговото обратно е:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
78/99
( )
1
22
22
211
arctg2
1
2
1exp
y
yx
yyx
π=
+−= (15)
Детерминантата на Якобиана за (15) ще бъде:
( )( )
−=∂∂ −− 22
21
2122
21
2
1
2
1
,
, yy eeyy
xx
ππ.
Следователно, ако независимите случайни величини x1 и x2 са всяка с разпределе-
ние U(0,1), то техните изображения съгласно (14), y1 и y2, ще бъдат независими случай-
ни величини, всяка с разпределение ( )1,0N .
Метод на отхвърлянето за генериране на извадка от избрано раз-
пределение
Нека желаната вероятностна плътност е ( )xp , а ( )xf е подходящо избрана обви-
ваща функция (виж Фиг.1), такава, че ( ) ( )xpxf ≥ и ( )∫∞
∞−
dxxf има крайна стойност.
Тъй като вероятността x да заеме стойност в даден интервал е равна на площта
под графиката на ( )xp в този интервал, то ако е възможно генерирането на равномерно
разпределени точки под графиката на ( )xf , плътността на разполагане на техните аб-
сциси по абсцисната ос ще бъде пропорционална на ( )xf . Тогава абсцисата x0 на една
такава точка би била случайна величина с разпределение ( )xp , стига съответната ѝ ор-
дината y0 да бъде по-малка или равна на ( )0xp .
Най-проста реализация на тази идея ще бъде изборът ( ) Axf = , където A е макси-
малната стойност на ( )xp . Това е възможно само ако дефиниционната област на ( )xp е
крайна, напр. bxa ≤≤ , така че ( )∫b
a
dxxf да има крайна стойност. Тогава алгоритъмът за
образуване на извадка от ( )xp ще бъде както следва:
1. Генериране на ( )baU ,∈ξ и ( )AU ,0∈η .
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
79/99
2. Сравняване на η с ( )ξp . Ако ( )ξη p≤ , за случайна величина x с разпределение
( )xp се приема абсцисата ξ. В противен случай се отива на стъпка 1.
Описаният подход, даже ако е възможен, не е икономичен, защото ( )xf и ( )xp
могат да се различават много и относителният дял на отхвърлените точки да бъде мно-
го голям.
Генерирането на равномерно разпределени точки под графиката на ( )xf в общия
случай става на основата на метода на преобразуването по следния начин.
Нека дефиниционният интервал на ( )xf и ( )xp е [ ]+− xx , (този интервал може да
бъде и безкраен) и нека аналогът на кумулативното разпределение за ( )xf e
( ) ( )∫−
≡x
x
dxxfxF '' . Нека ( ) ( )∫+
−
=≡ +
x
x
dxxfxFA '' .
Тогава, аналогично на разсъжденията по повод на (10), ако ξ е с равномерно раз-
пределение между 0 и A, то ( )ξ10
−= Fx ще бъде с разпределение ( )xf . Така, ако x0 се
интерпретира като абсциса на точка в координатната система от графиката на Фиг.1, а
ординатата y0 на въпросната точка се избере от равномерно разпределение между 0 и
( )0xf то броят такива точки в даден интервал от абсцисната ос ще бъде пропорциона-
лен на площта под графиката на ( )xf в този интервал и, следователно, тези точки ще
имат желаното равномерно разпределение под графиката на ( )xf .
В този случай алгоритъмът за образуване на извадка от ( )xp ще бъде както след-
ва:
1. Генериране на ( )AU ,0∈ξ . Пресмятане на ( )ξ10
−= Fx . Генериране на
( )( )00 ,0 xfUy ∈ .
2. Сравняване на y0 с ( )0xp . Ако ( )00 xpy ≤ , за случайна величина x с разпределе-
ние ( )xp се приема абсцисата x0. В противен случай се отива на стъпка 1.
Ясно е, че относителният дял на „успешните” попадения ще бъде равен на отно-
шението на площта под ( )xp към площта под ( )xf . В този смисъл, за ефективност на
алгоритъма е желателно ( )xf плътно да обвива ( )xp и да има лесна за пресмятане об-
ратна на своята примитивна функция. Така методът на отхвърлянето може да се раз-
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
80/99
глежда като заместител на метода на преобразуването за случаите, когато намирането
на обратната на примитивната функция на избраното разпределение ( )xp е трудно или
изисква големи изчислителни разходи.
Фиг. 1. Метод на отхвърлянето. Илюстрацията е от NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Copyright (C) 1986-1992 by Cambridge University Press.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
81/99
11. Моделиране на данни
Поставяне на задачата
Нека niyi ,...,1, = (1)
е набор от експериментални данни, или наблюдения. Нека тези наблюдения са не-
зависими случайни величини, всяка с очакване µi и дисперсия 2iσ .
Нека ( )mii aay ,...,;~1x=µ , (2)
където функцията ( )ax;~y има смисъл на „ теоретичен модел” . Наборът
maa ,...,1≡a съдържа параметрите, от които може да зависи моделът y~, а наборът от
независими променливи Lxx ,...,1≡x описва количествено условията на експеримента.
Равенството (2) е твърдение, че очакванията на индивидуалните наблюдения съв-
падат със стойностите, предсказани от теоретичния модел. Основен предмет на моде-
лирането на данни е именно проверката на това твърдение.
По силата на централната гранична теорема (виж Глава 10), и ако твърдението (2)
е вярно, разпределението на наблюдението yi ще бъде гаусово:
( )
−−≡2
2
1exp
2
1,
i
ii
i
ii
yN
σµ
πσσµ .
Тогава, отчитайки независимостта на наблюденията (1), вероятността съвкупност-
та от тези наблюдения да е реализация на избрания модел (2) ще бъде:
( ) ( )∏=
−−=n
i i
ii
i
inn
yydydydyyyP
1
2
11
;~
2
1exp
2...,...,
σπσax
(3)
Ясно е, че при вече фиксираните наблюдения и дисперсии, тази вероятност ще
бъде функция единствено на параметрите a:
( ) ( )mnn aacFdydyyyP ,...,...,..., 111 = , (4)
където c е константа.
Следователно, ако задачата включва намиране на стойности на параметрите на
модела, това може да стане чрез търсена на максимум на функцията (4).
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
82/99
Целесъобразно е вместо максимум на F да се търси минимум на
( ) ( ) ( )∑
=
−=−=n
i i
ii yycFS
1
2
2 ;~/ln2
σax
a (5)
Както се вижда, S2 е сума от квадратите на n независими случайни величини
( )i
iii
yyz
σax ;~−≡ , всяка с разпределение ( )1,0N . Такава случайна величина има кумула-
тивно вероятностно разпределение ( )∫
∫∞ −−
−−
=
0
12
2
0
12
22
2
dtte
dtteS
nt
S nt
nχ , (6)
очакване n и дисперсия 2n. По силата на централната гранична теорема, при
∞→n плътността на вероятностното разпределение на S2 клони към ( )nnN 2, . (На
практика изискването за достатъчно голямо n се изпълнява напр. при n > 30.)
Нека, в частност, 0a е наборът от параметри, при който S2 има глобален минимум
със стойност 20S . Ако този набор е намерен чрез минимизация на ( )a2S , то между мо-
дела и наблюденията, а следователно и между величините nizi ,...,1, = са въведени m
връзки и тези величини вече не са взаимно независими.
Ако, обаче, моделът е линеен относно параметрите, т.е. напр.
( ) ( )∑=
=m
kikkmi Xaaay
11,...,;~ xx , (7)
където базовите функции ( )xkX са произволни фиксирани функции на независи-
мите променливи x, то може да се покаже, че 20S ще има кумулативно вероятностно
разпределение 2νχ , където mn −≡ν е броят на степените на свобода.
При нелинеен модел горното твърдение не е в сила, но на практика се използува,
още повече че обикновено mn >> и n≈ν .
И така, задачата за моделиране на данни може да се формулира както следва:
а) Намиране на набора a0 от параметри на модела (2), при който вероятността на-
блюденията (1) да са реализация на този модел е максимална. При нормално разпреде-
ление на наблюденията около модела търсенето на a0 се свежда до минимизиране на
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
83/99
( )a2S . Естествено, при предварително избрани стойности на параметрите на модела,
този етап се пропуска.
б) Проверка на хипотезата, че наблюденията са реализация на модела ( )0;~ axy .
При нормално разпределение на наблюденията, вероятността величината ( )0a220 SS ≡
(параметрите a0 са получени чрез минимизация или са предварително избрани) да бъде
случайно надхвърлена ще бъде ( ) ( )20
220
2 1 SSSP νχα −=>≡ . Ако тази вероятност е много
малка (напр. под 5%), хипотезата се отхвърля. В противен случай хипотезата не се отх-
върля. Решение за приемане на хипотезата не може да се обоснове, защото винаги е
възможно да съществуват модели, чието съгласие с разглежданите наблюдения е по-
добро от това на проверявания модел.
Линейни модели
При линеен модел (7) функцията ( )a2S има единствен екстремум и той е мини-
мум. Следователно, неговата позиция може да се намери чрез решаване на уравнения-
та:
mka
S
k
,...,1,02
==∂∂
(8)
Явният вид на (8) е:
( )( ) 0
12
1 =−
∑∑
=
=n
iik
i
m
jijji
X
Xay
x
x
σ (9)
Или:
( ) ( ) ( )∑∑ ∑
== =
=
n
i i
ikim
jj
n
i i
ijik Xya
XX
12
1 12 σσ
xxx (10)
В матричен запис:
bAa = , (11)
където:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
84/99
( ) ( )
( )∑
∑
=
=
≡
≡
n
k k
kiki
n
k k
kjkiij
Xyb
XXA
12
12
σ
σx
xx
(12)
Така задачата за минимизация на ( )a2S се свежда до формиране на елементите на
A и b съгласно (12) и решаване на линейната система (11).
Доколкото наблюденията niyi ,...,1, = са случайни величини, от определението
(12) на вектора b следва, че намерените параметри на модела mkak ,...,1, = също ще
бъдат случайни. Явният вид на зависимостта ( )nk yya ,...,1 е следната:
( )∑ ∑∑
= ==
==
m
j
n
i i
ijikj
m
jjkjk
XyCbC
1 12
1 σα
x, (13)
където Ckj са елементите на ковариационната матрица 1−≡ AC .
Или, ( )∑=
=n
ii
kik ya
1
γ , където ( ) ( )∑
=
=m
j i
ijkjki
XC
12σ
γx
(14)
са независещи от наблюденията коефициенти.
Тогава, съгласно закона за разпространение на грешките, дисперсията на ak ще
бъде свързана с дисперсиите 2iσ на взаимно независимите наблюдения yi по следния
начин:
( ) ( )∑∑==
=
∂∂=
n
i
kii
n
i i
kik y
aa
1
22
1
2
22 γσσσ (15)
Или:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2013 г.
85/99
( ) ( )
( ) ( )
( ) ( )
kk
m
jkjkj
m
j
m
lljklkj
m
j
m
lljklkj
m
j
m
l
n
i i
ijilklkj
n
i
m
l i
ilklm
j i
ijkji
n
i
m
j i
ijkjik
CC
CCCACC
XXCC
XCXC
XCa
==
==
=
=
=
∑
∑ ∑∑ ∑
∑∑ ∑
∑ ∑∑
∑ ∑
=
= =
−
= =
= = =
= ==
= =
1
1 1
1
1 1
1 1 12
1 12
12
2
1
2
12
22
δ
σ
σσσ
σσσ
xx
xx
x
(16)
Следователно, дисперсиите на параметрите на модела са равни на съответните
диагонални елементи на ковариационната матрица.
Нелинейни модели
Ако векторът a(0) е достатъчно близо до позицията на търсения минимум на S2, та-
ка че тейлоровият ред на ( )a2S да може да бъде прекъснат до квадратичния член:
( ) ( )( ) ( )( ) ( )[ ] ( )( ) ( )[ ] ( )[ ]
aaHab
aaaa
δδδc
aaaaaa
Saa
a
SSS
m
i
m
jjjii
ji
m
iii
i
2
1
2
1
1 1
00022
1
002
022
+−=
−−∂∂
∂+−∂∂+≅ ∑∑∑
= == (17)
Приемайки израза (17) за точен, градиентът на S2 ще има вида:
( ) aHba δS +−=∇ 2 (18)
Така, след решаване на линейната система baH =δ , позицията на минимума на S2
ще бъде:
( )[ ]0(21)0(0 aHaa S∇−+= − (19)
На практика, заради приближението (17), изразът (19) се прилага итеративно: