Innføring i MATLAB - The language of Technical Computing



Like dokumenter
Hydrostatikk/Stabilitet enkle fall

MATLABs brukergrensesnitt

ITGK - H2010, Matlab. Repetisjon

Tall, vektorer og matriser

Matematikk Øvingsoppgaver i numerikk leksjon 3. Løsningsforslag

Plotting av data. Kapittel Plott med plot-funksjonen

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Control Engineering. MathScript. Hans-Petter Halvorsen

Kom i gang med Stata for Windows på UiO - hurtigstart for begynnere

Matematikk Øvingsoppgaver i numerikk leksjon 3 Løsningsforslag

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

MATLAB for STK1100. Matematisk institutt Univeristetet i Oslo Januar Enkel generering av stokastiske variabler

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Matematikk Øvingsoppgaver i numerikk leksjon 3 Skript

En innføring i MATLAB for STK1100

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

Kapittel Oktober Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 14.

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen. Digitalt verktøy for Sigma 1P TI-84

Øvingsforelesning i Matlab TDT4105

11. september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 5 (del 2) Ada Gjermundsen

Matlab-tips til Oppgave 2

Matematikk Øvingsoppgaver i numerikk leksjon 2 Funksjoner og plotting

Hvor i All Verden? Del 2 Erfaren Scratch PDF

Matematikk Øvingsoppgaver i numerikk leksjon 3 Funksjoner og plotting

Tilfeldighetenes spill Veiledning til bruk av dataprogrammet

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

Verdens korteste grunnkurs i Excel (2007-versjonen)

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

Kapittel august Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 2.

MAT1120 Plenumsregningen torsdag 26/8

MAT-INF 2360: Obligatorisk oppgave 1

Snake Expert Scratch PDF

Hvordan å lage og publisere ditt personlige visittkort

Matematikk Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag

Oppgave 4. Med utgangspunkt i eksemplet gitt i oppgaveteksten er veien ikke lang til følgende kode i Matlab/Octave:

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

Introduksjon til Marinteknikk

Kanter, kanter, mange mangekanter

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

Mattespill Nybegynner Python PDF

Matematikk Øvingsoppgaver i numerikk leksjon 6. Løsningsforslag

41070 STABILITET I ELKRAFTSYSTEMER

Øving 0 - Xcode TDT4102

Hangman. Level. Introduksjon

Matlab-intro MUS4218

Løsningsforslag. Innlevering i BYFE/EMFE 1000 Oppgavesett 1 Innleveringsfrist: 14. september klokka 14:00 Antall oppgaver: 3.

Hvordan legge ut en melding i Fronter

Sprettball Erfaren ComputerCraft PDF

Løpende strekmann Erfaren Videregående Python PDF

Grafisk løsning av ligninger i GeoGebra

Matematikk Øvingsoppgaver i numerikk leksjon 9. Løsningsforslag

Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt!

DATAØVING 1 INTRODUKSJON TIL STATA I

TERA System Quick Start Guide (Norsk)

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

GeoGebra. brukt på eksamensoppgaver i 10. kl. Sigbjørn Hals

Øvingsforelesning i Matlab TDT4105

Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen. Digitalt verktøy for Sigma 1P. Casio fx 9860

Newtons metode er en iterativ metode. Det vil si, vi lager en funksjon. F x = x K f x f' x. , x 2

TMA Kræsjkurs i Matlab. Oppgavesett 1/3

Hvor i All Verden? Del 3 Erfaren Scratch PDF

Obligatorisk oppgave 1

Repetisjon Novice Videregående Python PDF

TDT4105 Informasjonsteknologi, grunnkurs MatLab: Filbehandling - load, save, type - fopen, fgetl, feof, fprintf, fclose

Verden. Steg 1: Vinduet. Introduksjon

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

AUTOCAD Artikkelserie. Fra Color til Named og omvendt

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen. Digitalt verktøy for Sigma 1P. Geogebra

Hvordan hente ut listen over et hagelags medlemmer fra Hageselskapets nye portal

MathScript. Hans- Pe1er Halvorsen, M.Sc.

Komme i gang med programmet Norgeshelsa

18. (og 19.) september 2012

