FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

Relevanta dokument
Lösningsförslag till inlämningsuppgift 3 i Beräkningsprogrammering Problem 1) function condtest format compact format long

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

Egenvärdesproblem för matriser och differentialekvationer

Laboration 6. Ordinära differentialekvationer och glesa system

TMA226 datorlaboration

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

2 Matrisfaktorisering och lösning till ekvationssystem

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

Tentamen, del 2 DN1240 Numeriska metoder gk II för F

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

TANA17 Matematiska beräkningar med Matlab

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, Del A

Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering

Facit Tentamen i Beräkningsvetenskap I (1TD393) STS ES W K1

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

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

Konvergens för iterativa metoder

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

Teknisk Beräkningsvetenskap I Tema 3: Styvhetsmodellering av mjuk mark med icke-linjära ekvationer

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

Mer om linjära ekvationssystem

x 2 x 1 W 24 november, 2016, Föreläsning 20 Tillämpad linjär algebra Innehåll: Projektionssatsen Minsta-kvadratmetoden

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

FMN140 VT07: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

LABORATION cos (3x 2 ) dx I =

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

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

Sammanfattning (Nummedelen)

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Laboration 1. Ekvationslösning

FFM234, Datoruppgift 2: Värmeledning

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

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2

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

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.

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

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

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Tentamen i Teknisk-Vetenskapliga Beräkningar

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 26 november 2015 Sida 1 / 28

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,

Numeriska metoder, grundkurs II. Dagens program. Hur skriver man en funktion? Administrativt. Hur var det man gjorde?

Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Datorövningar i funktionalanalys och harmonisk analys

Linjära ekvationssystem

TAIU07 Matematiska beräkningar med Matlab

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering

Numerisk lösning till den tidsberoende Schrödingerekvationen.

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

0.31 = f(x 2 ) = b 1 + b 2 (x 3 x 1 ) + b 3 (x 3 x 1 )(x 3 x 2 ) = ( ) + b 3 ( )(

) + γy = 0, y(0) = 1,

Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, Del A

Lösningsförslag Tentamen i Beräkningsvetenskap I, 5.0 hp,

Sekantmetoden Beräkningsmatematik TANA21 Linköpings universitet Caroline Cornelius, Anja Hellander Ht 2018

Kort sammanfattning av Beräkningsvetenskap I. Varning!!! Varning!!!

Laboration: Vektorer och matriser

Omtentamen i DV & TDV

Tentamen del 1 SF1511, , kl , Numeriska metoder och grundläggande programmering

Linjära ekvationssystem

ODE av andra ordningen, och system av ODE

MMA132: Laboration 2 Matriser i MATLAB

Matriser och linjära ekvationssystem

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

Inlämningsuppgift 4 NUM131

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 11-14, 16/11-28/

Matriser och linjära ekvationssystem

linjära ekvationssystem.

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

2D1240 Numeriska metoder gk II för T2, VT Störningsanalys

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

Newtons metod. 1 Inledning. CTH/GU LABORATION 3 MVE /2014 Matematiska vetenskaper

% Föreläsning 3 10/2. clear hold off. % Vi börjar med att titta på kommandot A\Y som löser AX=Y

FEM1: Randvärdesproblem och finita elementmetoden i en variabel.

TANA19 NUMERISKA METODER

FÖRSÄTTSBLAD TILL TENTAMEN. ELLER (fyll bara i om du saknar tentamenskod): Datum: 16 januari Bordsnummer:

Introduktion till MATLAB

Vektorgeometri för gymnasister

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

1.1 MATLABs kommandon för matriser

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Del I: Lösningsförslag till Numerisk analys,

1. Vi skriver upp ekvationssystemet i matrisform och gausseliminerar tills vi når trappstegsform,

Linjärisering, Jacobimatris och Newtons metod.

Tentamen i Beräkningsvetenskap I, DV, 5.0 hp, OBS: Kurskod 1TD394

