Miniprojekt: Vattenledningsnäten i Lutorp och Vingby 1

Relevanta dokument
Miniprojekt: Vattenledningsnäten i Lutorp och Vingby 1

Miniprojekt: Vattenledningsnätet i Lutorp 1

Miniprojekt: Vattenledningsnätet i Lutorp 1

Miniprojekt: Vattenledningsnätet i Lutorp 1

Problemlösning och miniprojekt

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

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

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

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

Laboration: Grunderna i MATLAB

TANA17 Matematiska beräkningar med Matlab

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

Miniprojekt: MEX och molekyldynamik

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

Laboration: Grunderna i Matlab

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

Linjär algebra med tillämpningar, lab 1

Laboration: Vektorer och matriser

Instruktion för laboration 1

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

Introduktion till Matlab

TSBB14 Laboration: Intro till Matlab 1D

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

Instruktion för laboration 1

TAIU07 Matematiska beräkningar med Matlab

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

Introduktion till MATLAB

MMA132: Laboration 2 Matriser i MATLAB

2 Matrisfaktorisering och lösning till ekvationssystem

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

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

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter

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

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

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

Gemensamt projekt: Matematik, Beräkningsvetenskap, Elektromagnetism. Inledning. Fysikalisk bakgrund

SF1905 Sannolikhetsteori och statistik: Lab 2 ht 2011

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

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Introduktion till Matlab

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

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

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

TAIU07 Matematiska beräkningar med Matlab

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

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

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

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

Matriser och linjära ekvationssystem

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

Matematikcentrum 1(6) Matematisk Statistik Lunds Universitet MASB11 - Biostatistisk grundkurs VT2014, lp3. Laboration 2. Fördelningar och simulering

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08

Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS Konsolfönstret

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

ELLER (fyll bara i om du saknar tentamenskod): Datum: 32 maj Bordsnummer: Kontrollera att du fått rätt tentamensuppgifter

Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar

Uppgift 1 ( Betyg 3 uppgift )

Matriser och vektorer i Matlab

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

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

LABORATION 1. Syfte: Syftet med laborationen är att

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

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

Tentamen för kursen TME135 Programmering i Matlab för M1

Lägg märke till skillnaden, man ser det tydligare om man ritar kurvorna.

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

Arbeta med normalfördelningar

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER.

Laboration 6. Ordinära differentialekvationer och glesa system

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

Block 2: Lineära system

LABORATIONSHÄFTE NUMERISKA METODER GRUNDKURS 1, 2D1210 LÄSÅRET 03/04. Laboration 3 3. Torsionssvängningar i en drivaxel

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

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

Laboration 1. Ekvationslösning

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

Matematikcentrum 1(7) Matematisk Statistik Lunds Universitet Per-Erik Isberg. Laboration 1. Simulering

Hemuppgift 1, SF1861 Optimeringslära, VT 2017

Matematikcentrum 1(7) Matematisk Statistik Lunds Universitet MASB11 - Biostatistisk grundkurs HT2007. Laboration. Simulering

TDIU Regler

Kontrollera att följande punkter är uppfyllda innan rapporten lämnas in: Första sidan är ett försättsblad (laddas ned från kurshemsidan)

Uppgift 1 ( Betyg 3 uppgift )

repetera begreppen sannolikhetsfunktion, frekvensfunktion och fördelningsfunktion

i LabVIEW. Några programmeringstekniska grundbegrepp

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

DATORÖVNING 2 MATEMATISK STATISTIK FÖR D, I, PI OCH FYSIKER; FMSF45 & MASB03. bli bekant med summor av stokastiska variabler.

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x

Uppgift 1 (grundläggande konstruktioner)

Attila Szabo Niclas Larson Gunilla Viklund Mikael Marklund Daniel Dufåker. GeoGebraexempel

DATORÖVNING 5: SANNOLIKHETSFÖRDELNINGAR FÖR

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

Robotarm och algebra

Syftet med den här laborationen är att du skall bli mer förtrogen med följande viktiga områden inom matematisk statistik

MMA132: Laboration 1 & 2 Introduktion till MATLAB

Första sidan är ett försättsblad (laddas ned från kurshemsidan) Alla frågor som nns i uppgiftstexten är besvarade

bli bekant med summor av stokastiska variabler.

Tekniska beräkningar. Vad är tekn beräkningar? Vad är beräkningsvetenskap? Informationsteknologi. Informationsteknologi

Transkript:

