TAIU07 Matematiska beräkningar med Matlab

Relevanta dokument
TANA17 Matematiska beräkningar med Matlab

15 februari 2016 Sida 1 / 32

TAIU07 Matematiska beräkningar med Matlab

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

TMA226 datorlaboration

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

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

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning

2 februari 2016 Sida 1 / 23

TANA17 Matematiska beräkningar med Matlab

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

LABORATION cos (3x 2 ) dx I =

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

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

TANA17 Matematiska beräkningar med Matlab

Introduktion till MATLAB

Laboration 3. Funktioner, vektorer, integraler och felskattning

Modul 1: Komplexa tal och Polynomekvationer

Laboration 3. Funktioner, vektorer, integraler och felskattning

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

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

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

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

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

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

TANA09 Föreläsning 8. Kubiska splines. B-Splines. Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

1 som går genom punkten (1, 3) och är parallell med vektorn.

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

Transformationer i R 2 och R 3

SF1624 Algebra och geometri Lösningsförsag till modelltentamen

2 Matrisfaktorisering och lösning till ekvationssystem

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

Frågorna 1 till 6 ska svaras med ett kryss för varje korrekt påstående. Varje uppgift ger 1 poäng. Använd bifogat formulär för dessa 6 frågor.

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

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

TANA17 Matematiska beräkningar med Matlab

Veckoblad 1, Linjär algebra IT, VT2010

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

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

Geometriska transformationer

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB

Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

TAIU07 Matematiska beräkningar med Matlab

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

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

Stöd inför omtentamen i Linjär algebra TNA002.

Studio 6: Dubbelintegral.

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

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.

Parametriserade kurvor

LYCKA TILL! kl 8 13

Robotarm och algebra

Mer om geometriska transformationer

A1:an Repetition. Philip Larsson. 6 april Kapitel 1. Grundläggande begrepp och terminologi

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

Inför tentamen i Linjär algebra TNA002.

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

Vektorgeometri för gymnasister

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2

LINJÄRA AVBILDNINGAR

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

Laboration 1. Grafisk teknik (TNM059) Introduktion till Matlab. R. Lenz och S. Gooran (VT2007)

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Laboration 3. Ergodicitet, symplektiska scheman och Monte Carlo-integration

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

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

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

SF1624 Algebra och geometri Lösningsförslag till tentamen Lördagen den 5 juni, 2010 DEL A

3 Man kan derivera i Matlab genom att approximera derivator med differenskvoter. Funktionen cosinus deriveras för x-värdena på följande sätt.

Veckoblad 3, Linjär algebra IT, VT2010

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 8 december 2015 Sida 1 / 22

25 november, 2015, Föreläsning 20. Tillämpad linjär algebra

DATORLABORATION FÖR KURSEN ENVARIABELANALYS 2

Veckoblad 4, Linjär algebra IT, VT2010

Vektorgeometri. En vektor v kan representeras genom pilar från en fotpunkt A till en spets B.

! &'! # %&'$# ! # '! &!! #

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A. r cos t + (r cos t) 2 + (r sin t) 2) rdrdt.

Vektorgeometri för gymnasister

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Rumsuppfattning är förmågan att behandla sinnesintryck av former

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

TMV225 Inledande Matematik M

TAIU07 Matematiska beräkningar med Matlab

Lösningsförslag, preliminär version 0.1, 23 januari 2018

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

4 Numerisk integration och av differentialekvationer

v0.2, Högskolan i Skövde Tentamen i matematik

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet april

TSBB14 Laboration: Intro till Matlab 1D

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

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

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

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

Exempel :: Spegling i godtycklig linje.

SF1624 Algebra och geometri

1. Bestäm definitionsmängden och värdemängden till funktionen f(x,y) = 1 2x 2 3y 2. Skissera definitionsmängden, nivålinjerna och grafen till f.

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

Transkript:

TAIU07 Matematiska beräkningar med Matlab Laboration 3. Linjär algebra Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur:

