108
Записки на лекционния курс по Програмиране и изчислителна физика”. И. Христосков, юни 2018 г. 1/108 ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА, 2018 г. 1. Принципи на числения анализ. Особености на машинните пресмятания ............ 2 2. Преки методи за решаване на системи от линейни алгебрични уравнения ......... 8 3. Итеративни методи за системи с големи разредени матрици .............................. 18 4. Подобряване на точността на числени оценки ...................................................... 28 5. Интерполация ............................................................................................................ 36 6. Числено интегриране ................................................................................................ 42 7. Обикновени диференциални уравнения ................................................................. 51 8. Нелинейни уравнения............................................................................................... 59 9. Минимизация ............................................................................................................ 67 10. Генериране на случайни числа с избрано разпределение................................... 78 11. Моделиране на данни ............................................................................................. 84 12. Собствени стойности и собствени вектори на матрица ...................................... 96 Литература ................................................................................................................... 108

ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

1/108

ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА, 2018 г.

1. Принципи на числения анализ. Особености на машинните пресмятания ............ 2

2. Преки методи за решаване на системи от линейни алгебрични уравнения ......... 8

3. Итеративни методи за системи с големи разредени матрици .............................. 18

4. Подобряване на точността на числени оценки ...................................................... 28

5. Интерполация............................................................................................................ 36

6. Числено интегриране................................................................................................ 42

7. Обикновени диференциални уравнения................................................................. 51

8. Нелинейни уравнения............................................................................................... 59

9. Минимизация ............................................................................................................ 67

10. Генериране на случайни числа с избрано разпределение................................... 78

11. Моделиране на данни ............................................................................................. 84

12. Собствени стойности и собствени вектори на матрица...................................... 96

Литература................................................................................................................... 108

Page 2: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

2/108

1. Принципи на числения анализ. Особености на машин-

ните пресмятания

Изчислителна физика е специфично приложно поле на числения анализ, състоящо

се в изучаване и прилагане на числени алгоритми за решаване на задачи на физиката, за

които съществува количествена теория.

Предмет на числения анализ е създаването, прилагането и изучаването на методи

за решаване на математически задачи чрез машинно изпълнявана последователност от

аритметични действия. Това включва три свързани помежду си кръга от дейности:

− получаване на числени стойности на решения на уравнения, пресмятане на сто-

йности на математически изрази, функции, функционали и т.н.;

− разработване на методи (числени алгоритми) за намиране на такива стойности;

− анализ на свойствата на тези методи.

Крайна приложна цел на числения анализ е ефективното пресмятане на точни

приближения на решенията на математически задачи. Двата основни типа затруднения

при постигането на тази цел са:

− неизбежните грешки от закръгление, възникващи в хода на пресмятанията;

− съществуването на задачи, чието точно решаване изисква безкраен обем инфор-

мация и/или безкраен брой изчислителни операции. Практическата невъзмож-

ност за удовлетворяване на това изискване налага търсенето на приблизително

решение, чието отклонение от точното решение се нарича грешка от дискрети-

зация.

Някои принципи и особености на изчислителните методи за решаване на матема-

тически задачи са илюстрирани в следващите раздели – напр. чрез задачите за дифе-

ренциране, интегриране, решаване на линейни и нелинейни алгебрични уравнения, ин-

тегриране на обикновени диференциални уравнения и т.н.

Page 3: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

3/108

Особености на представянето на числени данни

Цели числа

Общият модел за представяне на едно цяло число е:

∑=

−××=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

При операциите между аритметични данни от цял тип е важно да се помни, че:

Page 4: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

4/108

− резултатът от операцията ще бъде също от цял тип – напр. 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ε , тъй като това е горната граница на ефекта от закръгление до най-близкото предс-

тавимо число. Както ще бъде показно по-долу, обаче, относителната грешка на резулта-

та от аритметична операция между две реални числа в някои случаи може да бъде мно-

го по-голяма.

Page 5: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

5/108

При 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)

Чрез интегриране по части може да се покаже, че

Page 6: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

6/108

,...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. (Относителната грешка ще намалява по-бързо от абсолютната, защото

Page 7: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

7/108

10 −<< nn EE .) Тогава, например, при стартиране с n=20, абсолютната грешка на E10 ще

бъде не по-голяма от 1510710

1...

19

1

20

1

21

1 −×≅ . (В действителност, поради неточност на

операциите в (5), не може да се разчита на относителна грешка на резултата, по-малка

от mε .)

Page 8: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

8/108

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) се базира на едно от основните

свойства на линейните системи, съгласно което заместването на дадено уравнение с

Page 9: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

9/108

линейна комбинация между него и които и да е други уравнения не променя решението

на системата.

В този смисъл, построяването на (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-тото и системата ще стане неопределена. В междинните случаи

Page 10: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

10/108

ефектът от грешките от закръгление при пресмятане на 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)

Page 11: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

11/108

– уравненията (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 .}

Page 12: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

12/108

Фиг. 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 ×= αα , където α е скалар

Page 13: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

13/108

− 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

λλκ = .

В рамките на този подход може също така да се покаже, че

Page 14: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

14/108

( )

+×≤

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 �� , където mεδ ≤ . С � се бележи една от операциите +, -, *, /, а ( )⋅fl означава

машинното представяне на дадено реално число. На тази основа разпространението на грешките при

пресмятане на израз от вида ∑=

n

iii yx

1

се анализира по следния начин. Натрупването на сумата става чрез

последователността от присвоявания 0,,...,1, 01 ==+= − sniyxss iiii . Всяко присвояване изисква

машинно представяне на междинните резултати, така че:

Page 15: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

15/108

( ) ( )( ) ( ) ( )[ ]( ) ( )( ) ( ) ( )[ ]( ) ( ) ( )

( )

( )( ) ( )[ ]( ) ( ) ( )

( ) ( )δδ

δδδδδ

δδδδδδδδδ

δ

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)

Page 16: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

16/108

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 −= ˆ~ . Тази процедура може да се пов-

Page 17: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

17/108

таря многократно до достигане на сходимост. Това е особено удобно да се прави на

базата на LU разлагането, защото решаването на (19) ще се свежда единствено до обра-

тния ход. Пресмятането на остатъка r трябва да бъде в двойна точност, тъй като него-

вите компоненти се формират като разлики на много близки числа.

Page 18: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

18/108

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 += ˆ (което е в сила,

Page 19: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

19/108

защото 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)

Page 20: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

20/108

Последното неравенство се дължи на факта, че 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.

