of 99/99
Записки на лекционния курс по Програмиране и изчислителна физика”. И. Христосков, юни 2013 г. 1/99 ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА, 2013 г. 1. Принципи на числения анализ. Особености на машинните пресмятания ............ 2 2. Преки методи за решаване на системи от линейни алгебрични уравнения ......... 8 3. Итеративни методи за системи с големи разредени матрици .............................. 18 4. Подобряване на точността на числени оценки ...................................................... 25 5. Интерполация ............................................................................................................ 33 6. Числено интегриране ................................................................................................ 39 7. Обикновени диференциални уравнения ................................................................. 48 8. Нелинейни уравнения............................................................................................... 56 9. Минимизация ............................................................................................................ 64 10. Генериране на случайни числа с избрано разпределение................................... 75 11. Моделиране на данни ............................................................................................. 81 12. Собствени стойности и собствени вектори на матрица ...................................... 90

ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2013 гntne.phys.uni-sofia.bg/BG/Manuals/CP_notes13.pdf · вателно числата от 0 до 127, а с

  • View
    1

  • Download
    0

Embed Size (px)

Text of ПРОГРАМИРАНЕ И ИЗЧИСЛИТЕЛНА ФИЗИКА , 2013...

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

    1/99

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2/99

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    зация.

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

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

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

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

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

    3/99

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

    Цели числа

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

    ∑=

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

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

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

    4/99

    − резултатът от операцията ще бъде също от цял тип – напр. 7/2 ще даде 3, 8/3 ще

    даде 2, и т.н.

    − ефектът от препълване е такъв, че напр. при n = 8 резултатът от операцията

    125 + 5 ще бъде -126.

    Реални числа

    Стойността на едно реално число x се кодира чрез стойностите на две цели числа

    – мантиса m и показател n:

    nk

    mx 2

    2 1×= − , (2)

    където k е броят двоични позиции на полето за запис на мантисата.

    Стандартните пълни дължини на полето за запис на едно реално число са 32 и 64.

    При дължина 32 за мантисата се отделят 24 бита, а за показателя – 8 бита. При дължина

    64 за мантисата се отделят 54 бита, а за показателя – 10 бита.

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

    допълнително представяне, нейните възможни стойности ще бъдат в интервала [-1, 1),

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

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

    модул, за който остават k-1 бита. Показателят n като правило се записва като цяло чис-

    ло в допълнително представяне.

    Теглото на най-младшия бит на мантисата, 12

    1−≡ kmε , се нарича машинен епсилон.

    Например, при дължина на полето за запис на едно реално число 32 (= 24 + 8) бита,

    723 10192.110 −− ×==mε . Машинният епсилон е мярка за минималното представимо от-

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

    ност на машинните аритметични операции с такива числа. По тази причина обикновено

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

    е mε , тъй като това е горната граница на ефекта от закръгление до най-близкото предс-

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

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

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

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

    5/99

    При 8 бита за запис на показателя n, неговите възможни стойности са между -128

    и +127. Следователно, модулът на четирибайтовите реални числа е в диапазона от

    39128 1094.22 −− ×= до 38127 107.12 ×= .

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

    − опасност от препълване (заради ограниченото поле за запис на показателя);

    − очаквана относителна грешка на резултата не по-малка от mε (заради ограниче-

    ното поле за запис на мантисата). В частност, mε = 710192.1 −× при четирибай-

    тови реални числа;

    − опасност от катастрофална загуба на точност при изваждане на две почти ра-

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

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

    жанието на най-младшия бит. Ясно е, че в този случай ефективният брой битове,

    в които може да се запише мантисата на резултата, е два (един + един за знака)

    вместо 24. Така относителното тегло на грешката от закръгление на разликата,

    което иначе за всеки от операндите типично е съизмеримо с mε , при разглежда-

    ния пример ще бъде близко до 1/2.

    Устойчивост на алгоритмите

    Устойчив е такъв алгоритъм, при който малки грешки във входните данни водят

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

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

    резултата. Неустойчивостта може да бъде и присъщо свойство на решаваната задача.

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

    следния пример.

    Нека задачата е да се пресметнат интегралите:

    ,...2,1,1

    0

    1 == ∫− nedxxE xnn (3)

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

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

    6/99

    ,...3,2,1 11

    0

    11

    1

    0

    1

    0

    11

    0

    1

    =−=

    −=

    −==

    −−−

    −−

    ∫∫

    nnEdxxenee

    dxeexedexeE

    nnx

    nxxnxnn

    , (4)

    където e

    dxexee

    xdee

    E xxx111 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 −

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

    7/99

    10 −

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

    8/99

    2. Преки методи за решаване на системи от линейни алге-

    брични уравнения

    Задачата е да се реши системата от нехомогенни линейни алгебрични уравнения:

    bAx = , (1)

    където b е ненулев вектор. Системата ще има ненулево решение x само ако

    ( ) 0det ≠A .

    Така наречените преки методи за решаване на задачата (1) изискват краен брой

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

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

    лавя единствено от грешките от закръгление (грешки от дискретизация няма). Както ще

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

    виси и от т.нар. число на обусловеност на матрицата A на системата.

    Гаусова елиминация

    Методът се състои в съставяне на система cUx = , (2)

    чието решение x съвпада с това на (1) и чиято матрица U е горна триъгълна, т.е.

    jiuij >= ,0 .

    Смисълът на преминаването от (1) към (2) е, че система с триъгълна матрица мо-

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

    ...

    ...

    1

    1,1

    ,111

    ii

    n

    ijjiji

    i

    nn

    nnnnn

    nn

    nn

    u

    xuc

    x

    u

    xucx

    u

    cx

    ∑+=

    −−

    −−−

    −=

    −=

    =

    (3)

    Процедурата за изграждането на системата (2) се базира на едно от основните

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

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

    9/99

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

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

    В този смисъл, построяването на (2) може да стане съгласно следния алгоритъм:

    за nj ,...,1= : {за nji ,...,1+= :

    {добавяне към i-тото уравнение на j-тото, умножено с jj

    ijij a

    af −≡ ,

    т.е. njkafaa jkijikik ,...,,~ =+= ; jijii bfbb +=

    ~} (4)

    така че новата стойност на ija да стане нулева}. }

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

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

    вътрешния цикъл да не могат да се изпълнят. За преодоляване на този проблем се из-

    ползува друго основно свойство на линейните системи – размяната на реда на уравне-

    нията не променя решението на системата.

    Така, в хода на външния цикъл, за всяко j, т.е. всеки стълб, се търси максималният

    по модул матричен елемент измежду njiaij ,...,, = . Ако това е mja , m-тото уравнение се

    разменя с j-тото, след което се пристъпва към елиминацията (4). Новият водещ елемент

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

    ijf ще бъдат минимални. Търсенето (и размяната) не засягат елементите над реда j, за-

    щото ще се наруши постигнатата до момента частична горна триъгълна структура на

    матрицата.

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

    алгоритъма и съответно точността на решението на системата по следната причина.

    − новите стойности ( )njkiaik ,...,1,~ += и на ( )njibi ,...,1~ += се формират чрез до-

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

    можните). Така се потиска натрупването на грешки от закръгление (виж казано-

    то по повод на устойчивостта в Глава 1) и се минимизира рискът от катастро-

    фална загуба на точност поради вадене на близки числа. Действително, от (4)

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

    jkijik afa ×

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

    10/99

    ефектът от грешките от закръгление при пресмятане на ika~ и ib

    ~ поради голям

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

    информация за i-тото уравнение, изразяваща се в доближаване на матрицата U

    на крайната система (2) до особената, т.е. до повишаване на нейното число на

    обусловеност.

    LU разлагане

    Методът се състои в намиране на долна триъгълна матрица L и горна триъгълна

    матрица U, такива, че LUA = . Ако това бъде направено, системата (1) може да се реши

    чрез две серии от последователни замествания: ( )

    ==

    ⇒=yUx

    bLybUxL .

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

    − LU разлагането не засяга вектора на десните части, така че е възможно с мини-

    мални допълнителни изчислителни разходи (само за обратните замествания) да

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

    десните части, т.е. задачата BAX = , където стълбовете на B са вектори на дес-

    ните части, а стълбовете на X – съответните им вектори на решението. (Такава

    задача може да се реши и чрез гаусова елиминация, но само за неголям брой

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

    ца, X ще бъде A-1, което е и общо прилаганият начин за обръщане на матрица.

    − детерминантата на A може да се пресметне лесно като

    ×

    ∏∏==

    n

    iii

    n

    iii ul

    11

    . При

    гаусовата елиминация това е невъзможно, защото детерминантата на U от (2)

    няма проста връзка с детерминантата на A.

    Алгоритъмът за намиране на елементите на L и U е както следва (алгоритъм на

    Краут (Crout)):

    – Тъй като пълният брой елементи на L и U е с n по-голям от уравненията, които

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

    ( )njniaul ij

    ji

    kkjik ,...,1,,...,1,

    ,min

    1

    ===∑=

    , (5)

    се полага nil ii ,...,1,1 == (6)

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

    11/99

    – уравненията (5) се използуват за намиране на iju и ijl в следния ред:

    за nj ,...,1= : {за ji ,...,1= :

    { ∑−

    =

    −=1

    1

    i

    kkjikijij ulau

    Това следва от (5) и (6). iju се записва на мястото

    на ija . Лесно може да се провери, че при този ред на обхождане на индексите всичко отдясно на равенство-то е вече определено.}

    за nji ,...,1+= :

    { ∑−

    =

    −=1

    1

    j

    kkjikijij ulaz

    От (5) следва, че величините ijz са числителите на

    ijl (jj

    ijij u

    zl = ). Те се записват на мястото на ija . И тук

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

    }

    Изборът на водещ елемент jju при пресмятане на ijl е абсолютно нужен за числе-

    ната устойчивост на алгоритъма на Краут. Отчитайки, че изразите за ijz съвпадат по

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

    съответните елементи на масива A, може да се съобрази, че разместването на реда j на

    този масив с ред m > j е равностойно на достигане на текущия етап от LU разлага-

    нето, но на матрица, получена от първоначалната матрица A чрез предварително

    разместване на въпросните нейни редове.

    В този смисъл, изборът на водещ елемент се свежда до намиране на пози-

    цията m на максималното по модул измежду jju и njizij ,...,1, += , и размест-ване на редовете j и m на двумерния масив A, в който се съхраняват всички пресметнати величини и все още непроменените елементи на матри-цата A.

    След което, за nji ,...,1+= :

    {jj

    ijij u

    zl =

    ijl се записват на мястото на ijz .}

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

    12/99

    Фиг. 1. Алгоритъм на Краут за LU разлагане на матрица. Елементите на първона-чалната матрица се променят в реда, указан от буквите a, b, c, и т.н. Маркираните учас-тъци показват вече променените елементи, които се използуват за промяната на два типични елемента, отбелязани с „×”. Илюстрацията е от NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Copyright (C) 1986-1992 by Cambridge University Press.

    Анализ на грешката на решението

    Векторни и матрични норми

    Нормата x на вектора x е число със следните свойства:

    − 0≥x , при което 0=x само за 0x =

    − xx ×= αα , където α е скалар

    − yxyx +≤+

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

    − ∞

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

    13/99

    − BABA +≤+

    Най-често се използуват следните матрични норми:

    − ijji

    a,max

    max=A – max-норма

    2/1

    ,

    2

    = ∑

    jiijF

    aA – норма на Фробениус

    − x

    AxA

    0x≠= max – операторна норма, породена от дадена векторна норма

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

    − xAAx ×≤ – за всяка операторна и съответната й векторна норма, както и за F

    A и

    2x

    − BAAB ×≤ – за всяка операторна норма, както и за F

    A

    − ∑=≡∞

    ≠∞j

    iji

    amaxmaxx

    AxA

    0x

    − ∑==≡ ∞≠i

    ijj

    T amaxmax1

    11

    Ax

    AxA

    0x

    − ( )AA ii

    λmax2

    = , ако A е нормална матрица, т.е. AAAA ++ = ( ( ) ,...1, =ii Aλ са соб-ствените стойности на A).

    Обусловеност на матрица

    Нека x e точното решение на системата (1), а нейното числено решение x̂ е точно

    решение на системата

    ( ) δbbxδAA +=+ ˆ . (7)

    Мярка за грешката на решението е нормата на вектора xxδx −≡ ˆ . Чрез изваждане

    на (1) от (7) се получава ( )( )δbxδAAδx +−= − ˆ1 , или:

    ( )

    ×+×≤

    xA

    δb

    A

    δAA

    x

    δx

    ˆˆκ , (8)

    където ( ) AAA ×≡ −1κ се нарича число на обусловеност на матрицата A. Може

    да се покаже, че за 2-норма и нормална матрица, ( ) ( )( )AA

    Amin

    max

    λλκ = .

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

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

    14/99

    ( )

    +×≤

    b

    δb

    A

    δAA

    x

    δxκ (9)

    Полезна е и следната връзка между грешката на решението и лесния за пресмята-

    не остатък на системата bxAr −≡ ˆ :

    ( ) ( ) ( ) rAδxrAδxδxAxxAbAxAr ⋅≤⇒=⇒=−=−= −−− 111 ˆˆ (10)

    Пример: ефект от избора на водещ елемент при LU разлагане

    Общата стратегия за анализ на грешката на численото решение на една линейна

    система, получено чрез прилагане на конкретен алгоритъм, е:

    − намиране на тези пертурбации δA и δb , при които за конкретния използуван

    алгоритъм численото решение на системата (1) е точно решение на системата

    (7).

    − пресмятане на числото на обусловеност на матрицата A и оценяване на греш-

    ката на численото решение съгласно (8) или (9).

    Така, най-напред, на основата на изразите ∑−

    =

    −=1

    1

    i

    kkjikijij ulau и ∑

    =

    −=1

    1

    j

    kkjikijij ulaz

    може да се обоснове твърдението, че:

    ELUA += , където ULE mnε≤ (11)

    и където n е редът на системата, а L и U са изчисленото LU разлагане. Тук и по-

    нататък с X се означава матрица, съставена от модулите на елементите на матрицата

    X. Ако XX = , което е вярно за max-нормата, 1-нормата и нормата на Фробениус, но

    не за 2-нормата, то ULE ×≤ mnε .

    {Приетият начин за отчитане на грешките от закръгление при аритметични операции е ( ) ( )( )δ+= 1fl baba oo , където mεδ ≤ . С o се бележи една от операциите +, -, *, /, а ( )⋅fl означава

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

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

    n

    iii yx

    1

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

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

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

    15/99

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

    ( )

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

    ( ) ( )δδ

    δδδδδ

    δδδδδδδδδ

    δ

    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δAAxδ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)

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

    16/99

    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 , така че max2

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

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

    17/99

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

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

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

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

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

    18/99

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

    рици

    Разгледаните по-горе преки методи дават точно решение (в рамките на натрупва-

    нето на грешки от закръгление), но изискват съхраняване на пълната матрица на систе-

    мата и от порядъка на 3n линейни операции за решаване на задачата (n е броят на урав-

    ненията).

    Алтернативен подход е изграждането на редица от последователни приближения

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

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

    нужно да се съхраняват (или формират в процеса на пресмятане) само ненулевите еле-

    менти на въпросната матрица. Недостатък на итеративния подход е, че решението е по

    построение приблизително и, следователно, съдържа грешки от дискретизация.

    Точкова релаксация (метод на Якоби)

    Итерационният процес е следният:

    ( ) ( )

    −= ∑

    ij

    jjiji

    ii

    ji xaba

    x 11

    , (1)

    където j е поредният номер на итерацията (приближението).

    Или, ако

    ULDA −−= , (2)

    където D съдържа диагоналните елементи на A, а L и U – съответно под- и надди-

    агоналните, но взети с обратен знак, то (1) може да се запише във вида:

    ( ) ( ) ( ) ( ) qBxbDxULDx +=++= −−− 1111 j_jj , (3)

    където ( )ULDB +≡ −1 и bDq 1_≡ . (4)

    Векторът на началното приближение ( )0x се избира произволно.

    Нека истинското решение на системата е x, a ( ) ( ) xxε −≡ jj е векторът на грешката

    на j-тото приближение. Изваждайки почленно равенството qBxx += (което е в сила,

    защото x е истинското решение) от дефиниционното уравнение на итерационния про-

    цес (3), се получава:

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

    19/99

    ( ) ( )1−= jj Bεε , или ( ) ( )0εBε jj = . (5)

    Нека λi са собствените стойности на матрицата B, подредени така, че

    nλλλ ≥≥≥ ...21 , a nvvv ,...,, 21 са съответните им собствени вектори. Доколкото B е

    такава, че собствените й вектори образуват базис в n-мерното пространство, всеки n-

    компонентен вектор, включително и ( )0ε , може да се представи чрез линейна комбина-

    ция между тези вектори: ( ) ∑=

    =n

    iii

    1

    0 vε α .

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

    им собствени вектори са линейно независими. Също така, ако дадена матрица е реална и симетрична, то

    всички нейни собствени стойности и собствени вектори са реални, а собствените вектори, съответству-

    ващи на различни собствени стойности, са взаимно ортогонални.)

    Тогава:

    ( ) ∑=

    =n

    iiii

    1

    1 vε λα , ..., ( ) ∑=

    =n

    ii

    jii

    j

    1

    vε λα . (6)

    Явно е, че ако |λ1| < 1, то при j → ∞ ( )jε ще клони към нулевия вектор и дефини-

    раният итерационен процес ще се схожда към истинското решение на системата

    bAx = .

    Сега ще покажем, че ако матрицата А е диагонално преобладаваща, максималната

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

    единица.

    Нека k,1v е максималната по модул компонента на собствения вектор v1:

    ii

    k ,1,1 vmaxv = . Тогава, от k-тото равенство на системата 111 vBv λ= , а именно

    k

    n

    iikib ,11

    1,1 vv λ=∑

    =

    , следва:

    1v

    v

    v

    v

    11 ,1

    ,1

    1 ,1

    ,11 ij

    ijii aa , така че съгласно (2): 0=iib и ( )jiaa

    bii

    ijij ≠−= .

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

    20/99

    Последователна релаксация (метод на Гаус-Зайдел)

    Естествено развитие на метода на Якоби е идеята при пресмятането на поредната

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

    негови компоненти, т.е.

    ( ) ( ) ( )

    −−= ∑∑>

    < ik

    jkik

    ik

    jkiki

    ii

    ji xaxaba

    x 11

    . (8)

    Или, в матричен вид:

    ( ) ( ) ( )

    ( ) ( ) ( ) ( ) qLD1UxDLD1xbDUxDLxDx

    111111

    1111

    −−−−−−

    −−−−

    −+−=⇒

    ++=jj

    jjj

    . (9)

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

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

    схожда по-бързо от метода на Якоби.

    По-нататъшно усъвършенствуване на метода на Гаус-Зайдел е т.нар. последова-

    телна свръхрелаксация, или SOR (successive over-relaxation). При този метод се търси

    подходяща линейна комбинация между двете последни приближения ( )jx и ( )1−jx , по-

    лучени по метода на Гаус-Зайдел, която да води до допълнително намаляване на векто-

    ра на грешката на j-тата стъпка на итерационния процес:

    ( ) ( ) ( ) ( )( )11~ −− −+= jjjj xxxx ω . (10) Методът е сходящ при 20

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

    21/99

    Както беше показано, такава итерационна схема ще бъде сходяща точно тогава,

    когато всички собствени стойности на B са по модул по-малки от 1. Изборът на засега

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

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

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

    Най-простият избор на C, а именно 1C α= , където α е подлежащ на определяне

    параметър, води до т.нар. оптимален едностъпков итерационен процес:

    ( ) ( ) ( )( ) ( ) ( ) ( ) qBxbxA1bAxxx +=+−=−−= −−−− 1111 jjjjj ααα , (13) където ( )A1B α−≡ и bq α≡ . (14)

    Нека λi (i = 1, ..., n) са собствените стойности на A и тази матрица е положително

    определена, т.е. λi > 0. Интервалът в който попадат тези собствени стойности обикно-

    вено може да бъде предварително оценен: 0 < m ≤ λi ≤ M.

    (Може да се покаже, че ако niCi ,...,1, = са кръгове с центрове в iia и с радиуси

    niarik

    iki ,...,1, ==∑≠

    , и ако областта D е обединение на тези кръгове, то всички собствени стойности

    на матрицата A лежат вътре в тази област. Така, ако собствените стойности са реални, то

    −≥ ∑≠ik

    ikiii

    aam min и

    +≤ ∑≠ik

    ikiii

    aaM max .)

    От определението (14) за матрицата на итерационния процес B следва, че нейните

    собствени стойности ще бъдат ( )niii ,...,11 =−= αλµ . Ако µ1 е максималната по модул измежду тях, то скоростта на сходимост ще бъде максимална, ако α се подбере така, че

    min1max1 →αλ−=µ ii

    .

    Поради огромния брой на собствените стойности λi (n е обикновено много голя-

    мо) може да се приеме, че те заемат непрекъснати стойности в интервала [m, M]. Тогава

    условието за α се преобразува във вида: min1max →αλ−≤λ≤ Mm

    . То се изпълнява при

    Mm α−=α− 11 , т.е. ( )mM +=α /2 . (15)

    Явно е, че при тази стойност на α, mM

    mMMm +

    −=αλ−≡µ≤λ≤

    1max1 .

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

    22/99

    -1

    0

    1

    µmax

    λ0

    µmax

    Mm

    µ=1-

    αλ α=2/(m+M) α2/(m+M)

    Фиг.1 Избор на ъглов коефициент α за оптималния едностъпков итерационен процес. При ( )mM +=α /2 максималната стойност на µ за Mm ≤≤ λ е минимална.

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

    Изборът ( )AC 1−= rP в (11), където 1−rP е подлежащ на определяне полином от степен r-1, води до т.нар. метод на полиномите на Чебишев. При него итерационният

    процес има вида:

    ( ) ( ) ( ) ( )( ) ( )( ) ( ) ( ) ( ) qBxbAxAA1bAxAxx +=+−=−−= −−−−−−− 1111111 jrjrjrjj PPP , (16) където ( )( ) ( )AAA1B rr QP =−≡ −1 и ( )bAq 1−≡ rP . (17)

    Ако λi са собствените стойности на A, то собствените стойности на B ще бъдат

    ( ) ( )iririi QP λλλµ =−= −11 . (18)

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

    бере така, че ( ) minmax1 →λ=µ ≤λ≤ rMm Q .

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

    максимален модул е минимален при вариране на независимата променлива във фикси-

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

    23/99

    ран интервал, е полиномът на Чебишев Tr(x). За него въпросният фиксиран интервал на

    x e [ ]1,1− . Следователно, най-добрият избор за ( )λrQ е:

    ( ) ( )1

    2−

    −+−

    −+−=

    mM

    mMT

    mM

    mMTQ rrr

    λλ . (19)

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

    менение от [m, M] да стане [-1, 1], и е въведена подходяща нормировка, защото съглас-

    но (18) ( ) 10 =rQ .)

    Максималната по модул стойност на този полином при вариране на λ в интервала

    [m, M] е

    1

    2

    1−−

    −++

    −+

    rr

    mM

    mM

    mM

    mM и тя е минималната измежду всички въз-

    можности за полиноми от степен r, дефинирани в интервала [m, M]. Както се вижда,

    тази стойност ще намалява с увеличаването на r.

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

    на прилагане r пъти на оптималния едностъпков итерационен процес – всеки път с раз-

    лична стойност на параметъра α:

    ( ) ( ) riiijiijiijij ,...,1,),(),(),()1,( =+−=−−=+ bxA1bAxxx ααα . (20)

    Цикълът започва с последното приближение на решението: ( ) ( )11, −≡ jj xx , а полу-

    ченото ново приближение е ( ) ( )1, +≡ rjj xx . По изчислителни причини стойността на r се

    избира относително малка.

    Сравнявайки с първоначалната формулировка на този метод (16) се вижда, че в

    този случай изискването (19) ще се отнася за полинома:

    ( ) ( ) ∏∏∏===

    =−=r

    i i

    r

    ii

    r

    iirQ

    111

    11 λ

    ααλαλ . (21)

    Така, ако αi са реципрочни на нулите βi на полинома на Чебишев

    ( )

    −+−λmM

    mMTr

    2, които са

    ( )r

    imMmMi 2

    12cos

    22−π−++=β , (22)

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

    24/99

    то полиномът ( )λrQ в записа (21) ще съвпада с желания полином ( )λrQ в записа (19). (Два полинома от еднаква степен и със съвпадащи нули се различавяат само по

    общ нормиращ множител, а записът (21) автоматично осигурява желаната нормировка

    ( ) 10 =rQ .)

    -1

    0

    1

    µmax

    µmax

    µ=1-αopt

    λ µ=Q

    3(λ)

    µmax

    λ0

    µmax

    Mm

    µ

    Фиг. 2 Метод на полиномите на Чебишев при 3=r . Пунктирната линия съответс-твува на оптималния едностъпков итерационен процес.

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

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

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

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

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

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

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

    ( ) ( ) ( )jk

    k

    jk

    jk

    kxxx maxmax 1 ε

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

    25/99

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

    Предмет на настоящото разглеждане са методи и подходи за уточняване на оце-

    нената стойност на функции, интеграли, производни и т.н. Доколкото в често срещани

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

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

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

    или при итеративно приближаване към гранична стойност.

    Общ подход: екстраполация на Ричардсън

    Често прилагана стратегия е т.нар. екстраполация на Ричардсън, чиято същност се

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

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

    метод.

    Така например, оценката на определен интеграл по метода на трапеците (виж гла-

    ва 6) има следния вид:

    ( ) mmb

    aETdxxfI +=≡ ∫ , (1)

    където I е истинската стойност на интеграла,

    ++++= − mmm ffffhT 21

    ...2

    1110 (2)

    е нейната числена оценка, а

    ( ) ( ) [ ]bafm

    abEm ,,''12 2

    3

    ∈−−= ηη (3)

    е грешката от дискретизация при пресмятане на тази оценка. m е броят равноотда-

    лечени абсциси в интервала [ ]ba, , в които се пресмятат функционалните стойности, при което ( )aff =1 и ( )bffm = .

    Нека има две оценки, I1 и I2, получени при съответно m1 и m2 равноотдалечени аб-

    сциси:

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

    26/99

    ( ) ( )

    ( ) ( )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. Редица: { }nkka 1= , { }∞=1kka

    2. Ред: ∑∞

    =1kka ⇒ { }∞=1nns ( ∑

    =

    =n

    kkn as

    1

    )

    3. Сходимост на редица. Cauchy: Редицата { }∞=1kka се схожда тогава и само тогава, ако за всяко ε > 0 ε 0 εm. В частност (n=m+1) редът ще се

    схожда, ако членовете am клонят към 0 при ∞→m .

    5. ∑ na е абсолютно сходящ, ако ∑ na е сходящ. В противен случай редът е условно сходящ. Cauchy: ако редът е абсолютно сходящ, той е сходящ.

    6. Допълнителни критерии за сходимост на редове

    Геометричен ред: Ако p е произволно и 1

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

    27/99

    Ако ∑ na и ∑ nb са положителни редове (събираемите са положителни) и ако nn ba ≥ при всяко n, то от сходимостта на ∑ na следва сходимост на ∑ nb и обратно – от разходимостта на ∑ nb следва разходимост на ∑ na .

    Например, от сходимостта на геометричния ред ∑=

    n

    k

    kpq0

    при p > 0 и 0 < q < 1, следва, че ако

    Laa nn →+ /1 и 1L , то редът ∑ na е разходящ. Ако границата L съществува, но е равна на 1, то може да се приложи следният крите-рий: Ако ( ) 0>xf е функция, дефинирана за 0>x , и ( ) 0→∞f , то редът ( )∑ nf е сходящ или разходящ съответно за крайна или безкрайна стойност на ( )∫

    1dxxf .

    Знакопроменлив ред. Такъв ред се схожда, ако na намалява монотонно към 0.

    δδδδ2 -процес на Ейткин (Aitken)

    Нека редът ∑ na е сходящ, следователно:

    ( ) 1;1

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

    28/99

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

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

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

    ( ) ( ) ( ) ( ) ...''2

    1' ++=−+ xhfxf

    h

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

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

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

    29/99

    ( )xfhet ''∝ . (12)

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

    ( ) ( ) ( )xfhh

    xfeehe ftr ''+=+=

    ε. (13)

    Получената явна зависимост на пълната грешка от стъпката h може да се използу-

    ва за намиране на оптимална стойност opth , осигуряваща минимална грешка. (Естестве-

    но, тя подлежи на модифициране съгласно (10), така че да се осигури точно машинно

    представяне на ефективната стъпка.)

    Минимизирането на ( )he води до:

    ( )( ) xxxxfxf

    h mfcffopt εεεε ≈∝=∝ ''. (14)

    Тук е прието, че „характерната дължина на изменение на функцията”

    ( )( )xfxf

    xc ''≡ е приблизително равна на x , както е и в типичния случай.

    При такава стъпка минималната сумарна грешка на крайната разлика ще бъде

    ( ) ( ) ( )xfxfhe fopt ''ε∝ , а съответната относителна грешка:

    ( )( )

    ( ) ( )( )( ) mff

    opt

    xf

    xfxf

    xf

    heεεε ≈∝∝

    2'

    ''

    '. (15)

    При опростяването на израза (15) е прието, че f, f’ и f’’ са с общ мащаб, което е и

    най-често срещаната ситуация.

    По-точен израз за оценяване на производната е т.нар. централна крайна разлика:

    ( ) ( ) ( ) ( ) ...'''6

    1'

    22 ++=−−+ xfhxf

    h

    hxfhxf (16)

    Както и при (9), оценката на грешката на (16) е получена на основата на развитие-

    то на функционалните стойности в числителя в ред на Тейлор около x. Ясно е, че стига

    да не е в противоречие с други елементи на логиката на пресмятанията, начинът (16)

    винаги трябва да се предпочита пред (9).

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

    30/99

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

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

    ( )( ) xxxxfxf

    h mfcffopt3/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) следва, че грешката от дискретизация на 1 1+iD ще бъде:

    ( ) ( )( ) ......!5

    1'''

    !3

    12

    41

    241

    521

    11 ++=++= +++ εε cchxfhxfE iii (21)

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

    31/99

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

    и т.н.

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

    да се запише по следния начин:

    j

    jij

    jij

    i

    DDD

    αα

    −−

    = +++ 111

    1 , където ( )1

    ,...1

    0

    12

    ==

    = −

    α

    ααj

    c jj

    (26)

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

    32/99

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

    На всяка стъпка се прави оценка на грешката:

    ( )jijijijit DDDDE 11111 ,max +++++ −−= . (27) Ако тя е по-малка от най-малката предходна аналогична оценка Emin,

    11+

    +j

    iD се при-

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

    приема Et. Цикълът се прекъсва, ако ( )1

    min11

    >

    ×≥−++s

    EsDD jjjj .

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

    33/99

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

    Нека са дадени функционалните стойности

    ( ) nixfy ii ,...,1, =≡ , където nn xxxx

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

    34/99

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

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

    ( ) ( ) ( )∑=

    −− =n

    i

    inin xLyxP

    111 , (3)

    където полиномите на Лагранж ( ) ( )xL in 1− имат свойството:

    ( ) ( )( ) ( ) ijxL

    xL

    jin

    iin

    ≠=

    =

    ,0

    1

    1

    1 (4)

    Техният явен вид е:

    ( ) ( )( )( )∏

    ≠− −

    −=

    ijji

    ijj

    in xx

    xx

    xL 1 (5)

    Удобство на представянето (3) е, че полиномите на Лагранж ( ) ( )xL in 1− се строят единствено с използуване на информация за възлите nixi ,...,1, = , а функционалните

    стойности niyi ,...,1, = не са нужни.

    Проблем на глобалната полиномна интерполация, т.е. на търсенето на общ поли-

    ном ( )xPn 1− , удовлетворяващ всяко от условията (1) е, че степента на този полином на-раства с броя на възлите n, а заедно с нея нараства и вероятността някои от нулите на

    ( )xPn 1− да попаднат между интерполационните възли. Ефектът е илюстриран на Фиг. 1.

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

    да бъде локална:

    ( ) ( )( ) [ ]1,, +∈= iiim xxxxPxϕ , (6)

    където степента m на всеки от локално дефинираните полиноми ( )( )xP im е ниска, а техните коефициенти се избират от изискването за интерполация (1) и от допълнителни

    изисквания за гладкост на интерполиращата функция ( )xϕ , т.е. за непрекъснатост на достатъчен брой нейни производни.

    Интерполираща функция от вида (6), изградена съгласно споменатите изисквания,

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

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

    35/99

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

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

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

    ( )( ) ( )( ) ( )( ) iiiii 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 да се търсят във вида:

    ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) iiiiiiiii zxzxyxyxxP ψψωω +++= ++ 113 , (9)

    където nizi ,...,1, = са подлежащи на определяне величини, ( )( )xiω и ( )( )xiω са по-

    линомите от първа степен (8), а

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

    36/99

    ( )( ) ( ) ( ) ( ) ( )( )( )xxxxx iiiii ωωψ −−≡ + 3216

    и ( )( ) ( ) ( ) ( ) ( )( )( )xxxxx iiiii ωωψ −−≡ + 3216

    (10)

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

    1) ( )( ) ( )( ) ( )( ) ( )( ) 0;0 11 ==== ++ iiiiiiii xxxx ψψψψ

    2) ( ) ( ) ( )( ) (