1 Introduktion 2 En Komet Kometer rör sig enligt ellipsformade banor. När man först ser en ny komet så vill man uppskatta dess bana. Det görs genom att man samlar in observerade positioner för kometen. Man kan sedan anpassa en ellips så bra som möjligt till de observerade positionerna med hjälp av minsta kvadratmetoden. En punkt (x,y) ligger på en ellips om ekvationen c 1 x 2 +c 2 xy +c 3 y 2 +c 4 x+c 5 y +1 = 0. är uppfylld för en specifik uppsättning parametrar c = (c 1,c 2,c 3,c 4,c 5 ) T. Det är inte säkert att en uppsättning parametrar ger en ellips. Man kan även få parabler eller hyperbler. Uppgift 2.1 Antag att ett antal observationer (x k,y k ), k = 1,..,n, för kometen finns. Skriv ner det överbestämda ekvationssystem Ac = b som uppstår då vi försöker bestämma ellipsen med minsta kvadrat metoden. Visa tydligt hur matrisen A och högerledet b skall se ut. Uppgift 2.2 Programmet CometObservation simulerar observationer av kometen. Använd programmet genom att skriva >> Times = 0:0.05:0.5; >> PositionData=CometObservation(Times); så skapas en matris PositionData med observerade positioner för kometen vid tiderna som sparats i vektorn Times. Första raden i matrisen, dvs PositionData(1,:), innehåller x-koordinater och andra raden innehåller y-koordinater. Använd de observationer som finns i PositionData-matrisen för att hitta vektorn c som bestämmer ellipsen. I ditt program skall du först skapa två kolumnvektorer x och y, och använda dessa för att bygga upp matrisen A och högerledet b. Du löser sedan minsta kvadratproblemet och hittar vektorn c som innehåller koefficienterna i ellipsens ekvation. 1

Använd slutligen programmet DisplayComet för att rita upp ellipsen och de observationer som användes. Programmet anropas enligt >> DisplayComet( Coefs, PositionData ) där Coefs är en vektor som innehåller coefficienterna c 1,c 2,c 3,c 4 och c 5 ovan. Blev resultatet bra? Kommentar Med Times=0:0.05:0.5 använder vi n = 11 punkter som endast täcker en liten del av ellipsen. Det gör att det är svårt att hitta bra värden på koefficienterna. Tittar vi endast på en liten del av ellipsen döljer fel i obeservationerna helt kurvans krökning. Uppgift 2.3 Försök förbättra ellipsen genom att lägga till fler observationer. Ändra tiderna då observationerna görs till >> Times = 0:0.05:3.0; Hur många observationer används nu för att bestämma ellipsen? Blev resultatet bra? Uppgift 2.4 Ett alternativ till fler observationer är att sprida ut observationerna bättre. Använd observationstider >> Times = 0:0.5:5.0; Hur många observationer används nu? Blev resultatet bra? Uppgift 2.5 Vad är viktigast: Att ha många observationer eller att observationerna är väl utspridda? Redovisa Skriv ut ditt program samt den sista grafen för det sista fallet, dvs Times = 0:0.5:5.0;. 2

y P O α P x Figur 1: Rotation av punkten P = (5, 1) T, kring origo O = (2, 2) T, med en vinkel α. Efter rotationen fås den nya punkten P = (2, 5.16) T. 3 Rotationer och Speglingar Geometriska operationer som speglingar och vridningar har många tillämpningar inom exempelvis datorgrafik. I denna övning skall vi träna på att använda linjär algebra för att utföra sådana operationer en enkel bild. Vi börjar med att beskriva hur en rotation i (x,y)-planet kan gå till. Låt P=(P 1, P 2 ) T representera en punkt i (x,y)-planet. Vill vi rotera punkten P kring origo (0, 0) T, med en given vinkel α, så kan vi beräkna, P = G P, där G = ( cos(α) sin(α) sin(α) cos(α) Den roterade punktenp får vi alltså genom multiplikation med den matris G som beskriver vridning i planet. Vill vi istället välja ett annat origo O = (O 1, O 2 ) T att rotera kring så bildar vi först vektorn OP = P O. Det är vektorn OP som skall roteras. Vi får då P = O+G (P O). där P, O, och P är punkter i (x,y)-planet. Rotationen illustreras i Figur 1. Uppgift 3.1 Skriv en funktion RoteraPunkt som roterar en punkt P kring ett orgio O med vinkel α. Funktionen skall anropas >> P = RoteraPunkt( P, O, alpha ); där P skrivs över med den nya roterade punkten P. Använd din funktion för att utföra precis den rotation som illustreras i Figur 1. Punkten P = (5,1) T skall alltså roteras så att den hamnar vid position P = (2,5.16) T. Använd formeln OP OP = OP OP cos(α) 3 ).