Page 21: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

21/108

Контрол на сходимостта

Всички разгледани дотук методи се характеризират с монотонно намаляване на

модула на вектора на грешката в хода на итерациите, т.е. редицата от последователните

приближения ( ) ( ) ( ) ( ),...,,...,, 110 jj xxxx − се схожда монотонно към точното решение на ли-

нейната система x. В този смисъл, критерият за прекратяване на итерациите ще бъде

( ) ( ) ( )jjj xxx ε≤− −1 , където ∗ е някаква векторна норма, а ε е подходящо избрано

малко число. На практика е удобно да се използува следният критерий за сходимост:

( ) ( ) ( )jk

k

jk

jk

kxxx maxmax 1 ε<− − . Така се избягват допълнителни итерации заради малки и

маловажни бавно схождащи се компоненти на вектора на решението.

Метод на полиномите на Чебишев

Нека чрез последователно прилагане на стационарния итеративен процес:

( ) ( ) qxBx += −1ˆ jj (11)

е получена редицата приблизителни решения ( ) ( )kxx ,...,1 .

Примери за такъв процес са методите на Якоби (3), на Гаус-Зайдел (9), а следова-

телно и SOR (10). В други случаи матрицата B и векторът q не са достъпни в явен вид,

а просто е известно, че новото приближение на решението ( )jx е линейно изображение

на старото приближение ( )1j −x . Изразът (11) може да се получи и по общо от поставе-

ната задача bxA =ˆ : ( ) ( ) ( )( ) ( ) ( ) ( ) qxBbCxAC1bxACxx +=+−=−−= −−−− 1111 ˆˆˆˆˆˆˆ jjjjj . Матри-

цата C следва да се избере така, че да осигури максимално бърза сходимост. Вижда се

впрочем, че най-добрият избор, който дава точно решение без итерации, е 1ˆˆ −= AC , но

той обезсмисля целия подход, защото е еквивалентен на предварително решаване на

системата.

Нека искаме да получим подобрено решение във вида:

( ) ( ) ( )∑=

=k

j

jkj

k

0

xy ν (12)

Нека ( ) ( ) xxe −≡ jj и ( ) ( ) xye −≡ kk~ са съответно грешките на приближенията ( )jx

и на подобрената оценка ( )ky , а ( )0e е грешката на началното приближение. Тъй като за

точното решение x изразът (11) е тъждество, то:

Page 22: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

22/108

( ) ( )0ˆ eBe jj = (13)

Също така за точното решение, т.е. ( )j =x x , линейната комбинация (12) трябва да

бъде равна на x . Следователно трябва ( )

0

1k

kj

j

ν=

=∑ . Така от последното и от (12) и (13)

следва, че:

( ) ( ) ( ) ( )( ) ( ) ( ) ( )0

0

0

0

ˆˆ~ eBeBee k

k

j

jkj

k

j

jkj

k P=== ∑∑==

νν , (14)

където ( )ˆkP B е полином на матрицата B от степен k. И съответно:

( ) ( ) ( )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 трябва да се конструира така, че максималният

Page 23: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

23/108

модул на заеманите от него стойности при [ ]Mm,∈λ да бъде минимален измежду вси-

чки полиноми от степен k. На това условие, но за независима променлива w в интервала

[ ]1,1+− , отговаря полиномът на Чебишев:

( )( ) [ ]

( )1

1

cos cos , 1, 1, 0

cosh cosh , 1k

k w wC w k

k w w

∈ − += ≥≥

(19)

За полиномите на Чебишев е в сила следната рекурентна връзка

( ) ( ) ( ) 1,2 11 ≥−= −+ kwCwwCwC kkk , ( ) ( ) wwCwC == 10 ,1 (20)

Полиномът ( )kP λ от (14) и (18) може да придобие желаното свойството на поли-

ном на Чебишев чрез линейна смяна на независимата променлива, която изобразява

[ ],m Mλ ∈ в [ ]1,1+−∈w :

( ) ( ) ( )2w M m M mλ λ= − − − (21)

Практическата задача се свежда до използване на (20)/(21) за определяне на мно-

жителите ( ) kjkj ,...,0, =ν в (12), които са коефициентите пред степените на независима-

та променлива в полинома ( )λkP . Тъй като връзката (12) трябва да бъде тъждество за

точното решение x, то се изисква нормировката ( )ˆ ˆkP =1 1, което означава:

( ) ( ) 110

==∑=

k

k

j

kj Pν (22)

Окончателно, с удовлетворяване на изискването (22), търсеният полином е:

( ) ( )( ) ( )( )1k k kP C w C wλ λ= (23)

Коефициентите пред степените на независимата променлива в полинома (23) са

подлежащите на определяне множители ( ) kjkj ,...,0, =ν в (12) и тяхното получаване не е

принципен проблем. Значително по-добре е обаче подобреното решение (12) да се

конструира направо чрез триместна рекурентна връзка. Това може да стане на основата

на такава връзка за полинома (23), която от своя страна може да се изведе от (20) по

следния начин.

С използване на (20) и (23), за ( )( )1kP w λ+ се получава:

Page 24: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

24/108

( )( ) ( )( ) ( )( )( ) ( )( ) ( )( )

( )( )( ) ( )( )

( )( )( )( ) ( )( ) ( )( )

( )( ) ( )( )

1 1 1

1

1

11

1 1

1

2

1

2 1 1 1

11 1

k k k

k k

k

k kk k

k k

P w C w C w

w C w C w

C w

w C w C wwP w P w

wC w C w

λ λ

λ λ λ

λλ λ

+ + +

+

−−

+ +

=

−=

= −

(24)

Отново с използване на (20) за ( )( )11 wCk− :

( )( )( )( )

( ) ( )( ) ( )( )( )( ) 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)

( )( ) ( )( ) ( )( ) ( ) ( )( )1 1 1 111k k k k k

wP w P w P w

w

λλ β λ β λ+ + + −= − − (25c)

От (23) следва, че ( )0 1P λ = и

( ) ( )( )1

21

1 2

w M mP

w M m

λ λλ αλ α− −= = = + −− −

, (26a)

където mM −−

≡2

2α (26b)

Така, окончателно, търсената рекурентна връзка за ( )kP λ е:

( ) ( ) ( ) ( ) ( )1 1 1 11 1k k k k kP P Pλ β αλ α λ β λ+ + + −= + − + − (27)

Получената връзка (27) се прилага за изграждане на аналогична връзка между

