Labuppgift Datoraritmetik

Beräkningsvetenskap I/KF
Oktober 2015
Labuppgift Datoraritmetik
Den här labuppgiften bygger vidare på lab 2, den som handlade om linjära system, och på den labuppgift du gjorde där. Framför allt bygger den på det du lärde dig i den sista deluppgiften i lab 2, det
som handlar om for-loopar.
Den elektriska kretsen ovan är samma krets som i föregående labuppgift. Tyvärr så fluktuerar i
praktiken spänningen i strömkällorna ca 10% kring det värde på spänningen som är angett. Ett
krav är att ingen ström i kretsen får överskrida 3.35 ampere, eftersom komponenter och
ledningar kan skadas. Därför ska du simulera variationer i strömkällorna och beräkna det
maximala värdet på strömmarna i kretsen.
Att göra
a. Utgå från lösningen i labuppgift Linjära ekvationssystem, och kopiera den m-filen till en
ny fil som du arbetar i. Lös sedan problemet genom att ändra i den nya filen.
b. Ladda ner disturbance.m från labsidan. Den skapar ett stört högerled genom, en
likformig slumpmässig störning kring de nollskilda värdena i högerledet b. Läs i
hjälptexten så förklaras det hur den ska användas (obs du behöver inte titta i filen, det
räcker med hjälptexten).
c. För att utföra simuleringen ska du upprepa beräkningen av ekvationssystemet k gånger
(k kan t ex vara 10, 100 eller 1000). I varje upprepning ska du skapa ett ”stört högerled”
genom att använda disturbance på högerledet b och sedan lösa ekvationssystemet
med det störda högerledet. Beräkna sedan det största I-värdet (av de sex värdena) och
lagra i en vektor Imax. Det kan du göra genom att använda den inbyggda funktionen
max (kommandot max(I) ger då maxvärdet som du sedan lagrar i en vektor Imax).
Det blir alltså ett maxvärde per simulering.
När simuleringen är klar ska du plotta Imax och sen kan du genom att titta i plotten se
efter om strömmen någon gång översteg 3.35 A. Testa olika k-värden, ju fler
simuleringar du gör, ju säkrare blir slutsatsen.
Tips: Testa att använda både disturbance och max i kommandofönstret innan du börjar,
så du förstår hur de fungerar. Lös sedan problemet en gång utan någon upprepning. När det
fungerar kan lägga in kod så att det går upprepa. Att upprepa något i kod görs med forloopar (eller while-loopar, men det kommer senare i kursen). Börja med t ex k = 5
upprepningar, så resultatet är överblickbart. När allt fungerar kan du testa större värden t ex
k = 1000 och ännu större värden. Kom ihåg att du varje varv ska störa ditt ursprungliga
högerled b (så att du inte stör det störda högerledet).
Beräkningsvetenskap I/KF
Oktober 2015
Inlämning: Labbuppgiften redovisas genom att du lämnar in m-filen i Inlämningar =>
Labuppgift Datoraritmetik.
Regler för labuppgifter
• Ska göras individuellt
• Ska göras efter efter laborationen (hemma eller i labsal).
• Det viktiga är inte att du gör rätt, utan att du försöker lösa den. Om du inte förstår hur du
ska göra, lämna in det du har (även om det är ofullständigt eller bara några rader). Du
blir alltså godkänd även om du lämnar en felaktig lösning
• Labbuppgiften är kopplad till motsvarande datorlaboration. Det är variationer av det du
gjort på laborationen. Det innebär att du kan (och ska) titta på den laboration du gjort när
du löser uppgiften
• Resultaten kommer att diskuteras på nästkommande föreläsning