NUMPROG, 2D1212, vt Föreläsning 9, Numme-delen. Stabilitet vid numerisk behandling av diffekvationer Linjära och icke-linjära ekvationssystem

Relevanta dokument
NUMPROG, 2D1212, vt Föreläsning 1, Numme-delen. Linjära ekvationssystem Interpolation, Minstakvadratmetoden

Föreläsning 14: Exempel på randvärdesproblem. LU-faktorisering för att lösa linjära ekvationssystem.

Laboration 6. Ordinära differentialekvationer och glesa system

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Linjära ekvationssystem

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Runge-Kuttas metoder. Repetition av FN6 (GNM kap 6.

Linjära ekvationssystem

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning

Block 2: Lineära system

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

Lösningar till några övningar inför lappskrivning nummer 3 på kursen Linjär algebra för D, vt 15.

Egenvärdesproblem för matriser och differentialekvationer

Ordinära differentialekvationer,

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

2D1240 Numeriska metoder gk II för T2, VT 2004 LABORATION 1. Ekvationslösning

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

f(x + h) f(x) h f(x) f(x h) h

1 Positivt definita och positivt semidefinita matriser

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Felfortplantning och kondition

2 Matrisfaktorisering och lösning till ekvationssystem

Mer om linjära ekvationssystem

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Laboration 1. Ekvationslösning

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Fredag 30 augusti 2002 TID:

DEL I. Matematiska Institutionen KTH. Lösning till tentamensskrivning på kursen Linjär algebra II, SF1604 för D, den 5 juni 2010 kl

Stora bilden av Linjära algebran. Vektorrum, linjära transformationer, matriser (sammanfattning av begrepp)

Tentamen i Teknisk-Vetenskapliga Beräkningar

1 Kvadratisk optimering under linjära likhetsbivillkor

Sammanfattning av föreläsning 11. Modellbygge & Simulering, TSRT62. Föreläsning 12. Simulering. Föreläsning 12. Numeriska metoder och Simulering

x(t) I elimeringsmetoden deriverar vi den första ekvationen och sätter in x 2(t) från den andra ekvationen:

Lösningar till Tentamen i Beräkningsvetenskap II, 5.0 hp, Del A. 1. (a) ODE-systemet kan skrivas på formen

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

Föreläsningsanteckningar Linjär Algebra II Lärarlyftet

Mer om linjära ekvationssystem

LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER. 1 Inledning. 2 Eulers metod och Runge-Kuttas metod

TANA17 Matematiska beräkningar med Matlab

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

ELLER (fyll bara i om du saknar tentamenskod): Datum: 32 maj Bordsnummer: Kontrollera att du fått rätt tentamensuppgifter

Ordinära differentialekvationer,

SF1624 Algebra och geometri Lösningsförsag till modelltentamen

TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1/TM1, TMA

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Standardform för randvärdesproblem

D 1 u(x, y) = e x (1 + x + y 2 ), D 2 u(x, y) = 2ye x + 1, (x, y) R 2.

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Differentialekvationer. Repetition av FN5 (GNM kap 6.

SKRIVNING I VEKTORGEOMETRI

1 Grundläggande kalkyler med vektorer och matriser

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

TAMS79: Föreläsning 10 Markovkedjor

Lösningar till SF1861/SF1851 Optimeringslära, 24/5 2013

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Matlab övningsuppgifter

Diagonalisering och linjära system ODE med konstanta koe cienter.

TANA09 Föreläsning 5. Matrisnormer. Störningsteori för Linjära ekvationssystem. Linjära ekvationssystem

November 17, 2015 (1) en enda lsg. Obs det A = 1 0. (2) k-parameter lsg. Obs det A = 0. k-kolonner efter sista ledande ettan

Laboration 1. x = 1±0.01, y = 2±0.05. a) Teoretiskt med hjälp av felfortplantningsformeln (Taylor-utveckling).

Numerisk Analys, MMG410. Exercises 2. 1/33

Hemuppgift 1, SF1861 Optimeringslära, VT 2017

SF1624 Algebra och geometri

TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA671

ALA-c Innehåll. 1 Linearization and Stability Uppgift Uppgift Egenvärdesproblemet Uppgift

Laboration 1 i SF1544: Öva på Matlab och konstruera en optimal balk Avsikten med denna laboration är att:

Institutionen för Matematiska Vetenskaper TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA

Laboration: Vektorer och matriser

TMV142/186 Linjär algebra Z/TD

Veckoblad 4, Linjär algebra IT, VT2010

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Subtraktion. Räkneregler

Linjär algebra. 1 Inledning. 2 Matriser. Analys och Linjär Algebra, del B, K1/Kf1/Bt1. CTH/GU STUDIO 1 TMV036b /2013 Matematiska vetenskaper

Föreläsning 5. Approximationsteori

2D1250 Tillämpade numeriska metoder II Läsanvisningar och repetitionsfrågor:

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A =

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

Basbyten och linjära avbildningar

Moment Viktiga exempel Övningsuppgifter

Inledande matematik M+TD

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem.

Linjär algebra F1 Ekvationssystem och matriser

Några saker som jag inte hann: Ur trigonometriska ettan kan vi uttrycka och i termer av. Vi delar båda led i trig. 1:an med :

6. Temperaturen u(x) i positionen x av en stav uppfyller värmeledningsekvationen. u (x) + u(x) = f(x), 0 x 2, u(0) = 0 u(2) = 1,

5 Linjär algebra. 5.1 Addition av matriser 5 LINJÄR ALGEBRA

Lösningsförslag till övningsuppgifter, del V

Numeriska metoder, grundkurs II. Dagens program. Gyllenesnittminimering, exempel Gyllenesnittetminimering. Övningsgrupp 1

Omtentamen i DV & TDV

Laboration 2. Laborationen löses i grupper om två och redovisas individuellt genom en lappskrivning den 3/10. x = 1±0.01, y = 2±0.05.

Algebraiska egenskaper hos R n i)u + v = v + U