приближенията на решението на линейната система. Това се прави на основата на изра-

за за грешките (14):

( ) ( ) ( )

( ) ( ) ( )( ) ( ) ( )

( ) ( )( )00

111

01

1

~

~1~1~ˆ

ˆ~

ee

eeeB

eBe

=

−+−+=

=−

++

++

kk

kkk

kk P

βααβ (28a)

В (28а) е използван фактът, че ( ) ( ) ( )0ˆ kkP =B e eɶ и ( ) ( ) ( )0 1

1ˆ k

kP −− =B e eɶ .

Или:

Page 25: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

25/108

( )( ) ( )( ) ( ) ( )( )( ) ( ) ( )( )xyxyxyBxy −−+−−+−=− −++

+ 111

1 11ˆ kk

kkk

k βααβ (28b)

За точното решение x основната итерация (11) има вида qxxB −=ˆ , т.е.:

( )( ) ( ) xqyBxyB −+=− kk ˆˆ (29)

След заместване на (29) в (28b):

( )( ) ( )( ) ( ) ( )( )( ) ( ) ( )( )( ) ( )( )( ) ( )( )xxx

yyqyBxy

−−+−−+−+−+−++=−

++

−++

+

11

111

1

11

11ˆ

kk

kk

kkk

k

βααββααβ

(30)

Вторият ред в (30) е равен на −x , така че окончателно за подобреното решение:

( ) ( )( ) ( ) ( )( )( ) ( ) ( )( ) 1,11ˆ 111

1 ≥−+−++= −++

+ kkk

kkk

k yyqyBy βααβ (31a)

Естествено, ( ) ( )00 xy = , а от (26a):

( ) ( )( ) ( ) ( )( )001 1ˆ yqyBy αα −++= (31b)

Нужното за прилагане на (31) ( ) ( )* 1 ˆk k+ ≡ +y By q е решението, пряко получено чрез

основния итерационен процес (11).

Остава въпросът за оценяване на границите на собствените стойности m и M,

които обикновено не са известни отнапред. Те са нужни за пресмятане на множителите

α и βk+1. За работоспособността на метода (31) е важно да има добра оценка за 1λ≥M ,

докато за m е достатъчно да се избере число, което не надхвърля минималната собстве-

на стойност nλ . Ако основният итерационен процес (11) е сходящ, може да се приеме

1−=m или даже Mm −= (ако оценката за M наистина надхвърля 1λ ), а ако матрицата

B е положително определена, подходящ избор е 0=m .

Процедурата за оценяване на M се основава на проследяване на поведението на

псевдоостатъка на линейната система:

( ) ( ) ( ) ( ) ( )* 1 ˆk k k k k+≡ − = + −δ y y By q y (32)

Тъй като за точното решение итерацията (11) е равностойна на ( ) qxB1 =− ˆˆ , от оп-

ределението ( ) ( ) xye −≡ kk~ и от (14) следва:

( ) ( ) ( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ( ) ( )0ˆˆˆ~ˆˆ

ˆˆˆˆˆˆˆ

eB1Be1B

x1By1ByxB1yBδ

kk

kkkk

P−=−=

−−−=−−+=, (33)

Page 26: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

26/108

т.е.

( ) ( ) ( )[ ]

( ) ( )2

0

,2

0

22maxˆ δδBδ λ

λ kMm

kk PP

∈=≤ , (34a)

Тук е използван фактът, че ( ) ( ) ( )0 0ˆˆ= −δ B 1 e .

Или:

( )

( ) [ ]( )λ

λ kMm

k

P,

2

02 max

∈≤

δ

δ (34b)

Нека оценяването на M се прави чрез последователни приближения отдолу, т.е.

текущата оценка, която е използвана за (31) и съответно чрез която е построен полино-

мът ( )kP λ , е MM ≤~. От поведението на ( )kP λ , който е монотонно растяща функция

при Mλ ≥ ɶ , т.е. ( ) 1w λ > , (Фиг. 1) се вижда, че [ ]

( ) ( )MPP kkMm

=∈

λλ ,max . Така новата оцен-

ка M може да се търси като решение на уравнението:

( )( )

( )2

02

δ

δ k

k RMP ≡= (35a)

Или:

( )( ) ( )( )1wRCSMwC kk ≡= (35b)

Отново от допускането, че MM~≥ , т.е. ( ) 1>Mw , и от (20) следва:

( )( ) ( )( ) SMwkMwCk == −1coshcosh . (36a)

Решението на уравнението (36а) е:

( ) ( ) ( ) ( )

≡=−−−= − Sk

QmMmMMMw 1cosh1

cosh~~

2 , (36b)

или окончателно:

( ) ( )[ ]mMQmMM −++= ~~2

1 (36c)

Обикновено е целесъобразно процесът (31) да се изпълнява с текущата оценка M~

до някоя фиксирана и не твърде голяма стойност k, след което да се получи нова оценка

съгласно (36c) и описаният цикъл да се повтаря до сходимост на решението.

Page 27: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

27/108

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(λ); M=0.95; m=-M

R *

*

P9(

λ)

λ

Фигура 1. Поведение на ( )9P λ . Илюстрация към начина на определяне на макси-

малната собствена стойност M на матрицата на итерационния процес B .

Итерациите би следвало да се прекратят, когато:

( ) ( ) ( )kkk yxye ε≤−≡~ (37)

където критерият за точност ε е подходящо избрано малко число. Тъй като точ-

ното решение x е неизвестно, контролът на точността се прави отново чрез псевдооста-

тъците. Поради връзката (33):

( ) ( ) ( ) ( )kkk

Mδδ1Be

−=−≤

1

1ˆˆ~ 1, (38)

В последното равенство е използван фактът, че 1<M . Тъй като обаче точна

оценка на M също няма, приложимият критерий за прекъсване е:

( )( )k

k

My

δε≤

− ~1

(37)

Page 28: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

28/108

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 равноотдалечени аб-

сциси:

Page 29: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

29/108

( ) ( )

( ) ( )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

.

Page 30: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

30/108

Ако ∑ 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.

Page 31: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

31/108

Числено диференциране

Общоприет начин за апроксимиране на първата производна на дадена функция е

т.нар. крайна разлика, пример за която е лявата страна на израза:

( ) ( ) ( ) ( ) ...''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), грешката от дискретизация при пресмятане

на производната е

Page 32: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

32/108

( )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).

Page 33: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

33/108

На основата на анализ, аналогичен на направения в предходния случай, се полу-

