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.

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

Laboration 1. Ekvationslösning

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

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

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

Laboration 6. Ordinära differentialekvationer och glesa system

Konvergens för iterativa metoder

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

LABORATION cos (3x 2 ) dx I =

Föreläsning 5. Approximationsteori

Sammanfattning (Nummedelen)

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

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

2 Matrisfaktorisering och lösning till ekvationssystem

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

Omtentamen i DV & TDV

2D1240, Numeriska metoder gk2 för F2 och CL2 MATLAB-introduktion, minstakvadratmetoden, differensapproximationer,

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

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

TAIU07 Matematiska beräkningar med Matlab

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

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

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

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

Linjärisering, Jacobimatris och Newtons metod.

Newtons metod och arsenik på lekplatser

TANA17 Matematiska beräkningar med Matlab

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2

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

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

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

Fel- och störningsanalys

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

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

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

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

Introduktion till MATLAB

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

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

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

2320 a. Svar: C = 25. Svar: C = 90

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

Fel- och störningsanalys

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

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

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

Laboration 2, M0043M, HT14 Python

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

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

5B1134 Matematik och modeller

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

Hemuppgift 2, SF1861 Optimeringslära för T, VT-10

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

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

Block 2: Lineära system

Uppgift 1. (SUBPLOT) (Läs gärna help, subplot innan du börjar med uppgiften.) 1 A) Testa och förklara hur nedanstående kommandon fungerar.

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

Tillämpning: Bildinterpolation. Ekvationslösning. Integraler. Tillämpning: En båt. Räkning med polynom. Projekt. Tentamensinformation.

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

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

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

a = a a a a a a ± ± ± ±500

TMA226 datorlaboration

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

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

Akademin för utbildning, kultur och kommunikation MMA132 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 2 juni 2014

Tentamen i Teknisk-Vetenskapliga Beräkningar

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

Miniprojekt: Vattenledningsnäten i Lutorp och Vingby 1

de uppgifter i) Under m-filerna iv) Efter samlade i en mapp. Uppgift clear clc Sida 1 av 6

Fixpunktsiteration. Kapitel Fixpunktsekvation. 1. f(x) = x = g(x).

Laboration: Grunderna i Matlab

15 februari 2016 Sida 1 / 32

MMA132: Laboration 2 Matriser i MATLAB

KTH 2D1240 OPEN vt 06 p. 1 (5) J.Oppelstrup

Interpolation. 8 december 2014 Sida 1 / 20

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Interpolation Modellfunktioner som satisfierar givna punkter

Tentamen i Matematik 1 DD-DP08

Ickelinjära ekvationer

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

Laboration 3. Funktioner, vektorer, integraler och felskattning

Mer om texter i MATLAB och om iterativ lösning av linjära ekvationssystem

Umeå universitet Tillämpad fysik och elektronik Annika Moström Fackverk. Projektuppgift 1 Hållfasthetslärans grunder Våren 2012

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

Omtentamen i DV & TDV

SVÄNGNINGSTIDEN FÖR EN PENDEL

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

Block 5: Ickelineära. ekvationer? Läroboken. Löpsedel: Icke-lineära. ekvationer. Vad visade laborationen? Vad visade laborationen?

Miniprojekt: Vattenledningsnäten i Lutorp och Vingby 1

Linjär Algebra och Numerisk Analys TMA 671, Extraexempel

Miniprojekt: Vattenledningsnätet i Lutorp 1

Lösningar tentamen i kurs 2D1210,

Föreläsning 1. Numeriska metoder grundkurs II, DN1240. Carina Edlund Mottagningstid i rum 4516: onsdagar kl.

TANA19 NUMERISKA METODER

Gruppuppgifter 1 MMA132, Numeriska metoder, distans

Transkript:

Laboration 2 Laborationen löses i grupper om två och redovisas individuellt genom en lappskrivning den 3/10. 1 Störningsräkning 1 Betrakta funktionen f(x,y) = e yx2. Värdena på x och y är givna av x = 1±0.01, y = 2±0.05. Vi vill uppskatta hur stort fel/osäkerhet vi kommer ha i värdet på f, dvs tex ett svar på formen f(x,y) = f(1,2)±e f. Du ska göra detta på flera olika sätt och jämföra resultaten: 1. Teoretiskt med hjälp av felfortplantningsformeln (Taylor-utveckling). 2. Numeriskt med hjälp av experimentell störningsräkning. 3. Numeriskt med hjälp av min/max-räkning. 2 Störningsräkning 2 Vi vill lösa ekvationen f(x) = 0 där f(x) = cos(x/50) 1/ 2. När man gör detta med en numerisk algoritm kan man inte hitta exakt rätt rot x. Istället räknar man fram ett x så att f( x) < ε för ett litet ε. Vi vill uppskatta hur stort fel vi kommer ha i approximationen x jämfört med det exakta värdet x när ε = 10 3. Gör det: 1. Teoretiskt med hjälp av felfortplantningsformeln (Taylor-utveckling). 2. Numeriskt genom att undersöka hur mycket du kan störa den exakta roten x = 25π/2 utan att f(x) blir större än 10 3. 3 Icke-linjär skalär ekvation Man vill bestämma samtliga rötter till följande skalära ekvation, Noggrannheten skall vara minst tio korrekta siffror. x 4sin(2x) 3 = 0. 1. Rita grafen för f(x) = x 4sin(2x) 3 (med Matlab). Samtliga nollställen till f(x) skall vara med. Hur många rötter finns det? 2. Skriv ett program i Matlab som beräknar rötterna med fixpunktsiterationen x n+1 = sin(2x n )+ 5 4 x n 3 4. Använd ett avbrottsvillkor för iterationen som ger tio siffrors noggrannhet. Undersök empiriskt vilka av rötterna som kan bestämmas med denna metod. Förklara resultatet teoretiskt. 3. Skriv ett program i Matlab som beräknar rötterna med Newtons metod och tio siffrors noggrannhet. En tumregel för Newton är att antalet korrekta siffror dubblas i varje iteration. Stämmer det? 1

4. Du ska nu jämföra konvergensen för de två metoderna. Välj en rot där bägge metoderna fungerar. Använd samma startgissning. Plotta felet e n = x n x efter iteration n som funktion av n för båda metoderna i samma figur. Använd semilogy-plot för att få logskala på y-axeln. (För att beräkna felet, gör först en mycket noggrann (15 korrekta siffror) referenslösning med Newtons metod.) Från figuren bör du kunna se tydligt hur mycket snabbare Newton konvergerar än fixpunktiterationer. Ett annat sätt att kvantifiera hur snabbt metoden konvergerar är konvergensordningen. Den beskriver hur mycket mindre felet e n+1 är jämfört med e n. Mer precist är konvergensordningen p om e n+1 e p n när felen är små. Plotta därför e n+1 som en funktion av e n i loglog för de båda metoderna och avgör baserat på detta metodernas konvergensordning. 4 Ett olinjärt ekvationssystem: Vikter på en lina Två kulor är fästade på ett snöre som hänger mellan två punkter, A och B. Linjen AB mellan punkterna är horisontell och avståndet mellan punkterna är a. Kulornas massa är m 1 resp m 2. Kulorna delar upp snöret i tre delar med längderna L 1, L 2 och L 3. Uppgiften är att räkna ut vilka vinklar de tre snörena bildar med horisontalplanet samt att rita upp snörets form i en graf. A u1 a B L1 m1 L2 u2 m2 u3 L3 Beteckna de tre sökta vinklarna u 1, u 2 och u 3. De uppfyller villkoret π/2 > u 1 u 2 u 3 > π/2 (se figuren). Observera att vridning i motsols riktning ger en positiv vinkel. Rent geometriskt gäller de två sambanden: L 1 cosu 1 +L 2 cosu 2 +L 3 cosu 3 = a, L 1 sinu 1 +L 2 sinu 2 +L 3 sinu 3 = 0 Dessutom gäller vid jämvikt följande samband: m 2 tanu 1 (m 1 +m 2 )tanu 2 +m 1 tanu 3 = 0 De tre sambanden utgör tillsammans ett icke-linjärt ekvationssystem för de tre vinklarna u 1, u 2 och u 3. Lös detta ekvationssystem med Newtons metod för följande värden på parametrarna a = 2, L 1 = 1, L 2 = 1 samt L 3,m 1,m 2 enligt tabellen L 3 m 1 m 2 1 1 1 1 1 2 2 1 1 1 10 1 För varje parameteruppsättning skall, förutom svaret i radianer och grader samt grafen, startgissning och mellanresultat som visar konvergensordningen redovisas. 2