Linjär Algebra, Föreläsning 8

15 september, Föreläsning 5. Tillämpad linjär algebra

Laboration 2 Ordinära differentialekvationer

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Torsdag 28 aug 2008 TID:

Dagens teman. Linjära ODE-system av ordning 1:

ax + y + 4z = a x + y + (a 1)z = 1. 2x + 2y + az = 2 Ange dessutom samtliga lösningar då det finns oändligt många.

Sammanfattning (Nummedelen)

Laboration 1. 1 Matlab-repetition. 2 Störningsräkning 1. 3 Störningsräkning 2

M0043M Integralkalkyl och Linjär Algebra, H14, Linjär Algebra, Föreläsning 11

TMV141. Fredrik Lindgren. 22 januari 2013

Transkript:

NUMPROG, 2D1212, vt 2005 Föreläsning 9, Numme-delen Stabilitet vid numerisk behandling av diffekvationer Linjära och icke-linjära ekvationssystem Då steglängden h är tillräckligt liten erhålles en noggrann numerisk lösning. Hur liten h måste vara beror på vilken ordning p metoden är av. För Eulers metod är ordningen p =1vilken kräver liten steglängd. För Runge-Kuttas metod är ordningen p =4, varvid större steg kan tas. Vad händer då om steglängden blir stor? Här visar det sig att det beror på metoden om den numeriska lösningen blir stabil eller instabil, dvs om lösningen blir begränsad eller om den växer obegränsat. Exempel. Eulers framåtmetod tillämpad på den enkla differentialekvationen dx = x, x(0) = 1, x(t) =e t dt Följande graf visar den exakta lösningen tillsammans med den numeriska lösningen för 2 olika steglängder, nämligen h =0.5 och h =2.5 2.5 Eulers framaatmetod, stsbilitet med avseende paa steget h 2 1.5 1 x 0.5 exakt loesning 0 h=0.5 0.5 1 h=2.5 1.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 t 1