чава, че оптималната стъпка ще бъде:

( )( ) 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)

Page 34: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

34/108

На основата на (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)

Page 35: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

35/108

Последователността на пресмятане на 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 .

Page 36: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

36/108

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− са идентични.

Удобен начин за конструиране на единствения интерполиращ полином за двойки-

те ( ) niyx ii ,...,1,, = е следният:

Page 37: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

37/108

( ) ( ) ( )∑=

−− =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), изградена съгласно споменатите изисквания,

се нарича сплайн.

Ако, в частност, m = 1, получената прекъснато-линейна интерполираща функция

може да удовлетвори само условията (1), но не и допълнителни изисквания за гладкост.

В този случай явният вид на локалните полиноми ще бъде:

Page 38: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

38/108

( )( ) ( )( ) ( )( ) 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), а

( )( ) ( ) ( ) ( ) ( )( )( )xxxx

x iiiii ωωψ −−≡ + 32

1

6 и ( )( ) ( ) ( ) ( ) ( )( )( )xx

xxx iiiii ωωψ −−≡ + 3

21

6 (10)

са полиноми от трета степен със следните свойства:

Page 39: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

39/108

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) е тридиагонална, симетрична и диагонално преобла-

даваща, така че подходящ метод е гаусовата елиминация без избор на водещ елемент.

Нека, в общия случай, уравненията от такава система се запишат във вида:

( )0

,...,1,

1

11

====++ +−

n

iiiiiii

ca

nidxcxbxa (14)

Лесно може да се провери, че след правия ход на елиминацията те ще придобият

вида:

Page 40: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

40/108

)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 = .

Page 41: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

41/108

-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 възела и интерполацията с естествен куби-

чен сплайн.

Page 42: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

42/108

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. Правило на правоъгълниците

Page 43: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

43/108

Правило на трапеците

Методът се състои в разбиване на [ ]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)

Page 44: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

44/108

Фигура 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. Правило на Симпсън

Page 45: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

45/108

Контрол на точността

Задачата е да се оцени грешката на квадратурната оценка. Подходът се основава

на известните връзки (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, ... се дефинират аналогично на предходния случай. Аналоги-

чен е и критерият за сходимост.

Page 46: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

46/108

На основата на (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. Именно такава е стратегията на т.нар. Гаусова квадратура.

Page 47: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

47/108

И така, търсената квадратурна формула е от вида:

( ) ( ) ( )

( ) ( ) 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. Нека ( ) ( ) ( )0 11, ,..., ,...nQ x Q x Q x≡ са ортогонални полиноми относно тегловната

функция ( )xw в [ ]ba, .

За тях е в сила:

( ) ( ) ( )

( )

0,

0,

,

b

i ja

i jdxw x Q x Q x

i j

i j n

= ≠≠ =

∫ , (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].

Page 48: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

48/108

За обосноваване и прилагане на Гаусовата квадратура са нужни някои сведения за орто-

гоналните полиноми и за начина на тяхното построяване.

Полиномите ( )xpi и ( )xp j , съответно от степени i и j, са взаимно ортогонални относ-

но тегловната функция ( )xw в интервала [ ]ba, , ако:

( ) ( ) ( ) ( ) ij

b

a jiji xpxpxdxwpp δ=≡ ∫, , (i)

където ijδ е символът на Кронекер.

Общата процедура за изграждане на система от ортогонални полиноми (процедура на

Грам-Шмидт) се състои в полагане на 10 =p и намиране на полиномите от по-висока

степен чрез рекурентната връзка

( ) ( ) ( ) ( )∑=

+ +=n

ii

ninn xpxxpxp

01 α , (ii)

при което коефициентите ( )niα се определят от условията

( ) nipp in ,...,0,0,1 ==+ . (iii)

По-конкретно, тъй като вече ( ) ijji pp δ=, за i и j ≤ n, то условието за ортогоналност е

( ) ( ) ( )( ) nkpppxppp kkn

kknkn ,...,0,0,,,1 ==+=+ α . Следователно

( ) ( )( )kk

knnk pp

pxp

,

,−=α . (iv)

Отчитайки отново взаимната ортогоналност на вече построените полиноми и постули-

раната рекурентна връзка, за числителите на коефициентите ( ) 2,...,0, −= nknkα се

получава:

( ) ( ) ( ) ( )( ) 0,,,,0

1 =−== ∑=

+

k

iin

kiknknkn ppppxpppxp α . (v)

Следователно, рекурентната връзка се опростява до

( ) ( ) ( ) ( ) ( ) ( ) 11

1 −−=

+ −−=+= ∑ nn

n

nii

ninn pxpxxpxxpxp γβα , (vi)

където ( ) ( )( )nn

nnnn pp

pxp

,

,=−= αβ и ( ) ( )( )11

11 ,

,

−−

−− =−=

nn

nnnn pp

pxpαγ . (vii)

Последният израз се опростява допълнително:

Page 49: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

49/108

( ) ( ) ( ) ( ) ( ) ( ) ( )( )

1 11 1 1 , 1 2 2, , , ,

,

n nn n n n n n n n n n n n

n n

xp p p xp p p p p p p

p p

α α− −− − − − − −= = − −

=, (viii)

така че ( )

( )11,

,

−−

=nn

nn

pp

ppγ . (ix)

След ортогонализацията полиномите могат да се нормират: ( )ii

ii

pp

pp

,← .

Примери:

Полиноми на Лежандър: [ ] [ ]1,1, −=ba и ( ) 1=xw .

Полиноми на Чебишев: [ ] [ ]1,1, −=ba и ( )21

1

xxw

−= .

Полиноми на Лагер: [ ] [ ]∞= ,0,ba и ( ) ( ) 1,exp −>−= αα xxxw .

Полиноми на Ермит: [ ] [ ]∞∞−= ,,ba и ( ) ( )2exp xxw −= .

4. Нека:

а) Възлите в (1) са нулите на ( )xQn ;

б) Теглата { } niai ,...,1, = са избрани така, че при тези възли квадратурата (1)

да бъде интерполационна, т.е. точна за всички ( )f x , които са полиноми със сте-

пен 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. Той винаги може да се

представи във вида:

Page 50: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

50/108

( ) ( ) ( ) ( )xrxqxQx nnnn 1112 −−− +=Φ , (4)

където частното ( )xqn 1− и остатъкът ( )xrn 1− са полиноми от степен, не по-висока от

n-1.

Тогава:

( ) ( ) ( ) ( ) ( )

