här - KTH
Transcription
här - KTH
SF1518-1519, numpbd-15 Namn, pers.nr..................................................................................... LABORATION 1 (i grupper om två) Unix- och MATLAB-introduktion,interaktivt program, linjära ekvationssystem, kurvanpassning och interpolation Moment -1 avser alla. Moment 0 är speciellt avsett för dem som inte tidigare använt MATLAB och är nyttig repetition för övriga. Dessa moment redovisas inte men rådfråga gärna handledare vid behov. Vid redovisningen av moment 1-5 ska båda i laborationsgruppen kunna redogöra för teori, algoritmer och resultat! Var väl förberedda så att varje delredovisning går snabbt och smidigt (kurvor plottade, numeriska resultat noterade). Alla frågor i deluppgifterna ska kunna besvaras! Redovisningstillfällen: 16/9 och 18/9. Sista dag för bonuspoäng: 18/9 2015. -1. Logga in och aktivera dig på kursen i Rapp Starta datorn. Den svarar normalt på tilltal från tangetbordet eller musen, tryck annars på strömbrytaren frampå själva datorn. Logga in med ditt KTH-id och lösenord. Aktivera dig på kursen genom att starta webläsaren och gå till https://rapp.csc.kth.se/ som kräver ny inloggning. Klicka på aktivera! Kursbeteckningar: CMATD (SF1518) läser kursomgång numpbd1-15 och CENMI (SF1519) läser kursomgång numpbd2-15. När du är klar så logga ut genom att trycka på kugghjulet uppe till höger på skärmen och välja Logout. Glöm inte det när du slutar i fortsättningen. Låt din kompis göra samma sak. Börja sedan med nästa moment. 0. Komma igång med MATLAB (nyttig repetition för dem som gjort det tidigare) Klicka på knappen Dash Home upptill till vänster. Ett fönster öppnas med MATLAB bland ikonerna i rutan Applications. Dubbelklicka på MATLAB-ikonen. Nu är du/ni igång och får efter viss väntan (tills Intializing... försvunnit) upp MATLAB med de fyra fönstren Current Folder, Editor, Workspace och Command Window. Pröva att skriva några enkla MATLAB-uttryck i kommandofönstret och se vad som händer (utan och med semikolon) Skriv in några rader MATLAB i editorn och spara detta med ett namn du väljer. I mappfönstret kommer det in som namn.m. Nu kan du i kommandofönstret skriva namn och få dina MATLAB-rader utförda. Kör gärna någon demonstration (kommandot demo). Innan du och din labkompis ger er på uppgift 1-5 kan ni pröva på några av de MATLAB-övningsuppgifter (MÖ) med facit, som länkas till på kurswebben under Lab.1. Särskilt rekommenderas MÖ 3, 4, 5, 11 och 12, som kan vara till hjälp i uppgifterna nedan, särskilt 4 och 5. Datormiljön är Ubuntu Linux (ett Unix-liknande operativsystem). Du behöver inte fördjupa dig mycket i hur Unix fungerar eftersom MATLAB-systemet har en inbyggd textredigerare för program, fönster för filhantering och kommandofönster för att köra kommandon och program. Vill/behöver du veta mer om Unix rekommeras den korta introduktion och den längre lathund som länkas till under kurslitteratur på kurswebben. Tips till dig som också kör MATLAB på din persondator/hemdator: Datorerna i salarna har på skärmen uttag för USB-minne, som därmed som kan användas för att flytta filer mellan datorerna. 1. Informerad gissning av ett slumpat heltal Skriv ett program i MATLAB som slumpar fram ett heltal mellan ett och hundra och låter den som kör programmet gissa vilket tal det är. Som hjälp ska ditt program skriva ut meddelanden efter varje gissning, t ex så här: Vad heter du? Anna Hej Anna, vilket heltal från 1 till 100 tror du att det är? 50 För mycket. Gissa igen: 20 För litet. Gissa igen: 25 För litet. Gissa igen: 42 För mycket. Gissa igen: 36 Rätt gissat! Ledning: Använd help i MATLAB för att ta reda på hur randi och input och disp fungerar. Strängar är i MATLAB vektorer av tecken. Provkört av handledare (sign): .................................................... 2. Linjärt ekvationssystem a) Lös med MATLAB det linjära ekvationssystemet Ax = b i MATLAB: 0 1 1 1 x1 4 5 7 6 2 3 0 x2 5 = 1 −1 0 x3 1 1 1 1 2 x4 Beräkna residualvektorn r = b − Ax. Notera svaret nedan. Varför blir inte residualvektorn exakt lika med noll? Lösning samt svar: b) Ändra det linjära ekvationssystemet Ax = b till: 0 1 1 1 4 5 6 x1 2 3 5 x2 = 1 −1 1 x3 1 1 2 Har systemet en lösning? Upprepa stegen ovan. Vad händer? Notera svaret nedan. Jämför storleken på residualvektorn med den föregående. Lösning samt svar: c) Ändra det linjära ekvationssystemet Ax = b till: 0 4 5 1 2 3 x1 x2 = 6 5 x3 Har systemet en lösning? Upprepa stegen ovan. Vad händer? Är lösningen korrekt? Finns det fler? Notera svaret nedan. Vad blir residualvektorn? Lösning samt svar: 3. Dagens längd i Stockholm Tabellen nedan anger dagens längd i Stockholm den första dagen i varje månad under sommarhalvåret (tiden är angiven decimalt, inte timmar och minuter): Månad: Dagnr : Solen uppe: 1 april 91 13.2 1 maj 121 15.8 1 juni 152 18.0 1 juli 182 18.4 1 aug 213 16.6 1 sep 244 14.1 a) Plotta de sex punkterna. Det gäller att anpassa ett andragradspolynom till dem med minstakvadratmetoden. Hur lyder normalekvationerna och hur många rader och kolumner har matrisen i normalekvationerna i detta fall? Beräkna polynomets koefficienter och rita polynomkurvan med tät indelning, dagligen från vårdagjämningen dag 80 till höstdagjämningen dag 265. Hur länge är solen uppe på midsommardagen (den 20 juni 2015) enligt denna modell? Är det rimligt? b) Tabellen kompletteras med vinterhalvårets värden: Månad: Dagnr : Solen uppe: 1 jan 1 6.1 1 feb 32 8.0 1 mars 60 10.4 1 okt 274 11.4 1 nov 305 8.7 1 dec 335 6.6 Markera de tolv punkterna i en figur. Ett trigonometriskt uttryck med perioden T = 365 bör kunna ge god anpassning: F (t) = c1 + c2 cos ωt + c3 sin ωt + c4 cos 3ωt + c5 sin 3ωt Undersök detta och rita kurvresultatet (dagligen från nyårsdagen till dag 365) tillsammans med givna data. Rita också residualvektorns tolv komponenter mot de tolv givna dagnumren. Beräkna felkvadratsumman samt midsommardagens soltid enligt denna modell. 4. Hitta bästa cirkel till givna punkter a) Sex punkter är givna: (0, −1), (0, 1), (2, −2), (5, −1), (4, 2), (1, 3). och vi vill finna den bäst anpassande cirkeln. Utgå från cirkelns ekvation (x − a)2 + (y − b)2 = R2 och härled (med papper och penna) det alternativa uttrycket c1 + c2 x + c3 y = x2 + y 2 ; (redovisas!) Notera uttrycken för mittpunktskoordinaterna, (a, b), och radien, R. Lös med minstakvadratmetoden det överbestämda ekvationssystem för c1 , c2 , c3 som fås av de givna punkterna. Rita upp punkterna och cirkeln. Pröva även att anpassa en cirkel till endast de 3 första av de givna punkterna. Den cirkeln ska gå exakt genom punkterna. Vad kallas denna typ av kurvanpassning? b) Utnyttja grafisk inmatning (ginput) och klicka tio punkter ungefärligen runt en cirkel. Beräkna och rita bästa cirkel tillsammans med de tio punkterna. Om programmet i a) skrivits på ett bra sätt är detta en enkel modifikation av det programmet. 5. Interpolation Givet följande tabell över jordens medeltemperatur vart tionde år 1934-2014, från NASA GISS (Goddard Institute for Space Studies) 2015. year 1934 1944 1954 1964 1974 1984 1994 2004 2014 medeltemperatur 13, 91 13, 98 13, 95 14, 01 14, 06 14, 23 14, 36 14, 45 14, 65 I denna deluppgift ska följandsalternativ interpolation prövas för att anpassa en kurva till dessa nio mätdata: a) Styckvis linjär interpolation b) Interpolation med ett polynom av gradtal åtta c) Splineinterpolation d) Styckvis kubisk Hermiteinterpolation I uppgift a) behöver endast plot användas. För de övriga deluppgifterna används funktioner som finns i MATLAB-biblioteket: polyfit, polyval, spline och pchip. För att se hur de anropas, använd help. Plotta mätvärdena (de nio avlästa) och resultatet av interpolationen i fyra delfönster med hjälp av subplot. Alla fyra graferna ska ha lämplig rubrik samt variabelbeteckningar på axlarna. Fyll i resultaten vid extrapolation till 2030 och 2050 med de olika metoderna: metod linear polynom Hermite spline temperatur2030 Laboration 1 redovisad och helt klar! temperatur2050 Datum: .................................... Godkänd av .........................................................