5 Linjära ekvationssystem I många realistiska tillämpningar måste man lösa stora linjära ekvationsystem, med miljontals obekanta. Det är i dessa fall som effektiva algoritmer blir viktiga att använda. Som exempel ska ni här räkna på ett komplicerat fackverk: en modell av Eiffeltornet. Ett fackverk består av stänger förenade genom leder i ett antal noder. Ni ska beräkna deformationen av fackverket när noderna belastas av yttre krafter. Ekvationerna för deformationen härleds i hållfasthetsläran, och baseras på att förskjutningarna i varje nod är små, och att Hookes lag gäller för förlängningen av varje stång. I slutändan får man ett linjärt ekvationssystem på formen Ax = b. När antalet noder i fackverket är N kommer antalet obekanta vara 2N och A R 2N 2N. Matrisen A brukar kallas styvhetsmatrisen. Högerledet b innehåller de givna yttre krafterna som verkar på noderna, b = ( F x 1,Fy 1,Fx 2,Fy 2,...,Fx N,Fy N) T, b R 2N, Modellen i eiffel2.mat, med 399 noder (798 obekanta). där F j = (Fj x,fy j )T är kraften i nod j. Lösningen x innehåller de resulterande (obekanta) förskjutningarna, ( ) T, x = x 1, y 1, x 2, y 2,..., x N, y N x R 2N. Här är alltså ( x j, y j ) T förskjutningen av nod j när fackverket belastas med krafterna i b. På kurshemsidan finns filerna eiffel1.mat, eiffel2.mat, eiffel3.mat och eiffel4.mat. De innehåller fyra olika modeller av Eiffeltornet med växande detaljrikedom (N = 261, 399, 561, 1592). Varje modell består av nodkoordinater i vektorerna xnod, ynod, stångindex i matrisen bars (används bara för plottningen) och styvhetsmatrisen A. 1. Ladda in en av modellerna i Matlab med kommandot load. Hämta funktionsfilen trussplot.m från kurshemsidan och anropa den med trussplot(xnod,ynod,bars). för att plotta tornet. Välj nu en av noderna och belasta den med en kraft rakt högerut med beloppet ett. (Sätt Fj x = 1 för något j, och resten av elementen i b lika med noll, dvs i Matlab tex: j=171; b=zeros(2*n,1); b(j*2-1)=1;) Lös systemet Ax = b med backslash för att få fram förskjutningarna i alla punkter. Beräkna de nya koordinaterna för det belastade tornet, x bel j = x j + x j, etc.: xbel = xnod + x(1:2:end); ybel = ynod + x(2:2:end); Plotta det belastade tornet. Använd hold on för att plotta de två tornen ovanpå varandra i samma figur. Markera vilken nod ni valt. 2. Backslash-kommandot i Matlab använder normalt vanlig gausseliminering för att lösa ekvationsystemet. Undersök hur tidsåtgången för gausseliminering beror på systemmatrisens storlek genom att lösa ekvationsystemet Ax = b med ett godtyckligt valt högerled b för var och en av de fyra modellerna. Använd Matlab-kommandot cputime. (help cputime ger mer info.) För att få bra 3