22 januari 214 Miniprojekt 1 (6) Beräkningsvetenskap I/KF Institutionen för informationsteknologi Beräkningsvetenskap Besöksadress: ITC hus 2, Polacksbacken Lägerhyddsvägen 2 Postadress: Box 337 751 5 Uppsala Telefon: 18 471 (växel) Telefax: 18 51 19 25 Hemsida: http://www.it.uu.se Department of Information Technology Division of Scientific Computing Miniprojekt: Vattenledningsnäten i Lutorp och Vingby 1 Du är nyanställd på konsultföretaget Pollax Pipes AB i vattenledningsbranchen och du har nu blivit engagerad i ditt första uppdrag vid tekniska kontoret i Gaussby kommun. Din uppgift är att kontrollera att vattenledningsnätet i den lilla tätorten Lutorp är väldimensionerat, och sedan skriva ett program med vars hjälp man kan bygga ut vattenledningsnätet i den lite större tätorten Vingby. Del 1 Före den planerade utbyggnaden består Lutorp av ett fåtal bostäder. De är anslutna till en egen del av det kommunala vattenledningsnätet. Hos Tekniska kontoret i Gaussby kommun finns en schematisk skiss över det lokala vattenledningsnätet i Lutorp före utbyggnaden. (Se Figur 1.) Visiting address: ITC bldg 2, Polacksbacken Lägerhyddsvägen 2 Postal address: Box 337 SE-751 5 Uppsala SWEDEN Telephone: +46 18 471 (switch) Telefax: +46 18 51 19 25 Web page: http://www.it.uu.se Figur 1: Skiss av vattenledningsnätet i Lutorp. Noderna (knutpunkterna) i nätet är numrerade 1, 2, 3, 4, 5, 6. Till nod 1 är en vattenreservoar ansluten, och nod 5 och 6 är kopplade till avtappningskranar i två bostäder. Tryckvärdena i de olika noderna betecknas med p 1, p 2, p 3, p 4, p 5 respektive p 6. Ditt uppdrag är beräkna trycket i de inre noderna (2, 3 & 4) och se till att vattentornet är dimensionerat så att trycket i dessa noder är tillräckligt högt. 1 Del 1 baseras på Problem 5.1 i A. Quarteroni & F. Saleri, Scientific Computing with MATLAB, Springer-Verlag Berlin Heidelberg, 23

2 (6) Matematisk modell Trycket anges som skillnaden mellan vattentrycket och det omgivande atmosfäriska trycket. I beräkningarna används därför en skala där det atmosfäriska trycket sätts till. För beräkningen av trycket används följande samband: 1. För rörledning nummer j kan vattenflödeshastigheten Q j (i m 3 =s) uttryckas: Q j = k A L (p in p ut ) : (1) Beteckningar: 1=k är det hydrauliska motståndet i den aktuella rörledningen, så k är inversen av det hydrauliska motståndet vilket mäts i m 2 =bar s. A är rörledningens tvärsnittsarea i m 2, L dess längd i m. p in är trycket vid inloppet till rörledningen och p ut är trycket vid utloppet från samma rörledning, där trycken mäts i bar. I det här fallet är k konstant och lika med :1. 2. Summan av flödena in till en knutpunkt är lika med summan av flödena ut från samma knutpunkt. Samband 2 ovan ger följande ekvationer för de tre inre noderna i Lutorps vattenledningsnät (se Figur 1): Punkt 2: Q 1 = Q 2 + Q 3 Punkt 3: Q 3 = Q 4 + Q 6 Punkt 4: Q 2 + Q 4 = Q 5 för de rörled- Tekniska kontoret tillhandahåller en tabell över värdena på k och A L ningar som ingår i Lutorps vattenledningsnät före utbyggnaden: rör A=L rör A=L 1 3 4 6 2 5 5 5 3 5 6 5 Vidare är trycket i vattenreservoaren 1 bar och trycket p vid avtappningsställena cirka bar. Genom in sambandet (1) i ekvation 2 och värdena för k och A, får vi efter förenkling följande system av sex ekvationer för trycken i de olika L noderna: B @ 1: :3 1:3 :5 :5 :5 1:6 :6 :5 :5 :6 1:6 :5 1: 1: 1 C B A @ p 1 p 2 p 3 p 4 p 5 p 6 1 = C B A @ 1 1 C A (2)

