Upload
others
View
10
Download
1
Embed Size (px)
Citation preview
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
1/106
ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА, 2016 г.
1. Принципи на числения анализ. Особености на машинните пресмятания ............ 2
2. Преки методи за решаване на системи от линейни алгебрични уравнения ......... 8
3. Итеративни методи за системи с големи разредени матрици .............................. 18
4. Подобряване на точността на числени оценки ...................................................... 28
5. Интерполация............................................................................................................ 36
6. Числено интегриране................................................................................................ 42
7. Обикновени диференциални уравнения................................................................. 51
8. Нелинейни уравнения............................................................................................... 59
9. Минимизация ............................................................................................................ 67
10. Генериране на случайни числа с избрано разпределение................................... 78
11. Моделиране на данни ............................................................................................. 84
12. Собствени стойности и собствени вектори на матрица...................................... 96
Литература................................................................................................................... 105
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
2/106
1. Принципи на числения анализ. Особености на машин-
ните пресмятания
Изчислителна физика е специфично приложно поле на числения анализ, състоящо
се в изучаване и прилагане на числени алгоритми за решаване на задачи на физиката, за
които съществува количествена теория.
Предмет на числения анализ е създаването, прилагането и изучаването на методи
за решаване на математически задачи чрез машинно изпълнявана последователност от
аритметични действия. Това включва три свързани помежду си кръга от дейности:
− получаване на числени стойности на решения на уравнения, пресмятане на сто-
йности на математически изрази, функции, функционали и т.н.;
− разработване на методи (числени алгоритми) за намиране на такива стойности;
− анализ на свойствата на тези методи.
Крайна приложна цел на числения анализ е ефективното пресмятане на точни
приближения на решенията на математически задачи. Двата основни типа затруднения
при постигането на тази цел са:
− неизбежните грешки от закръгление, възникващи в хода на пресмятанията;
− съществуването на задачи, чието точно решаване изисква безкраен обем инфор-
мация и/или безкраен брой изчислителни операции. Практическата невъзмож-
ност за удовлетворяване на това изискване налага търсенето на приблизително
решение, чието отклонение от точното решение се нарича грешка от дискрети-
зация.
Някои принципи и особености на изчислителните методи за решаване на матема-
тически задачи са илюстрирани в следващите раздели – напр. чрез задачите за дифе-
ренциране, интегриране, решаване на линейни и нелинейни алгебрични уравнения, ин-
тегриране на обикновени диференциални уравнения и т.н.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
3/106
Особености на представянето на числени данни
Цели числа
Общият модел за представяне на едно цяло число е:
∑=
−××=q
k
kk rwsi
1
1 , (1)
където i е цялото число, s е неговият знак (+1 или -1), q е броят числови позиции
(разряди) за представяне на числото, r е основата на бройната система, а rwk < са нео-
трицателни множители.
При машинно представяне на целите числа основата на бройната система е r = 2, а
броят числови позиции е q = 7, 15 или 31.
Така, при q = 7 и записване на знака в най-левия двоичен разряд (бит) (напр. чрез
0 за „+” и 1 за „-”), поредицата 01100110 ще съответствува на
10220212120202121 0123456 =×+×+×+×+×+×+× .
Приетото в примера кодиране на знака изисква различни алгоритми за събиране и
за изваждане, а също така излишно въвежда два записа на нулата. По тази причина се
прилага т.нар. допълнително представяне на целите числа, при което (отново при q = 7
и един двоичен разряд за знака) с поредиците 00000000 – 01111111 се кодират последо-
вателно числата от 0 до 127, а с поредиците 11111111, 11111110, 11111101, …,
10000000 – съответно числата -1, -2, -3, …, -128. Така събирането и изваждането се реа-
лизират с един общ алгоритъм за събиране на числа със знак. Пълният брой различни
цели числа, които могат да се запишат в поредица от n бита е 2n, като тези числа ще
бъдат в диапазона от -2n-1 до 2n-1-1.
Алгоритъмът за записване на отрицателно число е следният:
а) Числото се записва като положително. Например, за 126: 01111110
б) Битовете се инвертират. За горния пример: 01111110 → 10000001
в) Към полученото се добавя 1: 10000001 + 00000001 = 10000010
И наистина, +126 + -126 = 01111110 + 10000010 = 00000000
При операциите между аритметични данни от цял тип е важно да се помни, че:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
4/106
− резултатът от операцията ще бъде също от цял тип – напр. 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ε , тъй като това е горната граница на ефекта от закръгление до най-близкото предс-
тавимо число. Както ще бъде показно по-долу, обаче, относителната грешка на резулта-
та от аритметична операция между две реални числа в някои случаи може да бъде мно-
го по-голяма.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
5/106
При 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)
Чрез интегриране по части може да се покаже, че
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
6/106
,...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. (Относителната грешка ще намалява по-бързо от абсолютната, защото
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
7/106
10 −<< nn EE .) Тогава, например, при стартиране с n=20, абсолютната грешка на E10 ще
бъде не по-голяма от 1510710
1...
19
1
20
1
21
1 −×≅ . (В действителност, поради неточност на
операциите в (5), не може да се разчита на относителна грешка на резултата, по-малка
от mε .)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
8/106
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) се базира на едно от основните
свойства на линейните системи, съгласно което заместването на дадено уравнение с
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
9/106
линейна комбинация между него и които и да е други уравнения не променя решението
на системата.
В този смисъл, построяването на (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-тото и системата ще стане неопределена. В междинните случаи
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
10/106
ефектът от грешките от закръгление при пресмятане на 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)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
11/106
– уравненията (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 .}
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
12/106
Фиг. 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 ×= αα , където α е скалар
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
13/106
− 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
λλκ = .
В рамките на този подход може също така да се покаже, че
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
14/106
( )
+×≤
b
δb
A
δAA
x
δxκ (9)
Полезна е и следната връзка между грешката на решението и лесния за пресмята-
не остатък на системата bxAr −≡ ˆ :
( ) ( ) ( ) rAδxrAδxδxAxxAbAxAr ⋅≤⇒=⇒=−=−= −−− 111 ˆˆ (10)
Пример: ефект от избора на водещ елемент при LU разлагане
Общата стратегия за анализ на грешката на численото решение на една линейна
система, получено чрез прилагане на конкретен алгоритъм, е:
− намиране на тези пертурбации δA и δb , при които за конкретния използуван
алгоритъм численото решение на системата (1) е точно решение на системата
(7).
− пресмятане на числото на обусловеност на матрицата A и оценяване на греш-
ката на численото решение съгласно (8) или (9).
Така, най-напред, на основата на изразите ∑−
=
−=1
1
i
kkjikijij ulau и ∑
−
=
−=1
1
j
kkjikijij ulaz
може да се обоснове твърдението, че:
ELUA += , където ULE mnε≤ (11)
и където n е редът на системата, а L и U са изчисленото LU разлагане. Тук и по-
нататък с X се означава матрица, съставена от модулите на елементите на матрицата
X. Ако XX = , което е вярно за max-нормата, 1-нормата и нормата на Фробениус, но
не за 2-нормата, то ULE ×≤ mnε .
{Приетият начин за отчитане на грешките от закръгление при аритметични операции е
( ) ( )( )δ+= 1fl baba oo , където mεδ ≤ . С o се бележи една от операциите +, -, *, /, а ( )⋅fl означава
машинното представяне на дадено реално число. На тази основа разпространението на грешките при
пресмятане на израз от вида ∑=
n
iii yx
1
се анализира по следния начин. Натрупването на сумата става чрез
последователността от присвоявания 0,,...,1, 01 ==+= − sniyxss iiii . Всяко присвояване изисква
машинно представяне на междинните резултати, така че:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
15/106
( ) ( )( ) ( ) ( )[ ]( ) ( )( ) ( ) ( )[ ]( ) ( ) ( )
( )
( )( ) ( )[ ]( ) ( ) ( )
( ) ( )δδ
δδδδδ
δδδδδδδδδ
δ
nyxns
yxnsyxns
syx
yxsyxss
syxyxs
yxs
n
iiin
nnnnnn
n
n
iii
+
≡+≈
+++≈+++−+=
≡
+++≈++++=+≈++++=
+=
∑
∑
=
−−
=
11
2111111
flfl
...
21311121fl
21111fl
1fl
1
11
1
3323323
222112
111
(11)
Приблизителните равенства са заради пренебрегването на членове, съдържащи δ2, а последното –
заради пренебрегване на разликата между множителя ( )δ21+ за последното събираемо и множителя
( )δn+1 за големия брой останали събираеми.
От демонстрирания резултат следва, че
( ) BAABAB mnε≤−fl (12)}
Обратният ход се състои в решаване на системите bLy = и yUx = . От (11) и (12)
следва, че числените решения на тези системи ще удовлетворяват уравненията
( ) byδLL =+ ˆ и ( ) yxδUU ˆˆ =+ , където LδL mnε≤ и UδU mnε≤ (13)
На основата на горното:
( )( )( )
( ) ( ) ( )( )[ ]( ) ( ) ( )( )[ ]
( )xδAA
xδUδLUδLδULEA
xδUδLUδLδULLU
xδUUδLL
yδLLb
ˆ
ˆ
ˆ
ˆ
ˆ
+=+++−=
+++=++=
+=
, (14)
където ( ) ( ) ( )( )δUδLUδLδULEδA +++−=
Следователно:
( ) ( ) ( )( )
UL
ULULULUL
δUδLUδLδULE
δUδLUδLδULEδA
m
mmmm
n
nnnn
εεεεε
3
22
≈
+++≤
+++≤
+++−=
(15)
Както по-горе, при определени типове норми ще бъде в сила и връзката
ULδA ×≤ mnε3 . (16)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
16/106
LU разлагането ще бъде числено устойчиво, ако ( )mO ε=A
δA. Съгласно (16), това
условие ще бъде изпълнено, ако ( )mm On εε =×A
UL3 .
От друга страна, частичният избор на водещ елемент при алгоритъма на Краут
гарантира, че 1max,
=ijji
l , т.е. 1max
=L . Следователно, ако същевременно и т.нар. ко-
ефициент на нарастване maxmax
AU≡g е малък или е слабо растяща функция на n,
LU разлагането ще бъде устойчиво.
И действително, натрупването на сумата ∑−
=
−=1
1
i
kkjikijij ulau започва със замества-
нето jiijij ulaa 11~ −= , където 11 ≤il и
max11 A≤= jj au , така че max
2~ A≤ija . Чрез прос-
ледяване на индивидуалните стъпки лесно може да се види, че всяко следващо замест-
ване също удвоява горната граница на междинния резултат, така че в крайна сметка
max
1
max2 AU −≤ n , т.е. 12 −≤ ng . Тази оценка всъщност е много завишена, защото на
практика ( )3/22/1 nng ÷∝ .
Итеративно подобряване на точността на решението
Изчисленото решение на системата (1) е δxxx +≡ˆ , където x е точното решение, а
δx е неговата грешка. Умножаването на x с матрицата на системата води до вектор на
десните части
( ) δbbδxxA +=+ . (17)
Чрез изваждане на (1) от това равенство се получава
( ) δbδxA = (18)
Изразът (17) може да бъде решен относно δb и резултатът да бъде заместен в
(18):
( ) ( ) rbxAbδxxAδxA ≡−=−+= ˆ , (19)
където r е остатъкът на системата (1) за изчисленото решение x .
Така, системата (19) може да се реши относно грешката δx , след което да се по-
лучи подобрено приближение на решението δxxx −= ˆ~ . Тази процедура може да се пов-
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
17/106
таря многократно до достигане на сходимост. Това е особено удобно да се прави на
базата на LU разлагането, защото решаването на (19) ще се свежда единствено до обра-
тния ход. Пресмятането на остатъка r трябва да бъде в двойна точност, тъй като него-
вите компоненти се формират като разлики на много близки числа.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
18/106
3. Итеративни методи за системи с големи разредени мат-
рици
Разгледаните по-горе преки методи дават точно решение (в рамките на натрупва-
нето на грешки от закръгление), но изискват съхраняване на пълната матрица на систе-
мата и от порядъка на 3n линейни операции за решаване на задачата (n е броят на урав-
ненията).
Алтернативен подход е изграждането на редица от последователни приближения
на решението чрез алгоритми, изискващи единствено да се организира умножаване на
даден вектор с матрица, която е в проста връзка с матрицата на системата. За целта е
нужно да се съхраняват (или формират в процеса на пресмятане) само ненулевите еле-
менти на въпросната матрица. Недостатък на итеративния подход е, че решението е по
построение приблизително и, следователно, съдържа грешки от дискретизация.
Точкова релаксация (метод на Якоби)
Итерационният процес е следният:
( ) ( )
−= ∑
≠
−
ij
jjiji
ii
ji xab
ax 11
, (1)
където j е поредният номер на итерацията (приближението).
Или, ако
ULDA ˆˆˆˆ −−= , (2)
където D съдържа диагоналните елементи на A , а L и U – съответно под- и
наддиагоналните, но взети с обратен знак, то (1) може да се запише във вида:
( ) ( ) ( ) ( ) qxBbDxULDx +=++= −−−− 1111 ˆˆˆˆˆ jjj , (3)
където ( )ULDB ˆˆˆˆ 1 +≡ − и bDq 1ˆ −≡ . (4)
Векторът на началното приближение ( )0x се избира произволно.
Нека истинското решение на системата е x, a ( ) ( ) xxe −≡ jj е векторът на грешката
на j-тото приближение. Изваждайки почленно равенството qxBx += ˆ (което е в сила,
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
19/106
защото x е истинското решение) от дефиниционното уравнение на итерационния про-
цес (3), се получава:
( ) ( )1ˆ −= jj eBe , или ( ) ( )0ˆ eBe jj = . (5)
Нека λi са собствените стойности на матрицата B , подредени така, че
nλλλ ≥≥≥ ...21 , a nvvv ,...,, 21 са съответните им собствени вектори. Доколкото B е
такава, че собствените ѝ вектори образуват базис в n-мерното пространство, всеки n-
компонентен вектор, включително и ( )0e , може да се представи чрез линейна комбина-
ция между тези вектори: ( ) ∑=
=n
iii
1
0 ve α .
(В частност, ако някои собствени стойности на произволна матрица са различни, то съответните
им собствени вектори са линейно независими. Също така, ако дадена матрица е реална и симетрична, то
всички нейни собствени стойности и собствени вектори са реални, а собствените вектори, съответству-
ващи на различни собствени стойности, са взаимно ортогонални.)
Тогава:
( ) ∑=
=n
iiii
1
1 ve λα , ..., ( ) ∑=
=n
ii
jii
j
1
ve λα . (6)
Явно е, че ако |λ1| < 1, то при j → ∞ ( )je ще клони към нулевия вектор и дефини-
раният итерационен процес ще се схожда към истинското решение на системата
bxA =ˆ .
Сега ще покажем, че ако матрицата A е диагонално преобладаваща, максимална-
та собствена стойност на матрицата на итерационния процес B е по модул по-малка от
единица.
Нека k,1v е максималната по модул компонента на собствения вектор v1:
ii
k ,1,1 vmaxv = . Тогава, от k-тото равенство на системата 111ˆ vvB λ= , а именно
k
n
iikib ,11
1,1 vv λ=∑
=
, следва:
1v
v
v
v
11 ,1
,1
1 ,1
,11 <≤≤= ∑∑∑
===
n
iki
n
i k
iki
n
i k
iki bbbλ . (7)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
20/106
Последното неравенство се дължи на факта, че A е диагонално преобладаваща,
т.е. ∑≠
>ij
ijii aa , така че съгласно (2): 0=iib и ( )jia
ab
ii
ijij ≠−= .
Последователна релаксация (метод на Гаус-Зайдел)
Естествено развитие на метода на Якоби е идеята при пресмятането на поредната
компонента на новото приближение на решението да се използуват вече получените
негови компоненти, т.е.
( ) ( ) ( )
−−= ∑∑>
−
< ik
jkik
ik
jkiki
ii
ji xaxab
ax 11
. (8)
Или, в матричен вид:
( ) ( ) ( )
( ) ( ) ( ) ( ) qLD1xUDLD1x
bDxUDxLDx111111
1111
ˆˆˆˆˆˆ
ˆˆˆˆˆ
−−−−−−
−−−−
−+−=⇒
++=jj
jjj
. (9)
Може да се покаже, че ако матрицата A е диагонално преобладаваща, то този
итерационен процес, наречен метод на Гаус-Зайдел, или последователна релаксация, се
схожда по-бързо от метода на Якоби.
По-нататъшно усъвършенствуване на метода на Гаус-Зайдел е т.нар. последова-
телна свръхрелаксация, или SOR (successive over-relaxation). При този метод се търси
подходяща линейна комбинация между двете последни приближения ( )jx и ( )1−jx , по-
лучени по метода на Гаус-Зайдел, която да води до допълнително намаляване на векто-
ра на грешката на j-тата стъпка на итерационния процес:
( ) ( ) ( ) ( )( )11~ −− −+= jjjj xxxx ω . (10)
Методът е сходящ при 20 << ω , като може да се покаже, че максимално намаля-
ване на грешката, т.е. максимално ускоряване на сходимостта, се получава при
( )21112 λ−+=ω , където λ1 е максималната собствена стойност на матрицата B на
метода на Якоби. На практика множителят ω често се избира емпирично и е напр. в
интервала 1.3 – 1.8.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
21/106
Контрол на сходимостта
Всички разгледани дотук методи се характеризират с монотонно намаляване на
модула на вектора на грешката в хода на итерациите, т.е. редицата от последователните
приближения ( ) ( ) ( ) ( ),...,,...,, 110 jj xxxx − се схожда монотонно към точното решение на ли-
нейната система x. В този смисъл, критерият за прекратяване на итерациите ще бъде
( ) ( ) ( )jjj xxx ε≤− −1 , където ∗ е някаква векторна норма, а ε е подходящо избрано
малко число. На практика е удобно да се използува следният критерий за сходимост:
( ) ( ) ( )jk
k
jk
jk
kxxx maxmax 1 ε<− − . Така се избягват допълнителни итерации заради малки и
маловажни бавно схождащи се компоненти на вектора на решението.
Метод на полиномите на Чебишев
Нека чрез последователно прилагане на стационарния итеративен процес:
( ) ( ) qxBx += −1ˆ jj (11)
е получена редицата приблизителни решения ( ) ( )kxx ,...,1 .
Примери за такъв процес са методите на Якоби (3), на Гаус-Зайдел (9), а следова-
телно и SOR (10).
По-общ запис на (11), който пряко следва от поставената задача bxA =ˆ , е
( ) ( ) ( )( ) ( ) ( ) ( ) qxBbCxAC1bxACxx +=+−=−−= −−−− 1111 ˆˆˆˆˆˆˆ jjjjj . Матрицата C следва да се
избере така, че да осигури максимално бърза сходимост. Вижда се, че най-добрият из-
бор, който дава точно решение без итерации, е 1ˆˆ −= AC , но той обезсмисля целия под-
ход, защото е еквивалентен на предварително решаване на системата.
Нека искаме да получим подобрено решение във вида:
( ) ( ) ( )∑=
=k
j
jkj
k
0
xy ν (12)
Нека ( ) ( ) xxe −≡ jj и ( ) ( ) xye −≡ kk~ са съответно грешките на приближенията ( )jx
и на подобрената оценка ( )ky , а ( )0e е грешката на началното приближение. Тъй като за
точното решение x изразът (11) е тъждество, то:
( ) ( )0ˆ eBe jj = (13)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
22/106
Така, от (12) и (13) следва, че:
( ) ( ) ( ) ( )( ) ( ) ( ) ( )0
0
0
0
ˆˆ~ eBeBee k
k
j
jkj
k
j
jkj
k P=== ∑∑==
νν (14)
И съответно:
( ) ( ) ( )2
0
22ˆ~ eBe k
k P≤ (15)
(Тук 2
x е евклидова векторна норма, а съответната ѝ операторна матрична нор-
ма е ( )ii
λmaxˆ2
=A , където iλ са собствените стойности на матрицата.)
Нека собствените стойности на матрицата на итерационния процес B са iλ . Тога-
ва собствените стойности на ( )BkP са ( )iki P λµ = и съответната норма в (15) е:
( ) ( )ikk PPi
λλ
maxˆ2
=B . (16)
Както беше показано напр. по повод на метода на Якоби, основният итерационен
процес (11) ще бъде сходящ, ако всички собствени стойности на B са по модул по-
малки от единица. Ако освен това матрицата B е и симетрична, то нейните собствени
стойности ще бъдат реални, и следователно:
1...1 1 +<≤≤≤≤<− Mm n λλ (17)
Също така, ако размерността n на матрицата е голяма, то множеството от нейните
собствени стойности може да се разглежда като непрекъсната променлива, варираща в
интервала [ ]Mm, . Тогава, от (16):
( )[ ]
( )λλ k
Mmk PP
,2maxˆ∈
=B (18)
От (18) следва, че за минимизиране на грешката ( )ke~ на подобрената оценка (12)
на решението на (11), полиномът ( )λkP трябва да се конструира така, че максималният
модул на заеманите от него стойности при [ ]Mm,∈λ да бъде минимален измежду вси-
чки полиноми от степен k. На това условие, но за независима променлива w в интервала
[ ]1,1+− , отговаря полиномът на Чебишев:
( ) ( ) [ ]( )
≥≥
+−∈= −
−
0,1,coshcosh
1,1,coscos1
1
kwwk
wwkwCk (19)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
23/106
За полиномите на Чебишев е в сила следната рекурентна връзка
( ) ( ) ( ) 1,2 11 ≥−= −+ kwCwwCwC kkk , ( ) ( ) wwCwC == 10 ,1 (20)
Полиномът ( )zPk от (14) и (18) може да придобие желаното свойството на поли-
ном на Чебишев чрез линейна смяна на независимата променлива, която изобразява
[ ]Mmz ,∈ в [ ]1,1+−∈w :
( ) ( ) ( )mMmMzzw −−−= 2 (21)
Ясно е, че практическата задача се свежда до използване на (20)/(21) за определя-
не на множителите ( ) kjkj ,...,0, =ν в (12). Тъй като основната итерация (11) е тъждество
за точното решение x, то за множителите в (12), и съответно за полинома ( )zPk , трябва
да се поиска нормировката:
( ) ( ) 110
==∑=
k
k
j
kj Pν (22)
Окончателно, с удовлетворяване на изискването (22), търсеният полином е:
( ) ( )( ) ( )( )1wCzwCzP kkk = (23)
Подлежащите на определяне множители ( ) kjkj ,...,0, =ν в (12) са коефициентите
пред степените на независимата променлива в полинома (23) и тяхното получаване не е
принципен проблем.
Значително по-добре е обаче подобреното решение (12) да се конструира направо
чрез триместна рекурентна връзка за полинома (23), която може да се изведе от (20) по
следния начин.
С използване на (20) и (23), за ( )( )zwPk 1+ се получава:
( )( ) ( )( ) ( )( )( ) ( )( ) ( )( )
( )( )( ) ( )( )
( )( )( )( ) ( )( ) ( )( )
( )( ) ( )( )zwPwC
wCzwP
w
zw
wC
wCw
wC
zwCzwCzw
wCzwCzwP
kk
kk
k
k
k
kk
kkk
11
1
1
1
1
111
1
1
11
112
1
2
1
−+
−
+
+
−
+++
−=
−=
=
(24)
Отново с използване на (20) за ( )( )11 wCk− :
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
24/106
( )( )( )( )
( ) ( )( ) ( )( )( )( ) 11
1112
1
11
1
1
1
1 −=−= ++
+
+
−k
k
kk
k
k
wC
wCwCw
wC
wC β , (25a)
където ( ) ( )( )
( )( )1
112
11 wC
wCw
k
kk
++ ≡β , т.е. (25b)
( )( ) ( )( ) ( )( ) ( ) ( )( )zwPzwP
w
zwzwP kkkkk 1111 1
1 −+++ −−= ββ (25c)
От (23) следва, че ( ) 10 =zP и
( ) ( )( ) αα −+=
−−−−== 1
2
2
11 zmM
mMz
w
zwzP , (26a)
където mM −−
≡2
2α (26b)
Така, окончателно, търсената рекурентна връзка за ( )zPk е:
( ) ( ) ( ) ( ) ( )zPzPzzP kkkkk 1111 11 −+++ −+−+= βααβ (27)
Получената връзка (27) се прилага за израза (14):
( ) ( ) ( )
( ) ( ) ( )( ) ( ) ( )
( ) ( )( )00
111
01
1
~
~1~1~ˆ
ˆ~
ee
eeeB
eBe
=
−+−+=
=−
++
++
kk
kkk
kk P
βααβ (28a)
или:
( )( ) ( )( ) ( ) ( )( )( ) ( ) ( )( )xyxyxyBxy −−+−−+−=− −++
+ 111
1 11ˆ kk
kkk
k βααβ (28b)
За точното решение x основната итерация (11) има вида qxxB −=ˆ , т.е.:
( )( ) ( ) xqyBxyB −+=− kk ˆˆ (29)
След заместване в (28b):
( )( ) ( )( ) ( ) ( )( )( ) ( ) ( )( )( ) ( )( )( ) ( )( )xxx
yyqyBxy
−−+−−+−+−+−++=−
++
−++
+
11
111
1
11
11ˆ
kk
kk
kkk
k
βααββααβ
(30)
Или, окончателно за подобреното решение:
( ) ( )( ) ( ) ( )( )( ) ( ) ( )( ) 1,11ˆ 111
1 ≥−+−++= −++
+ kkk
kkk
k yyqyBy βααβ (31a)
Естествено, ( ) ( )00 xy = , а от (26a):
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
25/106
( ) ( )( ) ( ) ( )( )001 1ˆ yqyBy αα −++= (31b)
Остава въпросът за оценяване на границите на собствените стойности m и M,
които обикновено не са известни отнапред. За работоспособността на метода (31) е ва-
жно да има добра оценка за 1λ≥M , докато за m е достатъчно да се избере число, което
не надхвърля минималната собствена стойност nλ . Ако основният итерационен процес
(11) е сходящ, може да се приеме 1−=m или даже Mm −= (ако оценката за M наисти-
на надхвърля 1λ ), а ако матрицата B е положително определена, подходящ избор е
0=m .
Процедурата за оценяване на M се основава на проследяване на поведението на
псевдоостатъка на линейната система:
( ) ( ) ( )kkk yqyBδ −+≡ ˆ (32)
Тъй като за точното решение итерацията (11) е равностойна на ( ) qxB1 =− ˆˆ , от оп-
ределението ( ) ( ) xye −≡ kk~ и от (14) следва:
( ) ( ) ( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ( ) ( )0ˆˆˆ~ˆˆ
ˆˆˆˆˆˆˆ
eB1Be1B
x1By1ByxB1yBδ
kk
kkkk
P−=−=
−−−=−−+=, (33)
т.е.
( ) ( ) ( )[ ]
( ) ( )2
0
,2
0
22maxˆ δδBδ λ
λ kMm
kk PP
∈=≤ , (34a)
или:
( )
( ) [ ]( )λ
λ kMm
k
P,
2
02 max
∈≤
δ
δ (34b)
Нека оценяването на M се прави чрез последователни приближения отдолу, т.е.
текущата оценка, чрез която е построен полиномът ( )zPk , е MM ≤~. От поведението на
( )zPk , който е монотонно растяща функция при Mz~≥ , т.е. ( ) 1>zw , (Фиг. 1) се вижда,
че [ ]
( ) ( )MPP kkMm
=∈
λλ ,max и новата оценка M може да се търси като решение на уравнени-
ето:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
26/106
( )( )
( )2
02
δ
δ k
k RMP ≡= (35a)
Или:
( )( ) ( )( )1wRCSMwC kk ≡= (35b)
Отново от допускането, че MM~≥ , т.е. ( ) 1>Mw , и от (20) следва:
( )( ) ( )( ) SMwkMwCk == −1coshcosh , (36a)
т.е.
( ) ( ) ( ) ( )
≡=−−−= − Sk
QmMmMMMw 1cosh1
cosh~~
2 , (36b)
или окончателно:
( ) ( )[ ]mMQmMM −++= ~~2
1 (36c)
0.8 0.9 1.0
-0.1
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
~M M
~~P
9(z); M=0.95; m=-M
R *
*
P9(
z)
z
Фигура 1. Поведение на ( )zP9 . Илюстрация към начина на определяне на макси-
малната собствена стойност M на матрицата на итерационния процес B .
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
27/106
Обикновено е целесъобразно процесът (31) да се изпълнява с текущата оценка M~
до някоя фиксирана и не твърде голяма стойност k, след което да се получи нова оценка
съгласно (36c) и описаният цикъл да се повтаря до сходимост на решението.
Итерациите би следвало да се прекратят, когато:
( ) ( ) ( )kkk yxye ε≤−≡~ (37)
където критерият за точност ε е подходящо избрано малко число. Тъй като точ-
ното решение x е неизвестно, контролът на точността се прави отново чрез псевдооста-
тъците. Поради връзката (33):
( ) ( ) ( ) ( )kkk
Mδδ1Be
−=−≤
−
1
1ˆˆ~ 1, (38)
В последното равенство е използван фактът, че 1<M . Тъй като обаче точна
оценка на M също няма, приложимият критерий за прекъсване е:
( )( )k
k
My
δε≤
− ~1
(37)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
28/106
4. Подобряване на точността на числени оценки
Предмет на настоящото разглеждане са методи и подходи за уточняване на оце-
нената стойност на функции, интеграли, производни и т.н. Доколкото в често срещани
случаи пресмятанията се свеждат до сумиране на редове или до използуване на реку-
рентни връзки между последователни приближения на търсената величина, тук се
включват и техники за ускоряване на сходимостта при пресмятане на сумите на редове
или при итеративно приближаване към гранична стойност.
Общ подход: екстраполация на Ричардсън
Често прилагана стратегия е т.нар. екстраполация на Ричардсън, чиято същност се
свежда до елиминиране на компоненти на грешката от дискретизация на основата на
знание за зависимостта на тази грешка от някой параметър на избрания изчислителен
метод.
Така например, оценката на определен интеграл по метода на трапеците (виж гла-
ва 6) има следния вид:
( ) mm
b
aETdxxfI +=≡ ∫ , (1)
където I е истинската стойност на интеграла,
++++= − mmm ffffhT2
1...
2
1110 (2)
е нейната числена оценка, а
( ) ( ) [ ]bafm
abEm ,,''
12 2
3
∈−−= ηη (3)
е грешката от дискретизация при пресмятане на тази оценка. m е броят равноотда-
лечени абсциси в интервала [ ]ba, , в които се пресмятат функционалните стойности,
при което ( )aff =1 и ( )bffm = .
Нека има две оценки, I1 и I2, получени при съответно m1 и m2 равноотдалечени аб-
сциси:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
29/106
( ) ( )
( ) ( )222
3
2
121
3
1
''12
''12
η
η
fm
abII
fm
abII
−−=
−−= (4)
Тогава, ако се приеме, че ( ) ( ) ∆=≅ 21 '''' ηη ff , то от системата (4), което е с две
неизвестни – I и ∆, може да се елиминира ∆ и да се определи I:
( )1221
22
21
221
22
1212
22 II
mm
mI
mm
ImImI −
−+=
−−≅ (5)
При този пример параметърът, от който по известен начин зависи грешката от
дискретизация, е броят абсциси m. Знанието за тази зависимост се използува за форми-
ране на уточнена оценка на търсения интеграл на основата на две апроксимации, полу-
чени при различни стойности на m.
Ускоряване на сходимостта на редове
Тук е уместно най-напред накратко да се напомнят някои определения и свойства,
свързани с редици и редове.
1. Редица: { }n
kka 1= , { }∞=1kka
2. Ред: ∑∞
=1kka ⇒ { }∞
=1nns ( ∑=
=n
kkn as
1
)
3. Сходимост на редица. Cauchy: Редицата { }∞=1kka се схожда тогава и само тогава, ако за всяко
ε > 0 ε<− mn aa при всички достатъчно големи n и m. Или: aakk → ∞→ .
4. Сходимост на ред. Cauchy: Редът ∑∞
=1kka се схожда тогава и само тогава, ако редицата от парци-
ални суми { }∞=1nns се схожда към крайна граница: ss
kk → ∞→ , т.е. ако за всяко ε > 0
ε<+++ ++ nmm aaa ...21 при всяко достатъчно голямо m и n>m. В частност (n=m+1) редът ще се
схожда, ако членовете am клонят към 0 при ∞→m .
5. ∑ na е абсолютно сходящ, ако ∑ na е сходящ. В противен случай редът е условно сходящ.
Cauchy: ако редът е абсолютно сходящ, той е сходящ. 6. Допълнителни критерии за сходимост на редове
Геометричен ред: Ако p е произволно и 1<q , то ( )qppqn
n
k
k − → ∞→=∑ 1/
0
.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
30/106
Ако ∑ na и ∑ nb са положителни редове (събираемите са положителни) и ако nn ba ≥ при
всяко n, то от сходимостта на ∑ na следва сходимост на ∑ nb и обратно – от разходимостта на ∑ nb
следва разходимост на ∑ na .
Например, от сходимостта на геометричния ред ∑=
n
k
kpq0
при p > 0 и 0 < q < 1, следва, че ако
Laa nn →+ /1 и 1<L , то положителният ред ∑ na се схожда. И обратно – ако 1>L , то редът
∑ na е разходящ. Ако границата L съществува, но е равна на 1, то може да се приложи следният крите-
рий: Ако ( ) 0>xf е функция, дефинирана за 0>x , и ( ) 0→∞f , то редът ( )∑ nf е сходящ или
разходящ съответно за крайна или безкрайна стойност на ( )∫∞
1dxxf .
Знакопроменлив ред. Такъв ред се схожда, ако na намалява монотонно към 0.
δ2 -процес на Ейткин (Aitken)
Нека редът ∑ na е сходящ, следователно:
( ) 1;1 <−=− + nnnn CssCss , (6)
където s е сумата на реда, т.е. границата на редицата от парциалните суми { }∞=1nns .
Ако константите nC могат да се приемат за приблизително равни помежду си, т.е.
CCn → , то:
( )nn ssCss −≅− +1 (7)
От системата с две неизвестни, s и C,
( )( )12
1
++
+
−=−−=−
nn
nn
ssCss
ssCss (8)
се елиминира C и се определя границата на реда s:
n
n
n
n
ss
ss
ss
ss
−−=
−− +
+
+ 1
1
2 ⇒ ( ) ( )
12
22
212
212
212
212
22 ++
++
++
+++
++
++
∆−∆∆−=
+−−−=
+−−=
nn
nn
nnn
nnn
nnn
nnn ssss
sss
sss
ssss
Процесът на Ейткин е подходящ за ускоряване на сходимостта на всякакви итера-
ционни процедури с линейна сходимост. Той е и още един пример за общия подход на
Ричардсън, при който се използува връзката (7) между грешката на парциалната сума sn
и нейния пореден номер n.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
31/106
Числено диференциране
Общоприет начин за апроксимиране на първата производна на дадена функция е
т.нар. крайна разлика, пример за която е лявата страна на израза:
( ) ( ) ( ) ( ) ...''2
1' ++=−+
xhfxfh
xfhxf (9)
При оценяване на производната чрез крайна разлика трябва да се държи сметка не
само за грешката от дискретизация, която очевидно намалява със стъпката h, но и за
грешката от закръгление. Тъй като с намаляване на h се очаква двете функционални
стойности в числителя да се доближават помежду си, грешката от закръгление ще нара-
ства и може да се стигне до катастрофална загуба на точност.
Важен източник на грешка от закръгление може да бъде и неточното машинно
представяне на ефективната стъпка [ ])()(~
xhxh −+≡ . Ясно е, че абсолютната грешка
от закръгление на израза за h~
ще бъде xmε∝ , където mε е машинният епсилон, а от-
носителната – hxm /ε∝ . Лесно може да се съобрази, че при малка стъпка приносът на
неточното представяне на h~
може да се окаже доминиращ в относителната грешка на
крайната разлика (9). (Според т.нар. закон за разпространение на грешките, ако b
ar = ,
то 22
+
=b
b
a
a
r
r δδδ). Този проблем винаги може да се преодолее като стойността
на h се да се избере така, че машинното представяне да ефективната стъпка да бъде то-
чно. За целта в програмната реализация трябва да се вмъкнат редове от типа на:
temp=x+h; h=temp-x. (10)
При вече осигурено точно представяне на ефективната стъпка, грешката от закръ-
гление при пресмятане на крайната разлика (9) ще бъде
( ) hxfe fr /ε∝ , (11)
където fε е относителната грешка при пресмятане на f . В общия случай mf εε ≥ ,
но при липса на по-точна информация може да се приеме, че mf εε ≈ .
Като се вижда непосредствено от (9), грешката от дискретизация при пресмятане
на производната е
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
32/106
( )xfhet ''∝ . (12)
Така, пълната грешка при пресмятане на производната ще бъде:
( ) ( ) ( )xfhh
xfeehe f
tr ''+=+=ε
. (13)
Получената явна зависимост на пълната грешка от стъпката h може да се използу-
ва за намиране на оптимална стойност opth , осигуряваща минимална грешка. (Естестве-
но, тя подлежи на модифициране съгласно (10), така че да се осигури точно машинно
представяне на ефективната стъпка.)
Минимизирането на ( )he води до:
( )( ) xxxxf
xfh mfcffopt εεεε ≈∝=∝
''. (14)
Тук е прието, че „характерната дължина на изменение на функцията”
( )( )xf
xfxc ''
≡ е приблизително равна на x , както е и в типичния случай.
При такава стъпка минималната сумарна грешка на крайната разлика ще бъде
( ) ( ) ( )xfxfhe fopt ''ε∝ , а съответната относителна грешка:
( )( )
( ) ( )( )( ) mff
opt
xf
xfxf
xf
heεεε ≈∝∝
2'
''
'. (15)
При опростяването на израза (15) е прието, че f, f’ и f’’ са с общ мащаб, което е и
най-често срещаната ситуация.
По-точен израз за оценяване на производната е т.нар. централна крайна разлика:
( ) ( ) ( ) ( ) ...'''6
1'
22 ++=−−+
xfhxfh
hxfhxf (16)
Както и при (9), оценката на грешката на (16) е получена на основата на развитие-
то на функционалните стойности в числителя в ред на Тейлор около x. Ясно е, че стига
да не е в противоречие с други елементи на логиката на пресмятанията, начинът (16)
винаги трябва да се предпочита пред (9).
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
33/106
На основата на анализ, аналогичен на направения в предходния случай, се полу-
чава, че оптималната стъпка ще бъде:
( )( ) xxxxf
xfh mfcffopt
3/13/13/1
3/1
3/1
'''εεεε ≈∝=
∝ , (17)
при което минималната сумарна грешка е ( ) ( ) ( ) 3/13/23/2 ''' xfxfhe fopt ε∝ , а отно-
сителната грешка на централната крайна разлика ще бъде:
( )( )
( ) ( )( )
3/23/23/13/2
3/2
'
'''
' mffopt
xf
xfxf
xf
heεεε ≈∝∝ . (18)
Следователно, при 710−≈mε тази грешка ще бъде ≈10-5, докато при предната кра-
йна разлика (9) аналогичната стойност ще бъде ≈10-4.
Екстраполация на Ричардсън при числено диференциране. Метод на
Ридърс (Ridders)
Този метод се основава на построяване на редица от диференчни оценки (т.е.
оценки чрез крайни разлики от типа на напр. (16)) при прогресивно намаляваща стъпка
h и използуване на знания за зависимостта на компонентите на грешката от дискрети-
зация от степените на h, така че на базата на тези диференчни оценки да се формират
приближения с нарастващ ред на точност.
Нека ( ) ( )
Nih
hxfhxfD
i
iii ...1,
21 =−−+≡ , (19)
където 101
−− == i
ii chchh и c < 1.
Грешката от дискретизация на 1iD е:
( ) ( )( ) .........!5
1'''
!3
121
42
21
4521 ++=++=++= εεiiiii hkhkhxfhxfE (20)
(Тук и по-долу долният индекс i на диференчната оценка jiD нараства с намаля-
ване на стъпката, а горният индекс j нараства с увеличаване на реда на точност.)
От (19) и (20) следва, че грешката от дискретизация на 11+iD ще бъде:
( ) ( )( ) ......!5
1'''
!3
12
41
241
521
11 ++=++= +++ εε cchxfhxfE iii (21)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
34/106
На основата на (19) – (21) може да се състави следната схема на изграждане на
диференчни приближения от все по-висок ред.
1. От уравненията (за истинската стойност на производната D и за компонентите
на грешката ,..., 21 εε )
...
...
...
...
424
318
212
161
3
416
312
28
141
2
48
36
24
121
1
43211
+++++=
+++++=
+++++=
+++++=
+
+
+
εεεεεεεε
εεεεεεεε
ccccDD
ccccDD
ccccDD
DD
i
i
i
i
(22)
се елиминира 1ε и се получават уравненията:
( ) ( )
( ) ( )
( ) ( )...
1
1
1
1
1
...1
1
1
1
1
...1
1
1
1
1
24
618
23
414
210
2
12
2132
3
24
610
23
48
26
2
11
2122
2
24
62
23
42
22
2
12112
1
+−
−+−
−+−
−−==
+−
−+−
−+−
−−==
+−
−+−
−+−
−−==
+++
+++
++
c
cc
c
ccc
c
DcDDD
c
cc
c
ccc
c
DcDDD
c
cc
c
ccc
c
DcDDD
iii
iii
iii
εεε
εεε
εεε
(23)
2. От тях се елиминира 2ε и се получават уравненията:
( )
( )...
1
1
1
...1
1
1
24
614
312
4
22
4233
3
24
66
36
4
21
4223
2
+−
−−+
−−==
+−
−−+
−−==
+++
+++
c
ccc
c
DcDDD
c
ccc
c
DcDDD
iii
iii
εε
εε (24)
3. От тях се елиминира 3ε и се получават уравненията:
...1 4
126
32
6334
3 +−
−−== ++
+ εcc
DcDDD ii
i (25)
и т.н.
Вижда се, че тази схема на изграждане на последователните приближения може
да се запише по следния начин:
j
jij
jij
i
DDD
αα
−−
= +++ 1
111 , където ( )
1
,...1
0
12
==
= −
α
ααj
c jj
(26)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
35/106
Последователността на пресмятане на jiD е илюстрирана на долната схема. Чис-
лата в клетките показват реда на тяхното запълване. Както следва от (26), съдържание-
то на всяка клетка се формира с използуване на съдържанието на нейните северен и
северозападен съседи.
i→ j↓
1 2 3 4 5 6 7 8 …
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 … … …
На всяка стъпка се прави оценка на грешката:
( )ji
ji
ji
jit DDDDE 1
11
11 ,max +
++
++ −−= . (27)
Ако тя е по-малка от най-малката предходна аналогична оценка Emin, 1
1+
+j
iD се при-
ема за най-добро текущо приближение на производната, а за нова стойност на Emin се
приема Et. Цикълът се прекъсва, ако ( )1
min11
>
×≥−++
s
EsDD jj
jj .
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
36/106
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− са идентични.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
37/106
Удобен начин за конструиране на единствения интерполиращ полином за двойки-
те ( ) 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), изградена съгласно споменатите изисквания,
се нарича сплайн.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
38/106
Ако, в частност, 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), а
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
39/106
( )( ) ( ) ( ) ( ) ( )( )( )xxxx
x iiiii ωωψ −−≡ + 32
1
6 и ( )( ) ( ) ( ) ( ) ( )( )( )xx
xxx iiiii ωωψ −−≡ + 3
21
6 (10)
са полиноми от трета степен със следните свойства:
1) ( )( ) ( )( ) ( )( ) ( )( ) 0;0 11 ==== ++ ii
ii
ii
ii xxxx ψψψψ
2) ( ) ( ) ( )( ) ( ) ( ) ( )( )xxxx iiii ωψωψ == '';''
От първото свойство, (9) и (8) следва, че сплайнът ( )xϕ ще удовлетворява интер-
полационните условия (1). От второто свойство, (9) и (8) следва, че
( )( ) ( )( ) ( )( ) i
ii
ii
zxzxxdx
Pd ωω += +123
2
, (11)
т.е. втората производна на сплайна ( )xϕ ще бъде непрекъсната и ще интерполи-
ра между величините nizi ,...,1, = , които имат смисъл на втори производни на сплайна
в интерполационните възли.
Величините nizi ,...,1, = подлежат на определяне. Те могат да бъдат намерени от
изискването за непрекъснатост на първата производна на сплайна в интерполацион-
ните възли (между тях тя е непрекъсната, тъй като е полином от втора степен):
( )( )
( )( ) 2,...,1,1
13
13 −== +
+
+ nixdx
dPx
dx
dPi
i
i
i
(12)
Лесно може да се провери, че условията (12) водят до следната система от линей-
ни уравнения за iz :
1,...,2,636 1
1
1
11
1111
1 −=−−−
−−=−+−+−
−
−
+
++
+−+−
− nixx
yy
xx
yyz
xxz
xxz
xx
ii
ii
ii
iii
iii
iii
ii (13)
Броят на тези уравнения е с две по-малък от броя на неизвестните. Така, решение-
то на (13) ще бъде еднозначно при допълнителен избор на стойности напр. за 1z и nz .
За естествения кубичен сплайн този избор е 01 == nzz .
Матрицата на системата (13) е тридиагонална, симетрична и диагонално преобла-
даваща, така че подходящ метод е гаусовата елиминация без избор на водещ елемент.
Нека, в общия случай, уравненията от такава система се запишат във вида:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
40/106
( )0
,...,1,
1
11
====++ +−
n
iiiiiii
ca
nidxcxbxa (14)
Лесно може да се провери, че след правия ход на елиминацията те ще придобият
вида:
)0(
,...,1,~~
1
===+ +
n
iiiii
c
nidxcxb, (15)
където:
( )1111
1
1
1
1
~;
~
,...,2,~
~~
;~~
ddbb
nidb
addc
b
abb i
i
iiii
i
iii
==
=
−+=
−+= −
−−
− (16)
Обратният ход за системата (15) е:
( ) 1,...,1,~~
;~~
1 −=−== + nibxcdxbdx iiiiinnn (17)
При вече известни и съхранени nizyx iii ...,1,,, = пресмятането на интерполирана
стойност ( )** xy ϕ= , където *x е произволна избрана стойност на независимата про-
менлива, става съгласно (9) след намиране на индекса i, за който 1* +≤≤ ii xxx .
Намирането на този индекс може да стане чрез т.нар. двоично търсене, което изи-
сква n2log изпълнения на стъпки 2), 3) и 4) от долния алгоритъм.
1) Въвеждане на индекси i l и ir с начални стойности 1=li и nir =
Aко 1>− lr ii , повтаряне на стъпки 2), 3) и 4):
2) Намиране на индекса ( ) 2rlm iii += (целочислено делене)
3) Проверка дали *x е между li
x и mi
x .
4) Ако да, то mr ii = ; ако не, то ml ii =
5) lii = .
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
41/106
-1.0 -0.5 0.0 0.5 1.0-0.5
0.0
0.5
1.0
1.5
2.0f(x)=1/(1+25x2)
интерполиращ полином на Лагранж f(x)
интерполационни възли
-1.0 -0.5 0.0 0.5 1.00.0
0.5
1.0f(x)=1/(1+25x2)
f(x) естествен кубичен сплайн
интерполационни възли
Фигура 2. Функция на Рунге: ( ) ( )22511 xxf += . Сравнение между глобалната поли-
номна интерполация от 10-та степен през 11 възела и интерполацията с естествен куби-
чен сплайн.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
42/106
6. Числено интегриране
Нека ( )∫≡b
aab xdxfI . Задачата е да се оцени стойността на този интеграл с макси-
мална точност при минимални изчислителни разходи.
Елементарни алгоритми
Правило на правоъгълниците
Методът се състои в разбиване на [ ]ba, на подинтервали [ ] nixx ii ,...,1,, 1 =+ ,
( )bxax n == +11 ; , локално интерполиране на ( )xf с полиноми от нулева степен през цен-
тровете на всеки подинтервал, ( ) ( ) [ ]1,, +∈= iii xxxfx ξϕ ,
+≡ +
21ii
i
xxξ , интегриране на
този полином в границите на подинтервала, и сумиране на получените локални оценки
( )∫+
≡1i
i
x
x
i xdxR ϕ :
( ) ( )iii
n
iii
n
iiab xxhfhRI −≡≡≅ +
==∑∑ 1
11
ξ (1)
Грешката от дискретизация може да се оцени чрез развиване на подинтегралната
функция в тейлоров ред около центъра на всеки подинтервал:
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
( ) ( ) ( )( )7
21
753
753
5432
192024
162450
4230
2462
1
ii
iiIVi
iIIi
i
iiIVi
iIIi
ii
x
xi
iiIVi
iIIIi
iIIi
iI
ii
hOEER
hOfh
fh
R
hOfh
fh
fhxfI
hOfx
fx
fx
fxfxf
i
i
+++=
+++=
+××
++××
++=≡
+−+−+−+−+=
∫+
ξξ
ξξξ
ξξξξξξξξξ
(2)
Фигура 1. Правило на правоъгълниците
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
43/106
Правило на трапеците
Методът се състои в разбиване на [ ]ba, на подинтервали [ ] nixx ii ,...,1,, 1 =+ ,
( )bxax n == +11 ; , локално интерполиране на ( )xf с полиноми от първа степен през кра-
ищата на всеки подинтервал, ( ) ( ) ( )i
ii
i
ii h
xxxf
h
xxxfx
−×+−×= ++
11ϕ ,
[ ]( )iiiii xxhxxx −≡∈ ++ 11, , интегриране на този полином в границите на подинтервала, и
сумиране на получените локални оценки ( )∫+
≡1i
i
x
x
i xdxT ϕ :
( ) ( )( )∑∑=
+=
+≡≅n
iii
in
iiab xfxf
hTI
11
1 2 (3)
Грешката от дискретизация може да се оцени чрез развиване на подинтегралната
функция в тейлоров ред около центъра на всеки подинтервал:
( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )( )7
21
753
753
5432
1
5432
42
16245
4
423
2
16240
420
162486422
162486422
1
ii
iiIVi
iIIi
i
x
xi
iiIVi
iIIi
iii
iiIVi
iIIIi
iIIi
iIi
ii
iiIVi
iIIIi
iIIi
iIi
ii
hOEET
hOfh
fh
TxfI
hOfh
fh
fhT
hOfh
fh
fh
fh
fxf
hOfh
fh
fh
fh
fxf
i
i
+−−=
+××
−××
−=≡
+×
++×
++=
+×
+×
+×
++=
−×
+×
−×
+−=
∫+
+
ξξ
ξξξ
ξξξξξ
ξξξξξ
(4)
Вижда се, че грешката на метода на трапеците е по-голяма от тази на метода на
правоъгълниците. Следователно, когато това е възможно, методът на правоъгълниците
трябва да се предпочита пред метода на трапеците. Той, обаче, няма да е приложим при
фиксирани абсциси iξ , които не могат да се интерпретират като центрове на подинтер-
вали, които напълно да покриват [ ]ba, , но без да се припокриват взаимно.
При равноотдалечени абсциси (3) се свежда до следния „обединен” израз:
++++= +121 2
1...
2
1nnab ffffhT (5)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
44/106
Фигура 2. Правило на трапеците
Правило на Симпсън (Simpson)
От (2) и (4) следва, че главната компонента E1 на грешката може да се елиминира
по следния начин:
( ) 212/1 3
24
63
1
3
2Efff
hTRSI iii
iiiii −++=+≡= ++ (6)
От определението на 2E (виж напр. (2)) се вижда, че методът на Симпсън ще бъде
точен за подинтегрални функции, които във всеки подинтервал са полиноми от степен,
не по-висока от 3. Изразът (6) може да се получи и ако подинтегралната функция се
интерполира локално с полином от втора степен през точките 1,, +iii xx ξ , и този поли-
ном се интегрира. Ограниченията за прилагане на метода на Симпсън са същите като за
метода на правоъгълниците.
Обединеният израз при равноотдалечени абсциси е:
( )1124321 424...4243 +−− ++++++++= nnnnab ffffffffh
S (7)
Фигура 3. Правило на Симпсън
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
45/106
Контрол на точността
Задачата е да се оцени грешката на квадратурната оценка. Подходът се основава
на известните връзки (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, ... се дефинират аналогично на предходния случай. Аналоги-
чен е и критерият за сходимост.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
46/106
На основата на (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. Именно такава е стратегията на т.нар. Гаусова квадратура.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
47/106
За обосноваване и прилагане на Гаусовата квадратура са нужни някои сведения за
ортогоналните полиноми и за начина на тяхното построяване.
Полиномите ( )xpi и ( )xp j , съответно от степени i и j, са взаимно ортогонални относно теглов-
ната функция ( )xw в интервала [ ]ba, , ако:
( ) ( ) ( ) ( ) ij
b
a jiji xpxpxdxwpp δ=≡ ∫, , (1)
където ijδ е символът на Кронекер.
Общата процедура за изграждане на система от ортогонални полиноми (процедура на Грам-
Шмидт) се състои в полагане на 10 =p и намиране на полиномите от по-висока степен чрез рекурентна-
та връзка
( ) ( ) ( ) ( )∑=
+ +=n
ii
ninn xpxxpxp
01 α , (2)
при което коефициентите ( )niα се определят от условията
( ) nipp in ,...,0,0,1 ==+ . (3)
По-конкретно, тъй като вече ( ) ijji pp δ=, за i и j ≤ n, то условието за ортогоналност е
( ) ( ) ( )( ) nkpppxppp kkn
kknkn ,...,0,0,,,1 ==+=+ α . Следователно (3)
( ) ( )( )kk
knnk pp
pxp
,
,−=α . (4)
Отчитайки отново взаимната ортогоналност на вече построените полиноми и постулираната реку-
рентна връзка, за числителите на коефициентите ( ) 2,...,0, −= nknkα се получава:
( ) ( ) ( ) ( )( ) 0,,,,0
1 =−== ∑=
+
k
iin
kiknknkn ppppxpppxp α . (5)
Следователно, рекурентната връзка се опростява до
( ) ( ) ( ) ( ) ( ) ( ) 11
1 −−=
+ −−=+= ∑ nn
n
nii
ninn pxpxxpxxpxp γβα , (6)
където ( ) ( )( )nn
nnnn pp
pxp
,
,=−= αβ и ( ) ( )( )11
11 ,
,
−−
−− =−=
nn
nnnn pp
pxpαγ . (7)
Последният израз се опростява допълнително:
( ) ( ) ( ) ( )( ) ( )( ) ( )nnnnn
nnnn
nnnnnnn ppppppppxpppxp ,,,,, 21
21,1
111 =−−== −−
−−−
−−− αα , (8)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
48/106
така че ( )
( )11,
,
−−
=nn
nn
pp
ppγ . (9)
След ортогонализацията полиномите могат да се нормират: ( )ii
ii
pp
pp
,← .
Може да се покаже, че ако { } niix ,...,1= са нулите на ( )xpn , то те са различни и реални, и
[ ] nibaxi ,...,1,, =∈ .
Примери:
Полиноми на Лежандър: [ ] [ ]1,1, −=ba и ( ) 1=xw .
Полиноми на Чебишев: [ ] [ ]1,1, −=ba и ( )21
1
xxw
−= .
Полиноми на Лагер: [ ] [ ]∞= ,0,ba и ( ) ( ) 1,exp −>−= αα xxxw .
Полиноми на Ермит: [ ] [ ]∞∞−= ,,ba и ( ) ( )2exp xxw −= .
И така, търсената квадратурна формула е от вида:
( ) ( ) ( )
( ) ( ) 0;0
1
>≥
≅
∫
∫∑=
b
a
b
a
n
iii
xdxwxw
xfxdxwxfa, (1)
където възлите { } niix ,...,1= и теглата { } niia ,...,1= се избират така, че (1) да бъде точна за
полиноми от степен 2n-1.
Смисълът на въвеждането на тегловната функция ( )xw е, че с нейна помощ някоя
действителна подинтегрална функция ( )xg може да се разложи на произведение от
функция ( )xw , която е достатъчно „сложна” и, в частност, неприводима към полином
от сравнително ниска степен, и „проста” функция ( )xf , която съвпада точно или приб-
лизително с полином от ниска степен: ( ) ( ) ( )xfxwxg = . В този смисъл, квадратурата (1)
може да бъде мощен инструмент за икономично и точно интегриране на широк кръг от
функции.
1. Нека ,...,...,,1 10 nQQQ ≡ са ортогонални полиноми относно ( )xw в [ ]ba, .
За тях е в сила:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
49/106
( ) ( ) ( ) jinjixQxQxdxwb
a ji ≠≤=∫ ,,,0 , (2)
2. Нека ( )xqn 1− е произволен полином от степен n-1. Тъй като ортогоналните по-
линоми образуват базис, винаги е възможно представянето ( ) ( )∑−
=− =
1
01
n
iiin xQcxq . Следо-
вателно:
( ) ( ) ( ) 01 =∫ −
b
a nn xqxQxdxw (3)
Очевидно, горното твърдение е в сила и за всеки полином от степен по-малка от n.
3. Нека { } niix ,...,1= са нулите на ортогоналния полином ( )xQn . Може да се покаже,
че за достатъчно широк кръг тегловни функции ( )xw те ще бъдат реални, различни по-
между си, и ще се намират в интервала [a,b].
4. Нека:
а) Възлите в (1) са нулите на ( )xQn ;
б) Теглата { } niai ,...,1, = са избрани така, че при тези възли квадратурата (1)
да бъде интерполационна, т.е. точна, за всички полиноми със степен n-1.
Например, полиномите на Лагранж ( )( )
( )∏∏
≠
≠
−
−=
jiij
jii
j xx
xx
xL позволяват представянето:
( ) ( ) ( ) ( )xfRxLxfxfn
iii ;
1
+=∑=
. Ако ( )xf е точно полином от степен n-1, то остатъкът ( ) 0; =xfR
и ( ) ( ) ( ) ( ) ( ) ( )∑∑ ∫∫==
==n
iii
n
i
b
a ii
b
axfaxLxdxwxfxfxdxw
11
, където ( ) ( ) nixLxdxwab
a ii ,...,1, =≡ ∫ .
5. Нека ( )xn 12 −Φ е произволен полином от степен 2n-1. Той винаги може да се
представи във вида:
( ) ( ) ( ) ( )xrxqxQx nnnn 1112 −−− +=Φ , (4)
където частното ( )xqn 1− и остатъкът ( )xrn 1− са полиноми от степен, не по-висока от
n-1.
Тогава:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
50/106
( ) ( ) ( ) ( ) ( )
( ) ( ) ( )[ ] ( )44 844 76444444 8444444 76
48476444 8444 7644 844 76
5
112
4
111
3
11
2
1
1
12
)0(
0
∑∑
∑∫∫
=−
=−−
=−−−
Φ=+=
==+=Φ
n
iini
n
iininini
n
iini
b
a n
b
a n
xaxrxqxQa
xraxrxdxwxxdxw
(5)
Вторият израз е поради (3) и (4), третият е еквивалентен на втория поради избора
на тегла, четвъртият е еквивалентен на третия поради избора на възли, а петият е ал-
тернативен запис на четвъртия (поради (4)).
Така беше доказано, че при споменатия по-горе избор на n на брой възли и тегла,
квадратурната формула (1) е точна за полиноми от степен 2n-1. Тук е уместно да се
напомни, че при разгледаните по-горе елементарни алгоритми тази степен не може да
бъде по-висока от n-1.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
51/106
7. Обикновени диференциални уравнения
Общият запис на едно обикновено диференциално уравнение от първи ред е:
( ) ( )( )( ) 00
,
yxy
xyxfdx
xdy
=
= (1)
Едно ОДУ от по-висок ред може да се сведе до система от ОДУ от първи ред по
следния начин:
( ) ( )( )⇒= −1,...,'',',, nnn
n
yyyyxfdx
xyd
( ) ( ) ( ) ( ){ }( ) ( )
( ) ( )( ) ( )nn
n
nn
yyxfdx
xdy
xydx
xdy
xydx
xdy
xyxyxydx
xdy
,...,,
...
1
1
32
121
=
=
=
≡=
−
(2)
( ) ( )yfy
x,dx
xd =⇒
Общ подход за числено решаване
a) генерира се редица от абсциси ,...,, 10 xx ; nnn xxh −≡ +1
б) ( )nxy се апроксимира с ny на основата на предходните стойности:
( )111 ,...,, +−−+ = knnnn yyyy ϕ . При k =1 методът е едностъпков.
Например, методът на Ойлер е едностъпков от следния вид:
( ) ( ) ( )( ) ( )
( ) ( )nnnnnn yxfhyyxy
yxfhyyxy
hOyxfhyyxy
,
....
,
,
11
111122
20000011
+=≈
+=≈++=≈
++
(3)
(Този метод може да бъде обоснован чрез развиване на зависимата променлива
( )xy в тейлоров ред около началото на стъпката.)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
52/106
Методи, основаващи се на Тейлоровия ред
Стига да могат да бъдат пресметнати производните на зависимата променлива до
достатъчно висок ред, интегрирането на едно ОДУ може да се извърши със съответната
желана точност:
( )pn
p
nnnnn yp
hy
hy
hhyyy
!...
!3!2'''
3''
2'
1 +++++=+ (метод от ред p) (6)
Отчитайки, че ( ) ( )( )xyxfxy ,' = , висшите производни могат да се представят по
следния начин:
( ) ( ) ( ) ( )
( ) ( ) ( )xxxyxyyyy
xxyxxyyxyyy
xy
fffffffff
fffffffffffxy
fffxx
fxyx
y
fxy
++++=
+++++=
+≡∂∂+
∂∂=
2
'''
'''
22
(7)
и т.н.
Ако диференцирането на дясната част на уравнението ( )( )xyxf , не представлява
принципен проблем, изрази от вида (7) могат да се използуват за повишаване на точно-
стта на решението (спрямо напр. метода на Ойлер) чрез прилагане на тейлорово разви-
тие на зависимата променлива ( )xy до сравнително по-висок ред.
Методи Рунге-Кута
Схемата на интегриране при тези методи е от вида:
( )∑=
+ +=r
jjjnn hkpyy
11 , (8)
където:
( ) ( )
( ) ( )∑−
=
+=
=+=
=≡
1
1
1 0,
,...,1,,
j
ll
jlnj
jnj
jjj
hky
hx
rjhfhk
βη
ααξηξ
(9)
Доколкото точната стойност на решението е ( ) ( )hRyxy rnn += ++ 11 , параметрите
( )j
jlj p,,βα се избират така, че остатъкът ( )hRr да бъде минимален.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
53/106
Съставянето на уравнения за параметрите става чрез развиване на ( )xy и ( )hk j в
ред на Тейлор и приравняване на нула на коефициентите пред степените на h в ( )hRr до
максимално възможна степен.
Примери:
а) При r = 1
( )( ) ( )nn
nn
yxhfhk
hkpyy
,1
111
=+=+ (10)
Следователно,
( ) ( )
( ) ( )
( ) ( )hxyh
hyp
yxhfpyhxyh
hyy
yxyhR
nn
nnnnnn
nn
θ
θ
++−=
−−+++=
−= ++
''!2
'1
,''!2
'
2
1
1
2
111
(11)
(Приема се, че началното условие е точно, т.е. ( )nn xyy = . Също така, за краткост
( )nn xyy '' ≡ .)
Очевидният избор е p1 = 1, при което се получава схемата на Ойлер:
( )nnnn yxhfyy ,1 +=+ (12)
б) При r = 2
( ) ( )( ) ( )( ) ( )( )hkyhxhfhk
yxhfhk
hkphkpyy
nn
nn
nn
12
1
22111
,
,
βα ++≡≡
++=+
, при което ( ) ( )hRyxy nn 211 += ++ (13)
Следователно,
( ) ( )
( )
( ){ }( ) { } ( )
( ) ( )322
2221
321
2
2121
32
112
21
21
1
!2
'''!3
''!2
'
hOffhpfhphfpp
hOhffhffhphfpfffh
hf
hOkfhffhphfp
yhxyh
yh
hyy
yxyhR
nynnxn
nnynxnnnxnnyn
nynxnn
nnnnn
nn
+
−+
−+−−=
+++−−++=
+++−−
−++++=
−= ++
βα
βα
βα
θ
(14)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
54/106
(Приема се, че началното условие е точно, т.е. ( )nn xyy = . Също така, за краткост
( )nn xyy '' ≡ , ( )nn xyy '''' ≡ , ( )nnn yxff ,≡ , ( )nnnx yxx
ff ,
∂∂≡ , ( )nnny yx
y
ff ,
∂∂≡ .)
Уравненията за параметрите са:
2
12
1
1
2
2
21
=
=
=+
β
α
p
p
pp
(15)
Избира се 2
121 == pp . Тогава: 1== βα .
Така окончателно се получава следната схема:
( ) ( )( )( )nnnnnnnn yxhfyxfyxfh
yy ,,,2 11 +++= ++ (16)
Вижда се, че в частния случай ( ) ( )xfxdx
dy = изразът (16) съвпада с правилото на
трапеците за интегриране на ( )xf .
в) При 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)
В частния случай ( ) ( )xfxdx
dy = изразът (117) добива вида:
( ) ( )
+
+++= ++ 11 24
6 nnnnn xfh
xfxfh
yy ,
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
55/106
който съвпада, включително и по точност, с правилото на Симпсън за интегрира-
не на ( )xf .
Прякото обобщение на (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 ++=+
б) на две стъпки с резултат 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 −≡δ .
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
56/106
Възможни са и други варианти за конструиране на критерия за точност. Ако, нап-
ример, се дефинира yδ ε≡0 , ще се ограничава относителната грешка за текущия пре-
ход. Натрупването на грешката може да се контролира чрез избора dx
dh
yδ ε≡0 . Тъй като
сега грешката се мащабира с h, коректният израз е 25.0
1
010
=
δδ
hh .
Твърди системи от обикновени диференциални уравнения
Една система от ОДУ е твърда, ако съществуват два или повече напълно различни
мащаба на независимата променлива, по която се менят зависимите променливи или
техни компоненти.
Например:
( ) ( ) ( )( ) ( ) ( )
( )( ) 00
10
1999999
1998998
==
−−=
+=
v
u
xvxudt
xdv
xvxudt
xdu
(20)
Решението на (1) е:
( ) ( ) ( )( ) ( ) ( )xxxv
xxxu
1000expexp
1000expexp2
−+−−=−−−=
За стабилност на който и да е от горните методи за интегриране се изисква стъпка
1000/1<<h , независимо че членът ( )x1000exp − е с напълно пренебрежим принос в
стойностите на u и v почти веднага след началото x = 0. Тоест, за поддържане на ста-
билност се налага да се следва изменението на компонентата на решението с най-малък
мащаб.
Нека най-напред разгледаме единичното уравнение:
0.
'
>=−=constc
cyy, (21)
чието решение е ( )cxy −= exp
При схемата на Ойлер:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
57/106
( ) 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.
Обобщение за система от обикновени линейни диференциални уравне-
ния
Нека 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)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
58/106
Нека ( ) 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)
Заради явното развитие на десните части такъв метод се нарича полунеявен.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
59/106
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 са
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
60/106
съответно текущата и предходната грешка на решението (дължина на интервала, ог-
раждащ нулата), а константата 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)
Следователно, сходимостта на метода на Нютон-Рафсон е квадратична.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
61/106
За съжаление, ако основната предпоставка за близост на текущото приближение
до истинската стойност на нулата е силно нарушена, този метод изобщо може да не
доведе до търсеното решение.
Фиг. 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.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
62/106
Фиг. 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)
Критерият за прекратяване на итерациите и ограниченията на приложимостта на
метода на секущите са аналогични на тези на метода на Нютон-Рафсон.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
63/106
Фиг. 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 е надежден, за разлика от
метода на Нютон-Рафсон или на секущите. Сходимостта е в най-добрия случай същата,
като при метода на секущите, но за разлика напр. от метода на разполовяването, не е
равномерна, и се обуславя от изпълнението на основното предположение за локална
линейност на функцията.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
64/106
Фиг. 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, , и
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
65/106
напр. 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*):
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
66/106
( ) ( ) ( )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 .
Както и в едномерния случай, надеждността на метода не е гарантирана, ако те-
кущото приближение е далече от търсеното решение.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
67/106
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)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
68/106
Така, функционалните стойности ( )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, към тази на
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
69/106
стария интервал [ ]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.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
70/106
Многомерна минимизация
Най-често задачата за търсене на локален минимум на функцията на 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 . Повтаряне
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
71/106
на стъпка “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.
Метод на спрегнатите направления
Този метод е известен още като „метод на спрегнатите градиенти”. Неговото обо-
сноваване е следното.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
72/106
Нека отправната точка за текущата едномерна минимизация е 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), изменението на градиента при те-
кущото преместване iiiδ vxxx λ=−≡ +1 ще бъде
( ) ( ) ( ) ( ) iiii fffδ AvbbvAxx λλ =−−−=∇−∇=∇ +1 (3)
Ако предходните минимизации са били по направления 1,...,1, −= ikkv и отправ-
ната точка ix е минимум по всички тях, т.е. ( ) 0. =∇ ik f xv , то текущата минимизация
ще доведе до точка, която е минимум по текущото и по всички предходни направления,
ако градиентът в тази точка е перпендикулярен освен на текущото, и на всички пред-
ходни направления, т.е:
( ) ( ) ( )( ) ( ) 1,...,1,0.0.. 1 −===∇+=∇+∇=∇ + ikfδfδff ikkikik Avvvxvxv λ ,
или 1,...,1,0 −== ikikAvv (4)
Вектори като kv и iv , които удовлетворяват съотношението (4), се наричат “А-
ортогонални”, или „взаимно спрегнати относно A”.
Така, ако A и b са постоянни и взаимно А-ортогоналните направления на после-
дователните едномерни минимизации { } nii ,...,1, =v са линейно независими помежду си,
то позицията на минимума 1+nx може да се намери след точно n такива едномерни ми-
нимизации.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
73/106
Доколкото, съгласно (2), ( ) bAxx −=∇ ++ 11 nnf , то тази търсена позиция ще отгова-
ря на условието 0bAx =−+1n , т.е. ще бъде решение на линейната система bAx = . (Тук
и на разни места по-долу началото на координатната система е избрано в първата отп-
равна точка 1x .)
С отчитане на обстоятелството, че съгласно (1) матрицата A е симетрична, разви-
ваната по-долу процедура може да се разглежда и като итеративен метод за решаване
на линейни нехомогенни системи със симетрични матрици.
Построяване на редица от A-ортогонални вектори.
Редицата {vj} се строи по следната A-ортогонализационна процедура, аналогична
на процедурата на Грам-Шмидт.
a) Нека има някаква система от линейно независими вектори g1, g2,…. (5)
б) Нека v1 = g1. (6)
в) Нека ,...1,1
11 =+= ∑=
++ ii
kkkii vgv β (7)
Коефициентите kβ се определят от изискванията за A-ортогоналност между 1+iv
и всички предходни вектори:
г) ikkkkik
i
llklikik ,...,1,0 1
111 =+=+== +
=++ ∑ AvvAgvAvvAgvAvv ββ (8а)
Резултатът (8а) се основава на индукционното допускане, че вече построените ве-
ктори ijj ,...,1, =v са А-ортогонални. И така:
ikkk
ikk ,...,1,1 =−= +
AvvAgvβ (8б)
Матрицата A е симетрична, поради което за построените вектори е в сила свойст-
вото ijij ≠= ,0Avv .
Процедурата а) – г) генерира линейно независими вектори {vi}, тъй като в крайна
сметка от (7) следва, че :
∑=
++ +=i
kkkii
111 ggv γ , (9)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
74/106
a {gj} са линейно независими (от (5)).
Оказва се, че при подходящ избор на базовите вектори {gi} е възможно броят на
коефициентите βk в (7) да се сведе до един (последния в сумата), с което се минимизи-
рат изчислителните разходи по прилагането на (8б).
По-долу ще получим условието, при което ikk <= ,0β
От логиката за последователните едномерни минимизации следва, че:
∑−
=
+=1
11
i
jjji vxx α , или iiii vxx α+=+1 , (10)
където iα имат смисъл на премествания по направленията на минимизация. (Ако
методът се развива за решаване на линейни системи, (10) се постулира.)
Нека базовите вектори { gi} бъдат избрани по следния начин:
( )1+−=−= niii xxAbAxg (11)
(По построение, при постоянни A и b минимумът ще се достигне в 1+nx , т.е.
bAx =+1n )
Следователно (от (10) и (11)):
∑−
=
+=1
11
i
jjji Avgg α , или iiii α Avgg +=+1 (12)
Тогава:
( ) ( ) jjj
n
jlljlnjjjjjj AvvAvvxxAvbAxvgv αα −=−=−=−= ∑
=+1 (13а)
Следователно:
jj
jjj Avv
gv−=α (13б)
Съотношенията (10) – (12) са в сила по построение, а резултатът (13) е получен
при предположение, че системата от А-ортогонални вектори nii ,...,1, =v е налице.
От (12) следва, че:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
75/106
k
kkk α
ggAv
−= +1 (14)
Тогава, ако базовите вектори са ортогонални, т.е. jkjk ≠= ,0gg , и тъй като А е
симетрична, ще се получи:
( ) ikkkk
ikiik <=−== +
+++ ,01
111 gg
gAvgAgv
α (15)
Последният израз е числителят на kβ в (8). Следователно, процедурата за А-
ортогонализация (7) ще придобие търсения опростен вид:
iiii vgv β+= ++ 11 (16)
Остава да се докаже ортогоналността на базовите вектори, избрани съгласно (11).
Доказателство на ортогоналността на { }ig
Това става чрез доказване на помощните твърдения а) и б) по-долу.
a) ijij <= ,0Avg (17)
Доказателство (следва от (7)):
ijj
kikkijij
j
kkkjj
j
kkkjj
<−=−=⇒
−=→+=
∑
∑∑−
=
−
=
−
=
,001
1
1
1
1
1
AvvAvvAvg
vvgvgv
β
ββ
б) iiii AvvAvg = (18)
Доказателство (следва от (7)):
01
1
1
1
1
1
−=−=⇒
−=→+=
∑
∑∑−
=
−
=
−
=
ii
i
kikkiiii
i
kkkii
i
kkkii
AvvAvvAvvAvg
vvgvgv
β
ββ
в) {gi} са взаимно ортогонални
Доказателството ще се проведе по индукция.
От (12), (13), (18) следва, че:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
76/106
( )11
1111
111111
11
111121
111
1111112
0
gv
AvvAvvgg
ggAvgAvvgv
gggg
AvAvvgv
gAvgg
=
=−=−=⇒
−=+= α
………..
Нека ikik <= ,0gg (индукционно предположение)
Тогава, от (12), (17) следва, че:
001 +=+=+ ikiikik Avggggg α
От (12), (18), (13), (9) следва, че:
01
1
1
=−−=
−=+=+=
∑−
=
+i
kkikiiii
iiiiiiiiiiiiiiii
gggggg
gvggAvvggAvggggg
γ
αα
Така, опростената процедура (16) за А-ортогонализация е обоснована. Остава изи-
скването, че за пресмятане на коефициентите αi съгласно (13) и βi съгласно (8) е нужно
да се знае матрицата A. Това, естествено, не е проблем, ако развиваният метод ще се
използува за решаване на линейни системи. В случая на минимизация, обаче, матрица-
та A съдържа вторите производни на многомерната функция и е силно желателно ней-
ното пресмятане да се избегне. За тази цел, в метода на спрегнатите направления се
правят следните практически подобрения (приложими както за многомерна минимиза-
ция, така и за решаване на линейни системи):
Практически подобрения
ii
iii Avv
gg−=α (следва от (9) и ортогоналността на базовите вектори) (19)
ii
iii gg
gg 11 ++=β (20)
Доказателството следва от ортогоналността на базовите вектори, симетричността
на A, (12), (13), (20) и (8):
( ) ( ) ( ) iiiii
iiii
ii
iiiiiiiiiii βα gg
AvvAgv
ggAvvAvg
ggAvggggg =−=−=+= ++++++
111111 0
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
77/106
Решаващо за приложимостта на развивания метод при многомерна минимизация е
елиминирането на явната зависимост от А в израза (19), основаващо се на следните
съображения.
Процедура за многомерна минимизация
Нека градиентът в отправната точка за текущата стъпка е ( )ii f xg ∇= .
Нека е проведено търсене на минимум по направлението iv и този минимум е
намерен в iii vxx λ+=+1 , където градиентът е ( )11 ++ ∇= ii f xg .
Съгласно допускането (2), bAxg −= ii и
( ) iiiii AvgbvxAg λλ +=−+=+1 (21)
Тъй като 1+ix е минимум по направлението iv , то:
( ) 011 ==∇ ++ iiii f gvxv (22)
След заместване в (21) и с отчитане на определението (13) се получава:
iii
iiiiiiii αλλ =−=⇒=+=+ Avv
gvAvvgvgv 01
Тоест, изминатият път по текущото направление на минимизация е точно равен
на множителя αi, осигуряващ връзката между базовите вектори, нужна за обосновава-
не на развиваната икономична процедура за А-ортогонализация.
И така, прилагането на метода на спрегнатите градиенти се свежда до едномерни
минимизации по направления, образувани съгласно (16) с използуване на израза (20) за
пресмятане на множителя β . Базови вектори gi са градиентите на функцията в точките
на смяна на направлението за минимизация. Тъй като предположението (2) е само при-
ближение, т.е. матрицата A и векторът b не са постоянни, броят на едномерните мини-
мизации може да бъде по-голям от n. На практика процедурата се прекъсва, когато
преместването по текущо избраното направление стане пренебрежимо малко.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
78/106
10. Генериране на случайни числа с избрано разпределе-
ние
Тук най-напред е уместно да се напомнят някои свойства на случайните величини
и на техните вероятностни разпределения.
Нека x е случайна величина, а ( )bxaP ≤≤ е вероятността x да заеме стойност между a и b.
Плътността на вероятностното разпределение ( )xf на тази случайна величина е такава функ-
ция, че:
( ) ( )xxxxPxxf ∆+≤≤=∆ 000 при 0→∆x . (1)
Следователно:
( ) 0≥xf и ( ) 1=∫+
−dxxf
x
x, където x- и x+ са границите на потенциално заеманите от x стойнос-
ти, които в частност могат да бъдат -∞ и +∞, а
( ) ( )∫=≤≤b
adxxfbxaP (2)
Кумулативното вероятностно разпределение ( )xF е такава функция, че:
( ) ( )00 xxPxF ≤= (3)
Следователно:
( ) ( )∫ −=
x
xdxxfxF '' ; ( ) 1 → +→xx
xF ; ( ) 0 → −→xxxF ;
( ) ( ) ( )aFbFbxaP −=≤≤ ' ; ( ) ( )xf
dx
xdF = (4)
Равномерно разпределение Равномерното разпределение ( )baU , има следната вероятностна плътност:
( )
><
≤≤−=
bxax
bxaab
dxdxxf
,:0
: (5)
Ако ( )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 .
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
79/106
Централна гранична теорема Ако ,..., 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∈−≡ ξζ , то окончателно:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
80/106
ζ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)
Тогава неговото обратно е:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
81/106
( )
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∈η .
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
82/106
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 и да има лесна за пресмятане об-
ратна на своята примитивна функция. Така методът на отхвърлянето може да се раз-
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
83/106
глежда като заместител на метода на преобразуването за случаите, когато намирането
на обратната на примитивната функция на избраното разпределение ( )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.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
84/106
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).
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
85/106
Целесъобразно е вместо максимум на 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 се свежда до минимизиране на
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
86/106
( )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)
където:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
87/106
( ) ( )
( )∑
∑
=
=
≡
≡
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)
Или:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
88/106
( ) ( )
( ) ( )
( ) ( )
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)
Следователно, дисперсиите на параметрите на модела са равни на съответните
диагонални елементи на ковариационната матрица.
Ортогонални базови функции
По отношение на алгебричната задача (11)/(12) могат да се направят следните за-
бележки
• Матрицата { }kjA≡A е симетрична. Ако базовите функции ( ){ } mjxX j ,...,1, = са
ортогонални върху множеството от точки { } nixi ,...,1, = при тегла 21 iiw σ= , т.е.
( ) ( )
=≠≠=
∑= jk
jkxXxXw
n
iijiki ;0
;0
1
, матрицата A ще бъде диагонална.
• Ако матрицата A не е диагонална и базовите функции са полиноми, то A може
да се окаже лошо обусловена, при което изчислителните грешки при определяне
на решението a ще бъдат недопустимо големи. Наистина, нека за простота, но
без ограничаване на общността, ( ) mjxxX jj ,...,0, == , 1=iw и всички възли ix
са разпределени равномерно в интервала [ ]1,0 . Тогава, при голямо n,
1
1
01 ++=≈≡ ∫∑ +
=
+
jk
ndxxnxA jk
n
i
jkikj , т.е. HA n= , където:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
89/106
++
+
+
+
=
12
1.........
1
13
1.........
3
12
1...
4
1
3
1
2
11
1...
3
1
2
11
mm
m
m
m
H е т.нар. Хилбертова матрица.
(Множителят n възниква поради квадратурния израз ∑∫=
++ ∆≈n
i
jki
jk xxdxx1
1
0
, където
nx
1=∆ )
Вижда се, че с нарастване на m детерминантата на H ще намалява, т.е. матрицата
ще се доближава до особената, а елементите на нейната обратна ще нарастват по модул.
Така например, при 9=m 1−H ще има елементи от порядъка на 12103× . Отчитайки, че
bHa 1−= , а елементите на b съдържат неизбежни грешки от закръгление, е ясно, че
грешките на a ще станат недопустимо големи.
От горните разглеждания следва, че е особено желателно полиномните базови
функции да се построят така, че да бъдат ортогонални върху множеството от точки
{ } nixi ,...,1, = , т.е.
( ) ( ) kjxpxpwn
iikiji ≠=∑
=
,01
. (17)
Тогава системата от уравнения за коефициентите a ще придобие вида:
mkad kkkk ,...,0, == ω , където (18)
( )∑=
=n
iikikk xpwd
1
2 и ( )∑=
≡n
iikiik xpyw
1
ω . (19)
Решението на тази система, mkda kkkk ,...,0, == ω , се получава непосредствено,
при което се избягват всички затруднения, свързани с лошата обусловеност на матри-
цата A от предходните разглеждания.
Също така, ако m се замести с m+1, ще бъде достатъчно вече полученото решение
да се допълни с 1,111 ++++ = mmmm da ω . (При недиагонална матрица би било нужно нейно-
то пълно преизчисляване, а следователно и ново пресмятане на всички компоненти на
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
90/106
вектора на решението a.) Това обстоятелство опростява избора на максимална степен M
на полиномния модел. Наистина, ако моделираната зависимост от x се описва точно
(или почти точно) с полином от степен M, а моделът е от степен Mm> , то за коефици-
ентите mMja j ,...,1, += статистически би трябвало да се получат нулеви стойности.
Горното твърдение се обосновава непосредствено. Най-напред, ортогоналните полино-
ми са линейно независими помежду си (това се демонстрира пряко чрез начина на тях-
ното построяване, който е описан по-долу), така че всеки полином може да бъде предс-
тавен чрез линейна комбинация между тях. Така, ако моделираната зависимост е точно
полином от степен M, то моделът може да се представи като ( ) ( )∑=
=M
kkk xpaxy
0
~ . Нека,
също така, наблюденията са точни, т.е. ( )ii xyy ~= . Тогава, съгласно (19):
( ) ( ) ( )
( ) ( )
>≤≤
==
=≡
∑ ∑
∑ ∑∑
= =
= ==
Mm
Mmdaxpxpwa
xpxpawxpyw
mmmim
M
k
n
iikik
n
iim
M
kikki
n
iimiim
,0
0,
0 1
1 01
ω
С това твърдението е доказано за точни наблюдения. Ако наблюденията съдържат
грешки, то по силата на централната гранична теорема в теорията на вероятностите
(доколкото предпоставките за позоваване на нея са изпълнени), те ще бъдат гаусово
разпределени около точните стойности: ( )( )iii xyNy σ,~∈ , и от горния израз е ясно, че
случайните величини mω ще бъдат с нулево очакване при m > M. Това е така, защото
( ) ( ) ( ) ( ) ( ) ( ) ( ) ...~1 011
=
=== ∑ ∑∑∑= ===
n
iim
M
kikki
n
iimii
n
iimiim xpxpawxpxywxpyEwE ω , където ( )⋅E
е операторът на математическото очакване, който е линеен.
От горното следва, че в разглеждания случай величината ( ) ( )12 −− mnS a ще бъде
независима от m за Mm≥ .
Така, за намиране на M (което в общия случай не е предварително известно), е це-
лесъобразно уравненията bAa = (или ωDa = ) да се решават последователно за
,...2,1,0=m докато съответните стойности на ( ) ( )12 −− mnS a престанат да намаляват
съществено с нарастването на m.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
91/106
Общата процедура за изграждане на система от ортогонални полиноми (процеду-
ра на Грам-Шмидт) се състои в полагане на 10 =p и намиране на полиномите от по-
висока степен чрез рекурентната връзка
( ) ( ) ( )∑=
+ +=n
iiinn xpxxpxp
01 α , (20)
при което коефициентите iα (отделен набор за всяко n) се определят от условията
( ) nipp in ,...,0,0,1 ==+ , където ( ) ( ) ( )∑=
≡n
kkjkikji xpxpwpp
1
, . (21)
По-конкретно, тъй като вече ( ) ijiji cpp δ=, за i и j ≤ n, то условието за ортогонал-
ност е
( ) ( ) ( ) 0,,,1 =+=+ kkkknkn pppxppp α . Следователно (22)
( )( ) nk
pp
pxp
kk
knk ,...,0,
,
, =−=α . (23)
Отчитайки отново взаимната ортогоналност на вече построените полиноми и пос-
тулираната рекурентна връзка, за числителите на коефициентите kα се получава:
( ) ( ) ( ) ( ) 2,...,0,0,,,,0
1 −==−== ∑=
+ nkppppxpppxpk
iiniknknkn α . (24)
Следователно, рекурентната връзка се опростява до
( ) ( ) ( ) ( ) ( ) 11
1 −−=
+ −−=+= ∑ nn
n
niiinn pxpxxpxxpxp γβα , (25)
където ( )( )nn
nnn pp
pxp
,
,=−= αβ и ( )( )11
11 ,
,
−−
−− =−=
nn
nnn pp
pxpαγ . (27)
Последният израз се опростява допълнително:
( ) ( ) ( ) ( ) ( ) ( )nnnnnnnnnnnnnn ppppppppxpppxp ,,,,, 221,111 =−−== −−−−−− αα , (28)
така че ( )
( )11,
,
−−
=nn
nn
pp
ppγ . (29)
От (20) непосредствено следва взаимната линейна независимост между полино-
мите от построяваната редица.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
92/106
Нелинейни модели
Ако векторът 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
+−=
−−∂∂
∂+−∂∂+≅ ∑∑∑
= == (30)
Приемайки израза (30) за точен, градиентът на S2 ще има вида:
( ) aHba δS +−=∇ 2 (31)
Така, след решаване на линейната система baH =δ , позицията на минимума на S2
ще бъде:
( )[ ]0(21)0(0 aHaa S∇−+= − (32)
На практика, заради приближението (30), изразът (32) се прилага итеративно:
( ) ( )( ) ( ) ,...2,1,111)1( =+= −−−− jjjjj bHaa , (33)
където j е поредният номер на итерацията.
Явният вид на компонентите на вектора b и на хесиана H в контекста на задачата
(31)/(32) е:
( ) ( )
( ) ( ) ( )[ ] ( )∑
∑
=
=
∂∂∂−−
∂∂
∂∂=
∂∂∂≡
∂∂−=
∂∂−≡
n
i lk
iii
l
i
k
i
ilkkl
n
i k
i
i
ii
kk
aa
yxyy
a
y
a
y
aa
SH
a
yyy
a
Sb
1
2
2
22
12
2
;~;~;~;~1
2
1
;~;~
2
1
axa
axax
axax
σ
σ (34)
(Разликата спрямо определенията (30) е единствено в множителя 1/2.)
Членът с вторите производни в елементите на хесиана H обикновено се пренеб-
регва по следните причини:
− При линеен модел този член е точно нулев, а при модел, близък до линейния –
пренебрежимо малък спрямо члена с първите производни;
− По силата на проверяваната хипотеза би трябвало случайните величини
( )ni
xyyz
i
iii ,...,1,
;~=−≡
σa
да имат гаусово разпределение с нулево очакване и
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
93/106
единична дисперсия и да не са корелирани с модела. Следователно,
( )[ ] ( )∑
=
→∂∂
∂−n
i lk
iii
i aa
xyxyy
1
2
20
;~;~1 aa
σ.
− Итеративната процедура (33) за минимизиране на S2 допуска големи неточности
при оценяване на матрицата H. Така например, минимизацията на S2 ще бъде
успешна и при процедура от вида
( ) ( ) ,...2,1,1)1( =+= −− jc jjj baa , (35)
където c е достатъчно малка положителна константа. (Вижда се, че (35) е равно-
стойно на прилагане на метода на най-бързото спускане (виж Глава 9) за мини-
мизиране на ( )a2S ).
Следователно, за практически цели е достатъчно хесианът да се оценява съгласно
израза:
( ) ( )∑
= ∂∂
∂∂=
n
i l
i
k
i
ikl a
xy
a
xyH
12
;~;~1 aaσ
(36)
Може да се покаже, че и при нелинейния модел за дисперсиите на параметрите
mkak ,...,1, = е справедлива оценката ( ) [ ]kkk Ha 12 −=σ .
Метод на Levenberg-Marquardt
Този метод за минимизиране на ( )a2S се основава на съчетаване на метода на об-
ратния хесиан (33) и метода на най-бързото спускане (35). Последният се прилага дале-
че от минимума, а с доближаване до минимума плавно се преминава към обръщане на
хесиана. Мотивацията за такава стратегия е следната. Методът на обратния хесиан мо-
же да бъде много ефективен, ако отправната точка ( )1−ja е близо до позицията на мини-
мума и е в сила приближението (31), но ако тази предпоставка не е изпълнена, прилага-
нето му може да доведе до нарастване на ( )a2S и отдалечаване от търсеното решение.
От друга страна, методът на най-бързото спускане, макар и не толкова ефективен, ще
гарантира намаляване на ( )a2S и далече от минимума, стига стъпката c да бъде доста-
тъчно малка, така че да не влиза в противоречие с локалността на информацията, съ-
държаща се в градиента ( )( )12 −∇ jS a .
Основните две идеи на метода на Маркварт са следните.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
94/106
Първата се отнася за начина на извличане на информация за големината или поне
мащаба на стъпката при метода на най-бързото спускане (35). Такава информация не се
съдържа в градиента, който указва само посоката към най-бързото нарастване на ( )a2S ,
но не и нужното преместване в тази посока. Идеята на Маркварт е (35) да се замени с
изразите
mka
Scbca
kkkkk ,...,1,
2
=∂∂−==δ , (37)
а приблизителният мащаб на търсеното преместване по всеки от параметрите на
модела да се получи от стойностите на елементите на хесиана (36).
Тъй като величината ( )a2S е безразмерна, компонентите на вектора b ще имат
размерността на ka
1, т.е. напр. cm-1, kWh, и т.н., при което всяка от тези размерности
може да бъде различна. Следователно, търсеният коефициент на пропорционалност kc
между kb и kaδ трябва да има размерността на 2ka . От друга страна, сред елементите на
H има точно един с тази размерност, а именно kkH
1, и той може да се използува за оп-
ределяне на мащаба на kc в (37). Във всички случаи, обаче, такава оценка ще бъде дос-
та груба и е възможно да доведе до прекалено голямо преместване. По тази причина се
въвежда настройващ безразмерен неотрицателен множител λ, който винаги може да
бъде избран много голям, така че стъпката срещу градиента да бъде безопасно малка:
kkk
k bH
aλ
δ 1= (38)
Допълнително удобство на конструкцията (38) е, че поради гарантираната поло-
жителност на kkH (виж (36)), стъпката ще бъде винаги в правилната посока.
Втората идея се отнася до начина на съчетаване на (38) с (33). При метода на
Маркварт това се прави чрез въвеждане на нова матрица H~
със следните елементи:
( )( )kjHH
HH
jkjk
jjjj
≠≡
+≡~
1~ λ
(39)
и решаване на задачата baH =δ~
. (40)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
95/106
Така, при малки стойности на λ задачата (40) се свежда до (33), т.е. до метода на
обратния хесиан, а при големи стойности на λ – до (38), т.е. до модификация на метода
на най-бързото спускане.
Стратегията за минимизация на ( )a2S с използуване на (40) е следната.
• Пресмятане на ( )a2S с начален оценен набор от параметри на модела.
• Избиране на малка начална стойност на λ, напр. 001.0=λ .
• (*) Решаване на линейната система (40) за aδ и пресмятане на ( )aa δ+2S .
• Ако ( ) ( )aaa 22 SS ≥+ δ , увеличаване на λ 10 пъти (или с друг достатъчно го-
лям множител) и връщане на стъпка (*).
• Ако ( ) ( )aaa 22 SS <+ δ , намаляване на λ 10 пъти, обновяване на пробния на-
бор от параметри aaa δ+← и връщане на стъпка (*).
Итерациите се прекратяват, когато намаляването на ( )a2S спадне под напр. 0.01,
или в относителна мярка под напр. 10-3. Итерациите не се прекратяват при нарастване
на ( )a2S , защото това е само признак, че оптималната стойност на λ още не е достигна-
та.
След прекратяване на итерациите се полага 0=λ и, както в линейния случай, се
пресмята 1−≡ HC за оценяване на неопределеностите на параметрите.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
96/106
12. Собствени стойности и собствени вектори на матрица
Скаларът λ и ненулевият вектор x са собствена стойност и собствен вектор на
квадратната матрица A, ако:
xAx λ= (1)
Ясно е, че всеки собствен вектор е определен с точност до константен скаларен
множител. Също така, от (1) се вижда, че за да съществуват ненулеви собствени векто-
ри, трябва да бъде в сила равенството:
( ) 0det =− 1A λ (2)
Ако размерността на A е n, то лявата страна на (2) е полином от степен n за λ и
собствените стойности на A са неговите нули. Тези собствени стойности не винаги са
различни помежду си и не винаги са реални. От (1) и (2) също следва, че между собс-
твените стойности и собствените вектори има еднозначно съответствие –
( ) niii ,...,1,, =xλ , без това да означава, че собствените вектори са винаги различни по-
между си. Добавянето напр. на xτ към двете страни на (1) води до отместване на собс-
твените стойности с адитивна константа τ, при което собствените вектори не се проме-
нят. В този смисъл нулевата собствена стойност не е особен признак, тъй като чрез та-
кова отместване която и да е собствена стойност може да бъде направена нулева, или
обратно – ненулева.
По-нататък е уместно да се напомнят някои определения и твърдения.
1. Една матрица е симетрична, ако е равна на своята транспонирана:
TAA = , или jiij aa = (3)
2. Матрицата е ермитова, ако е равна на комплексно спрегнатата на своята транспонирана (двойка
такива матрици се наричат взаимно ермитово спрегнати):
+= AA , или *jiij aa = (4)
3. Матрицата е ортогонална, ако нейната транспонирана е равна на нейната обратна,
1AAAA == TT , (5)
и унитарна, ако нейната ермитово спрегната е равна на нейната обратна. От (5) се вижда, че стъл-
бовете на ортогоналната матрица, разглеждани като вектори, са взаимно ортонормирани.
4. Матрицата е нормална, ако комутира със своята ермитово спрегната:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
97/106
AAAA ++ = (6)
Ясно е, че симетричните/ермитови и ортогоналните/унитарни матрици са нормални.
5. Всички собствени стойности на една симетрична/ермитова матрица са реални.
6. Собствените вектори на нормална матрица с различни собствени стойности са взаимно ортого-
нални и образуват базис в n-мерното векторно пространство.
7. Матрица, чиито стълбове са ортонормиран набор от собствени вектори е, очевидно, унитарна.
Също така, матрица, чиито стълбове са собствените вектори на реална симетрична матрица, е ортого-
нална, тъй като собствените вектори на въпросната реална и симетрична матрица са всичките реални.
8. Скаларът λ и векторът x, удовлетворяващи уравнението
TT xAx λ= (7)
се наричат съответно лява собствена стойност и ляв собствен вектор.
Транспонирането на (7) води до:
xxA λ=T (7а)
Левите собствени стойности са корени на уравнението ( ) ( ) 0detdet =−=− TT 1A1A λλ . Тъй
като детерминантата на една матрица съвпада с детерминантата на нейната транспонирана, то левите и
десните собствени стойности на всяка матрица са идентични.
Нека XR е матрица, чиито стълбове са десните собствени вектори на A, a XL – ма-
трица, чиито редове са левите собствени вектори на A. Тогава, (1) и (7) могат да се за-
пишат съответно във вида:
( )( ) LnL
nRR
XdiagAX
diagXAX
λλλλ
,...,
,...,
1
1
==
(8)
Ако първото уравнение се умножи отляво по XL, второто – отдясно по XR, и двете
се извадят почленно едно от друго, се получава:
( ) ( ) ( )( )RLnnRL XXdiagdiagXX λλλλ ,...,,..., 11 = . (9)
Тъй като единствените матрици, които комутират с диагонална матрица с различ-
ни елементи, са също диагонални, то, ако собствените стойности на A са различни по-
между си, левите и десните собствени вектори на A ще бъдат взаимно ортогонални. Те
винаги могат да бъдат нормирани (собствените вектори са определени с точност до
множител) така, че да се получи:
1XX =RL , т.е. 1−= RL XX . (10)
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
98/106
Така, умножаването на първото от уравненията (8) отляво по XL и използуването
на твърдението (10) води до израза:
( )nRR λλ ,...,11 diagAXX =− . (11)
Този израз е частен случай на подобно преобразование на матрицата A:
AZZA 1−→ , (12)
където матрицата на преобразованието Z може да бъде произволна.
Подобните преобразования запазват собствените стойности. И наистина,
( ) ( )( ) ( ) ( ) ( ) ( )1AZ1AZZ1AZ1AZZ λλλλ −=−=−=− −−− detdetdetdetdetdet 111 . (13)
Тъй като последният израз съвпада с лявата страна на (2), собствените стойности
на AZZ 1− съвпадат с тези на A.
Отчитайки (11) – (13) се вижда, че всяка матрица A с пълен набор от собствени
вектори (т.е. всяка нормална матрица, както и повечето случайни матрици) може да
бъде диагонализирана чрез подобни преобразования, при което стълбовете на прило-
жената за целта матрица на преобразованието ще бъдат десни собствени вектори
на A, а редовете на обратната на тази матрица – леви собствени вектори на A. (Естест-
вено, елементите на получената диагонална матрица ще бъдат съответните собствени
стойности на A.)
Собствените вектори на реална симетрична матрица са реални и ортонормирани.
(Тъй като AA =T , от ( )nRR λλ ,...,1diagXAX = следва, че ( ) TRn
TR XdiagAX λλ ,...,1= и (сра-
вни с второто уравнение в (8)) TRL XX = . Тогава, съгласно (10), 1XX =R
TR и матрицата
RX е ортогонална.) В този случай диагонализиращата матрица на подобното преоб-
разование (11) ще бъде ортогонална. Подобно преобразование от този вид се нарича
ортогонално:
AZZA T→ , (14)
където Z е ортогонална матрица.
На основата на горните разглеждания може да се формулира следната обща стра-
тегия за търсене на собствени стойности и собствени вектори: привеждане (или приб-
лижаване) на матрицата A до диагонален вид чрез последователност от подобни
преобразования:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
99/106
( )nλλ ,...,... 13211
11
21
3211
11
211
1
1
diagPPPAPPPPAPPPAPPAZZ
→→→→→−
−−−−−−
32143421 (15)
Когато този диагонален (или практически диагонален) вид бъде достигнат, стъл-
бовете на ефективната матрица на преобразованието
...321 PPPX =R (16)
ще бъдат собствени вектори на матрицата A.
Характеристично уравнение за собствените стойности
Възможен подход за намиране на собствените стойности на A е търсенето на ко-
рените на полиномното уравнение за λ, ( ) ( ) 0det ==− λλ nP1A , обикновено наричано
характеристично уравнение. Тъй като размерността на матрицата често е голяма, е же-
лателно характеристичният полином да се представи във вид, удобен за пресмятане и
използуване в алгоритми за търсене на нулите на полином – напр. ( ) ∑=
=n
i
iin aP
0
λλ .
Намирането на полиномните коефициенти niai ,...,0, = може да стане по т.нар.
метод на Крилов, основаващ се на следните разглеждания. Нека даден достатъчно
произволен вектор y може да се представи като линейна комбинация на собствените
вектори nii ,...,1, =x на матрицата A: ∑=
=n
ii
1ixy α с ненулеви множители nii ,...,1, =α .
Тогава, ако за ненулевия полином Qn е в сила равенството ( ) 0=AnQ , то и
( ) ( ) 01
==∑=
n
iiinin QQ xyA λα , където λi са собствените стойности на A. От последното
равенство следва, че ( ) niQ in ,...,1,0 ==λ . От друга страна, λi са нули на характеристич-
ния полином Pn, който е също от степен n, а два полинома от еднаква степен и със съв-
падащи нули могат да са различават само по общ мащабиращ множител. Така, в конте-
кста на решаваната задача полиномът Qn ще съвпада с характеристичния полином на
матрицата A.
Съгласно метода на Крилов, характеристичното уравнение се записва във вида
( ) 01
0
=+= ∑−
=
n
i
ii
nn bP λλλ . Тогава, при достатъчно произволно избран, но фиксиран нену-
лев вектор y равенството
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
100/106
01
0
1
0
=+=
+ ∑∑−
=
−
=
n
i
ii
nn
i
ii
n bb yAyAyAA (17)
може да се разглежда като система от n линейни уравнения за n-те неизвестни
10,..., −nbb
dCb = , (17a)
където:
( )kn
kd yA−= , ( )ki
kic yA= , k = 1,...,n; i = 0,..,n-1.
Коефициентите ( )ki
kic yA= пред неизвестните, както и свободният член
( )kn
kd yA= , могат да се получат чрез рекурентно построяване на редицата
( ) ( ) ( ) ( ) ( )1010 ,...,, −==≡ nn AvvAvvyv . (18)
Намиране на отбрани собствени стойности и собствени вектори
Степенна итерация
Нека собствените вектори на A образуват базис. Тогава, всеки вектор 0v може да
се представи като ∑=i
ii xv α0 , където nii ,...,1, =x са собствените вектори на A. Така,
ако iλ е собствената стойност, отговаряща на ix , то
∑∑ =≡=≡i
imii
mm
iiii xvAvxAvv λαλα 001 ...;; . (19)
Нека nλλλ ≥≥> ...21 . Тогава, ако 01 ≠α , то
1112 1
111 xxxv mm
n
ii
m
ii
mm λα
λλααλ →
+= ∞→
=∑ (19a)
От (19а) следва, че 1,
,1
v
vlim λ=+
∞→jm
jm
m, или
m
m
m vyvy.
.lim 1
1+
∞→=λ , (20)
където y е произволен неортогонален на 1x вектор. На практика е удобно y да се
избере с компонента 1 в позицията, отговаряща на максималната по модул компонента
на mv и 0 навсякъде другаде. Така се минимизират аритметичните операции, както и
грешката при деленето.
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
101/106
Ускоряване на сходимостта
От (19а) следва, че скоростта на сходимост на степенния метод ще зависи от от-
ношението 1
2
λλ
, известно като доминантно отношение. Ако то е твърде близо до 1,
може да се приложи някой от следните методи за ускоряване.
1) Нека, в съгласие с втория израз в (20):
1
1
21
2 111
2
1
1
111
211
2
1111
1
1 +
∞→
=
=
++
=
=
++
+ →
+
+
=+
+=
∑
∑
∑
∑ m
mn
i
m
ii
m
n
i
m
ii
m
n
i
mii
m
n
i
mii
m
mRλλγλ
λλβλα
λλβλα
λαλα
λαλα. (21)
Следователно, при достатъчно голямо m, ( )111 λλ −×=−+ mm RrR , където 1
2
λλ=r .
Тогава може да се приложи δ2-процесът на Айткен:
m
m
m
m
R
R
R
R
−−=
−− +
+
+
1
11
11
21
λλ
λλ
⇒
( ) ( )12
22
212
212
212
212
1 22 ++
++
++
+++
++
++
∆−∆∆−=
+−−−=
+−−=
mm
mm
mmm
mmm
mmm
mmm RRRR
RRR
RRR
RRRλ (22)
2) Ако всички собствени стойности са реални, то чрез заместване в степенната
итерация на A с 1A τ− , която има собствени стойности τλµ −= ii , при подходящ из-
бор на τ може да се намали отношението 1
2
µµ
и така да се ускори сходимостта.
Например, ако собствените стойности са положителни и nλ е най-малката измеж-
ду тях, то при nλτ = ще се ускори сходимостта, защото 1
2
1
2
λλ
µµ < . В действителност,
оптималната стойност на τ е 2
2 nλλ +. Ако има както положителни, така и отрицателни
собствени стойности, τ може да се избере така, че второто и третото по големина из-
между числата iµ да бъдат приблизително равни по модул и противоположни по знак.
3) Ако A е симетрична, нейните собствени вектори са ортогонални и
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
102/106
∑=
++ ==
n
i
miimmmm
1
1221 λαvvAvv , а ∑
=
=n
i
miimm
1
22λαvv , (23)
така че
+=+
m
mm
mm O2
1
21
1
λλλ
vvvv
. (24)
Обратна степенна итерация (метод на Виланд (Wielandt))
Нека е налице добра оценка τ за някоя собствена стойност, напр. jλ , т.е.
jkkj ≠−<<− ,τλτλ . Тогава, започвайки с произволен ненулев вектор 0v , може да се
организира итерацията
( ) ,...2,1,1 ==− − iii vv1A τ (25)
Ако nii ,...,1, =≠ λτ , то ( ) 1−− 1A τ съществува и итеративният процес има вида
( ) ,...2,1,11 =−= −
− iii v1Av τ (26)
на степенна итерация с матрица ( ) 1−− 1A τ , имаща собствени стойности
nkk
k ,...,1,1 =−
≡τλ
µ , (27)
при което jkkj ≠>> ,µµ . Ясно е, че така сходимостта към jµ ще е бърза.
Нека собствените вектори на A са nii ,...,1, =x и образуват базис. Лесно може да
се провери, че те са и собствени вектори на 1A τ− , както и на ( ) 1−− 1A τ . Тогава,
∑=
=n
iii
10 xv α и ( ) ( )∑
=
−
−=−=
n
iim
i
imm
10 xv1Av
τλατ , т.е.
( ) jjmji
i
m
i
jijjm
mj xxxv α
τλτλ
αατλ →
−−
+=− ∞→≠∑ (28)
Практическата процедура е следната. Нека на даден етап оценките на jx и jλ са
mv и mτ и се решава уравнението ( ) mmm vv1A =− +1τ , където mv е нормиран така, че
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
103/106
1. =mm vv . Тъй като 1+mv е подобрена оценка на jx , може да се приеме, че jm xv ≅+1 ,
т.е. ( ) ( ) 11 ++ −≅=− mmjmmm vvv1A τλτ . Тогава,
( ) mmmjmm vvvv .1. 1+−≅= τλ и mm
mj vv .
1
1+
+≅τλ . (29)
В действителност, получената оценка на jλ се приема за ново приближение 1+mτ .
Преди следващата итерация 1+mv се нормира: 1
11
+
++ ←
m
mm v
vv .
Преобразования на Якоби за симетрична матрица
Илюстрация на описания по-горе общ подход (15) е следната последователност от
ортогонални преобразования, водеща до асимптотично диагонализиране на реална си-
метрична матрица.
Ортогоналните матрици на преобразование се избират от вида:
−=
1
...
...
1
...
...
1
cs
sc
Ppq MM , (30)
където числата c и s са косинус и синус на някакъв ъгъл ϕ, така че 122 =+ sc ;
всички диагонални елементи, с изключение на c в редовете (и стълбовете) p и q, са 1;
всички извъндиагонални елементи, с изключение на ppq и pqp, означени с s и -s, са 0.
Така, всяко от ортогоналните преобразования ще бъде:
( ) ( ) ( ) ( )kpq
kTkpq
k PAPA 1−= . (31)
Индексът k бележи поредния номер на преобразованието, ,...2,1=k , а ( )0A е пър-
воначалната матрица A.
От (30) и (31) се вижда, че преобразованието ще засяга само матричните елементи
в редовете и стълбовете с номера p и q (по принцип различни при всяко прилагане на
(31)). Изразите за променените елементи са както следва:
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
104/106
( ) ( ) ( ) ( ) ( ) ( )
( ) ( )
( ) ( ) ( ) ( )qqppqppqqppq
qppqqqppqqqppqqqpppp
piipqiiqqiiqqiiqpiippiip
aascasca
scaacasascaasaca
qipisacaasacaa
−+−=
++=−+=
≠≠+=−=
22
2222
~2~;2~
,~;~
(32)
Идеята на метода на Якоби е да се нулират извъндиагоналните елементи чрез по-
редица от преобразования от типа (31)/(32). В частност, както следва от последния из-
раз в (32), за нулиране на ( )qppqa~ е нужно ъгълът ϕ да бъде решение на уравнението:
( )pq
ppqq
a
aa
sc
sc
222ctg
22 −=−≡ϕ (33)
За съжаление, следващи преобразования, които засягат някои от вече променени-
те редове или стълбове, в общия случай ще направят предходно нулираните извъндиа-
гонални елементи отново ненулеви. Независимо от това, сходимостта на метода на
Якоби е факт и се обосновава чрез следните разглеждания.
Нека текущите суми от квадратите на диагоналните и на извъндиагоналните еле-
менти са съответно
( ) ∑=−
iii
kd aS 21 и ( ) ∑
≠
− =ji
ijk
n aS 21 (34)
Тогава, от изразите (32) и условието ( ) 0~ =qppqa може да се покаже, че:
( ) ( ) 21 2 pqk
nk
n aSS −= − и ( ) ( ) 21 2 pqk
dk
d aSS += − (35)
И наистина,
( ) ( )( ) ( )( ) ( ) ( )( )[ ]
( ) ( ) ( ) ( ) ( )[ ]( ) 21
,
2222221
22
,
221
2
0
~~
pqk
n
qpi
qiiqpiipk
n
qppq
qpipiipqiiqqiiqpiip
kn
kn
aS
ascascS
aasacasacaSS
−=
+++++=
++++−+=
−
≠
−
≠
−
∑
∑
, (36)
където ( )1−knS е сумата на квадратите на извъндиагоналните елементи, изключваща
извъндиагоналните елементи на редовете/стълбовете p и q. Второто твърдение в (35)
също може да се провери пряко, но то следва и от факта, че ортогоналните преобразо-
вания не променят сумата от квадратите на матричните елементи.
В разглеждания частен случай на матрицата (30) горното твърдение може да се докаже непосредс-
твено. Нека x е произволен ненулев вектор. За елементите на вектора xPy pq= може пряко да се прове-
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
105/106
ри, че qpixy ii ,, ≠= , qpp sxcxy += , qpq cxsxy +−= . Аналогично на (36) може да се покаже, че
∑∑==
=n
ii
n
ii xy
1
2
1
2 . Напълно аналогично, същият резултат се получава и за xPy Tpq= . Тогава, нека
APB Tpq= . От горното следва, че сумата от квадратите на матричните елементи на B ще бъде равна на
сумата от квадратите на матричните елементи на A. Нека сега pqBPC = , т.е. ( )TTTpqBPC = . По същия
начин следва, че сумата от квадратите на матричните елементи на C ще бъде равна на сумата от квадра-
тите на матричните елементи на B. Сравнението с (31) показва, че C се отнася към A както ( )kA към
( )1−kA в (31).
Следователно, в хода на ортогоналните преобразования извъндиагоналната норма
намалява монотонно. Тъй като нейната стойност е ограничена отдолу с нула, и тъй като
изборът на p и q, а оттам и на apq, е напълно свободен, редицата от извъндиагонални
норми може да бъде построена така, че да се схожда към нула.
В действителност, след даден номер на итерацията ( )kA ще се окаже диагонална в
рамките на точността на машинното представяне. Нейните елементи ще бъдат собстве-
ните стойности на A, а стълбовете на матрицата ( ) ( ) ( )kpqpqpq PPPV ...21= ще съдържат собстве-
ните вектори на A. Изграждането на тази матрица става в хода на преобразованията:
( )ipqVPV ← , започвайки с 1V = . Или, по-конкретно:
nicssc iqipiqiqipip ,...,1,vvv~;vvv~ =+=−= . (37)
_________________________________________________________________
Литература
1. W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery: Numerical
recipes in FORTRAN, Second Edition, Cambridge University Press, 1992
2. R. Landau, M. Paez, C. Bordeianu, A Survey of Computational Physics
(Introductory Computational Science), Princeton University Press, 2012
3. M. Hjorth-Jensen, Computational Physics, University of Oslo (2013)
4. James F. Epperson, An Introduction to Numerical Methods and Analysis, Second
Edition, John Wiley & Sons, 2013
Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2016 г.
106/106
5. Дж. Форсайт, М. Малкълм, К. Молер, Компютърни методи за математичес-
ки пресмятания, Наука и изкуство, София, 1986 (G. Forsythe, M. Malcolm, C. Moler,
Computer Methods for Mathematical Computations, Prentice-Hall, 1977)
6. Б. Х. Сендов, В. А. Попов, Числени методи, Наука и изкуство, София, 1975
7. Б. Банди, Методы оптимизации. Вводный курс, Москва, Радио и связь, 1988
(B. Bunday, Basic Optimisation Methods, Edward Arnold, 1984)