Miniprojekt 1 - Gasers volym Revision 1

Relevanta dokument
En introduktion till MatLab

Introduktion till Matlab

Du kan söka hjälp efter innehåll eller efter namn

Introduktion till Matlab

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

Textsträngar från/till skärm eller fil

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

Introduktion till MATLAB

Miniprojekt: Vattenledningsnäten i Lutorp och Vingby 1

Laborationstillfälle 1 Lite mer om Matlab och matematik

Labb 3: Ekvationslösning med Matlab (v2)

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

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: 18:e augusti klockan

Dagens föreläsning (F15)

TANA17 Matematiska beräkningar med Matlab

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

Laboration: Grunderna i MATLAB

4.3. Programmering i MATLAB

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

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

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

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

Introduktion till Matlab

TANA17 Matematiska beräkningar med Matlab

TANA81: Simuleringar med Matlab

Homework Three. Farid Bonawiede Samer Haddad Michael Litton Alexandre Messo. 28 november Time series analysis

Beräkningsverktyg HT07

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

Introduktion till Matlab

Laboration: Grunderna i Matlab

Bilaga 4, Skapa grafiskt användargränssnitt med guide

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

Svängningar - laborationsrapport + L A TEX-nyttigheter Fysik - mekanik och vågor (FAFA01) Första utkastet 12 maj 2014

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

Introduktion till Matlab

Introduktion till 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:

TSBB14 Laboration: Intro till Matlab 1D

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

Introduktion till Matlab

Minsta-kvadratmetoden

Miniprojekt: Vattenledningsnäten i Lutorp och Vingby 1

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

Variabler och konstanter

Numeriska metoder, grundkurs II. Dagens program. Gyllenesnittminimering, exempel Gyllenesnittetminimering. Övningsgrupp 1

Miniprojekt: Vattenledningsnätet i Lutorp 1

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

1 Förberedelser. 2 Att starta MATLAB, användning av befintliga m-filer. 3 Geometriskt fördelad avkomma

Instruktion för laboration 1

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

KPP053, HT2016 MATLAB, Föreläsning 3. Plotter och diagram Läsa och skriva data till fil

16 Programmering TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5

Matlabföreläsningen. Lite mer och lite mindre!

(a) Skriv en matlabsekvens som genererar en liknande figur som den ovan.

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

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

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

Linjärisering och Newtons metod

Newtons metod. 1 Inledning. 2 Newtons metod. CTH/GU LABORATION 6 MVE /2013 Matematiska vetenskaper

Assistent: Johan Axnäs Laborationen utfördes: 16 februari februari 2000

Inbyggda funktioner i MATLAB

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Linjära ekvationssystem

Instruktion för laboration 1

Grafik och Egna funktioner i Matlab

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

Lösningsförslag till inlämningsuppgift 3 i Beräkningsprogrammering Problem 1) function condtest format compact format long

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

Numeriska metoder, grundkurs II. Dagens program. Hur skriver man en funktion? Administrativt. Hur var det man gjorde?

Introduktion till Matlab

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

TAIU07 Matematiska beräkningar med Matlab

Miniprojekt: Vattenledningsnätet i Lutorp 1

Lösningsförslag till inlämningsuppgift 5 i Beräkningsprogrammering Problem 1 function prob1

CTH/GU LABORATION 1 MVE /2013 Matematiska vetenskaper. Mer om grafritning

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

Miniprojekt: Vattenledningsnätet i Lutorp 1

Datorövning 1: Introduktion till MATLAB

Introduktion till Matlab

System av ordinära differentialekvationer

Mer om funktioner och grafik i Matlab

KEMISK TERMODYNAMIK. Lab 1, Datorlaboration APRIL 10, 2016

Introduktion till Matlab

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

Repetition F4. Lunds universitet / Naturvetenskapliga fakulteten / Kemiska institutionen / KEMA00

Fri programvara i skolan datoralgebraprogrammet Maxima

MMA132: Laboration 1 Introduktion till MATLAB

Ickelinjära ekvationer

Funktioner och grafritning i Matlab

Funktioner forts. F3: Funktioner (kap. 5) Parametrar. findgear.m forts

Lösningsförslag Tentamen i Beräkningsvetenskap I, 5.0 hp,

Föreläsning 1. Numeriska metoder grundkurs II, DN1240. Carina Edlund Mottagningstid i rum 4516: onsdagar kl.

Lab Tema 2 Ingenjörens verktyg

Börja programmera. Kapitel 4 i kompendiet Jämförande uttryck Villkorssatser Loopar (slingor) Funktioner. Läs inte avsnitt 4.2.3

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