TDT4105 Informasjonsteknologi, grunnkurs

Robotinvasjon Introduksjon ComputerCraft PDF

TDT4105 IT Grunnkurs Høst 2014

Argumenter fra kommandolinjen

Øvingsforelesning i Matlab (TDT4105)

Steg 1: Lag bildedeklarasjon

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Oblig 1 FYS2130. Elling Hauge-Iversen

Noen MATLAB-koder. 1 Plotte en vanlig funksjon. Fredrik Meyer. 23. april 2013

BEGYNNERKURS I SPSS. Anne Schad Bergsaker 12. februar 2019

BEGYNNERKURS I SPSS. Anne Schad Bergsaker 26. april 2018

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver uke 34

Livsforsikring et eksempel på bruk av forventningsverdi

Sted Gj.snitt Median St.avvik Varians Trondheim Værnes Oppdal

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

Øving 1 TMA Grunnleggende dataanalyse i Matlab

Steg 1: Piler og knappetrykk

Læringsmål og pensum. Oversikt

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

Transkript:

Innføring i MATLAB - The language of Technical Computing Hvordan bruke MATLAB til å analysere eksperimentelle data. TFY4145 Mekanisk fysikk Utstyr: Datarom med PC for studenter. Datamaskin med projektor for lærer. Studentene går gjennom utdelte eksempler og utforsker på egenhånd. Lærer veileder arbeidet og kan bruke projektoren til å vise eksempler/nyttige kommandoer for alle. Å analysere et stort datasett med tall, som ofte framkommer fra eksperimenter kan være tidkrevende uten bruk av gode elektroniske hjelpemidler. Dataprogrammet MATLAB er spesiallaget for å hjelpe deg med akkurat dette, nemlig analyse og presentasjon av eksperimentelle data. I første omgang vil det gis en enkel introduksjon av programmet, som lærer deg å gjøre enkle beregninger og bruke de verktøy som programmet tilbyr. Deretter vil du lære flere nyttige kommandoer som forenkler arbeidet ditt og åpner nye muligheter for analyse og presentasjon av data. I MATLAB er all innlest data lagret i vektorer (arrays) og/eller matriser. Du vil også lære her hvordan du presenterer data i figurer som punkter eller kurver. Figur 1: Hovedvinduet i programmet MATLAB. 1 MATLAB vinduet: Start MATLAB, og hent opp hovedvinduet. Det skal nå se ut omtrent som i figur 1. 1

Øverst i vinduet finner du den vanlige meny-linjen og verktøy-linjen. Sjekk ut disse og finn ut hva de ulike knappene gjør. Merk spesielt hjelpe-menyen (denne vil du få mye bruk for). Merk også boksen som viser hvilken mappe du jobber fra i programmet. MATLAB vinduet inneholder tre mindre vindu. Til venstre finner du vinduet Workspace og Command History. Til høre finner du et større Command Window. I Workspace vil du til enhver tid finne alle variable og data som du har lastet inn i programmet. Det vil si alle variable, tall, vektorer osv. som du har definert. Command Window er vinduet er alle kommandoer du vil at programmet skal utføre skrives inn. De må skrives på linjen som starter med >>. Alle kommandoer du skriver inn blir lagret i Command History, slik at de enkelt kan finnes igjen senere. De samme finnes også ved å rulle med piltastene opp og ned når du står på kommandolinja. 2 Litt grunnleggende: MATLAB kan selvfølgelig også brukes som en numerisk kakulator. F.eks. med: >> 72*12 Du kan lagre et tall til en variabel slik: >> a=12; (Nå inneholder a tallet 12.) >> a = a + 3 (Dette overskriver a som nå blir 15.) NB! Med semikolon til slutt skrives ikke svaret ut på skjermen. Allikevel blir tallet lagret i programmet (se i workspace-vinduet) med navn, verdi og type. Tall skrevet på standardformat kan gjøres ved å bruke e eller E ). (Husk også at den interne representasjonen av tallet kan være annerledes enn den som vises på skjermen.): >> b = 2.34e-13; Slik multipliseres og divideres to verdier: >> c = a*b; >> d = a 2; >> e = a/b; Slik kan du lage en vektor med tall. Kan være kolonnevektor eller radvektor. Det er mange ulike måter å gjøre dette på. Under er det også vist hvordan vektorer transponeres (rad til kolonne og omvendt): >> m = [1,2,3,4,5] (Komma trenger egentlig ikke skrives inn. Begge ting virker.) >> k = m >> n = [1:1:10] (Lager en kolonnevektor med alle heltall fra 1 til 10.) >> l = length(n) (Finner lengden av vektoren n.) Komandoene zeros, linspace og flere kan også brukes til å definere vektorer. Utforsk disse selv med hjelpekomandoen ved å skrive f.eks. >> help zeros. Slik lages en enkel matrise (semikolon skiller radene): >> A = [2 3; -4-1] (2 x 2 matrix) Multiplisere to vektorer kan bli en matrise eller et tall (matrisemultiplikasjon). Merk forskjellen mellom: >> M = m *m (kolonnevektor ganger radvektor) >> N = m*m (radvektor ganger kolonnevektor) 2

