Weekly outline
General
V pomoč so vam lahko posnetki predavanj in zapiski z lanskih predavanj, ki so na voljo v mapi na OneDrive na zgornji povezavi. Za dostop morate uporabiti vašo univerzitetno študentsko identiteto oblike xxnnnn@student.uni-lj.si.
Termini pisnih izpitov:
1. izpit: 4. februar ob 9.00 v predavalnici 2.05
2. izpit: 21. junij ob 9.00 v predavalnici 2.01
3. izpit: 23. avgust ob 9.00 v predavalnici 2.01
Na izpitu je dovoljena uporaba kalkulatorja in zapiskov v obliki enega lista formata A4.
Kvizi
1. kviz: 26. november ob 14.30 v učilnicah 3.10 in 3.11
2. kviz: 18. januar ob 14.00 v učilnicah 3.10 in 3.11
Na kvizih lahko uporabljate zapiske s predavanj in vaj ter datoteke, ki ste si jih pripravili pri reševanju računalniških nalog.
Na kviz se lahko pripravite z reševanjem nalog z računalniških vaj (OneDrive repozitorij), predvsem tistih, ki so označene z D.
4 October - 10 October
Naredili bomo pregled matematičnih problemov, ki jih bomo numerično reševali. Povedali bomo, kaj je numerična metoda in kakšne so lastnosti dobrih numeričnih metod. Pri numeričnem računanju so ves čas prisotne napake, zato definiramo absolutno in relativno napako.
11 October - 17 October
Definirali smo, kaj je numerično stabilna numerična metoda in kaj sta obratna in direktna stabilnost oz. napaka. Za računanje skalarnega produkta smo pokazali, da je obratno stabilno, direktno pa ne. Pogledali smo nekaj poučnih numeričnih primerov, kjer pri uporabi formul, ki so sicer pravilne, pri nepazljivem numeričnem računanju hitro pridemo do nenatančnih rezultatov.
Zaradi nepravilne uporabe numeričnih metod oz. numeričnega računanja lahko pride do velikih napak in tudi tragičnih nesreč. Poglejte, kaj se je zgodilo v naslednjih treh primerih.
To je kratek kviz iz uvod v numerično matematiko. Pri reševanju si lahko pomagate s prosojnicami, Matlabom, brkljalniki po internetu in drugimi orodji.
Če odgovorite nepravilno, lahko odgovor popravljate, a se vam odbijejo kazenske točke.
Rezultati tega kviza se ne bodo upoštevali pri pisni oceni, lahko pa z njim preženete dolgčas in preverite svoje znanje.
18 October - 24 October
Ukvarjali smo se z numeričnimi metodami za reševanje nelinearne enačbe. Kot prvo numerično metodo smo obravnavali bisekcijo. Nato smo obravnavali navadno iteracijo, kjer je pogoj za to, da je točka privlačna, ta, da je odvod iteracijske funkcije v negibni točki po absolutni vrednosti pod 1. Definirali smo red konvergence.
Ta kviz lahko rešite v petih minutah in tako preverite, ali ste razumeli prvo poglavje. Vsa vprašanja so tipa Da/Ne. Rezultati kviza se ne upoštevajo pri oceni.
25 October - 31 October
Kot poseben primer navadne iteracije smo spoznali tangentno metodo, kjer si pomagamo tudi z odvodom. Tangentna metoda ima to lepo lastnost, da so (če je funkcija dvakrat zvezno odvedljiva) vse ničle privlačne, v splošnem primeru pa je konvergenca kvadratična.Kadar odvoda nimamo na voljo, lahko namesto tangentne uporabimo npr. sekantno metodo, Mullerjevo metodo ali inverzno interpolacijo. Pri kombiniranih metodah počasno a robustno bisekcijo kombiniramo z metodami višjega reda, kot sta npr. sekantna metoda in inverzna interpolacija. Primer je Brentova metoda, ki je uporabljena v Matlabovi funkciji fzero.
Zgledi v Matlabu (ker je povezava vedno enaka in je objavljena na vrhu spletne učilnice, je v naslednjih poglavjih ne bom več ponavljal)
To je kratek kviz iz numeričnega reševanja nelinearnih enačb. Tako kot vsi ostali kvizi ne vpliva na končno oceno. Z reševanjem boste utrdili snov in spotoma izvedeli še kaj novega, če nič drugega pa lahko služi tudi za razvedrilo.
1 November - 7 November
Začeli smo z naslednjim poglavjem, v katerem se bomo ukvarjali z reševanjem sistemov linearnih enačb. Najprej smo ponovili oznake in vektorske norme. Obravnavali smo operatorske matrične norme in pokazali nekaj uporabnih rezultatov, kot je npr. ta, da je matrika $I-X$, kjer je $\|X\|<1$, vedno obrnljiva.
8 November - 14 November
Obravavali smo občutljivost sistema linearnih enačb $Ax=b$ in ugotovili, da je odvisna od produkta $\|A\|\|A^{-1}\|$, kar smo poimenovali občutljivost ali pogojenostno število matrike $A$.
S pomočjo elementarnih eliminacij smo izračunali LU razcep matrike. Prešteli smo število operacij, ki jih potrebuje algoritem za LU razcep matrike. LU razcep lahko izračunamo v 2/3 n^3 + O(n^2) operacijah. Stabilnejši varianti LU razcepa sta LU razcep z delnim ali kompletnim pivotiranjem, kjer je za obstoj razcepa dovolj, da je matrika A nesingularna.
Programi:
- LU razcep v Matlabu: lubasic.m, lubasic2.m, lubasic3.m
- Zgled zelo občutljivega sistema: računanje polinoma v standardni bazi, ki najbolje aproksimira sin(x) na [0,1]: zgledEnakApr.m
- Interaktivni LU razcep v Matlabu: lugui.m.
- Kompletni LU razcep: lucomplete.m
15 November - 21 November
Raziskali smo obratno stabilnost reševanja linearnega sistema preko LU razcepa. Ugotovili smo, da je LU razcep brez pivotiranja nestabilen, LU z delnim pivotiranjem je v praksi stabilen, v teoriji ne, LU s kompletnim pivotiranjem pa je tudi teoretično obratno stabilen.
Spoznali smo razcep Choleskega, s katerim rešujemo sisteme s simetričnimi pozitivno definitnimi matrikami.
22 November - 28 November
Spoznali smo razcep Choleskega, s katerim rešujemo sisteme s simetričnimi pozitivno definitnimi matrikami.
V primeru simetrične nedefinitne matrike lahko uporabimo LDL^T razcep.
V praksi se pri numeričnem reševanju parcialnih diferencialnih enačb ali drugih praktičnih problemov večkrat srečamo s tem, da je potrebno rešiti sistem z veliko in razpršeno matriko, kar pomeni, da je večina (razen O(n)) elementov enakih 0 in nimajo kakšne posebne strukture (kot jo npr. ima tridiagonalna matrika), ki bi jo lahko izkoristili. Velikost takih matrik je lahko tudi 100000 x 100000 ali še veliko več. Včasih lahko tak sistem vseeno učinkovito rešimo z razcepom, če matriko ustrezno preuredimo, da pri razcepu ne pride do pojava preveč novih neničelnih elementov, sicer pa se takšne sisteme rešuje iterativno. To obravnava predmet Iterativne numerične metode v linearni algebri na 2. stopnji.
Obravnavali smo sisteme nelinearnih enačb. Spoznali smo posplošitev navadne iteracije, ki jo lahko izvajamo v Jacobijevi ali Seidelovi obliki. Za konverenco mora veljati, da je spektralni radij Jacobijeve matrike parcialnih odvodov v negibni točki manjši od 1. Preko razvoja v Taylorjevo vrsto smo izpeljali Newtonovo metodo, ki je posplošitev tangentne metode. Za reševanje nelinearnih sistemov imamo na voljo tudi metode, ki ne potrebujejo odvodov. Ena najbolj razširjenih je Broydenova metoda, ki se v primeru ene same enačbe ujema s sekantno metodo.
Programi:
- Primeri faktorizacij razpršenih matrik: razprsene1.m, razprsene2.m, airfoil.mat, demoairfoil.m
- Navadna iteracija: iteracija.m
- Jacobijeva in Seidelova iteracija za testni primer: testjacobi.m, seidel_f.m, testseidel.m
- Newtonova metoda: newton.m, testnewton.m
- Broydenova metoda: broyden.m, testbroyden.m
29 November - 5 December
Začeli smo z obravnavo predoločenih linearnih sistemov, kjer imamo več enačb kot neznank. Ker točna rešitev v splošnem primeru ne obstaja, kot rešitev iščemo tisti vektor, ki minimizira normo ostanka. To rešitev imenujemo rešitev po metodi najmanjših kvadratov, dobimo pa jo kot rešitev t.i. normalnega sistema. Poleg normalnega sistema lahko predoločene sisteme rešujemo tudi s pomočjo QR razcepa. Za začetek smo spoznali računanje QR razcepa z uporabo Gram-Schmidtove ortogonalizacije.
Programi:
- Aproksimacija točk s kvadratnim polinomom: fit_parabola.m
- QR razcep z uporabo Gram-Schmidtove ortogonalizacije:cgs.m, mgs.m
6 December - 12 December
Za računanje QR razcepa lahko uporabimo tudi ortogonalne transformacije, ki v matriki eliminirajo vse elemente pod diagonalo. Z Givensovimi rotacijami uničimo en po en element in matriko spravimo v zgornjo trapezno obliko. Tako pridemo do t.i. razširjenega QR razcepa. Še hitreje kot z Givensovimi rotacijami lahko podobno s Householderjevimi zrcaljenji uničimo vse elemente vektorja naenkrat in tako QR razcep izračunamo še hitreje. Seveda lahko QR razcep uporabimo tudi za reševanje navadnega linearnega sistema velikosti n x n namesto LU razcepa. Če npr. uporabimo Householderjeva zrcaljenja, porabimo dvakrat toliko operacij kot pri LU razcepu, a imamo zagotovljeno obratno stabilnost.
- Programi v Matlabu za računanje QR razcepa (CGS, MGS, Givens, Householder): QRrazcep.zip
Povezave:- Še močnejše orodje od QR je singularni razcep (SVD). Uporabljamo ga za reševanje zelo občutljivih sistemov, aproksimacijo matrik z matrikami nižjega ranga in mnogo drugih zadev. Obravnava se ga pri izbirnem predmetu Numerična linearna algebra v 2. semestru.
- Programi v Matlabu za računanje QR razcepa (CGS, MGS, Givens, Householder): QRrazcep.zip
13 December - 19 December
Lotili smo se problema lastnih vrednosti. Pri samem problemu ločimo metode glede na to, kakšnega tipa je matrika in kaj potrebujemo. Pomembno je:
- ali je matrika simetrična ali ne (oz. ima kakšno drugo strukturo, ki se jo da izkoristiti),
- ali potrebujemo vse ali le nekaj lastnih vrednosti,
- ali potrebujemo tudi lastne vektorje,
- ali je matrika polna ali razpršena.
Spoznali smo potenčno metodo, s pomočjo katere lahko izračunamo dominantno lastno vrednost. V metodi potrebujemo Rayleighov kvocient, ki nam za dani približek za lastni vektor vrne najboljši približek za lastno vrednost. Z inverzno iteracijo lahko izračunamo lastni vektor ki pripada numerično izračunani lastni vrednosti. Več dominantnih lastnih vrednosti skupaj lahko izračunamo z ortogonalno iteracijo, ki nas lahko pripelje tudi do Schurove forme.
Mi se bomo ukvarjali le z najbolj splošnim primerom, ko je matrika nesimetrična in polna. Naš cilj je izračunati Schurovo formo, iz katere lahko potem preberemo lastne vrednosti matrike.Programi:
- Različne metode za nesimetrični in simetrični problem lastnih vrednosti v Matlabu: lastni.zip
20 December - 26 December
Še bolj učinkovito do Schurove forme pridemo s QR iteracijo. Pokazali smo, da je osnovna varianta QR iteracije ekvivalentna ortogonalni iteraciji, kjer začnemo z identiteto. Hessenbergova oblika se med QR iteracijo ohranja in s tem zmanjšamo zahtevnost enega koraka QR iteracije na . Hitrost konvergence pospešimo s premiki. Enojni premik so dobri le za matrike, ki nimajo kompleksnih lastnih vrednosti, sicer pa so boljša izbira dvojni premiki.
Povezave:
- Do popolne QR iteracije nam manjka še en pomemben korak: kako narediti dvojni premik v času samo s pomočjo realne aritmetike. Kako se to naredi s pomočjo implicitne QR iteracije, se obravnava v naslednjem semestru pri predmetu Numerična linearna algebra. Tam boste obravnavali tudi učinkovitejše algoritme za primer, ko je matrika simetrična.
- Če so matrike velike in razpršene, potem iščemo le nekaj lastnih vrednosti in za to uporabljamo iterativne metode (primer tovrstne metode je npr. potenčna metoda). To obravnava predmet Iterativne numerične metode v linearni algebri na 2. stopnji.
- Do popolne QR iteracije nam manjka še en pomemben korak: kako narediti dvojni premik v času samo s pomočjo realne aritmetike. Kako se to naredi s pomočjo implicitne QR iteracije, se obravnava v naslednjem semestru pri predmetu Numerična linearna algebra. Tam boste obravnavali tudi učinkovitejše algoritme za primer, ko je matrika simetrična.
27 December - 2 January
Lotili smo se polinomske interpolacije. Definirali smo Lagrangeeve bazne polinome in pokazali, da lahko z njimi enolično zapišemo interpolacijski polinom. Zapisali smo tudi napako interpolacijskega polinoma.
Bolj splošno orodje za polinomsko inerpolacijo so deljene diference, s katerimi lahko zapišemo interpolacijski polinom v t.i. Newtonovi obliki. Če dopustimo ujemanje točk, potem posplošimo interpolacijski polinom tako, da se v dani točki poleg v vrednosti s funkcijo ujema še v ustreznem številu odvodov. Izpeljali smo oceno napake v obliki z deljeno diferenco.
Povezave:- Interpolacija v ravnini z Bezierovovimi krivuljami in posplošitvami se podrobneje obravnava pri predmetu Računalniško podprto (geometrijsko) oblikovanje na 2. stopnji.
3 January - 9 January
Lotili smo se numeričnega integriranja. Najprej smo spoznali splošno kvadraturno formulo in ugotovili, da so koeficienti (uteži) določeni z integrali Lagrangeevih baznih polinomov. Nato smo obravnavali Newton-Cotesove formule, kjer vozle razdelimo ekvidistantno. Tu se pri večanju števila točk pojavi težava z neodstranljivo napako, saj uteži postanejo negativne, njihove absolutne vrednosti pa naraščajo. Rešitev so sestavljena pravila.
Pri Gaussovih kvadraturnih formulah lahko z izbiro ničel ortogonalnih polinomov za vozle dosežemo, da je formula točna za polinome stopnje 2n+1.
10 January - 16 January
Pogledali smo si uvod v numerične metode za reševanje navadnih diferencialnih enačb. Metode delimo na enokoračne in večkoračne, poleg tega pa še na eksplicitne in implicitne. Spoznali smo eksplicitno in implicitno Eulerjevo metodo, metodo razvoja v Taylorjevo vrsto in metode tipa Runge-Kutta. Definirali smo lokalno napako metode.
Pogledali smo, kako zgledajo veččlenske metode za reševanje začetnega problema in pristope za reševanje sistemov začetnih problemov in reševanje začetnih problemov višjega reda.
Programi:
- Primer v Matlabu za reševanje začetnega problema z Eulerjevo in R-K metodo: Zacetni.zip
- Programi za reševanje začetnega problema v Matlabu: ode.zip, kratek opis funkcij je v OdePreberiMe.txt
- Reševanje začetnega problema z enokoračnimi metodami: zacproblem1.zip (Mathematica)
Povezave:
- Podrobneje se interpolacijo in navadne diferencialne enačbe obravnava pri predmetu Numerična integracija in navadne diferencialne enačbe na 2. stopnji.
17 January - 23 January
Pogledali smo, kako zgledajo veččlenske metode za reševanje začetnega problema in pristope za reševanje sistemov začetnih problemov in reševanje začetnih problemov višjega reda.
Vaje
Vaje potekajo ob petkih od 13.15 do 15.00 v učilnici 2.01.
Računalniške vaje potekajo ob petkih od 15.15 do 16.00 v učilnici 3.11 (in 3.10).
Dodatno gradivo z vaj je objavljeno v repozitoriju OneDrive.Vaje 1 (8. oktober 2021):
Osnove Matlaba in dodatne naloge (rešitve)Vaje 2 (15. oktober 2021):
Numerično računanje (naloge 1.1, 1.5, 1.7–1.10)Vaje 3 (22. oktober 2021):
Reševanje nelinearnih enačb (naloge 2.3–2.9)Vaje 4 (29. oktober 2021):
Reševanje nelinearnih enačb (naloge 2.10, 2.13, 2.14–2.17, 2.19)Vaje 5 (5. november 2021):
Reševanje sistemov linearnih enačb (naloge 3.3, 3.4, 3.6–3.9, 3.11)Vaje 6 (12. november 2021):
Reševanje sistemov linearnih enačb (naloge 3.13, 3.14, 3.16–3.21)Vaje 7 (19. november 2021):
Reševanje sistemov linearnih enačb (naloge 3.25–3.29)Vaje 8 (26. november 2021):
Reševanje sistemov nelinearnih enačb (naloge 4.1, 4.2, 4.5)Vaje 9 (3. december 2021):
Reševanje predoločenih sistemov enačb (naloge 5.2, 5.4, 5.8, 5.9)Vaje 10 (10. december 2021):
Reševanje predoločenih sistemov enačb (naloge 5.11, 5.12, 5.14)Vaje 11 (17. december 2021):
Računanje lastnih vrednosti matrik (naloge 6.2, 6.6–6.8, 6.12)Vaje 12 (3. januar 2022):
Polinomska interpolacija (naloge 7.3, 7.7–7.10)Vaje 13 (7. januar 2022):
Integriranje (naloge 8.5, 8.6, 8.8, 8.11)Vaje 14 (14. januar 2022):
Reševanje diferencialnih enačb (naloge 9.1, 9.4–9.6)