DN1212/numpp Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

Räkneövning 2 hösten 2014

Transkript:

Miniprojekt 1 - Gasers volym Revision 1 Peter Ankerstål 10 oktober 2007 1

Innehåll 1 Introduktion - GasVol 3 2 Användargränssnitt 3 3 Körexempel 1 3 4 Körexempel 2 4 5 Körexempel 3 5 6 Grafer från exempelkörning 8 7 Efterord 9 A GasVol.m 10 B AddGas.m 10 C ChooseGas.m 10 D Menu_1.m 11 E Menu_2.m 12 F VolCal.m 14 G f.m 15 2

1 Introduktion - GasVol GasVol är ett program som ger dig möjlighet att kalkylera olika gasers volym vid specifika tryck och temperaturer. Man kan enkelt spara sina resultat i en en fil för senare behandling. 2 Användargränssnitt När man startar programmet kan man välja att lägga till fler gaser i programmet, spara ner all data i en fil eller att börja arbeta med de gaser man har. När man väljer att börja jobba med olika tryck och temperaturer kommer man till en ny meny där man kan välja gas i en lista, sedan börja att ange olika temperaturer och tryck. När man gjort några inmatningar så kan man enkelt välja att få se resultatet i en tabell eller att spara ner tabellen i en fil med valfritt namn. Vidare kan man även rita upp grafer för Sambandet mellan volymen, trycket och temperaturen när antingen trycker eller temperaturen är fördefinerat. 3 Körexempel 1 >> GasVol Meny 1 1 Laegg till gas 2 jobba med p & T 3 Spara all data 4 Avsluta programmet : 2 : 1 1 koloxid 2 helium 3 helium Vaelj gas: 1 Du har nu valt en gas 3

: 2 Ange vaerge foer T: 100 Ange vaerde foer p: 10 Vaerdet paa v aer: 0.63982 foer p: 10 och T: 100 : 2 Ange vaerge foer T: 1000 Ange vaerde foer p: 2342 Vaerdet paa v aer: 0.070916 foer p: 2342 och T: 1000 4 Körexempel 2 Meny 1 1 Laegg till gas 2 jobba med p & T 3 Spara all data 4 Avsluta programmet : 2 4

: 1 1 koloxid 2 helium Vaelj gas: 1 Du har nu valt en gas : 5 Ange fixt T: 450 : 6 Ange fixt p: 234 7. Atter till huvudmenyn 5 Körexempel 3 >> GasVol Meny 1 5

1 Laegg till gas 2 jobba med p & T 3 Spara all data 4 Avsluta programmet : 2 : 1 1 koloxid 2 helium 3 helium Vaelj gas: 1 Du har nu valt en gas : 2 Ange vaerge foer T: 123 Ange vaerde foer p: 12312 Vaerdet paa v aer: 0.040613 foer p: 12312 och T: 123 : 2 Ange vaerge foer T: 2342 Ange vaerde foer p: 2342 Vaerdet paa v aer: 0.1183 foer p: 2342 och T: 2342 6

: 3 T P v resultat = 1.0e+04 * 0.0123 1.2312 0.040613 0.2342 0.2342 0.1183 7

6 Grafer från exempelkörning 40 Volymen som en funktion av trycket vid fix temperatur: 450 K 35 30 25 Volymen V 20 15 10 5 0 0 10 20 30 40 50 60 70 80 90 100 Trycket P Figur 1: Volymen som funktion av trycket med fix temperatur. 0.35 Volymen som en funktion av temperaturen vid fix Tryck: 123 bar 0.3 0.25 Volymen V 0.2 0.15 0.1 0.05 0 0 50 100 150 200 250 300 350 400 450 Temperaturen T Figur 2: Volymen som funktion av temperaturen med fixt tryck. 8

7 Efterord GasVol är ett program som om det får lite mer tid att utvecklas helt klart kan vara användbart och jag har lärt mig väldigt mycket om hur man skriver program för matlab. Jag har dock inte riktigt hunnit sätta mig in i hur jag bäst använder matlabs olika plotfunktioner och därför kan vissa plottar se lite konstiga ut. 9

A GasVol.m Miniprojekt 1. Author: Peter Ankerstal. Licence: Beerware. Det är här allt börjar. Härifrån startas programmet. function Gasvol() global vald_gas R_gas R_gas = 0.082054; clc Menu_1 B AddGas.m Miniprojekt 1. Author: Peter Ankerstal. Licence: Beerware. Funktion som lägger till gaser i gaser.dat för senare bearbetning. function AddGas() load -mat gaser.dat gaser name = input( Gasens namn:, s ); a = input( Konstanten a: ); b = input( Konstanten b: ); gaser = [gaser; {name, a, b}]; save -mat gaser.dat gaser clc disp( Gas Tillagd. ); Menu_1 C ChooseGas.m 10