Multiplisere to vektorer med samme lengde element for element: NB! Vektorene må være av samme type (f.eks. radvektorer) og ha samme lengde. >> B = m.*m Slik kan vi lage en f-vektor som vi kan bruke som funksjonsvariabel: >> x = [0.1:0.1:20]; (inneholder 200 elementer) NB! Nå er det lurt å ta med semikolonnet til slutt fordi vi ikke trenger å skrive ut å se alle 200 elementene på skjermen. Hvis du vil se dem, skriv bare f på neste linje og trykk enter. Vi kan så bruke f som variabel i en funksjon. Vi evaluerer da funksjonen for alle de diskré x-verdiene. F.eks. kan vi ta kvadratrot-funksjonen, eller sinusfunksjonen: >> y = sqrt(x); >> f = sin(x); Tegne grafen av f-funksjonen (plotte) kan vi gjøre med >> plot(x,f) Endre type linje eller farge på grafen kan gjøres slik at det blir rød stiplet linje: >> plot(x,f, r ) Endre skala på x- og y-aksene kan gjøres slik: >> axis([0 30 0 10]) Sett navn på x-, y-aksen, og lag tittel på figuren: >> xlabel( x-variabelen ) >> ylabel( sinus(x) ) >> title( Sinusfunksjonen ) NB! For å lære mer om plotting skriv >> help plot Figurer i MATLAB kan lagres som fig, jpg, eps, etc. (eps-figurer vil du få bruk for senere L A TEXprogrammet du skal skrive labb-rapporten i.) 3 Noen nyttige ting: Slette alt fra skjermbildet i kommandovinduet. >> clc Slette variable (enkel /alle): >> clear c; eller clear all; Lukke vinduer/figurer: >> close; eller close 1; eller close all; Skriv help + funksjon for rask hjelp. >> help plot (eller bruk F1-tasten for hjelp). Forstå feilmeldinger som dukker opp. Hvis du får en feilmelding prøv å forstå hva den sier, så vil den hjelpe deg med å rette på problemet. Du kan lagre arbeidet ditt ved å velge File Save Workspace as. For å hente inn hjemmeområdet ditt og lagre der må du mappe det først. Det gjør du ved å gå på Min datamaskin. Der velger du Tools Map network drive. Velg en plassering, og skriv inn \\sambaad.stud.ntnu.no\brukernavn. Deretter passord neste vindu. 3

