Du er her:
UiO >
Studier >
Emner >
MAT-INF1100 - Høst 2003
Matlab
Matlab er et program som er spesialisert mot numeriske beregninger og plotting/visualisering. Det er mye brukt b� i undervisning, forskning og kommersielle anvendelser. Det brukes av mange milj��atnat-fakultetet, b� i forskning og undervisning, og mange av dere vil m�et i kurs neste semester. Det fine med Matlab er at det er ganske enkelt �omme i gang med, og grafikkmulighetene burde kunne v� til nytte for dere i arbeidet med funksjoner av flere variable i MAT 1100. Her skal jeg vise dere hvordan dere starter opp og lager enkle plott. Dere kan finne mer informasjon i Matlabs hjelpesystem. Jeg h�r �unne gi dere litt mer overordnet informasjon mot slutten av semesteret, ikke s�ye for bruk i MAT-INF 1100, men heller som et grunnlag for �omme raskt i gang med Matlab neste semester.Tilgjengelighet. Matlab produseres av The Mathworks, og er tilgjengelig for de aller fleste datamaskintyper. Vi har et forholdsvis romslig antall lisenser for v� linux-maskiner, og programmet skal v� tilgjengelig b� p�ermstuene og labbene.
Oppstart. Du starter Matlab ved �i
matlab &
i et terminalvindu (under linux). Dette gir deg et tredelt vindu p�kjermen. I det st� feltet kan du skrive inn kommandoer til Matlab, slik dere har sett jeg gj�d Mathematica. Feltet �t til venstre viser variablene du har deklarert og hvor mye plass de opptat, mens feltet nederst til venstre viser kommandoene du har brukt. Du fins dessuten en del menyer �t i vinduet.
Plotting av funksjoner av en variabel. La oss plotte funksjonen sin(x). Dette f�du til ved �krive
x=0:pi/20:2*pi;
y=sin(x);
plot(x,y)
Dette f�til at du f�opp et vindu med et plott av sin(x) p�ntervallet [0,2Pi]. Den f� linja betyr at x
skal v� en array med tall som begynner p� og ender med 2Pi, med steg p�i/20. I neste linje regner vi ut verdien av sin(x) i alle disse x'ene og lagrer resultatet i y, mens den siste linja genererer plottet.
Plotting av funksjoner av flere variable. Du kan plotte funksjoner av to variable, alts�later, p�ignende m�r. Anta at vi skal plotte ut funksjen sin(x+y) over kvadratet [-8,8]x[-8,8]. Da sier vi
x=-8:0.5:8;
y=x;
[X,Y]=meshgrid(x,y);
Z=sin(X+Y);
mesh(X,Y,Z)
Kommandoen mesh
kan byttes ut med surf
, da f�du en litt annen type flate.
F� linje gj� x
blir en array med verdier fra -8 til 8 i steg p�.5. I andre linje kopierer vi dette over til y
. S�angt er x
og y
en-dimensjonale arrayer som det ikke er mulig ��oen flate fra, men kommandoen meshgrid
krysser de to arrayene slik at vi f�en to-dimensjonal array med verdier jevnt fordelt i kvadratet [-8,8]x[-8,8] (merk at det her er brukt store bokstaver p�enstre side). I fjerde linje beregner vi s�erdien av funksjonen sin(x+y) i disse punktene og lagrer dette i Z
, f�mmandoen mesh
genererer plottet for oss.
Hvordan finne ut mer? Matlab har et ganske godt hjelpesystem. Ved �rykke p�Help'-menyen �t i vinduet og der velge 'MATLAB Help' f�du opp et vindu med hjelpedokumenter. Et greit sted �egynne er 'Getting Started'. Da vil da f�pp en innholdsfortegnelse som blant annet inneholder 'Graphics'. Klikker du p�enne kan du blant annet velge mellom 'Basic Plotting' og 'Mesh and Surface Plots'. Velger du en av disse kan du f�er informasjon om det vi har sett p�ver.
Matlab er (som Mathematica) et interaktivt verkt�r du gir en kommando og f�utf�et du ber om med en gang. Dette er ofte en grei m� �rbeide p��du utforsker et problem, men i mange sammehenger er det ogs�yttig �unne programmere. Matlab har gode muligheter for dette, og med det du har l� om programmering i Java dette semesteret burde det ikke v� s�anskelig �omme i gang med programmering i Matlab, se 'MATLAB Help' for mer informasjon.
Merk at Matlab ikke har muligheter for symbolske beregninger slik som Mathematica.
Redaksjon: Knut M�
Dokument endret: 14. november 2003