för att hitta rätt vinkel. Gick det som du tänkt dig? Vilken vinkel använde du? Uppgift 3.2 Filen RitaHuset.m innehåller de Matlabkommandon som behövs för att rita upp en enkel skiss bestående av ett hus, en man, och ett träd. Varje objekt på bilden består av en 2 n matris där varje kolumn motsvarar en hörnpunkt. Exempelvis gäller att >> Gubbe(:,1) ans = 13 0 vilket skall tolkas som att mannens vänstra fot är placerad vid koordinater (13, 0) T. Notera att när vi ritar upp trädet så ritar vi först en grön heldragen linje och sedan en svart-streckad för att det skall synas lite bättre. Vill vi flytta ett objekt i bilden, men i övrigt behålla objektet som det är, så skall vi addera en konstant vektor till varje hörnpunkt innan vi ritar upp bilden. Vill vi att mannen skall stå på taket så tittar vi på matrisen Huset och ser att om vänstra foten flyttas med T = (4, 4.5) T så bör mannen stå nära högra kanten på taket. Bilda en matris T som har utseendet T = ( 4 4... 4 4.5 4.5... 4.5 och som är av samma storlek som matrisen Gubbe. Beräkna sedan Gubbe = Gubbe + T; precis innan gubben skall ritas upp. Inför ändringarna i filen RitaHuset.m. Varje punkt som bygger upp gubben borde nu ha förflyttats på ett sådant sätt att gubben istället står på taket. Skriv ner de Matlab kommandon du behöver för att genomföra förflyttningen. Fungerade det? ), Tips Du kan använda size för att ta reda på hur stor matrisen Gubbe är och ones för att skapa vektorn med ettor. Då du är klar så kommentera bort dina programrader så att gubben är tillbaka på marken. 4

Uppgift 3.3 Nu skall vi se till att trädet blåser omkull. I bilden ser vi att trädets vänstra hörn står vid punkten (5.9, 0) T. Inför ett nytt origo vid denna punkt, dvs låt O=(5.9, 0) T. Använd din funktion RoteraPunkt för att rotera alla punkterna som sparats i matrisen Trad. Välj vridningsvinkeln α så att trädet precis slår i marken. Inför de Matlab kommandon du behöver för att utföra vridningen i programet RitaHus. Vilken vinkel valde du? Tips Kommandot Trad(:,k)=RoteraPunkt( Trad(:,k),O,alpha) borde rotera en av punkterna som bygger upp trädet och skriva över den gamla punkten med den nya i matrisen Trad. Använd en for loop för att rotera alla punkterna. Uppgift 3.4 Efter att trädet vält vore det mera naturligt om mannen pekade åt andra hållet. Om vi antar att mannen hört smällen och precis kommit ut genom dörren så måste han dessutom flyttas. Detta skall vi åstadkomma med en lämplig spegling. Antag att vi vill spegla en punkt P = (x, y) T i y-axeln. Hur blir den matris H som beskriver speglingen? Vi skall alltså kunna beräkna den speglade punkten genom där O är det origo vi valt. Ange matrisen H. P = O+H (P O). Nästa steg är att välja ett lämpligt origo O mellan dörren och gubben att använda vid speglingen. Skriv en funktion SpeglaPunkt som utför de beräkningar som krävs för att genomföra speglingen av punkterna som bygger upp gubben. Inför även lämpliga ändringar i RitaHuset. Ange det origo du valde. Redovisa Skriv ut bilden med både vält träd samt en gubbe som pekar åt rätt håll. Skriv även ut dina funktioner RoteraPunkt, SpeglaPunkt och RitaHuset. Uppgift 3.5 (Frivillig) Antag att vi vill att trädet skall vara lite högre och dessutom luta aningen åt vänster (innan det blåst ner). Detta kan åstadkommas med en transformation av typen (x,y) (x αy,βy), där ett värde α = 0.13 ger en lagom lutning och β = 1.1 ger ett lite högre träd. Beskriv denna avbildning med en matris B. Vilket origo måste väljas för att avbildningen skall ge önskad effekt? Genomför beräkningarna för att ändra trädets höjd och lutning. Notera att nu måste även vridningsvinkeln ändras för att trädet precis skall slå i marken. 5