För h =2.5 blir lösningen instabil, i detta fall oscillerande med växande amplitud. För h =0.5 är lösningen stabil och ger hyfsad noggrannhet. För denna enkla differentialekvation går det att beräkna exakt för vilket värde på h som lösningen blir instabil. Eulers framåtmetod ger nämligen rekursionsformeln x k+1 = x k hx k =(1 h)x k =(1 h) 2 x k 1 =...(1 h) k+1 x 0 Vi ser att talföljden x k är stabil (begränsad) om 1 h 1 0 h 2 Lösningen blir alltså instabil om h>2 Om Eulers bakåtmetod används ser grafen ut på följande sätt 1 Eulers bakaatmetod, stabilitet med avseende paa steget h 0.9 0.8 0.7 0.6 h=2.5 x 0.5 0.4 h=0.5 0.3 0.2 exakt loesning 0.1 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 t Eulers bakåtmetod ger alltså stabila lösningar för bägge steglängderna, även om noggrannheten blir sämre för ökande steglängd. Implicita metoder som Eulers bakåtmetod är nödvändigt att använda för en vanlig typ av system av differentialekvationer som kallas styva. Dessa uppträder i många olika tillämpningar: mekaniska system, kemiska reaktioner, värmeledningsproblem, etc. Om en explicit metod såsom Ringe-Kuttas metod används måste extremt små steglängder användas för att lösningarna ska bli stabila. 2

Linjära ekvationssystem Den vanligaste metoden för lösning av ett linjärt ekvationssystem Ax = b där A är en n n-matris, är Gausselimination. Denna metod presenteras i kursen i Linjär Algebra och tas därför inte upp här. Det är dock viktigt att känna till hur tidskrävande denna metod är vid datorräkning samt vilka möjligheter som finns att göra metoden effektivare när matrisen A har speciell struktur Speciellt viktigt är det att veta hur ett beräkningsprogam som Matlab reagerar då matrisen A är exakt singulär (dvs det(a) =0) eller nästan singulär (dvs kolumnerna är nästan linjärt beroende, men det(a) behöver inte nödvändigtvis vara liten). Nedan ges två exempel på detta. Singulär matris. I nedanstående ekvationssystem är A singulär 1 2 3 1 2 4 6 x = 2 4 8 12 3 Ett Matlabprogram för lösning av systemet A=[1 2 3;2 4 6;4 8 12]; b=[1 2 3] ; x=a\b ger följande resultatutskrift Warning: Matrix is singular to working precision Resultatet blir odefinierat på grund av att det(a) =0 Nästan singulär matris. Ett illa-konditionerat interpolationsproblem Bestäm det tredjegradspolynom y = c 1 x 3 + c 2 x 2 + c 3 x + c 4 som går genom punkterna (1000, 2), (1001, 4), (1002, 5) och (1003, 1). Matlabprogrammet blir x=[1000,1001,1002,1003] ;y=[2,4,5,1] ; A=[x.^3 x.^2 x ones(size(x))];c=a\y Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. Ovanstående varningsutskrift betyder att resultatet inte är att lita på. Orsaken är att avrundningsfelen bestämmer vilket resultat vi får. Exempelvis kan ett mellanresultat som egentligen ska bli noll i stället blir ett mycket litet tal (säg 10 17 ) på grund av avrundningsfelens inverkan, vilket kan ge helt fel slutresultat. 3