4 Noen matematikk-kommandoer: Kvadratrot: >> sqrt(81) Pi: >> p=pi Summere alle elementer i en vektor: >> s = sum(m) Kvadrere: >> A 2 (tall eller matrise) eller A. 2 (matrise) eller m. 2 (vektor). NB! Merk forskjellen på kvadrering/multiplikasjon når du skriver. (med punktum) og (uten punktum). Hva er forskjellen? Statistisk analyse (mean, var, std, osv.): Lær mer med å bruke hjelp-komandoen, f.eks.: >> help mean 5 Nyttige funksjoner. Noen funksjoner det kan være greit å vite om og forske ut på egen hånd etterhvert som du får bruk for dem er: fsolve, lsqcurvefit, polyfit Hvordan lese og skrive data til/fra Tekstfil inn i/ut fra MATLAB, f.eks.: dlmread, dlmwrite Det finnes mange ulike typer måter å tegne grafer på (muligheter for 2D og 3D plot mm.). Eksperimenter og finn ut av hvordan du kan bruke for - og if -løkker i MATLAB-script (se nedenfor). 6 Bruke MATLAB m-filer (script): Et m-fil vindu kan hjelpe deg til å skrive flere kommandoer sammen og kjøre de i en utførelse til slutt. Dette er ofte svært nyttig ved behandling av data. Du kan f.eks. lese inn data fra en tekst-fil. Behandle dataene, og så kanskje lage en fin figur til slutt. Spesielt hvis du har flere datasett som skal behandles på samme måte, er dette en enkel måte å gjøre det på. Du kan også lage nye funksjoner i MATLAB med m-filer. De kan da kalles fra hovedvinduet på samme måte som andre ferdiglagede funksjoner i MATLAB, f.eks. med diverse innvariable. Velg New M-file i MATLAB vinduet. (Ett nytt separat vindu vil åpne seg: En m-fil.) For å kjøre innholdet i m-fila trykk på run -knappen (eller F5). Husk å lagre fila først i en mappe du vet å finne igjen (Ikke Matlab-work-mappen helst!). NB! Ikke bruk - i filnavn. Det takles dårlig av MATLAB ofte. 7 Forslag til struktur på en enkel m-fil: Skriv inn i starten på fila kommentarer som forklarer hva fila gjør, hvem som har skrevet den og dato den er skrevet. 4