3 (6) Uppgift Skriv i Matlab ett program (ett matlabscript/kommandofil) som ställer upp detta system, löser det med Matlabs inbyggda backslash -operator samt skriver ut lösningen. Dessutom ska programmet rita upp en graf över trycket i de olika noderna. Utskriften och grafen ska vara sådan att dina uppdragsgivare på Tekniska kontoret förstår den utan att du behöver ge någon kompletterande, muntlig information. I grafen ska man på x-axeln se knutpunkternas nummer och i y-led de beräknade tryckvärdena. Förutom ovanstående vill man kontrollera att trycket i systemet är tillräckligt högt genom att beräkna medeltrycket. I Lutorp vill man inte att medeltrycket ska understiga 2 bar. Medelvärdet över trycken kan beräknas med hjälp av MATLABs inbyggda funktion mean. Om p är en vektor så beräknas medelvärdet genom kommandot medeltryck = mean(p); (där medeltryck och p är variabler och kan ersättas med vilka variabelnamn som helst). Lägg till beräkning av medelvärdet till ditt program. Använd sedan ditt program för att se hur högt trycket i vattentornet minst måste vara för att medeltrycket ska bli minst 2 bar. Tips: När du ska skriva matlabprogram, dvs ett matlabscript, skriv och testa gärna kommandon direkt i kommandofönstret, för att se hur de och olika delar av problemet fungerar och kan lösas. Det brukar sällan bli rätt om man skriver ett helt program direkt i en m-fil.

4 (6) Del 2 I Gaussby kommun ska en lite större tätort, Vingby, byggas ut kraftigt och det behövs en motsvarande utbyggnad av vattenledningsnätet. Vingby är beläget runt några sjöar med befolkningen koncentrerad kring stränderna. En av sjöarna är formad som en flygplansvinge, därav namnet Vingby. Det ska byggas tre vattentorn, och uppdraget består i att dimensionera dessa för att trygga vattenförsörjningen. Precis som i Lutorp vill man inte att medeltrycket i Vingbys vattenledningsnät ska understiga 2 bar. Man vill även ha en jämn fördelning av trycket i nätet. Medelvärdet av trycket kan beräknas med hjälp av MATLABs inbyggda funktion mean precis som tidigare, och jämn tryckfördelningen kan beräknas med den s k standardavvikelsen 2. Det är ett mått från statistiken som beskriver hur mycket något varierar kring medelvärdet. Ett lågt värde på standardavvikelsen innebär en liten variation, dvs ett jämnfördelat tryck. I Matlab kan standardavvikelsen beräknas med hjälp av den inbyggda funktionen std som tar en vektor som indata, t ex enligt tryckvariation = std(p); Slutprodukten i den här uppgiften ska vara två program som utför samma sak, men det ena programmet är effektivare än den andra. Slutprodukten motsvarar resultaten i punkt c. och d. nedan. Här är det fråga om tusentals noder och att lägga in ett sådan ekvationssystem i Matlab för hand blir omöjligt. Därför har ditt konsultföretag skapat ett program för att hantera detta. Det programmet är redan färdigt, och består av en matlabfunktion som finns i filen GenerateMatrix.m. Den funktionen genererar automatiskt matrisen utifrån indata som beskriver ledningsnätet. Dessa indata ska finnas i tre textfiler, som ska namnges så att ändelserna blir.coords.txt,.graph.txt respektive.source.txt. Det avslutande.txt kan uteslutas i alla tre fallen om man vill, men det kan vara bra att använda den ändelsen eftersom din dator då automatiskt öppnar filen med en texthanterare om du öppnar filen. Om du exempelvis ska använda GenerateMatrix för problemet i Del 1, dvs lutorp och ger kommandot [A, sources] = GenerateMatrix( lutorp ); så ska det i den katalog där du arbetar då finnas tre textfiler: lutorp.coords.txt, lutorp.graph.txt och lutorp.source.txt. Förutom systemmatrisen A, returneras även vektorn sources som innehåller index för de noder som är källor (dvs bara 1 för Lutorp). Dessutom ritas en bild över vattenledningsnätet upp, med blå punkter för öppna kranar, och röda punkter för vattentorn. Man måste inte använda just variabelnamn A eller sources, utan man kan välja andra lämpliga variabelnamn. För mer information om GenerateMatrix, se programmets hjälptext. Uppgift När man löser lite större problem som det här är, är strategin att man löser lite i taget. Man börjar med med enklast möjliga lösning, och bygger ut successivt tills man har den färdiga slutprodukten. Dessutom inleder man vanligen med att lösa q P 2 1 N Standardavvikelsen är definierad som p := N i=1 (pi p)2, där p är p:s medelvärde.