Dataprojekt. Nanovetenskapliga tankeverktyg. January 18, 2008

Minsta-kvadratmetoden

SF1513 NumProg för Bio3 HT2013 LABORATION 4. Ekvationslösning, interpolation och numerisk integration. Enkel Tredimensionell Design

Omtentamen i DV & TDV

Mer om linjära ekvationssystem

= e 2x. Integrering ger ye 2x = e 2x /2 + C, vilket kan skrivas y = 1/2 + Ce 2x. Här är C en godtycklig konstant.

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

Ordinära differentialekvationer,

x 1(t) = x 2 (t) x 2(t) = x 1 (t)

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

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

Varning!!! Varning!!!

Tentamen i: Beräkningsvetenskap I och KF

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Transkript:

Johan Helsing, 11 oktober 2018 FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum Inlämningsuppgift 3 Sista dag för inlämning: onsdag den 5 december. Syfte: att träna på att hitta lösningar till linjära ekvationssystem, samt på att bedöma noggrannheten i svaren. Innan du startar: Se till att du förstår programmet mylog.m på kursens webbsida. Problem 1. Ett enkelt linjärt ekvationssystem: Vi har ett linjärt ekvationssystem Ax = b, där x är en kolonnvektor med tre okända element och systemmatrisen A och högerledet b ges av A = 1 2 3 2 4 α 4 5 6 och b = Talet α skall varieras. Lös först detta system för x i Matlab med hjälp av backslashoperatorn och med α = 1. Vad blir lösningen? Beräkna också konditionstalet för A med hjälp av Matlabs funktion cond. Vad blir det? Lös nu ekvationssystemet för 30 olika α, jämnt fördelade i intervallet α [1, 6]. Vad händer med konditionstalet när α närmar sig 6? Hur stort blir det för α = 6? Vilka är egenvärdena hos A för α = 6? (Använd eig). Finns det någon entydig lösning x för α=6? Motivera ditt svar. Redovisning: Lämna in svar på alla frågor. Lämna också in en förklaring till vad som hände för α=6. Överkurs: Finns det någon lösning x för α = 6 om b ändras till b = [50; 100; 23]? Om det finns en lösning så finns det också oändligt många. Försök, om detta är fallet, att hitta den lösning x som har minst 2-norm. Problem 2. Konditionstalet för en tridiagonal systemmatris. En viss tridiagonal n n matris D, som ofta dyker upp i strukturmekaniska beräkningar, har element 2 på huvuddiagonalen och element 1 på första super- och subdiagonalerna. Matrisen kan skapas i Matlab genom sup=ones(n-1,1); cen=-2*ones(n,1); sub=ones(n-1,1); D=diag(sub,-1)+diag(cen,0)+diag(sup,1); 2.1 3.4 7.2. sida 1 av 5