Miniprojekt 1. Author: Peter Ankerstal. Licence: Beerware. Funktion för att välja gas ur gaser.dat function [vald_gas] = ChooseGas() global vald_gas load -mat gaser.dat gaser storlek = size(gaser); for i = 1:storlek(1); disp([num2str(i) gaser{i,1}]) end vald_gas = input( Vaelj gas: ); clc disp( Du har nu valt en gas ); Menu_2 D Menu_1.m Miniprojekt 1. Author: Peter Ankerstal. Licence: Beerware. Funktion som skriver ut och hanterar menyval för meny 1. function Menu_1() disp( Meny 1 ) disp( ) disp( 1 Laegg till gas ) disp( 2 jobba med p & T ) disp( 3 Spara all data ) disp( 4 Avsluta programmet ) 11

disp( ) m1_ans = input( : ); if (m1_ans == 1) AddGas elseif ( m1_ans == 2) clc Menu_2 elseif (m1_ans == 3) save gaser.dat clc disp( saved to gaser.dat ); Menu_1 elseif (m1_ans == 4) clear return else clc disp( Err: Du maaste vaelja naagot av alternativen 1-4 ); Menu_1 end E Menu_2.m Miniprojekt 1. Author: Peter Ankerstal. Licence: Beerware. Funktion som skriver ut och hanterar menyval för meny 2. function Menu_2() global vald_gas R_gas resultat p_gas a_gas b_gas T_gas disp( ) disp( ) disp( ) disp( ) disp( ) disp( ) 12

disp( ) disp( ) disp( ) disp( ) m2_ans = input( : ); if (m2_ans == 1) vald_gas = ChooseGas; Menu_2 elseif ( m2_ans == 2) VolCalc(vald_gas) Menu_2 elseif (m2_ans == 3) clc disp( T P v ); resultat Menu_2 elseif (m2_ans == 4) name = input( tabellnamn:, s ); save -ascii name resultat Menu_2 elseif (m2_ans == 5) load -mat gaser.dat gaser a_gas = gaser{vald_gas, 2}; b_gas = gaser{vald_gas, 3}; v_all = []; fix_t = input( Ange fixt T: ); T_gas = fix_t; for n = 1:100 p_gas = n; v0 = (R_gas*T_gas)/p_gas; v = fzero( @f, v0); v_all = [v_all; v]; end plot(v_all); xlabel( Trycket p ); ylabel( Volymen V ); grid on title([ Volymen som en funktion av trycket vid fix temperatur: num2str(fix_t) elseif (m2_ans == 6) load -mat gaser.dat gaser a_gas = gaser{vald_gas, 2}; b_gas = gaser{vald_gas, 3}; 13

v_all = []; fix_p = input( Ange fixt p: ); p_gas = fix_p; for n = 1:450 T_gas = n; v0 = (R_gas*T_gas)/p_gas; v = fzero( @f, v0); v_all = [v_all; v]; end plot(v_all); xlabel( Temperaturen T ); ylabel( Volymen V ); grid on title([ Volymen som en funktion av temperaturen vid fix Tryck: num2str(fix_p) Menu_2 end disp( ) F VolCal.m Miniprojekt 1. Author: Peter Ankerstal. Licence: Beerware. Det är i den här funktionen själva beräkningen av volymen sker. Vi använder oss av funktionen fzero. function VolCalc(vald_gas) global a_gas b_gas T_gas p_gas R_gas resultat load -mat gaser.dat gaser a_gas = gaser{vald_gas, 2}; b_gas = gaser{vald_gas, 3}; T_gas = input( Ange vaerge foer T: ); p_gas = input( Ange vaerde foer p: ); v0 = (R_gas*T_gas)/p_gas; v = fzero( @f, v0); disp([ Vaerdet paa v aer: num2str(v) foer p: num2str(p_gas) och T: num2str( resultat = [resultat; T_gas, p_gas, v]; 14

G f.m Miniprojekt 1. Author: Peter Ankerstal. Licence: Beerware. Funktion som definerar Van der Waals ekvation. function fvalue = f(v) global a_gas b_gas T_gas p_gas R_gas fvalue = (p_gas + a_gas./ ( v.^2 ) ).* (v-b_gas) - R_gas.* T_gas; 15