5 (6) ett lite mindre problem så man får en uppfattning över vad som händer och hur funktioner fungerar, dvs man får en förståelse för problemet. Här följer ett förslag på en sådan strategi som du kan följa: a. För att förstå hur programmet fungerar och hur det används, börja med samma exempel som i Del 1, dvs Lutorp. Ladda ner GenerateMatrix.m från kurshemsidan. Ladda dessutom ner de tre textfilerna lutorp.coords.txt, lutorp.graph.txt och lutorp.source.txt, som innehåller de data som krävs för fallet Lutorp. Testa sedan att anropa GenerateMatrix i kommandofönstret och jämför med matrisen och figuren i Del 1. Undersök (titta i) de tre textfilerna och försök förstå hur de siffror som finns där stämmer överens med figuren över vattensystemet i Lutorp. När detta är gjort skriver du Matlabprogram (matlabscript/kommandofil) som skapar matrisen A för Lutorp med hjälp av GenerateMatrix, konstruerar högerled och löser systemet (med standardmetoden i Matlab). Alla ekvationer utom den första har i högerledet. Värdet i första ekvationens högerled är p r, dvs vattentrycket i reservoaren. Skriv programmet så att användaren själv kan mata in p r från kommandofönstret när programmet körs. Resultatet ska presenteras i en graf där man på x-axeln ska se knutpunkternas nummer och i y-led de beräknade tryckvärdena. Lös Lutorp-problemet med samma vattenreservoarstryck som i Del 1 och jämför resultaten. Skapa gärna en egen stad, t ex MinStad, genom att skriva egna filer: MinStad.coords.txt, MinStad.graph.txt och MinStad.source.txt (du kan utgå från lutorp-filerna). Beräkna trycket i detta vattenledningsnät med hjälp av programmet du skrev i föregående uppgift. b. När du förstår hur man ska använda GenerateMatrix kan du gå vidare till att lösa problemet för området Vingby. Ladda först ner de tre textfiler från kurshemsidan, som innehåller de data för Vingby som krävs. Kopiera programmet i föregående uppgift och modifiera kopian så att användaren får mata in namnet på fallet, t ex lutorp för Lutorp, vingby för Vingby eller MinStad för din egen stad. Observera att Vingby har flera vattentorn som användaren skall kunna bestämma trycket i. Programmet ska kunna fungera oberoende av hur många vattentorn som finns i nätet. Det ska alltså automatiskt fråga efter tryck i rätt antal vattentorn och skapa högerledet efter detta. Här måste du använda en programmeringskonstruktion. c. Precis som i Lutorp vill man att medeltrycket i Vingbys vattenledningsnät inte ska understiga 2 bar. Man vill dessutom ha en jämn tryckfördelningen, vilket man kunde beräkna med den standardavvikelsen enligt ovan. Utvidga nu programmet så att användaren kan ge olika värden på trycken i vattentornen, så att man kan komma fram till en fördelning som är jämn och tillräckligt hög. När användaren testar olika tryck i vattentornen skall medeltryck och standardavvikelse visas på skärmen. När resultatet har presenterats, så ska användaren ges möjlighet att mata in nya tryck i vattentornen, titta på resultatet, mata in nya tryck i vattentornen igen etc. Detta upprepas tills användaren väljer att inte mata in ytterligare värden. Det är inte säkert att

6 (6) användaren vill se en graf efter varje test, och därför ska detta kunna väljas efter varje beräkning. När du är klar med detta har du nått slutprodukten, och det här programmet redovisas. d. När man kör många test, är det viktigt att det inte tar för lång tid att köra programmet. Kanske finns det ett sätt att snabba upp beräkningarna? Fundera ut och implementera ett effektivare sätt att utföra de upprepade beräkningarna, så att resultaten från tidigare beräkningar så långt som möjligt återanvänds när nya tryck behandlas. Redovisa även detta förbättrade program. Redovisa även något körexempel. Del 3 - Diskussion och reflektion När uppgiften är klar är det viktigt att ni i gruppen reflekterar över vad ni gjort, hur ni arbetet och vad ni lärt er. Det är också viktigt att relatera det ni gjort till mer teoretiska delar av kursen, t ex olika nyckelbegrepp. Fundera exempelvis på och skriv några rader om Vad har ni lärt er i uppgiften? Vilka är t ex de två viktigaste lärdomarna? Behandla inte enbart att ni lärt er vissa delar i Matlabanvändning, utan även mer teoretiska kunskaper. Var det något som ni tyckte var särskilt svårt? Och hur löste ni det i så fall? Försök även koppla samman det ni gjort i uppgiften med olika nyckelbegrepp inom momentet linjära ekvationssystem. Ovanstående är ett förslag och det kan finnas annat som ni vill diskutera. Inget som ni skriver kommer att bedömas som fel, utan det viktiga är att ni reflekterar.