( ) ( ) ( ) ( )

31 2

2 1 1 11

4 5

1 1 2 1( 0)1 1

0nb b

n n i n ia ai

n n

i n i n i n i i n ii i

dxw x x dxw x r x a r x

a Q x q x r x a x

− − −=

− − −== =

Φ = + = =

+ = Φ

∑∫ ∫

∑ ∑

�������������� ���������

��������������� ������� (5)

Вторият израз е поради (3) и (4), третият е еквивалентен на втория поради избора

на тегла, четвъртият е еквивалентен на третия поради избора на възли, а петият е ал-

тернативен запис на четвъртия (поради (4)).

Така беше доказано, че при споменатия по-горе избор на n на брой възли и тегла,

квадратурната формула (1) е точна за подинтегрални функции ( )f x , които са полино-

ми от степен 2n-1. Тук е уместно да се напомни, че при разгледаните по-горе елемен-

тарни алгоритми тази степен не може да бъде по-висока от n-1.

Page 51: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

51/108

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 на основата на предходните стойности:

( )11,..., +−−= knnn yyy ϕ . При k =1 методът е едностъпков.

Например, методът на Ойлер е едностъпков от следния вид:

( ) ( ) ( )( ) ( )

( ) ( )nnnnnn yxfhyyxy

yxfhyyxy

hOyxfhyyxy

,

....

,

,

11

111122

20000011

+=≈

+=≈++=≈

++

(3)

(Този метод може да бъде обоснован чрез развиване на зависимата променлива

( )xy в тейлоров ред около началото на стъпката.)

Page 52: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

52/108

Методи, основаващи се на Тейлоровия ред

Стига да могат да бъдат пресметнати производните на зависимата променлива до

достатъчно висок ред, интегрирането на едно ОДУ може да се извърши със съответната

желана точност:

( )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 да бъде минимален.

Page 53: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

53/108

Съставянето на уравнения за параметрите става чрез развиване на ( )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)

Page 54: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

54/108

(Приема се, че началното условие е точно, т.е. ( )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 ,

Page 55: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

55/108

който съвпада, включително и по точност, с правилото на Симпсън за интегрира-

не на ( )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×=δ . Тогава, ако при текущата стъпка h се

е получила грешка δ, то желаната стъпка за постигане на грешка δ0 ще бъде:

0.2

00h h

δδ

=

(19)

Ако 0h h< , интегрирането от позиция x се повтаря с новата, по-малка стъпка h0.

Ако 0h h> , се продължава напред от 2x h+ с новата, по-голяма стъпка h0.

В случая на система от ОДУ δ е вектор и, като правило, се избира нормата

iii

yy ,1,2max −≡δ .

Page 56: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

56/108

Възможни са и други варианти за конструиране на критерия за точност.

Ако, например, се дефинира 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)

Page 57: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

57/108

чието решение е ( )cxy −= exp

При схемата на Ойлер:

( ) nnnn ychhyyy −=+=+ 1'1 (22)

е нужно да се поддържа ch /2< , тъй като иначе ∞→

∞→n

ny , което е очевидна проя-

ва на нестабилност на решението.

Схемата (22) се нарича явна, защото 1+ny се получава явно от предходната стой-

ност ny .

Най-простият начин за преодоляване на строгото ограничение за размера на стъп-

ката е използуването на т.нар. неявна схема, основаваща се на развитието

( ) ( ) ( ) ...' ++−+= hxhyhxyxy :

( )ch

yhyyy n

nnn +=+= ++ 1

' 11 (23)

Схемата (23) е безусловно стабилна, защото винаги се осигурява вярното поведе-

ние на решението: ∞→

→h

ny 0.

Обобщение за система от обикновени линейни диференциални уравне-

ния

Нека 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 .

При неявната схема на Ойлер се получава:

Page 58: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

58/108

( ) nnnn hh yC1yyy 111 ' −

++ +=+= (25)

Нека ( ) 1−+= hC1A . Ако 1...0 λλ ≤≤< N са собствените стойности на C, то

( ) 11 −+= ii hλµ ще бъдат собствени стойности на A. Ясно е, че винаги е в сила неравен-

ството 1<iµ (C е положително определена).

Обобщение за система от ОДУ

Нека ( )yfy =' . (За случая ( )yfy ,' x= винаги може да се положи

=

1

fy

x.)

Неявната схема на Ойлер дава:

( )11 ++ += nnn h yfyy (26)

Десните части могат да се линеаризират:

( ) ( )( )[ ]

( )n

n

nnnnnn h

yyf

yJ

yyyJyfyy

∂∂≡

−++= ++ 11

(27)

Така: ( )[ ] ( )nnnn hh yfyJ1yy 11

−+ −+= (28)

Заради явното развитие на десните части такъв метод се нарича полунеявен.

Page 59: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

59/108

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 са

Page 60: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

60/108

съответно текущата и предходната грешка на решението (дължина на интервала, ог-

раждащ нулата), а константата 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)

Следователно, сходимостта на метода на Нютон-Рафсон е квадратична.

Page 61: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

61/108

За съжаление, ако основната предпоставка за близост на текущото приближение

до истинската стойност на нулата е силно нарушена, този метод изобщо може да не

доведе до търсеното решение.

Фиг. 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.

Page 62: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

62/108

Фиг. 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)

Критерият за прекратяване на итерациите и ограниченията на приложимостта на

метода на секущите са аналогични на тези на метода на Нютон-Рафсон.

Page 63: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

63/108

Фиг. 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 е надежден, за разлика от

метода на Нютон-Рафсон или на секущите. Сходимостта е в най-добрия случай същата,

като при метода на секущите, но за разлика напр. от метода на разполовяването, не е

равномерна, и се обуславя от изпълнението на основното предположение за локална

линейност на функцията.

Page 64: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

64/108

Фиг. 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, , и

Page 65: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

65/108

напр. 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* ):

Page 66: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

66/108

( ) ( ) ( )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 .

Както и в едномерния случай, надеждността на метода не е гарантирана, ако те-

кущото приближение е далече от търсеното решение.

Page 67: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

67/108

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)

Page 68: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

68/108

Така, функционалните стойности ( )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, към тази на

Page 69: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

69/108

стария интервал [ ]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.

Page 70: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

70/108

Многомерна минимизация

Най-често задачата за търсене на локален минимум на функцията на 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 . Повтаряне

Page 71: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

71/108

на стъпка “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.

Метод на спрегнатите направления