Det arbete (den datortid) som krävs för att lösa ett linjärt ekvationssystem med n obekanta växer proportionellt mot n 3.Dettakanviseav följande Matlabexperiment tidres=[];nvalues=[200,400,600,800]; for n=nvalues tid=cputime; A=rand(n,n);b=rand(n,1);x=A\b; tid=cputime-tid;tidres=[tidres tid]; end en loglog-graf över tidsåtgången som funktion av antalet obekanta ger följande (nästan) räta linje, som har lutningen 3. 10 0 Tidsaatgaang foer Gausselimination som funktion av n tid (s) 10 1 10 2 10 2.4 10 2.5 10 2.6 10 2.7 10 2.8 10 2.9 n (antal obekanta) Vi har alltså experimentellt visat att tid = Cn 3 för Gausselimination, dvstidenväxerkubisktmedantaletobekanta.c är en konstant som beror på vilken dator vi använder. Ur detta resultat kan vi uppskatta tidsåtgången. Om det tar 5 ms att lösa ett ekvationssystem med 500 obekanta på en viss dator, hur lång tid tar det då att lösa ett system med 1000 obekanta på samma dator? Svar: 40 ms 4

Om matrisen A inte har någon speciell struktur utan har de flesta elementen a ij 0, kallas den en full matris. En matris där de flesta elementen a ij =0kallas en gles matris. För sådanan matriser kan både lagringen av matrisen i datorns minne och Gausseleminationen göras effektivare, dvs mindre lagringsutrymme och snabbare lösning än O(n 3 ). Exempel på en gles matris är en diagonalmatris D, där endast diagonalelementen d ii 0. d 11 0 0 0... 0 d 22 0 0... D =...... 0 0 d n 1n 1 0... 0 0 0 d nn För att lösa ett linjärt ekvationssystem med en diagonalmatris Dx = b behövs endast n divisioner, dvs arbetet växer linjärt med n, eller tid = C D n där C D är en konstant som beror på vilken dator vi använder. Ett annat exempel på gles matris är den matris A som bildas då ett randvärdesproblem löses med finita differensmetoden (se föreläsning 8): A = 2 1 0 0... 1 2 1 0......... 0 1 2 1... 0 0 1 2 Denna matris kallas tridiagonal och är gles eftersom endast 3n 2 element är 0av de totalt n 2 elementen. Vi kan se denna matris som uppbyggd av 3 vektorer, subdiagonalen är n 1 n 1-vektorn ( 1, 1,..., 1), diagonalen är n n-vektorn (2, 2,...,2) och superdiagonalen är n 1 n 1-vektorn ( 1, 1,..., 1). Ovanstående tridiagonala matris är ett specialfall en godtycklig tridiagonal matris a 1 c 1 0 0... e 2 a 2 c 2 0... A =...... 0 e n 1 a n 1 c n 1... 0 0 e n a n 5

därvianvänt3vektorere,a och c för att representera de 3 diagonalerna. Observera numreringen av elementen; index för ett element anger i vilken rad det står. För en tridiagonal matris behöver endast 3n 2 element lagras i datorminnet(iställetförn 2 om matrisen vore full) och arbetet att lösa ett tridiagonalt ekvationssystem växer linjärt med antalet obekanta, dvs tid = C T n där C T är en konstant som beror på vilken dator vi använder. För lagring av glesa matriser i Matlab används en datastruktur där matrisen A s nollskilda element och dessa elements radindex resp kolumnindex lagras i 3 vektorer av samma längd, nämligen lika med antalet element 0. I denna kurs går vi dock inte in på detaljerna i gles lagring och gles lösning. I Matlab finns en uppsättning funktioner för hantering av glesa matriser. Nedan ges några exempel. A betecknar en matris lagrad på vanligt sätt, dvs alla n 2 element lagras, medan a betcknar en glest lagrad matris. a=sparse(a); A=full(a); lagrar matrisen A som en gles matris lagrar den glest lagrade matrisen a som en full matris spy(a); visar strukturen hos a, element 0visas med * x=a\b; gles Gausselimination (dvs effektiv) av ax=b ett=ones(n,1);a=spdiags([-ett 2*ett -ett],-1:1,n,n); a=sprand(n,n,p); bildar en gles matris av slumptal,p=andelen 0 För fler glesa kommandon, gör help sparse. Newtons metod för system av algebraiska ekvationer Se det kompletterande häftet 6