Kommentarer skrives ved å først skrive %. Da blir linja en kommentarlinje (teksten blir grønn), og ikke en komandolinje som programmet senere utførerer. Innskrevne komandoer som du ikke vil slette, men heller ikke kjøre, kan da enkelt utelates ved å sette et % først i linja. Skriv inn en funskjonsnavn hvis du lager en funksjon. Definer variable og konstanter. Les inn data fra filer, hvis du trenger det. Analyser data. Lag figurer og grafer av data. (Skriv evt. resultater til en ny fil hvis ønskelig. Hvis du skriver kommandoen return eller break et sted i m-fila slutter programmet å kjøre når den kommer dit, og alt nedenfor blir ikke utført. Alle variable inni en funksjon er lokale, dvs. de sees bare inne i denne funksjonen. De kan dermed ha samme navn som andre variable utenfor funksjonen uten at det nødvendigvis skaper problemer. 8 Eksempel 1: For -løkker og if -løkker i MATLAB Vi starter med å lage et enkelt MatLab-script der vi undersøker hvordan vi kan bruke for - og if -løkker. Åpne en ny m-fil og lagre den på din hjemmekatalog, endre også Current directory i MATLAB hovedvinduet til å være det stedet der du lagrer fila. Innholdet i en m-fil kan for eksepemel være noe slik: % Eksempel 1: MatLab Intro, TFY 4145 Mekanisk fysikk. % August 2007: Eirik Glimsdal, M.Sc. % Dette første eksempelet viser hvordan man bruker for - og if -løkker i MATLAB. Fila tegner en av to gitte funksjoner for noen ulike parametre, avhengig av en random-funjsjon. clear all; close all; clc; % Dette kan alltid være greit å gjøre, så er man sikker på at man ikke får noe trøbbel med andre tidligere ting. % Random-funksjonen finner et tilfeldig tall med sansynlighet i normal-fordelingen. Dvs. 50% sjanse for at tallet er større eller mindre enn null. R = randn(1,1); % Vi tester om tallet er større eller mindre enn 0: if R>0 % Testen R>0 vil gi 1 om det er rett og 0 om det er feil. Er det rett går den inn og gjør det som står her, er det feil gjør den det som står etter else istedet. x=[-4:0.1:4] ; %Kolonne y=[-4:0.1:4]; %Rad z=exp(-x. 2)*exp(-y. 2); % Matriseprodukt. mesh(x,y,z) %3D-plot. 5

else %Hvis R<0 utføres kun etterfølgende: color={ r-. b.- g }; for a=1:3 for b=1:3 %Dobbel for-løkke!! x=[0:0.5:10]; y=a*x.*exp(-x. 2/(8*b)); plot(x,y,char(color(a))) hold on % Gjør at vi kan plotte flere grafer i samme figur. end end hold off end % If-setningen må avsluttes med end. % For å kjøre fila trykk F5 eller save and run -knappen. 9 Eksempel 2: Kurvetilpassing og funksjoner I dette eksempelet ser vi på hvordan vi lager en funskjon ved hjelp av MatLab-script. Deretter skal vi generere et datasett som vi bruker som måle-data, og så forsøke å tilpasse det til funksjonen igjen. Først lager vi funksjonsfila og kaller den Funksjon1.m : % Funksjonen vi vil bruke: % Aug. 07: E.G. function F=Funksjon1(a,x) % Inn-variable: a er to funksjonsparametre. x er x-verdi. % Ut-variabel: F er funksjonsverdi F(x). F = a(1)*x.*exp(-x. 2/(8*a(2))); Deretter lager vi hovedfila med tilpasningsprosedyren i en ny m-fil: % Eksempel 2: MatLab intro. TFY4145 Mekanisk fysikk. % August 2007: Eirik Glimsdal, M.Sc. % Genererer datasett ved bruk av tilfeldig tall, for så å tilpasse funksjonen igjen. clear all; close all; clc; x=[0:0.1:15]; % Generere datasettet (F): a=[2,3]; F=Funksjon1(a,x); R=randn(1,length(x))/3; F=F+R; % Plotte for å se på data: plot(x,f,.,x,f-r, r ) % Vi tilpasser de to a-parametrene i F, slik at vi finner den funksjonen som passer best til dataene. a0=[1 1]; %Startverdier for tilpassing. a opt = lsqcurvefit(@funksjon1,a0,x,f) % Evaluerer funksjonen med de nye a-parametrene: Fopt = Funksjon1(a opt,x); 6

hold on plot(x,fopt, k ) legend( Data, Funksjon, Tilpasning ) hold off % Du vil nå i figuren antagelig se en forskjell på opprinnelig og tilpasset funksjon. Optimaliserte verdier for a skrives ut i MATLAB-vinduet. Merk at det finnes enkle tilpasningsrutiner i MATLAB-figurene også (Sjekk dette ut selv.) 10 Analyse av Viskositet-data med MATLAB Åpne MATLAB med data du har lagret fra eksperimentet. Den følgende beregningsfila er basert på at dataene ligger i MATLAB programmet som en 10x3 matrise med falltider. Den enkleste måten å legge disse direkte inn i MatLab ved først å skrive: >> tider = zeros(10,3); Deretter dobbeltklikke på tider i Workspace, og så fylle inn tallene direkte i regnearket som kommer opp (husk å bruke punktum som skilletegn!). Lukk regnearket etterpå og kjør programmet ved å skrive kommandoen: >> [eta,deta]=viskositet(tider) Følgende innhold i m-fila Viskositet.m vil beregne det vi ønsker å vite: % Labb 1 Viskositet i Glyserol i TFY4145 Mekanisk fysikk. % August 2007: Eirik Glimsdal, M.Sc. % Denne fila kjøres ved å kjøre komandoen: >> [eta,deta]=viskositet(tider) fra hovedvinduet. function [eta,deta]=viskositet(tider) % Input variable: tider : 10x3 matrise med tider fra de tre måleseriene (Oppgave 1). % Output varialbe: eta = viskositeten, Deta = usikkerheten i eta. eta=0; Deta=0; % Initsierer variabelnavn. % Definere fallengde: L = 0.30; % m dl = 0.001; % m, (usikkerhet) % Det er lurt alltid å regne om til SI-enheter når du skriver inn tallverdier. Det forenkler beregninger betydelig senere. % MÅLING AV FALLTID: t1=tider(:,1); t2=tider(:,2); t3=tider(:,3); %Oppg. 2: % BEREGNING MIDDELVERDIER: t1m = sum(t1)/length(t1); % Alternativt kan man bruke: t1m = mean(t1) t2m = sum(t2)/length(t2); t3m = sum(t3)/length(t3); % BEREGNING STANDARDAVVIK ENKELTMÅLINGER og MIDDELVERDI: dt1 = sqrt(sum((t1-t1m). 2)/(length(t1)-1)); % alternativt:dt1 = std(t1) Dt1 = dt1/sqrt(length(t1)); 7

dt2 = sqrt(sum((t2-t2m). 2)/(length(t2)-1)); Dt2 = dt2/sqrt(length(t2)); dt3 = sqrt(sum((t3-t3m). 2)/(length(t3)-1)); Dt3 = dt3/sqrt(length(t3)); % Plot målinger: m=[1:1:10]; figure(1) plot(m,t1, r.,m,t2, bx,m,t3, k* ) axis([0 length(t1)+1 min(t3)-0.2 max(t1)+0.2]) xlabel( Måling nummer (#) ) ylabel( Fall tid (sek), med snitt og std. ) legend( Serie 1, Serie 2, Serie 3 ) % Plot middelverdier: hold on plot(m,linspace(t1m,t1m,10), r-.,m,linspace(t2m,t2m,10), b-.,m,linspace(t3m,t3m,10), k-. ) errorbar(1,t1m,dt1, r ) errorbar(2,t2m,dt2, b ) errorbar(3,t3m,dt3, k ) hold off % Oppg. 2a) figure(2) errorbar([1 2 3],[t1m t2m t3m],[dt1 Dt2 Dt3], b* ) xlabel( Måling serie nummer ) ylabel( Gjennomsnitt og standardavvik for gj.snitt (sek) ) % Oppg. 3: % Hvis alle serier har gode data, bruk alle data sammen i videre beregniger: %t = [t1 t2 t3 ] % Hvis data ikke er konsistente, bruk bare en eller to seier videre: t = t3; % t = [t2;t3] tm = mean(t) dt = std(t) Dt = dt/sqrt(length(t)); % Plot of data in one figure m=[1:1:length(t)]; figure(3) plot(m,t, r+ ) axis([0 length(t)+1 min(t)-0.1 max(t)+0.1]) hold on plot(m,tm, k. ) errorbar(1,tm,dt, b ) errorbar(3,tm,dt, g ) hold off % Oppg. 4. %Middelhastigheten: v = L/tm % m/s Dv = v*sqrt((dl/l) 2+(Dt/tm) 2) % m/s 8

% Oppg. 5. rho g = 1.26e3; %kg/m 3 Drho g = 0.01e3; % kg/m 3 rho k = 7.8e3; %kg/m 3 Drho k = 0.1e3; % kg/m 3 r = 1.00e-3; %m Dr = 0.02e-3; %m R = 10.7e-3; %m DR = 0.1e-3; %m g = 9.822; %m/s 2 Dg = 0.005; %m/s 2 %Viskositeten: eta = 2*(rho k-rho g)*g*r 2/(9*v)*(1-2.1*r/R) % Reynoldstallet: Re = 2*r*rho g*v/eta % Oppg 6. % Beregn utrykk for usikkerheter for hånd først!! Dr r 2 = ((2-6.3*r/R)/(1-2.1*r/R)*Dr/r) 2; DR R 2 = ((2.1*r/R)/(1-2.1*r/R)*DR/R)sq 2; Deta rel = sqrt((dg/g) 2+(Dv/v) 2+(Drho k/(rho k-rho g)) 2+(Drho g/(rho k-rho g)) 2+ Dr r 2 + DR R 2) Deta = eta*deta rel % Oppg 7. %delta g = (Dg/g) 2 %delta v = (Dv/v) 2 %delta rho k = (Drho k/(rho k-rho g)) 2 %delta rho g = (Drho g/(rho k-rho g)) 2 %Dr r 2 %DR R 2 % Oppg 8. eta=eta*1000; % cp-units Deta=Deta*1000; % cp-units % ********************************************************************** % Alternativt til å laste inn slik som her er å lese inn data fra fil. % En fin kommando for det er: M = dlmread( filename,delimiter,r,c), der delimiter kan være, (default) \t (tab). R og C definerer rad og kolonne å starte å lese fra. (0,0) er overst til venstre. % F.eks.: %t = dlmread( ViskositetTider.txt, \t, 0, 0); %t1=t(1:10); %t2=t(11:20); %t3=t(21:30); 9