Този метод е известен още като „метод на спрегнатите градиенти”. Неговото обо-

сноваване е следното.

Page 72: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

72/108

Нека отправната точка за текущата едномерна минимизация е 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 такива едномерни ми-

нимизации.

Page 73: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

73/108

Доколкото, съгласно (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)

Page 74: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

74/108

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) следва, че:

Page 75: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

75/108

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) следва, че:

Page 76: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

76/108

( )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

Page 77: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

77/108

Решаващо за приложимостта на развивания метод при многомерна минимизация е

елиминирането на явната зависимост от А в израза (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. На практика процедурата се прекъсва, когато

преместването по текущо избраното направление стане пренебрежимо малко.

Page 78: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

78/108

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 .

Page 79: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

79/108

Централна гранична теорема Ако ,..., 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∈−≡ ξζ , то окончателно:

Page 80: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

80/108

ζ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)

Тогава неговото обратно е:

Page 81: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

81/108

( )

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∈η .

Page 82: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

82/108

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 и да има лесна за пресмятане об-

ратна на своята примитивна функция. Така методът на отхвърлянето може да се раз-

Page 83: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

83/108

глежда като заместител на метода на преобразуването за случаите, когато намирането

на обратната на примитивната функция на избраното разпределение ( )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.

Page 84: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

84/108

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).

Page 85: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

85/108

Целесъобразно е вместо максимум на 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 се свежда до минимизиране на

Page 86: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

86/108

( )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)

където:

Page 87: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

87/108

( ) ( )

( )∑

=

=

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)

Или:

Page 88: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

88/108

( ) ( )

( ) ( )

( ) ( )

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= , където:

Page 89: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

89/108

++

+

+

+

=

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 ω . (При недиагонална матрица би било нужно нейно-

то пълно преизчисляване, а следователно и ново пресмятане на всички компоненти на

Page 90: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

90/108

вектора на решението 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.

Page 91: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

91/108

Общата процедура за изграждане на система от ортогонални полиноми (процеду-

ра на Грам-Шмидт) се състои в полагане на 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) непосредствено следва взаимната линейна независимост между полино-

мите от построяваната редица.

Page 92: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

92/108

Нелинейни модели

Ако векторът 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

да имат гаусово разпределение с нулево очакване и

Page 93: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

93/108

единична дисперсия и да не са корелирани с модела. Следователно, очакването

на ( ) ( )2

21

;1;

ni

i ii i k l

y xy y x

a aσ=

∂− ∂ ∂∑

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 .

Основните две идеи на метода на Маркварт са следните.

Page 94: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

94/108

Първата се отнася за начина на извличане на информация за големината или поне

