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

Laboration: Grunderna i MATLAB

Miniprojekt: MEX och molekyldynamik

Laboration: Grunderna i Matlab

Linjär algebra med tillämpningar, lab 1

TANA17 Matematiska beräkningar med Matlab

Laboration: Vektorer och matriser

Instruktion för laboration 1

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

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

Instruktion för laboration 1

Avdelningen för teknisk databehandling (TDB) Polacksbacken, hus 2

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

MMA132: Laboration 2 Matriser i MATLAB

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

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

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

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.

TSBB14 Laboration: Intro till Matlab 1D

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

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

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

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

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

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

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

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

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

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

TAIU07 Matematiska beräkningar med Matlab

2 Matrisfaktorisering och lösning till ekvationssystem

Jarmo Rantakokko, , rum 2421,

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

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

Introduktion till Matlab

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

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

Matriser och linjära ekvationssystem

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

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

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

Värmedistribution i plåt

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

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

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

Matematisk analys för ingenjörer Matlabövning 3 Numerisk lösning av differentialekvationer

Matriser och vektorer i Matlab

SF1905 Sannolikhetsteori och statistik: Lab 2 ht 2011

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

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

repetera begreppen sannolikhetsfunktion, frekvensfunktion och fördelningsfunktion

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

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

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

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

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

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

Laboration 6. Ordinära differentialekvationer och glesa system

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

Laboration 3. Funktioner, vektorer, integraler och felskattning

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

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

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

Minsta-kvadratmetoden

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

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

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

Introduktion till Matlab

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

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

Laboration 1, M0039M, VT16

Datorövning 5 Exponentiella modeller och elasticitetssamband

Introduktion till Matlab

Linjära ekvationssystem i Matlab

TAIU07 Matematiska beräkningar med Matlab

Laboration 1. Ekvationslösning

Department of Physics Umeå University 27 augusti Matlab för Nybörjare. Charlie Pelland

Introduktion till MATLAB

MMA132: Laboration 1 & 2 Introduktion till MATLAB

Laboration 3. Funktioner, vektorer, integraler och felskattning

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

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.

TANA17 Matematiska beräkningar med Matlab

Introduktion till Matlab

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

Uppgift 1 ( Betyg 3 uppgift )

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

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

TMA226 datorlaboration

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

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor

Transkript:

11 oktober 215 Miniprojekt 1 (5) Beräkningsvetenskap I/KF Institutionen för informationsteknologi Teknisk databehandling Besöksadress: MIC hus 2, Polacksbacken Lägerhyddsvägen 2 Postadress: Box 337 751 5 Uppsala Telefon: 18 471 (växel) Telefax: 18 52 3 49 Hemsida: http://www.it.uu.se Department of Information Technology 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: MIC bldg 2, Polacksbacken Lägerhyddsvägen 2 Postal address: Box 337 SE-751 5 Uppsala SWEDEN Telephone: +46 18 471 (switch) Telefax: +46 18 52 3 49 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 (5) 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 = kl (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. L är rörledningens 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 Tekniska kontoret tillhandahåller en tabell över värdena på k och L för de rörledningar som ingår i Lutorps vattenledningsnät före utbyggnaden: rör L rör 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 att lägga in sambandet (1) i ekvation 2 och värdena för k och L, får vi efter förenkling följande system av sex ekvationer för trycken i de olika noderna: 1..3 1.3.5.5.5 1.6.6.5.5.6 1.6.5 1. 1. p 1 p 2 p 3 p 4 p 5 p 6 = 1 (2)

3 (5) 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. Lägg dessutom till en inläsning av trycket i vattentornet, dvs när programmet körs så ska alltså användaren själv mata in p r från kommandofönstret. 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.använd sedan ditt program för att se ungefär hur högt trycket i vattentornet minst måste vara för att medeltrycket ska bli minst 2 bar. Du kan göra detta genom trial-and-error, dvs genom att köra programmet många gånger och testa dig fram. Programmet behöver alltså inte automatiskt leta sig fram. Tips: När du ska skriva matlabprogram (matlabscript), skriv och testa kommandon direkt i kommandofönstret, för att se hur de och olika delar av problemet fungerar och kan lösas. Gör dessutom lite i taget och undersök successivt om det ser korrekt ut (t ex genom utskrifter på skärmen). Det brukar sällan bli rätt om man skriver ett helt program i ett svep direkt i en m-fil. Använd det du gjort i kursens laborationer när du arbetar med miniprojekten. Alla kommandon och programmeringskonstruktioner som behövs finns där.

4 (5) 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. Medelvärdet av trycket beräknas med hjälp av MATLABs inbyggda funktion mean precis som tidigare. 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 deluppgift 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, och lagrat data i en fil Vingby.mat (filen finns att ladda ned från kurshemsidan). En.mat-fil lagrar Matlab-variabler och kan läsas in i Matlab genom kommandot load Vingby. Om du gör det kommer två variabler att laddas in, nämligen systemmatrisen A och en vektor sources. Vektorn sources innehåller index för de noder som är källor, dvs vattentorn (för Lutorp skulle det alltså ha blivit enbart värdet 1). För att få en bild över hur det ser ut kan du även ladda ner en bild på vattenledningsnätet, som finns i filen Vingby.fig. Den kan du sedan öppna i Matlab. Eftersom det är ett stort vattenledningsnät kan du zooma in med förstoringsglaset i Matlabs grafikfönster. De blå punkterna betyder öppna kranar, och de röda punkterna är vattentorn. 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 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.mat-filer fungerar och hur de används, börja med samma exempel som i Del 1, dvs Lutorp. Ladda ner Lutorp.mat och Lutorp.fig från kurshemsidan. Kopiera ditt program från Del 1, och modifiera sedan detta, så att du istället för att skapa matrisen för hand använder.matfilen, dvs du använder kommandot load Lutorp i din kod. Försök förstå vad variabeln sources betyder. Titta även på figuren genom att använda Lutorp.fig. Ingen redovisning av denna deluppgift behövs. b. När du förstår hur.mat-filer fungerar kan du gå vidare till att lösa problemet för området Vingby. Om du inte redan gjort det så laddar du först ner Vingby.mat och Vingby.fig. 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

5 (5) 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 och du måste förstå hur variabeln sources fungerar. Ingen redovisning av denna deluppgift behövs. c. Precis som i Lutorp vill man att medeltrycket i Vingbys vattenledningsnät inte ska understiga 2 bar. 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 där trycken är tillräckligt hög. När användaren testar olika tryck i vattentornen skall medeltryck 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 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.