Undersök experimentellt hur konditionstalet κ hos matrisen D beror av systemstorlek n. Gör så här: Skapa en vektor nvec=ceil(logspace(1,2,20)) och låt elementen i denna vektor vara de systemstorlekar du skall jobba med. Konstruera sedan en for-loop som beräknar konditionstalet hos D för de 20 olika systemstorlekarna i nvec. Matrisen D skall skapas i en underfunktion som anropas i for-loopen. Plotta konditionstalet som funktion av n i ett loglog-diagram. Gör två figurer: en av typen plot(log10(n),log10(κ), * ) och en av typen loglog(n,κ, * ). Hitta en formel för kurvan du ser, det vill säga för hur konditionstalet hos D beror på systemstorlek n. Hur stora linjära ekvationssystem är meningsfulla att lösa då D är systemmatris och högerledet är känt med en relativ noggrannhet av 0.0001? Du får själv bestämma hur stort fel du kan tolerera i lösningen. Redovisning: Lämna in programkod, figurer, formel för kurvan, och svar på frågan. Ange vilka kvantiteter som plottas med xlabel och ylabel. Problem 3. Lösning av ett tridiagonalt ekvationssystem. Du skall lösa ett linjärt system av n ekvationer för de n obekanta variablerna u i, i = 1, 2,..., n. Ekvationssystemet ges på ett kompakt och mycket vanligt skrivsätt av u i+1 + (2 λh 2 )u i u i 1 = 0, i = 1, 2,... n, u 0 = 1, (1) u n+1 = 1, där h = 1/(n + 1) och talet λ är känt. Antag att u i representerar lösningen till något balkproblem vid positionerna x i = ih, i = 0, 1, 2,..., n, n + 1. Övertyga dig om att (1) verkligen är ett system av n linjära ekvationer för de n obekanta värdena u i, i = 1, 2,..., n. Värdena u 0 och u n+1 är ju kända. Formulera nu ekvationssystemet (1) på matris-vektor-formen Du = b, (2) där D är en tridiagonal n n systemmatris, u är en kolonnvektor med de n obekanta värdena u i, och b är ett högerled på kolonnvektorform. Lös sedan systemet (2) tre gånger för u med tre olika λ. Använd Matlabs backslashoperator. Välj λ = 10, λ = 100, och λ = 1000. Plota, till sist, för varje λ-värde, u i som funktion av positionerna x i. Notera att du skall plotta alla värden u i, i = 0, 1, 2,..., n, n + 1. Testa n = 3, n = 9, och n = 99. Plotten för n = 99 skall se ut som den i Figur 1 på nästa sida. Redovisning: Lämna in programkod och plot för n = 99. 4. Överkurs: Konvergensstudie. Ekvationssystemet (1) kommer från en diskretisering av randvärdesproblemet u (x) = λu(x), 0 x 1, u(0) = u(1) = 1. (3) sida 2 av 5

1 0.9 0.8 =-10 =-100 =-1000 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figur 1: Lösning till ekvation (1). När n ökar blir diskretiseringen allt bättre och den numeriska lösningen konvergerar (närmar sig) den exakta lösningen u(x) till det matematiska problemet (3). Lös systemet (1) med λ = 10 igen. Studera konvergensen för u i motsvarande position x i = 0.5 när n ökar. Om du väljer n udda så kommer index i = (n + 1)/2 alltid motsvara x i = 0.5. Kontrollera att svaret konvergerar mot u i = 0.3947709748714294 för i = (n + 1)/2. Hur stora system klarar du av att lösa? Hur snabbt konvergerar lösningen? (Som vilken potens av n avtar det relativa felet i u i?) Händer det något konstigt för riktigt stora n? Försök i så fall att förklara detta. Tips: Om du skapar systemmatrisen med spdiags i stället för med diag så bör du kunna lösa för system med n upp till hundra tusen på några sekunder. 5. Överkurs: Lösning av ett ickelinjärt ekvationssystem. Det ickelinjära ekvationssystemet x 2 + y 2 = 4, e x + y = 1, har två reellvärda lösningspar (x, y ). Hitta dessa par med högsta möjliga noggrannhet och med hjälp av Newtons metod för system. Tips: Börja med att plotta de kurvor som beskrivs av respektive ekvation. Skärningspunkterna kan användas som startgissningar. Om du hittar startgissningar som är korrekta med en decimal så skall du få lösningsparen med en relativ noggrannhet av 10 15 på fem iterationer. Programmeringen blir enkel om du har förstått programmet för att hitta roten till en ickelinjär ekvation med Newtons metod. Derivatan skall ersättas med Jacobianmatrisen (ibland kallad Jacobianen eller funktionalmatrisen) och abs kan behöva bytas mot norm. sida 3 av 5