мащаба на стъпката при метода на най-бързото спускане (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

δ 1= (38)

Допълнително удобство на конструкцията (38) е, че поради гарантираната поло-

жителност на kkH (виж (36)), стъпката ще бъде винаги в правилната посока.

Втората идея се отнася до начина на съчетаване на (38) с (33). При метода на

Маркварт това се прави чрез въвеждане на нова матрица H~

със следните елементи:

( )( )kjHH

HH

jkjk

jjjj

≠≡

+≡~

1~ λ

(39)

и решаване на задачата baH =δ~

. (40)

Page 95: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

95/108

Така, при малки стойности на λ задачата (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 за оценяване на неопределеностите на параметрите.

Page 96: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

96/108

12. Собствени стойности и собствени вектори на матрица

Скаларът λ и ненулевият вектор x са собствена стойност и собствен вектор на

квадратната матрица A, ако:

xAx λ= (1)

Ясно е, че всеки собствен вектор е определен с точност до константен скаларен

множител. Също така, от (1) се вижда, че за да съществуват ненулеви собствени векто-

ри, трябва да бъде в сила равенството:

( ) 0det =− 1A λ (2)

Ако размерността на A е n, то лявата страна на (2) е полином от степен n за λ и

собствените стойности на A са неговите нули. Тези собствени стойности не винаги са

различни помежду си и не винаги са реални. От (1) и (2) също следва, че между собс-

твените стойности и собствените вектори има еднозначно съответствие –

( ) niii ,...,1,, =xλ , без това да означава, че собствените вектори са винаги различни по-

между си. Добавянето напр. на xτ към двете страни на (1) води до отместване на собс-

твените стойности с адитивна константа τ, при което собствените вектори не се проме-

нят. В този смисъл нулевата собствена стойност не е особен признак, тъй като чрез та-

кова отместване която и да е собствена стойност може да бъде направена нулева, или

обратно – ненулева.

Лесно може да се провери, че:

− Ако матрицата B е полином от дадена степен m на матрицата A, т.е.

( )AB mP= , то собствените стойности на B са същият полином на собствените

стойности на A, т.е. ( ) niP imi ,...,1, == λµ , където iλ и iµ са собствените стой-

ности съответно на A и на B, а собствените вектори на A и на B съвпадат.

− Ако nii ,...,1, =λ са собствените стойности на A, то nii

i ,...,1,1 ==λ

µ са собс-

твените стойности на B = A-1, а собствените вектори на A и на B съвпадат.

По-нататък е уместно да се напомнят някои определения и твърдения.

1. Една матрица е симетрична, ако е равна на своята транспонирана:

TAA = , или jiij aa = (3)

Page 97: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

97/108

2. Матрицата е ермитова, ако е равна на комплексно спрегнатата на своята транспонирана (двойка

такива матрици се наричат взаимно ермитово спрегнати):

+= AA , или *jiij aa = (4)

3. Матрицата е ортогонална, ако нейната транспонирана е равна на нейната обратна,

1AAAA == TT , (5)

и унитарна, ако нейната ермитово спрегната е равна на нейната обратна. От (5) се вижда, че стъл-

бовете на ортогоналната матрица, разглеждани като вектори, са взаимно ортонормирани.

4. Матрицата е нормална, ако комутира със своята ермитово спрегната:

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)

Page 98: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

98/108

Ако първото уравнение се умножи отляво по XL, второто – отдясно по XR, и двете

се извадят почленно едно от друго, се получава:

( ) ( ) ( )( )RLnnRL XXdiagdiagXX λλλλ ,...,,..., 11 = . (9)

Тъй като единствените матрици, които комутират с диагонална матрица с различ-

ни елементи, са също диагонални, то, ако собствените стойности на A са различни по-

между си, левите и десните собствени вектори на A ще бъдат взаимно ортогонални. Те

винаги могат да бъдат нормирани (собствените вектори са определени с точност до

множител) така, че да се получи:

1XX =RL , т.е. 1−= RL XX . (10)

(При съвпадащи помежду си собствени стойности, съответните им леви или десни

собствени вектори могат да се комбинират линейно помежду си, така че чрез процеду-

ра, аналогична на метода на Грам-Шмид, отново да се получи съотношението (10). Из-

ключение е случаят на непълен набор от собствени вектори, когато матрицата RLXX

ще има нулеви диагонални елементи.)

Така, умножаването на първото от уравненията (8) отляво по XL и използуването

на твърдението (10) води до израза:

( )nRR λλ ,...,11 diagAXX =− . (11)

Този израз е частен случай на подобно преобразование на матрицата A:

AZZA 1−→ , (12)

където матрицата на преобразованието Z може да бъде произволна.

Подобните преобразования запазват собствените стойности. И наистина,

( ) ( )( ) ( ) ( ) ( ) ( )1AZ1AZZ1AZ1AZZ λλλλ −=−=−=− −−− detdetdetdetdetdet 111 . (13)

Тъй като последният израз съвпада с лявата страна на (2), собствените стойности

на AZZ 1− съвпадат с тези на A.

Съвпадение на собствените вектори няма, но отчитайки (11) – (13) се вижда, че

всяка матрица A с пълен набор от собствени вектори (т.е. всяка нормална матрица, как-

то и повечето случайни матрици) може да бъде диагонализирана чрез подобни преобра-

зования, при което стълбовете на приложената за целта матрица на преобразовани-

ето ще бъдат десни собствени вектори на A, а редовете на обратната на тази матрица

Page 99: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

99/108

– леви собствени вектори на A. (Естествено, елементите на получената диагонална мат-

рица ще бъдат съответните собствени стойности на A.)

Собствените вектори на реална симетрична матрица са реални и ортонормирани.

(Тъй като AA =T , от ( )nRR λλ ,...,1diagXAX = следва, че ( ) TRn

TR XdiagAX λλ ,...,1= и (сра-

вни с второто уравнение в (8)) TRL XX = . Тогава, съгласно (10), 1XX =R

TR и матрицата

RX е ортогонална.) В този случай диагонализиращата матрица на подобното преоб-

разование (11) ще бъде ортогонална. Подобно преобразование от този вид се нарича

ортогонално:

AZZA T→ , (14)

където Z е ортогонална матрица.

На основата на горните разглеждания може да се формулира следната обща стра-

тегия за търсене на собствени стойности и собствени вектори: привеждане (или приб-

лижаване) на матрицата A до диагонален вид чрез последователност от подобни

преобразования:

( )nλλ ,...,... 13211

11

21

3211

11

211

1

1

diagPPPAPPPPAPPPAPPAZZ

→→→→→−

−−−−−−

������ (15)

Когато този диагонален (или практически диагонален) вид бъде достигнат, стъл-

бовете на ефективната матрица на преобразованието

...321 PPPX =R (16)

ще бъдат собствени вектори на матрицата A.

Характеристично уравнение за собствените стойности

Един от възможните подходи за намиране на собствените стойности на A е чрез

търсене на корените на полиномното уравнение за λ, ( ) ( ) 0det ==− λλ nP1A , обикнове-

но наричано характеристично уравнение. Тъй като редът на матрицата често е голям, е

желателно характеристичният полином да се представи във вид, удобен за пресмятане и

използуване в алгоритми за търсене на нулите на полином, а именно чрез коефициен-

тите пред степените на λ: ( ) ∑=

=n

i

iin aP

0

λλ .

Page 100: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

100/108

Намирането на полиномните коефициенти може да стане по т.нар. метод на Кри-

лов, основаващ се на следните разглеждания.

Ако собствените вектори nii ,...,1, =x на матрицата A образуват пълен набор, то

произволният ненулев вектор y може да се представи като тяхна линейна комбинация:

∑=

=n

iii

1

xy α .

Тогава, ако за ненулевия полином Qn е в сила равенството ( ) 0=AnQ , то ще бъде в

сила и равенството ( ) ( ) 01

==∑=

n

iiinin QQ xyA λα , където λi са собствените стойности на A.

Тъй като по предположение nii ,...,1, =x са линейно независими, а коефициентите

nii ,...,1, =α са ненулеви, то от последното равенство следва, че ( ) niQ in ,...,1,0 ==λ .

От друга страна, λi са нули на характеристичния полином Pn, който е също от сте-

пен n, а два полинома от еднаква степен и със съвпадащи нули могат да са различават

само по общ мащабиращ множител. Така, в контекста на решаваната задача полиномът

Qn ще съвпада с характеристичния полином на матрицата A.

Тъй като коефициентите на характеристичния полином се търсят с точност до

общ множител, характеристичното уравнение може да се запише във вида

( ) 01

1 =+= ∑=

−n

i

ii

nn bP λλλ .

Тогава, при достатъчно произволно избран, но фиксиран ненулев вектор y, равен-

ството

( ) 01

1 =+= ∑=

−n

i

ii

nn bP yAyAyA (17)

може да се разглежда като система от n линейни уравнения за n-те неизвестни

nbb ,...,1 . Коефициентите ( ) nkc ki

ki ,...,1,1 == − yA пред неизвестните nibi ,...,1, = , както и

свободните членове ( ) , 1,...,nk k

d k n= − =A y , могат да се получат чрез рекурентно пост-

рояване на редицата

( ) ( ) ( ) ( ) ( )1010 ,...,, −==≡ nn AvvAvvyv . (18)

___________

Page 101: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

101/108

За търсене на нулите на полином (в случая на характеристичния полином) съществуват редица

стандартни методи. Един от тях е описаният по-долу метод на Лагер (Laguerre).

Нека ( ) ( ) ( )nn xxxxxP −−= ...1 , където , 1,...,ix i n= са търсените нули. Тогава:

( ) nn xxxxxP −++−= ln...lnln 1

( ) ( )1

ln 1 1...n

n

d P xG x

dx x x x x≡ = + +

− − за ix x>

( ) ( )( ) ( )

2

2 22

1

ln 1 1...n

n

d P xH x

dx x x x x≡ − = + +

− −

Лесно може да се покаже, че ( ) ( )( )xP

xPxG

n

n '= . Аналогично може да се покаже, че

( ) ( ) ( )( )

2 ''n

n

P xH x G x

P x= − . Тези два израза са практически приложимият начин за пресмятане на величи-

ните G и H, когато полиномът е представен чрез коефициентите си, т.е. ( ) ∑=

=n

i

iin xaxP

0

.

Нека се търси коренът 1x и нека текущото приближение за него е ( )1

kx . Нека ( )1 1

kx x a− = . И нека

предположим, че ( )1 , 2,...,k

ix x b i n− = = . Последното е твърде радикално, но не вреди на работоспособ-

ността на метода. Той е работоспособен и когато изискването 0, 0a b> > , произтичашо от дефиницията

на G, не се прилага.

Тогава:

( )( )( )( )

1

12 2

1 1

1 1

k

k

nG x

a bn

H xa b

−+ =

−+ =

От тази система може да се определи a:

( )( ) ( ) ( )( ) ( )( )2

1 1 11k k k

na

G x n nH x G x

= ± − −

Знакът се избира така, че да се получи максимален по модул знаменател. Величината под квадрат-

ния корен може да бъде отрицателна, така че a може да бъде комплексно.

Процедурата се прилага итеративно, като новата пробна стойност за корена е ( ) ( )11 1

k kx x a+ ← − .

Прекратява се когато a стане достатъчно малко.

Page 102: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

102/108

След като бъде намерен коренът 1x , полиномът се съкращава, т.е. намира се полиномът ( )xPn 1− ,

за който ( ) ( ) ( )xPxxxP nn 11 −−= . Процедурата се повтаря n пъти.

Начинът за съкращаване на полинома е следният. За всяка константа p може да се запише:

( ) ( ) ( ) rxPpxxP nn +−= −1 , където остатъкът r е константа. Тоест:

( ) ( ) nn

n

i

iii

n

i

ii

n

i

ii xbxpbbpbrxpxbrxa 1

1

110

1

00−

=−

==

+−+−=−+= ∑∑∑

Така, от приравняването на коефициентите пред nixi ,...,0, = : nn ab =−1 ,

1 , 1,...,1i i ib a b p i n− = + = − , pbar 00 += . Ако p е нула (корен) на ( )xPn , то 0=r . Последното, раз-

бира се, се удовлетворява автоматично от вече намереното 0b .

___________

Намиране на отбрани собствени стойности и собствени вектори

Степенна итерация

Нека собствените вектори на 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 навсякъде другаде. Така се минимизират аритметичните операции, както и

грешката при деленето.

Page 103: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

103/108

Ускоряване на сходимостта

От (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 е симетрична, нейните собствени вектори са ортогонални и

Page 104: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

104/108

∑=

++ ==

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 е нормиран така, че

Page 105: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

105/108

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 .

Описаната процедура е пряко приложима и за комплексни собствени стойности и

собствени вектори. Независимо от това дали дадена собствена стойност е реална или

комплексна, числената устойчивост на реализацията е по-добра, ако началният вектор

0v е реален. Изразът (29) има вида mm

mmmj vv

vv.

.

1+

+≅ τλ , при което отново е целесъобраз-

но mv да се нормира така, че 1* =⋅ mm vv .

Преобразования на Якоби за симетрична матрица

Илюстрация на описания по-горе общ подход (15) е следната последователност от

ортогонални преобразования, водеща до асимптотично диагонализиране на реална си-

метрична матрица.

Ортогоналните матрици на преобразование се избират от вида:

−=

1

...

...

1

...

...

1

cs

sc

Ppq ⋮⋮ , (30)

където числата c и s са косинус и синус на някакъв ъгъл ϕ, така че 122 =+ sc ;

всички диагонални елементи, с изключение на c в редовете (и стълбовете) p и q, са 1;

всички извъндиагонални елементи, с изключение на ppq и pqp, означени с s и -s, са 0.

Така, всяко от ортогоналните преобразования ще бъде:

Page 106: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

106/108

( ) ( ) ( ) ( )kpq

kTkpq

k PAPA 1−= . (31)

Индексът k бележи поредния номер на преобразованието, ,...2,1=k , а ( )0A е пър-

воначалната матрица A.

От (30) и (31) се вижда, че преобразованието ще засяга само матричните елементи

в редовете и стълбовете с номера p и q (по принцип различни при всяко прилагане на

(31)). Изразите за променените елементи са както следва:

( ) ( ) ( ) ( ) ( ) ( )

( ) ( )

( ) ( ) ( ) ( )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)

И наистина,

Page 107: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

107/108

( ) ( )( ) ( )( ) ( ) ( )( )[ ]

( ) ( ) ( ) ( ) ( )[ ]( ) 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= може пряко да се прове-

ри, че qpixy ii ,, ≠= , qpp sxcxy += , qpq cxsxy +−= . Аналогично на (36) може да се покаже, че

∑∑==

=n

ii

n

ii xy

1

2

1

2 . Напълно аналогично, същият резултат се получава и за xPy Tpq= . Тогава, нека

APB Tpq= . От горното следва, че сумата от квадратите на матричните елементи на B ще бъде равна на

сумата от квадратите на матричните елементи на A. Нека сега pqBPC = , т.е. TTpq

T BPC = . По същия

начин следва, че сумата от квадратите на матричните елементи на CT ще бъде равна на сумата от квадра-

тите на матричните елементи на BT. Естествено, същото твърдение е в сила и за C и B. Сравнението с

(31) показва, че C се отнася към A както ( )kA към ( )1−kA в (31).

Следователно, в хода на ортогоналните преобразования отношението на извънди-

агоналната норма към диагоналната намалява монотонно, при което редицата от такива

отношения ще се схожда към нула.

На практика, след даден номер на итерацията ( )kA ще се окаже диагонална в рам-

ките на точността на машинното представяне. Нейните елементи ще бъдат собствените

стойности на A. Стълбовете на матрицата ( ) ( ) ( )kpqpqpq PPPV ...21= ще съдържат собствените

вектори на A, защото от DAVV =T , където V е ортогонална, а D – диагонална със съ-

щите собствени стойности като A, следва, че VDAV = , което за V съвпада с определе-

нието (8) за десни собствени вектори. Изграждането на тази матрица става в хода на

преобразованията: ( )ipqVPV ← , започвайки с 1V = . Или, по-конкретно:

nicssc iqipiqiqipip ,...,1,vvv~;vvv~ =+=−= . (37)

_________________________________________________________________

Page 108: ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2018 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes18.pdf · Например, при действителна стойност

Записки на лекционния курс по „Програмиране и изчислителна физика”. И. Христосков, юни 2018 г.

108/108

Литература

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

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)