noggrannhet i mätningen av CPU-tiden (speciellt om den är kort) bör man upprepa beräkningarna några gånger och ta medelvärdet. Plotta tidsåtgången mot antal obekanta N i en loglog-plot. Hur ska tidsåtgången bero på N enligt teorin? Stämmer det? 3. Ni ska räkna ut i vilka noder fackverket är mest respektive minst känslig för horisontell belastning. Börja med den minsta modellen, eiffel1.mat. Tag en nod i taget. Belasta den med samma kraft som i a) ovan och räkna ut resulterande förskjutningar x. Notera storleken på förskjutningen, dvs x. Fortsätt med nästa nod, etc. Systematisera beräkningarna med en for-slinga i ert Matlabprogram och spara storleken på förskjutningen för varje nod. Ta sedan reda på vilken som nod ger störst respektive minst förskjutning. Plotta tornet med trussplot och markera dessa mest och minst känsliga noder i figuren. Ni kommer att behöva lösa samma stora linjära ekvationssystem med många olika högerled (N stycken). När matrisen är stor, vilket är fallet för de större modellerna, blir detta mycket tidskrävande. Optimera programmet genom att använda LU-faktorisering av A (Matlab-kommandot lu). Uppskatta tidsvinsten av detta. Kan ni köra även de större modellerna? 4. När en matris är gles kan betydligt effektivare metoder än vanlig gausseliminering användas för att lösa ekvationsystemet. Använd spy(a) för att studera styvhetsmatrisens struktur. Vad kan man säga om den? Genom att tala om för Matlab att matrisen är gles kommer bättre metoder automatiskt användas när backslash anropas. Detta kan ni enkelt göra här genom att skriva A=sparse(A). Gå igenom beräkningarna i c) igen. Hur stor tidsvinst gör man i detta fall genom att låta Matlab använda metoder för glesa matriser? Prova med och utan LU-faktorisering. 6 Interpolation och minstakvadratanpassning I almanackan kan man hitta tider för solens upp- och nedgång för några orter i Sverige. Tabellen nedan är uträknad ur almanackan och anger dagens längd i Stockholm den första dagen i varje månad under sommarhalvåret (tiden är angiven decimalt): Månad: 1 april 1 maj 1 juni 1 juli 1 aug 1 sep Dagnr : 91 121 152 182 213 244 Solen uppe: 13.18 15.78 17.97 18.38 15.53 14.07 a) Interpolera punkterna med ett femtegradspolynom. Rita de sex givna punkterna och polynomkurvan med fin diskretisering (dagligen från dag 91 till dag 244). Hur länge är solen uppe på nationaldagen den 6 juni? Hur länge är den uppe 15 augusti? b) Anpassa ett andragradspolynom i minstakvadratmening till den givna datan. Plotta på samma sätt som ovan och ange soltiden 6 juni och 15 augusti enligt denna modell? c) Tabellen kompletteras med vinterhalvårets värden: Månad: 1 jan 1 feb 1 mars 1 okt 1 nov 1 dec Dagnr : 1 32 60 274 305 335 Solen uppe: 6.13 8.02 10.42 11.43 8.73 6.55 Använd det trigonometriska uttryck c 1 + c 2 cosωt + c 3 sinωt där ω = 2π/365, som modellfunktion. Varför bör detta kunna ge god anpassning? Rita resultatet i en tvårutors subplot med de tolv punkterna och kurvresultatet (dagligen från dag 1 till dag 365) i första rutan. I andra rutan ritas residualvektorns tolv komponenter mot de tolv givna dagnumren. Beräkna felkvadratsumman samt nationaldagens soltid enligt denna modell. 4

7 Numerisk derivering och noggrannhetsordning Betrakta funktionen f(x) = sin(x). 1. Approximera f (1) med hjälp av framåtdifferens och (liten) parameter h. Plotta felet i approximationen som funktion av h med loglog-kommandot i Matlab. Hur bör felet bero på h i detta fall? Hur kan du använda din plot för att bekräfta detta? 2. För riktigt stora och små värden på h får man dåliga resultat. Vad beror det på? Hur litet fel kan du som bäst uppnå? 3. Gör uppgifterna a-b även för centraldifferenser. Hur ändras resultaten? 4. Läs Sektion 5.1.2 i Sauer och använd detta för att förklara hur stort det minimala felet bör vara teoretiskt för centraldifferensr. Kan du härleda motsvarande formel för framåtdifferenser? 5