6. Överkurs: en uppgift från Byggnadsfysiken. Inom Byggnadsfysiken löses ofta den endimensionella värmeledningsekvationen för temperaturen T (x, t) ( λ T ) = ρc T x x t, 0 x L, t 0. (4) Om värmeledningen i området, λ [W/(mK)], är konstant kan (4) skrivas som 2 T x 2 = 1 a T t, a = λ ρc. (5) Här är a [m 2 /s] värmediffustivitet och ρc är värmekapacitet per volymsenhet [kg/m 3 J/(kgK)= J/(m 3 K)]. För att värmeledningsekvationen skall ha en entydig lösning krävs begynnelsevillkor och randvillkor, till exempel T (x, 0) = T B0, 0 x L, (6) T (0, t) = T R1, T (L, t) = T R2, t > 0. (7) Detta betyder att temperaturen är T B0 överallt vid tiden t = 0. Därefter ändras temperaturen på ränderna så att den är T R1 för x = 0 och T R2 för x = L. Efter lång tid kommer temperaturen då att variera linjärt genom området. Detta kallas stationär lösning T stat (x) = T R1 + x L (T R2 T R1 ). (8) För korta tider kommer lösningen att ligga mellan dessa ytterligheter. Systemet (5), (6), och (7) kan lösas analytiskt, men uppgiften här är att lösa det numeriskt med en vanlig metod. Området 0 x L delas in i N lika breda celler med bredd x = L/N och mittpunkter x n, n = 1,..., N. Tiden delas in i tidpunkter t i = i t, i = 0, 1,..., där t är tidssteget. Vi söker temperaturer i punkterna x n vid tidpunkterna t i och inför beteckningen T i n T (x n, t i ), n = 1,..., N, i = 0, 1,.... (9) Ekvation (5) kan nu skrivas på diskret form T i n+1 2T i n T i n 1 ( x) 2 = 1 a n Tn i, (10) t som omformat blir n = βt i n 1 + (1 2β)T i n + βt i n+1, β = a t/( x) 2. (11) Diskretiseringen innebär en approximation av (5). Ekvation (11) kan tolkas som att temperaturen i punkt x n vid tidpunkt t i+1 är en kombination av temperaturerna för cellen själv och de omgivande cellerna ett tidssteg innan. sida 4 av 5

För att lösningen till (11) skall fungera (vara stabil) måste vilket kan skrivas om som ett krav på tidssteget β 0.5, (12) t ( x) 2 /(2a). (13) Ju mindre celler (mindre x) desto mindre tidssteg t krävs för stabilitet. För den första och den sista cellen blir uttrycken lite annorlunda än i (11) eftersom de delvis är låsta av randvillkoren. Sammantaget kan man skriva den diskreta lösningen i den första tidpunkten (t 0 ) så här: och i alla andra tidpunkter så här: T 0 n = T B0, n = 1,... N, (14) T1 i+1 = 2βT R1 + (1 3β)T1 i + βt2 i, (15) Tn i+1 = βtn 1 i + (1 2β)Tn i + βtn+1 i, n = 2..., N 1, (16) N = βt N 1 i + (1 3β)TN i + 2βT R2, (17) där i = 0, 1,... och där (16) är samma som (11). Skriv nu (15), (16), och (17) på matris-vektorform = AT i + B, i = 0, 1,..., (18) där T i = [T i 1 ; T i 2 ;... ; T i N ] och B = 2β [T R1; 0;... ; 0; T R2 ] båda är kolonnvektorer med N element. Hur ser matrisen A ut? Låt L = 0.1m, a = 10 6 m 2 /s, T B0 = 20 C, T R1 = 30 C, T R2 = 20 C, och skriv ett Matlabprogram som utför tidsstegningen i (18). Vektorn T 0 fås ur (14). Välj N = 25 och ett stabilt tidssteg. Låt programmet producera en liten animering som visar hur temperaturfördelningen närmar sig den stationära lösningen (8). Redovisning: Lämna in programkod. Visa animeringen för din assistent. sida 5 av 5