4 Beräkning av Integraler Integralen I = b a f(x)dx, kan approximeras med Trapetsregeln. Vi väljer då (N+1)st jämnt utspridda x-värden a = x 1 < x 2 <... < x N < x N+1 = b så att avståndet mellan punkterna blir h = (b a)/n. Integralens värde approximeras med ( f(x1 ) I h = h +f(x 2 )+...+f(x N )+ f(x ) N+1). 2 2 Givet att ett stort antal x-värden används så bör vi få en bra approximation av integralens rätta värde. Uppgift 4.1 Skriv en funktion Trapets som beräknar en integral med trapetsmetoden. Funktionen skall kunna anropas enligt >> Ih = Trapets( @funk, a, b, N ); där [a, b] är intervallet, funk är den funktion som skall integreras, och N är antalet x-värden som skall användas. Vill du beräkna funktionen f(x) inne i din Trapets-funktion så använd feval. Uppgift 4.2 Använd funktionen Trapets för att beräkna en approximation I h av I = π 0 sin(x 2 )dx Du kan antigen skriva en ny funktionsfil som implementerar f(x) = sin(x 2 ) eller skapa ett funktionshandtag. Vilket värde får du om du använder N = 100? Tips Du kan använda integral för att verifiera att din funktion ger rätt resultat. 6

Uppgift 4.3 Vi väljer nu att beräkna 1 0 4 1+x2dx = π. med hjälp av Trapetsregeln och vill undersöka hur felet i den beräknade approximationen av π beror på antalet delintervall som används. Skriv ett program som beräknar felet E(h) = I I h i Trapetsapproximationen för N = 10,20,30,...,200. Då ditt program är färdigt skall du alltså ha två vektorer: en vektor h som innehåller de steglängder som använts och en vektor E som innehåller felen i trapetsapproximationen för respektive h-värde. Använd loglog( h, E, rx ) för att illustrera felets beroende på steglängden. Beskriv grafens utseende. Uppgift 4.4 Felet vid trapetsapproximation kan härledas genom Taylor utveckling. Det betyder att felet kan uttryckas som E(h) = C h p, för något heltal p. Utnyttja att log(e) = log(c)+plog(h) = c 1 +c 2 y = p 1 (y), y = log(h). för att hitta de bästa parametrarna C och p med hjälp av minsta kvadratmetoden. Vi skall alltså använda polyfit för att anpassa ett förstagrads polynom så bra som möjligt till vektorerna log(h) och log(e). Bygg ut ditt program så att C och p beräknas enligt ovan. Vilka värden på C och p får du? Parametern p borde bli ett heltal. Stämmer det med dina resultat? Plotta även de observerade felen (med röda x) och de fel som förutsägs av modellen med dina värden för C och p. Använd loglog när du plottar. Redovisa Skriv ut din funktion Trapets.m, huvudprogrammet som undersöker felets beroende på h, samt grafen som illustrerar felen. 7