Startpakke for bruk av Matlab

Størrelse: px
Begynne med side:

Download "Startpakke for bruk av Matlab"

Transkript

1 Startpakke for bruk av Matlab Øyvind Ryan 22. mai 2013 Innhold 1 Innledning 1 2 Installasjon 2 3 Det aller enkleste 3 4 m-filer, funksjoner og script 6 5 Avanserte eksempler 7 6 Tilleggspakker 11 7 Begrensninger 11 8 Ressurser 13 1 Innledning Dette dokumentet inneholder diverse praktisk informasjon og eksempler, som kan være nyttige både for deg som allerede er i gang med Matlab, og for deg som tenker på å starte med å bruke Matlab. Vi starter med noen punkter rundt installasjon, som kan dukke opp for din plattform (windows, mac, eller linux). Deretter fortsetter vi med en seksjon om enkel bruk av Matlab. Denne delen passer deg som har brukt Matlab lite eller aldri, og vil ha en oversikt over den grunnleggende funksjonaliteten. Når du har gjort deg kjent med disse grunnleggende tingene kan du gå videre til neste seksjon, der vi går i gang med enkel programmering, hvordan vi lager egne programmer, strukturerer disse i filer, etc.. Deretter tar vi for oss noen mer avanserte eksempler, slik som hvordan vi kan bruke Matlab til å gjøre fouriertransformasjoner, eller i forbindelse med lyd og bilder. Til slutt ser vi på noen tilleggspakker, noen begrensninger, går gjennom noen nyttige Matlab-ressurser, og forklarer hvordan Matlab blir brukt i forskjellige kurs ved UIO. 1

2 2 Installasjon Fra vår 2013 har Mat-Nat en site-lisens på Matlab. Dette innebærer at alle studenter og ansatte kan installere Matlab over nettet på sin egen laptop, i tillegg til at Matlab er tilgjengelig på terminaler på terminalstuene. Nedenfor finner du oppskriftene for installasjon for de forskjellige plattformene. Dette er oppskrifter som driftes av USIT, og de mangler per i dag er par kommentarer, som kan skape litt forvirring (vi forsøker å få USIT til å endre disse tingene i sine oppskrifter). Tidligere var det nødvendig at studenten skrev en mail til USIT for at han skulle bli meldt inn i en filgruppe som ga tillatelse til å installere Matlab, men dette skal nå ikke lenger være nødvendig (vennligst ta kontakt med undertegnede hvis noen fortsatt ikke har tilgang til Matlab-installasjonen på nett!). 2.1 Windows Gå til Nedlasting av matlab og klargjøring for bruk på adressen og følg instruksjonene. I skrivende stund er det er par ting som ikke er riktig beskrevet her: HELE mappa må lastes ned fra /lisens/matlab, vi fikk det i hvert fall ikke til uten. Det er ingen knapp som het installforwindows, slik det står i guiden. Bare setup.exe, som måtte kjøres som administrator etter at alt var lastet ned. 2.2 Mac Gå til Nedlasting av matlab og klargjøring for bruk på adressen og følg instruksjonene. Legg merke til at 2013-versjonen av Matlab krever OSX 10.7 eller nyere (d.v.s. Lion, Mountain Lion, eller nyere). I guiden burde følgende også vært nevnt: Under security & privacy, under system preferences ( personal -kategorien) måtte jeg midlertidig tillate installasjon av applikasjoner fra overalt (det vil si at matlab installasjonen var fra en unidentified developer ) (denne innstillingen ligger under general -taben). 2.3 Linux-plattformer Legg merke til at det er som er beskrevet her for linux er en ad hoc-løsning, og at det egentlig ikke er noen support for dette. Du kan hente ned scriptet for installasjon ved å skrive scp <brukernavn>@ulrik:/usr/sbin/app-sync /tmp/ 2

3 Kjør deretter scriptet for å installere matlab slik: sudo /tmp/app-sync install matlab På forhånd må man sørge for at det er nok plass under /opt til å installere Matlab. Versjon 2013a tar ca. 9GB. For å fjerne Matlab igjen er det bare å skrive: sudo /tmp/app-sync remove matlab Hvis du kjører Red Hat Enterprise Linux på din laptop, så kan du også gå til siden for Matlab og Simulink på adressen og følge instruksjonene. 2.4 Bruk av Matlab i tungregneklynger På insitutt for informatikk har man over lenger tid brukt Condor til å spre jobber på maskiner, se På denne siden er det også tatt med et enkelt eksempel på hvordan man kan bruke Condor for enkle Matlab-kjøringer. 3 Det aller enkleste Du åpner Matlab som et hvilket som helst annet program. I Unix skriver du matlab &, mens du i Windows-lignende omgivelser klikker på Matlab-ikonet. I begge tilfeller får du opp et kommandovindu med et Matlab prompt» (avhengig av oppsettet på maskinen er dette kommandovinduet enten ett av flere Matlab-vinduer eller én del av et større vindu). Vi bruker promptet for å indikere enkeltstående kommandoer som du kan skrive inn parallelt med at du bruker boka, eller for å skille mellom hva som er input og output i utskrifter fra Matlab-kjøringer. For kode som går over flere linjer vil du se at vi har droppet promptet. Slik kode kan du kjøre ved å laste ned de tilhørende filene fra bokas hjemmeside. Etter promptet kan du skrive en kommando du vil at Matlab skal utføre. Skriver du f.eks. >> 3+4 og skifter linje, svarer Matlab med ans=7 og gir deg et nytt prompt til neste regnestykke (prøv!). Du kan prøve de andre standard regneoperasjonene ved å skrive inn etter tur 3-4, 3*4, 3/4, 3^4. Husk å avslutte med et linjeskift for å utføre kommandoene. Men legg merke til at, hvis du skriver inn Matlab-kommandoer som går over flere linjer, og bruker linjeskift for å bryte opp en kommando, så vil du få en feilmelding. Dette kan 3

4 du bøte på ved å skrive... før du bruker linjeskift. Dette vil fortelle Matlab at den skal vente med å tolke komamndoen til neste linjeskift igjen. Matlab bruker den vanlige prioriteringsordningen mellom regneoperasjonene slik du er vant til fra avanserte lommeregnere. Legg merke til at du kan bruke piltastene for opp/ned til å se tidligere kommandoer du har skrevet inn. Dette er veldig nyttig hvis du trenger å gå tilbake for å eksperimentere litt mer med tidligere kommandoer. I Matlab-hovedvinduet er det også mulig å se kommandoer du har brukt i tidligere Matlab-sesjoner, og dermed gjenbruke disse. Kommandoen >> 8^2/3 gir svaret , dvs. 64/3, mens >> 8^(2/3) gir svaret Vær forøvrig klar over at på enkelte maskiner er ^-tasten litt trøblete når man bruker Matlab. Som regel løser problemet seg hvis man taster mellomrom etter ^ og så fortsetter med neste symbol. Matlab kjenner alle vanlige (og mange uvanlige!) funksjoner, så skriver du >> sin(0.94) svarer Matlab med sinus til 0.94 radianer. Vær oppmerksom på at Matlab er nøye på multiplikasjonstegn: Skriver du» 15sin(0.94), svarer Matlab med en feilmelding du må skrive» 15*sin(0.94) for å få regnet ut 15 sin sin er en innebygd kommando (funksjon) i Matlab. Du kan enkelt få opp hjelpedokumentasjon for alle slike kommandoer. Skriver du >> help sin så vil du få opp Matlab s innebygde dokumentasjon for kommandoen sin. Denne dokumentasjonen kan du også få opp ved å velge Dokumentasjon fra hjelpemenyen i Matlab, og så skrive inn kommandonavnet. En funksjon du må passe litt på, er eksponentialfunksjonen e x som du må skrive som exp(x). Vil du regne ut e 2.5, skriver du altså exp(2.5) (og ikke e^2.5). I tillegg til eksponentialfunksjonen må du passe litt på arcusfunksjonene som i Matlab heter asin, acos, atan osv, og ikke arcsin, arccos, arctan som man kanskje skulle tro. I tillegg kan det være greit å vite at kvadratrotfunksjonen heter sqrt og at absoluttverdifunksjonen heter abs. Skriver du >> exp(sqrt(abs(-0.7))) regner Matlab ut e 0.7. De andre standardfunksjonene heter det du er vant til: sin, cos, tan, cot, log. Vår gamle venn π kalles i Matlab for pi. Kommandoen >> pi gir svaret Ønsker du å vise svaret med flere desimaler, kan du skrive 4

5 >> format long Kommandoen» pi blir da besvart med Vil du tilbake til kort format (det blir fort uoversiktlig med mange desimaler i alle tall), skriver du >> format short Legg merke til at presisjonen i selve utregningen er like god i begge tilfeller: Kommandoene format long og format short påvirker bare hvor mange desimaler som blir skrevet på skjermen, ikke hvor mange desimaler som brukes til å representere tallet internt i Matlab! Mer informasjon om presisjon i Matlab finner du ved å gi skrive format eller precision i hjelpemenyen i Matlab. Ber du Matlab regne ut sin π, får du deg kanskje en overraskelse. Istedenfor 0, gir Matlab deg svaret e-16. Dette skyldes at Matlab primært er et numerisk beregningsprogram som regner med avrundede tall. Det finnes også funksjoner som runder av tall på flere måter. Noen eksempler, med forklaring gitt i kommentarene, er >> floor(a) % Runder a ned til nærmeste hele tall >> ceil(a) % Runder a opp til nærmeste hele tall >> round(a) % Runder a av til nærmeste hele tall Skal du bruke et tall flere ganger i en beregning, kan det være greit å gi det et navn. Ønsker du at heretter skal betegnes med a, skriver du rett og slett >> a= Navnsetter du på tilsvarende måte >> b=2.41 kan du regne ut produktet ved å skrive >> a*b La oss avslutte denne innledende seksjonen med noen Matlab-knep det kan være greit å vite om (blir det for mye på en gang, får du heller komme tilbake til denne delen senere). I Matlab kan du ikke endre på en kommando som er blitt eksekvert. Har du laget en liten trykkfeil, må du derfor føre inn kommandoen på nytt. Dette kan du gjøre ved klipping-og-liming, men du kan også bruke piltastene opp og ned. En oversikt over tidligere kommandoer ligger i det lille vinduet som heter Command History, og du kan navigere frem og tilbake i disse kommandoene ved å bruke piltastene. Dersom du ønsker at Matlab skal vente med å eksekvere en linje til senere, holder du skift-tasten (for skifte til stor bokstav) nede mens du slår linjeskift. Matlab vil nå vente med å utføre kommandoen til du slår et linjeskift uten å bruke skift-tasten. Synes du at en kommando blir svært lang og vil fortsette den på en ny linje, kan du skrive tre punktum etter hverandre og så skifte linje. 5

6 Matlab skjønner da at du ikke er ferdig med kommandoen og venter med å utføre den. Får du problemer med en kommando og ønsker å avbryte, trykker du Ctrl-c (altså kontrolltasten og c samtidig). Et siste nyttig triks: Ønsker du at Matlab skal utføre en kommando uten å skrive resultatet i vinduet, taster du et semikolon etter kommandoen. Skriver du f.eks. >> c=a*b; vil c få verdien ab, men resultatet kommer ikke opp på skjermen. 4 m-filer, funksjoner og script Hvis du skal skrive inn mange kommandoer som skal brukes flere ganger, kan det være praktisk å samle disse i en egen kommandofil. Slike Matlab-filer skal ha endelsen.m, og kalles derfor gjerne m-filer. De inneholder Matlab-kommandoer (uten promptet» foran seg) og kan skrives inn i en hvilken som helst editor, f.eks. emacs eller den innebygde editoren i Matlab som ligger i et eget vindu. I noen versjoner av Matlab spretter dette vinduet opp når du starter programmet, i andre må du klikke på et ikon i Matlab-vinduet for å få det opp. Klikker du for eksempel på knappen som heter New, og velger function eller script, så vil du få opp editorvinduet. Valgene function og script gjenspeiler at det finnes to typer m-filer: scriptfiler og funksjonsfiler. Et script er en sekvens av Matlab-kommandoer slik vi ville ha tastet dem inn i kommandovinduet (uten promptet). Hvis vi samler disse kommandoene på en fil som heter filnavn.m, vil Matlab utføre dem når vi gir kommandoen» filnavn (uten endelsen.m) i kommandovinduet. For at Matlab skal finne filen, må vi stå i samme katalog som filen er lagret i (med mindre filen ligger i søkestien til Matlab). Vi kan sjekke hvilken katalog vi står i med kommandoen pwd (present working directory) og skifte katalog med kommandoen cd (change directory). Når du starter opp Matlab vil du per default stå i Matlab s hjemmeområde (Matlab s default working directory), og denne vil ligge per default i søkestien til Matlab. Hvis du vil lagre m-filer i et annet directory, og du vil legge dette til søkestien til Matlab, så kan du gjøre dette med valget set path fra Matlab s file-meny. Etterhvert som du bruker Matlab mye vil du typisk lage mange m-filer, til mange forskjellige formål. For å få bedre oversikt anbefaler vi da at du lager et directory for hvert formål, og legger hvert enkelt directory inn i søkestien. Hvis vi f.eks ønsker å lage et script som finner røttene til annengradsligningen 2x 2 + 3x + 1 = 0, kan vi legge følgende kommandoer på filen annengradsligning.m a=2; b=3; c=1; x1=(-b+sqrt(b^2-4*a*c))/(2*a) x2=(-b-sqrt(b^2-4*a*c))/(2*a) 6

7 (Husk at promptet» ikke skal være med i m-fila!) Når vi skriver» annengradsligning utfører Matlab alle kommandoene i scriptet og returnerer svarene x x2-1 En funksjon er en m-fil som begynner med ordet function og har én eller flere inn- og ut-parametre. Disse parametrene er tall eller matriser (eller i noen få tilfeller funksjoner). Variablene som brukes i funksjoner er lokale (med mindre vi definerer en global variabel, se help global) og lagres ikke i det ordinære arbeidsrommet. Hvis vi ønsker å lage en funksjon som finner røttene til en vilkårlig annengradsligning ax 2 +bx+c = 0, kan vi la brukeren spesifisere ligningskoeffisientene a, b og c som inn-parametre til funksjonen, og la ut-parameteren som funksjonen returnerer, være en 2-dimensjonal radvektor som inneholder røttene r1 og r2. På filen annengrad.m legger vi da følgende funksjonskode: function [r1, r2]=annengrad(a,b,c) if a~=0 % sjekker at a ikke er null r1=(-b+sqrt(b^2-4*a*c))/(2*a); r2=(-b-sqrt(b^2-4*a*c))/(2*a); else disp( Koeffisienten til x^2 kan ikke være null ) end (legg merke til kommandoen disp( tekst ) som får Matlab til å skrive ut tekst). Vi kan nå finne røttene til annengradsligningen 2x 2 + 3x + 1 = 0, ved å gi kommandoen» [x1,x2]=annengrad(2,3,1) Matlab returnerer igjen svarene x 1 = og x 2 = 1. Det er en god vane å legge inn forklarende kommentarer i m-filene som forteller hva kommandoene gjør. I Matlab kan vi skrive inn slike kommentarer etter prosenttegnet % som kommenterer ut resten av linjen. 5 Avanserte eksempler I denne seksjonen tar vi for oss forskjellige eksempler av litt mer avansert natur, der Matlab kan brukes som verktøy. 7

8 5.1 Diskret fouriertransformasjon av et tidssignal Iblant simulerer vi ulike fysiske prosesser ved å generere et signal og så foreta en eller annen analyse av dette. I eksemplet nedenfor genereres et signal som består av to sinusfunksjoner som adderes, og som så frekvensanalyseres ved hjelp av diskret fouriertransformasjon. Legg merke til hvordan vi kan generere en tallrekke/vektor (jevnt fordelte tidspunkt), og hvordan vi genererer sinusverdier til alle tidspunktene/hele vektoren i en eneste operasjon (uten bruk av en løkke). Dette trikset er viktig fordi beregninger av denne typen går svært mye raskere i Matlab enn ved tradisjonelle løkker. % Lager først et signal beskrevet i tiden 0 til 10 sekunder N = 2048; % antall punkter vi vil beskrive et signal i T = 10; % lengde (i sekunder) vi vil beskrive signalet t = linspace(0,t,n); % t blir en tallrekke (vektor) fra 0 til 10 (s) omega1 = 2*pi*20; % vinkelfrekvens, frekvens1 = 20 Hz omega2 = 2*pi*70; % frekvens2 = 70 Hz signal1 = sin(omega1*t);% signal1 blir nå en tallrekke med sinusverdier signal2 = sin(omega2*t); signal = 0.8*signal1+1.3*signal2; % lager et sammensatt signal plot(t,signal, -b ); % plotter signal, blå strek xlabel( Tid (s) ); % tekst langs x-aksen ylabel( Sinussignal (rel enheter) ); % ds for y-aksen % Vi foretar så en diskret fouriertransformasjon og plotter resultatet frekvensspekter = (2/N)*abs(fft(signal)); % absoluttverdi av FT figure; % ønsker å lage et nytt plot frekv = linspace(0,(n-1)/t,n); % lager en frekvensakse for plottet plot(frekv,frekvensspekter, -r ); % plotter frekvensspekteret xlabel( Frekvens (Hz) ); ylabel( Frekvenskomp (rel. enhet) ); Den sentrale funksjonen her er fft, som er Matlab s høyoptimaliserte og innebygde metode for å regne ut en diskret fouriertransformasjon (DFT). Legg også merke til hvordan funksjoner kan plottes på en enkel måte. I dette programeksemplet har vi skrevet inn kommentarer omtrent til hver enkelt linje i programmet. Det kan iblant være en hjelp for å huske hva de ulike delene av programmet gjør, men det er sjeldent behov for så mange kommentarer som vi har lagt inn her. Dersom tredje siste linje ble modifisert slik: plot(frekv(1:n/2+1),frekvensspekter(1:n/2+1),, -r ); ville vi bare ha skrevet ut den første halvparten av frekvensspekteret. Den øvrige halvparten er speilet (foldet) omkring halve samplingsfrekvensen, og har ingen informasjonsverdi ut over det vi finner i første halvpart. Merk for øvrig at indeksene i Matlab starter på 1 (ikke 0 som i mange andre programmeringsspråk). 8

9 1 5.2 Lyd Det er enkelt å eksperimentere med lyd i Matlab. Hvis du har en fil med extension wav (feks. castanets.wav), så kan denne leses inn i Matlab ved å skrive [S,fs]=wavread( castanets.wav ) wav-formatet er et av de mest brukte formatene for å lagre digital lyd, spesielt for lyd med CD-kvalitet. S, som wavread returnerer, er en matrise, der hver søyle gir lyden i konkrete lydkanaler (hvis lydfila inneholder stereolyd. så vil S ha to søyler). fs er samplingsraten som blir brukt i lyden. Funksjonen wavwrite kan på tilsvarende måte brukes til å skrive lydsampler i en matrise til en wav-fil: wavwrite(s,fs, castanets.wav ) Lyd vi har lest inn kan vi avspille med funksjonene play og playblocking. For å eksperimentere kan vi nå bruke FFT og IFFT til å nulltille høye frekvenser i lyd vi har lest inn, og spille av resultatet, med følgende kode: y=fft(s(1:2^17,1); y((2^17/4+1):(3*2^17/4))=zeros(2^16,1); news=ifft(y); news=news/max(abs(news)); playerobj=audioplayer(news,fs); playblocking(playerobj) Her kjøres FFT bare på de første 2 17 første lydsamplene i første lydkanal. 5.3 Bilder Bilder kan leses inn i Matlab med funksjonen imread X = double(imread( filename.jpg, jpg )); X, som returneres fra funksjonen, blir da en matrise med dimensjoner lik dimensjonene til bildet. Hvis bildet har flere fargekanaler (f.eks. et RGB-bilde), så vil en tredimensjonal matrise returneres. Den består egentlig av tre to-dimensjonale matriser, en for hver farge. Første dimensjonen i matrisen svarer til indekser i loddrett retning, andre dimensjon horisontal retning, og tredje dimensjon fargen. Det kan være lurt å skrive size(x) (uten semikolon) for å få skrevet ut dimensjonen på matrisen. Bilder kan også skrives til fil ved kommandoen imwrite: 1 Det er detaljer i dette som kan være vanskelig å forstå fullt ut. I kapittel 4 i læreboka til FYS2130 Svingninger og bølger, tilgjengelig på er noen av disse detaljene tatt opp i detalj. Mange av kapitlene inneholder andre Matlabprogrammer brukt i kurset. 9

10 imwrite(uint8(x), filename.jpg, jpg ) Ved kallet til disse funksjonene kan jpg erstattes med et hvilket som helst annet format som Matlab kan håndtere (png, gif, etc.). Legg også merke til konverteringen mellom datatyper ved hjelp av funksjonene double og uint8 over, som er gjort for at vi kan få ut objekter med datatyper som Matlab kan gjøre beregninger med. Et bilde representert med en matrise X kan også vises frem i Matlab ved hjelp av funksjonen imshow. Vi kan nå eksperimentere med vårt innleste bilde feks. på følgende måte: X=X(:,:,1); [m,n]=size(x); for kn=1:n X(:,kn)=fft(X(:,kn)); end for km=1:m X(km,:)=fft(X(km,:)); end temp=x(1:(m/2),1:(n/2)); X=zeros(m,n); X(1:(m/2),1:(n/2))=temp; for kn=1:n X(:,kn)=ifft(X(:,kn)); end for km=1:m X(km,:)=ifft(X(km,:)); end imshow(uint8(x)); Koden her begrenser seg først til første fargekanal. Deretter blir det kjørt en fft på alle søyler i bildet, deretter på alle rader i bildet. Vi setter så alt unntatt øvre venstre hjørne i bildet til null (dette svarer til å kaste høyfrekvent informasjon i bildet), før vi transformerer oss tilbake med ifft, og viser frem bildet. 5.4 Singulærverdidekomposisjon Følgende kode returnerer en tilnærming til en matrise regnet ut ved hjelp av singulærdekomposisjonen av matrisen. Tilnærmingen er av lavere rang, og regnet ut ved at man legger sammen de singlulære vektorene med største tilhørende singulærverdier. function AK = svdapprox(a,k); if k > min(size(a)) disp( k must be <= the smallest matrix dimension.\n ); return; end; AK = zeros(size(a)); 10

11 [U,S,V] = svd(a); for i = 1:k AK = AK + S(i,i)*U(:,i)*(V(:,i) ); end; Dette kan for eksempel være nyttig hvis man vil lage en tilnærming til et bilde. Vi kan lett se på singulærverditilnærmingen til bildet ved å bruke funksjonen imshow. 6 Tilleggspakker Matlab inneholder en del tilleggspakker, kalt toolboxes. Disse listes opp i hjelpemenyen i matlab. Viktige slike toolboxes er 1. statistics toolbox inneholder støttefunksjoner for statistisk analyse. 2. signal processing toolbox innholder diverse støtte for signalbehandling, slik som fft, dct, filter design etc.. 3. wavelet toolbox inneholder støtte for å eksperimentere med wavelets. 4. symbolic math toolbox inneholder støtte for symbolsk matematikk, slik som utregning av integraler, deriverte, og å løse likningssystemer symbolsk. I appendikset i Flervariabel analyse med lineær algebra (Lindstrøm/Hverberg), som brukes i kurset MAT1110, finnes det en egen seksjon om dette. 5. image processing toolbox inneholder støtte for å eksperimentere med bilder, slik som funksjonene beskrevet i seksjonen om bilder 6. optimization toolbox 7. parallel computing toolbox 8. partial differential equation toolbox 9. mapping toolbox inneholder støtte for georefererte formater, slik som KML, GeoTIFF, Web map service. Med sistnevnte kan man feks.lese værdata fra databasen eklima. Værdataene returneres her i XML-format, som kan lese ved hjelp av metoder i Matlab. 7 Begrensninger Matlab kan brukes både som et verktøy for å regne ut ting med enkle kommandoer, og til å skrive større programmer. Til begge formål fungerer Matlab utmerket, men det er et par ting man bør være klar over hvis man skal bruke Matlab i programmeringssammenheng. Det er nemlig en stor forskjell i kompleksitet på Matlab og programmeringsspråk som C og C++. Med sistnevnte har man større muligheter til å fintune programmene til å gå meget raskt (man har 11

12 full kontroll på minneallokering/minnekopiering etc.), mens Matlab kan binde mye ressurser selv ved få metodekall. Dette i seg selv er ikke nødvendigvis noen stor begrensning, siden mange av Matlabs innbygde kommandoer er høyoptimaliserte (ved at de under panseret kaller nettopp metoder som er implementert i språk som C++). Dette gjelder spesielt fft-rutinen som vi brukte over, som har vært gjenstand for mye optimalisering på grunn av sin viktighet. Du vil imidlertid merke en stor forskjell hvis du programmerte FFT-rutinen i Matlab selv! La oss derfor se på følgende enkle kode, som også regner ut DFT, under antagelsen av at lengden til vektoren er en potens av 2. function y = FFTImpl(x) N = length(x); if N == 1 y = x(1); else ye = FFTImpl(x(1:2:(N-1))); yo = FFTImpl(x(2:2:N)); D=exp(-2*pi*1j*(0:(N/2-1)) /N); yo=yo.*d; y = [ ye + yo; ye - yo]; end Koden bruker FFT-algoritmen for å regne ut DFT, og skiller seg ikke i vesentlig grad fra Matlabs innebygde fft med tanke på antall regneoperasjoner (addisjoner/multiplikasjoner) som blir brukt i utregningene. Vi kan sammenligne tidsforbruket til vår egen FFT-implementasjon og Matlabs fft ved å skrive x=rand(2^17,1); tic; res1=fftimpl(x); toc tic; res2=fft(x); toc For at koden skal fungere må du lage en fil FFTImpl.m som inneholder koden over, slik at Matlab finner den. I koden lages en vektor av lengde 2 17 med tilfeldige tall mellom 0 og 1, som blir sendt som input til FFT-metodene. Ved hjelp av Matlabs innebygde tidtakingsmetoder tic og toc skrives deretter tidsforbruket for de to metodene ut på skjermen. Kjører du koden vil du se at det er en enorm forskjell i tidsforbruket: På undertegnedes maskin bruker FFTImpl ca. 7.6s, mens fft bruker rundt 0.003s!. Så hva skyldes denne forskjellen? Som nevnt henger det ikke sammen med antall regneoperasjoner (den er omtrent O(N log 2 N) i begge tilfellene). Forklaringen har med at det å programmere i Matlab kan føre en del overhead med 12

13 seg: blant annet vil parametre kopieres ved kall på metoder. Med FFTImpl vil det derfor skje mye kopiering, siden metoden kaller seg selv mange ganger. Matlabs innebygde fft unngår dette ved at den under panseret er implementert i et programmeringsspråk der parametrene ikke kopieres. Problemet over unngås ved at den innebygde fft-kommandoen regner ut alt i en jafs. En måte å få til slik utregning i en jafs med Matlab er vektorisering : Hvis vi har en sekvens av tall som skal bearbeides av Matlab, så kan vi legge disse inn i en vektor, og sende vektoren som parameter til en Matlab-metode, i stedet for at vi kaller metoden mange ganger med de forskjellige tallene som parametre. Da vil en underliggende optimalisert implementasjon i et annet språk komme til sin rett, siden denne kan gå gjennom datene på en raskere måte. Veldig mange innebygde Matlab-metoder støtter slik vektorisering. Som et enkelt eksempel kan vi skrive y=sin(x); i stedet for N=length(x); y=zeros(n,1); for k=1:n y(k)=sin(x(k)); end Hvis vi vil regne ut sin til alle elementene i vektoren x. Som en konklusjon kan vi si at Matlab inneholder høyoptimaliserte metoder for det meste, men at vi må tenke oss om hvis det er snakk om å bruke Matlab i lengre kodesnutter, slik fft-eksemplet viser. På den annen side, selv om feks. matlabkoden for FFTImpl over ikke eksekverer spesielt raskt, så gir Matlab likevel en kompakt og god fremstilling av algoritmen, og egner seg således godt i undervisningssammenheng. 8 Ressurser Boka Flervariabel analyse med lineær algebra (Lindstrøm/Hveberg), som blir brukt i kurset MAT1110, se har et appendiks med en fyldig innføring til de forskjellige kommandoene i Matlab, med en matematisk vinkling tilpasset MAT1110-pensum. Den enklere innføringen i Matlab over er en videreføring av enkelte seksjoner i dette appendikset, inkludert her med tillatelse fra Tom Lindstrøm og Øyvind Ryan. I MAT1120 er det laget et kompendium der bruken av Matlab er tilpasset dette kurset, se MLkomp-2012.pdf I GEO1040, se er pensum skreddersydd rundt bruken av Matlab i geofaglige problemstillinger. Kompendiet er bare tilgjengelig i Fronter. 13

14 I kurset MAT-INF2360, se er Matlab brukt gjennomgående til å illustrere teorien i kurset. Dette kurset bruker også lyd og bilder med Matlab ekstensivt. I regi av CSE-prosjektet er det laget en portal, se for å dele beregningsrettede oppgaver og eksempler med andre institusjoner i Norge. Mye av dette materialet er Matlab-basert. Målet med portalen er å dele erfaringer rundt innføringer av beregninger i begynnerundervisningen. 14

MAT-INF 2360: Obligatorisk oppgave 1

MAT-INF 2360: Obligatorisk oppgave 1 6. februar, MAT-INF 36: Obligatorisk oppgave Oppgave I denne oppgaven skal vi sammenligne effektiviteten av FFT-algoritmen med en mer rett frem algoritme for DFT. Deloppgave a Lag en funksjon y=dftimpl(x)

Detaljer

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

Kapittel august Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 2. Institutt for geofag Universitetet i Oslo 28. august 2012 Kommandovinduet Det er gjennom kommandovinduet du først og fremst interagerer med MatLab ved å gi datamaskinen kommandoer når >> (kalles prompten

Detaljer

Matematikk 1000. Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Matematikk 1000. Øvingeoppgaver i numerikk leksjon 1 Å komme i gang Matematikk 1000 Øvingeoppgaver i numerikk leksjon 1 Å komme i gang I denne øvinga skal vi bli litt kjent med MATLAB. Vi skal ikkje gjøre noen avanserte ting i dette oppgavesettet bare få et visst innblikk

Detaljer

MAT-INF 2360: Obligatorisk oppgave 1

MAT-INF 2360: Obligatorisk oppgave 1 7. februar, 2013 MAT-INF 2360: Obligatorisk oppgave 1 Innleveringsfrist: 28/2-2013, kl. 14:30 Informasjon Skriftlige besvarelser skal leveres i obligkassa som står i gangen utenfor ekspedisjonen i 7. et.

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 Informasjonsteknologi, grunnkurs (ITGK) 1 TDT4105 Informasjonsteknologi, grunnkurs (ITGK) Introduksjon til programmering i Matlab Rune Sætre satre@idi.ntnu.no 2 Læringsmål og pensum Mål Lære om programmering og hva et program er Lære å designe

Detaljer

MATLABs brukergrensesnitt

MATLABs brukergrensesnitt Kapittel 3 MATLABs brukergrensesnitt 3.1 Brukergrensesnittets vinduer Ved oppstart av MATLAB åpnes MATLAB-vinduet, se figur 1.1. MATLAB-vinduet inneholder forskjellige (under-)vinduer. De ulike vinduene

Detaljer

Installere JBuilder Foundation i Mandrake Linux 10.0

Installere JBuilder Foundation i Mandrake Linux 10.0 Installere JBuilder Foundation i Mandrake Linux 10.0 Installasjon av JBuilder Foundation på Linux (dekker her spesifikt fremgangen ved bruk av Mandrake Linux 10.0, men distribusjon vil gjøre liten eller

Detaljer

MAT1120 Plenumsregningen torsdag 26/8

MAT1120 Plenumsregningen torsdag 26/8 MAT1120 Plenumsregningen torsdag 26/8 Øyvind Ryan (oyvindry@i.uio.no) August 2010 Innføring i Matlab for dere som ikke har brukt det før Vi skal lære følgende ting i Matlab: Elementære operasjoner Denere

Detaljer

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et

Detaljer

Matematikk 1000. Øvingsoppgaver i numerikk leksjon 3 Funksjoner og plotting

Matematikk 1000. Øvingsoppgaver i numerikk leksjon 3 Funksjoner og plotting Matematikk 1000 Øvingsoppgaver i numerikk leksjon 3 Funksjoner og plotting I denne øvinga skal vi først og fremst lære oss å lage plott i MATLAB. Ellers minner vi om at der er mange MATLAB-ressurser tilgjengelig.

Detaljer

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang Matematikk 1000 Øvingeoppgaver i numerikk leksjon 1 Å komme i gang I denne øvinga skal vi bli litt kjent med MATLAB. Vi skal ikkje gjøre noen avanserte ting i dette oppgavesettet bare få et visst innblikk

Detaljer

Installere JBuilder Foundation i Windows XP

Installere JBuilder Foundation i Windows XP Installere JBuilder Foundation i Windows XP Installasjon av JBuilder Foundation på Windows (dekker her spesifikt fremgangen ved bruk av Microsoft Windows XP Professional, men det vil mest trolig ikke være

Detaljer

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 2 https://www.youtube.com/watch? v=nkiu9yen5nc 3 Læringsmål og pensum Mål Lære om

Detaljer

ITGK - H2010, Matlab. Repetisjon

ITGK - H2010, Matlab. Repetisjon 1 ITGK - H2010, Matlab Repetisjon 2 Variabler og tabeller Variabler brukes til å ta vare på/lagre resultater Datamaskinen setter av plass i minne for hver variabel En flyttallsvariabel tar 8 bytes i minne

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 Informasjonsteknologi, grunnkurs (ITGK) 1 TDT4105 Informasjonsteknologi, grunnkurs (ITGK) Introduksjon til programmering i Matlab Rune Sætre satre@idi.ntnu.no 3 Læringsmål og pensum Mål Lære om programmering og hva et program er Lære om hvordan

Detaljer

Matematikk Øvingsoppgaver i numerikk leksjon 2 Funksjoner og plotting

Matematikk Øvingsoppgaver i numerikk leksjon 2 Funksjoner og plotting Matematikk 1000 Øvingsoppgaver i numerikk leksjon 2 Funksjoner og plotting I denne øvinga skal vi først og fremst lære oss å lage plott i MATLAB. I tillegg skal vi lære oss hvordan vi manøvrerer oss omkring

Detaljer

MATLAB for MAT 1110. Klara Hveberg og Tom Lindstrøm

MATLAB for MAT 1110. Klara Hveberg og Tom Lindstrøm MATLAB for MAT 1110 av Klara Hveberg og Tom Lindstrøm Dette lille notatet gir en kort innføring i MATLAB med tanke på behovene i MAT 1110. Hensikten er å gi deg litt starthjelp slik at du kommer i gang

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab 1 Kunnskap for en bedre verden TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang 2 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 3 https://www.youtube.com/watch? v=nkiu9yen5nc 4 Læringsmål og pensum Mål Lære om

Detaljer

Noen presiseringer mhp Diskret Fourier Transform. Relevant for oblig 1.

Noen presiseringer mhp Diskret Fourier Transform. Relevant for oblig 1. FYS2130 Våren 2008 Noen presiseringer mhp Diskret Fourier Transform. Relevant for oblig 1. Vi har på forelesning gått gjennom foldingsfenomenet ved diskret Fourier transform, men ikke vært pinlig nøyaktige

Detaljer

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

Kapittel Oktober Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 14. og Institutt for geofag Universitetet i Oslo 17. Oktober 2012 i MatLab En funksjon vil bruke et gitt antall argumenter og produsere et gitt antall resultater og : Hvorfor Først og fremst bruker vi når

Detaljer

TMA Matlab Oppgavesett 2

TMA Matlab Oppgavesett 2 TMA4123 - Matlab Oppgavesett 2 18.02.2013 1 Fast Fourier Transform En matematisk observasjon er at data er tall, og ofte opptrer med en implisitt rekkefølge, enten i rom eller tid. Da er det naturlig å

Detaljer

Matematikk Øvingsoppgaver i numerikk leksjon 1 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 1 Løsningsforslag Matematikk 1000 Øvingsoppgaver i numerikk leksjon 1 Løsningsforslag Oppgave 2 Litt aritmetikk a) Her har vi skrevet ut det som kommer opp i kommandovinduet når vi utfører operasjonene. >> 2+2 4 >> -2 1

Detaljer

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive, 1. Last ned og installer XAMPP. 2. Sjekk at alt fungerer. 3. MySQL. Vi begynner med databaseserveren, MySQL. Gå til DOS klarmelding eller ledetekst (finnes under tilbehør på startmenyen om du ikke som

Detaljer

Matematikk 1000. Øvingsoppgaver i numerikk leksjon 3. Løsningsforslag

Matematikk 1000. Øvingsoppgaver i numerikk leksjon 3. Løsningsforslag Matematikk 1000 Øvingsoppgaver i numerikk leksjon 3 Løsningsforslag Oppgave 1 Flo og fjære a) >> x=0:.1:24; >> y=3.2*sin(pi/6*(x-3)); Disse linjene burde vel være forståelige nå. >> plot(x,y,'linewidth',3)

Detaljer

Oblig 1 FYS2130. Elling Hauge-Iversen

Oblig 1 FYS2130. Elling Hauge-Iversen Oblig 1 FYS2130 Elling Hauge-Iversen February 9, 2009 Oppgave 1 For å estimere kvalitetsfaktoren til basilarmembranen for ulike frekvenser har jeg laget et program som generer et rent sinussignal. Ideen

Detaljer

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

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen. Kuprat Skrevet av: Geir Arne Hjelle Kurs: Python Tema: Tekstbasert Fag: Norsk Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon I dette kurset skal vi introdusere programmeringsspråket Python. Dette

Detaljer

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

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, 1 TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.no 2 Frist for øving 1: Fredag 16. Sept. Noen oppstartsproblemer

Detaljer

Alternativ dag for teoriforelesning. Intro. Torsdag 12:15-14:00 R1

Alternativ dag for teoriforelesning. Intro. Torsdag 12:15-14:00 R1 1 2 Alternativ dag for teoriforelesning Torsdag 12:15-14:00 R1 TDT4105 Informasjonsteknologi grunnkurs: Uke 35b Introduksjon til Matlab 09:15 10:00 R7 Jørn Amundsen Asbjørn Thomassen Roger Midtstraum 3

Detaljer

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler Matematikk 1000 Øvingsoppgaver i numerikk leksjon 4 m-ler I denne øvinga skal vi lære oss å lage m-ler små tekstler som vi bruker i MATLAB-sammenheng. Der nst to typer m-ler: Funksjonsler og skript. Funksjonsler

Detaljer

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

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu. 1 TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.no 2 Frist for øving 1: Fredag 11. Sept. Noen oppstartsproblemer

Detaljer

Matematikk 1000. Øvingsoppgaver i numerikk leksjon 5 Skript

Matematikk 1000. Øvingsoppgaver i numerikk leksjon 5 Skript Matematikk 1000 Øvingsoppgaver i numerikk leksjon 5 Skript I denne øvinga skal vi lære oss mer om skript. Et skript kan vi se på som et lite program altså en sekvens av kommandoer. Til sist skal vi se

Detaljer

Øvingsforelesning i Matlab (TDT4105)

Øvingsforelesning i Matlab (TDT4105) Øvingsforelesning i Matlab (TDT4105) Øving 1. Frist: 11.09. Tema: matematiske uttrykk, variabler, vektorer, funksjoner. Benjamin A. Bjørnseth 1. september 2015 2 Oversikt Praktisk informasjon Om øvingsforelesninger

Detaljer

Øving 0 - Xcode TDT4102

Øving 0 - Xcode TDT4102 Øving 0 - Xcode TDT4102 Frivillig Øving Mål for denne øvingen: Bli kjent med programmeringsverktøy Lage et første program kun med teksteditor og kompilator Lage et første program med Xcode Denne øvingen

Detaljer

Matematikk Øvingsoppgaver i numerikk leksjon 3 Skript

Matematikk Øvingsoppgaver i numerikk leksjon 3 Skript Matematikk 1000 Øvingsoppgaver i numerikk leksjon 3 Skript I denne øvinga skal vi lære oss å lage skript. Et skript kan vi se på som et lite program altså en sekvens av kommandoer. Dette er noe vi kommer

Detaljer

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

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv Bygg et Hus Introduksjon I denne leksjonen vil vi se litt på hvordan vi kan få en robot til å bygge et hus for oss. Underveis vil vi lære hvordan vi kan bruke løkker og funksjoner for å gjenta ting som

Detaljer

Sprettende ball Introduksjon Processing PDF

Sprettende ball Introduksjon Processing PDF Sprettende ball Introduksjon Processing PDF Introduksjon: I denne modulen skal vi lære et programmeringsspråk som heter Processing. Det ble laget for å gjøre programmering lett for designere og andre som

Detaljer

Matlab-tips til Oppgave 2

Matlab-tips til Oppgave 2 Matlab-tips til Oppgave 2 Numerisk integrasjon (a) Velg ut maks 10 passende punkter fra øvre og nedre del av hysteresekurven. Bruk punktene som input til Matlab og lag et plot. Vi definerer tre vektorer

Detaljer

TMA4100 Matematikk 1, høst 2013

TMA4100 Matematikk 1, høst 2013 TMA4100 Matematikk 1, høst 2013 Teknostart forelesning 4 www.ntnu.no TMA4100 Matematikk 1, høst 2013, Teknostart forelesning 4 Hva er Maple? Maple er et kraftig matematikkverktøy. Symbolsk matematikk er

Detaljer

TMA4100 Matematikk 1, høst 2013

TMA4100 Matematikk 1, høst 2013 TMA4100 Matematikk 1, høst 2013 Teknostart forelesning 4 www.ntnu.no TMA4100 Matematikk 1, høst 2013, Teknostart forelesning 4 Hva er Maple? www.ntnu.no TMA4100 Matematikk 1, høst 2013, Teknostart forelesning

Detaljer

En liten oppskrift på hvordan jeg installert og fikk Xastir til å virke sånn at jeg ble synlig i APRS verden.

En liten oppskrift på hvordan jeg installert og fikk Xastir til å virke sånn at jeg ble synlig i APRS verden. En liten oppskrift på hvordan jeg installert og fikk Xastir til å virke sånn at jeg ble synlig i APRS verden. La meg med en gang si at jeg er rimelig grønn i Linux verden så dere får bære over med meg

Detaljer

Hvordan installere Java og easyio på Windows

Hvordan installere Java og easyio på Windows Hvordan installere Java og easyio på Windows Denne veiledningen forklarer en enkel måte å installere Java og easyio på din egen Windows-datamaskin. Du kan finne veiledninger for andre operativsystemer

Detaljer

Kjenner du alle funksjonene på tastaturet?

Kjenner du alle funksjonene på tastaturet? Kjenner du alle funksjonene på tastaturet? Guide: Tastaturet Av Bjørn André Hagen 30. Januar 2008 17:45 Kilde: Tastatur layout Et tastatur har mange knapper man ikke bruker hver dag, vi skal prøve å forklare

Detaljer

4. Installasjonsveiledning. Experior - rich test editor for FitNesse -

4. Installasjonsveiledning. Experior - rich test editor for FitNesse - 4. Experior - rich test editor for FitNesse - 4.1. Forord Denne rapporten inneholder installasjonsveiledning for Experior. Experior er tilpasset for installasjon i oppdragsgivers utviklingsmiljø. Det er

Detaljer

King Kong Erfaren Scratch PDF

King Kong Erfaren Scratch PDF King Kong Erfaren Scratch PDF Introduksjon I dette spillet inspirert av historien om King Kong, skal vi se hvor lett det er å bruke grafikk som ikke allerede ligger i Scratchbiblioteket. I spillet styrer

Detaljer

Forelesning inf1000 - Java 1

Forelesning inf1000 - Java 1 Litt Java-historikk Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 The Green Team I 1991 opprettet Sun Microsystems

Detaljer

Kom i gang med Python

Kom i gang med Python Kom i gang med Python Instruksjon for lærere Pål Hellesnes SYSTEMUTVIKLER paal@firstpoint.no www.bedreinnsikt.no Dette dokumentet er en del av skolematerialet for undervisning i programmering. «Alle barn

Detaljer

Installasjonsveiledning av Faktura Z

Installasjonsveiledning av Faktura Z Installasjonsveiledning av Faktura Z Innholdsfortegnelse INSTALLASJONSVEILEDNING AV FAKTURA Z 1 Innholdsfortegnelse 1 Oppstart av CD 1 Installasjon av Faktura Z 2 Installasjon av database 5 Programinfo

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

Brukermanual for Quizbuilder

Brukermanual for Quizbuilder Brukermanual for Quizbuilder 1. juni 2010 Innhold 1 Installasjon av Quizbuilder 2 1.1 Installasjon fra Kildekode........................ 2 1.2 Installasjon fra Zip-fil.......................... 2 2 Quizbuilder

Detaljer

Kapittel 4. 4. og 5. september 2012. Institutt for geofag Universitetet i Oslo. GEO1040 - En Introduksjon til MatLab. Kapittel 4.

Kapittel 4. 4. og 5. september 2012. Institutt for geofag Universitetet i Oslo. GEO1040 - En Introduksjon til MatLab. Kapittel 4. r r Institutt for geofag Universitetet i Oslo 4. og 5. september 2012 r r Ofte ønsker vi å utføre samme kommando flere ganger etter hverandre gjør det mulig å repetere en programsekvens veldig mange ganger

Detaljer

Matematikk Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag Matematikk 1000 Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag Oppgave 1 Summer og for-løkker a) 10 i=1 i 2 = 1 2 + 2 2 + 3 2 + 4 2 + 5 2 + 6 2 + 7 2 + 8 2 + 9 2 + 10 2 = 1 + 4 + 9 + 16 + 25 + 36

Detaljer

Obligatorisk oppgavesett 1 MAT1120 H16

Obligatorisk oppgavesett 1 MAT1120 H16 Obligatorisk oppgavesett MAT0 H6 Innleveringsfrist: torsdag /09 06, innen kl 4.30. Besvarelsen leveres på Matematisk institutt, 7. etasje i N.H. Abels hus. Husk å bruke forsiden som du finner via hjemmesiden.

Detaljer

Snake Expert Scratch PDF

Snake Expert Scratch PDF Snake Expert Scratch PDF Introduksjon En eller annen variant av Snake har eksistert på nesten alle personlige datamaskiner helt siden slutten av 1970-tallet. Ekstra populært ble spillet da det dukket opp

Detaljer

ADDISJON FRA A TIL Å

ADDISJON FRA A TIL Å ADDISJON FRA A TIL Å VEILEDER FOR FORELDRE MED BARN I 5. 7. KLASSE EMNER Side 1 Innledning til addisjon 2 2 Grunnleggende om addisjon 3 3 Ulike tenkemåter 4 4 Hjelpemidler i addisjoner 9 4.1 Bruk av tegninger

Detaljer

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

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver uke 34 BYFE/EMFE 1000, 2012/2013 Numerikkoppgaver uke 34 I denne øvinga skal vi først og fremst lære oss å lage plott i Octave. I tillegg skal vi lære oss hvordan vi manøvrerer oss omkring i ulike kataloger.

Detaljer

En innføring i MATLAB for STK1100

En innføring i MATLAB for STK1100 En innføring i MATLAB for STK1100 Matematisk institutt Universitetet i Oslo Februar 2017 1 Innledning Formålet med dette notatet er å gi en introduksjon til bruk av MATLAB. Notatet er først og fremst beregnet

Detaljer

Obligatorisk oppgavesett 2 MAT1120 H16

Obligatorisk oppgavesett 2 MAT1120 H16 Obligatorisk oppgavesett 2 MAT1120 H16 Innleveringsfrist: torsdag 03.11.2016, innen kl 14.30. Besvarelsen leveres på Matematisk institutt, 7. etasje i N.H. Abels hus. Husk å bruke forsiden som du finner

Detaljer

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

Løsningsforslag. Innlevering i BYFE/EMFE 1000 Oppgavesett 1 Innleveringsfrist: 14. september klokka 14:00 Antall oppgaver: 3. Innlevering i BYFE/EMFE 1000 Oppgavesett 1 Innleveringsfrist: 14. september klokka 14:00 Antall oppgaver: 3 Løsningsforslag Oppgave 1 a) ln a ln 3 a+ln 4 a = ln a 1/2 ln a 1/3 +ln a 1/4 = 1 2 ln a 1 3

Detaljer

Øvingsforelesning i Matlab TDT4105

Øvingsforelesning i Matlab TDT4105 Øvingsforelesning i Matlab TDT4105 Øving 6. Tema: funksjoner med vektorer, plotting, preallokering, funksjonsvariabler, persistente variabler Benjamin A. Bjørnseth 13. oktober 2015 2 Oversikt Funksjoner

Detaljer

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

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.) Utførelse av programmer, funksjoner og synlighet av variabler (Matl.) Av Jo Skjermo (basert på Alf Inge Wang sin versjon om JSP). 1. Utførelse av kode i kommando/kalkulatormodus Et dataprogram består oftest

Detaljer

Shellscripting I. Innhold

Shellscripting I. Innhold Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Shellscripting I Tor Halsan 19.08.2010 Lærestoffet er utviklet for faget LN199D Scripting av Servere Resymé: Leksjonen er første innføring

Detaljer

Matematikk Øvingsoppgaver i numerikk leksjon 7 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 7 Løsningsforslag Matematikk 1000 Øvingsoppgaver i numerikk leksjon 7 Løsningsforslag Oppgave 1 Halveringsmetoden igjen a) I skriptet vårt fra leksjon 6 skal altså linje 16 erstattes med while abs(b-a)>1e-3. Når vi gjør

Detaljer

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

Kom i gang med Stata for Windows på UiO - hurtigstart for begynnere Kom i gang med Stata for Windows på UiO - hurtigstart for begynnere Hensikten med denne introduksjonen er å lære hvordan man kommer raskt i gang med grunnleggende funksjoner i Stata. Teksten er tilpasset

Detaljer

Mattespill Nybegynner Python PDF

Mattespill Nybegynner Python PDF Mattespill Nybegynner Python PDF Introduksjon I denne leksjonen vil vi se litt nærmere på hvordan Python jobber med tall, og vi vil lage et enkelt mattespill. Vi vil også se hvordan vi kan gjøre ting tilfeldige.

Detaljer

Straffespark Introduksjon Scratch Lærerveiledning

Straffespark Introduksjon Scratch Lærerveiledning Straffespark Introduksjon Scratch Lærerveiledning Introduksjon Vi skal lage et enkelt fotballspill, hvor du skal prøve å score på så mange straffespark som mulig. Steg 1: Katten og fotballbanen Vi begynner

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Øving 3 Frist: 2014-02-07 Mål for denne øvinga:

Detaljer

START MED MATLAB. Når du starter Matlab, kommer du inn i kommandovinduet. Dersom du har versjon 6.1, ser du dette :

START MED MATLAB. Når du starter Matlab, kommer du inn i kommandovinduet. Dersom du har versjon 6.1, ser du dette : 1 START MED MATLAB Disse sidene er hovedsakelig ment for dem som ikke har brukt Matlab eller som trenger en oppfriskning. Start fra toppen og gå systematisk nedover. I tillegg brukes Matlablefsa. Noe av

Detaljer

Primus Brukerveiledning for masseimport av bilder. Primus 5.6.5

Primus Brukerveiledning for masseimport av bilder. Primus 5.6.5 Primus Brukerveiledning for masseimport av bilder Primus 5.6.5 Primus Brukerveiledning for masseimport av bilder 2 Innholdsfortegnelse Innholdsfortegnelse... 2 Brukerveiledning for masseimport av bilder

Detaljer

Kjøre Wordpress på OSX

Kjøre Wordpress på OSX Kjøre Wordpress på OSX Alt etter hva du ønsker å bruke Webserveren til er det flere måter å gjøre dette på. Ønsker du kun en side som skal dele sider du lager manuelt, med PHP, GD etc eller med server

Detaljer

Start et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett.

Start et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett. Norgestur Introduksjon Bli med på en rundreise i Norge! Vi skal lage et spill hvor du styrer et helikopter rundt omkring et kart over Norge, mens du prøver å raskest mulig finne steder og byer du blir

Detaljer

Pong. Oversikt over prosjektet. Steg 1: En sprettende ball. Plan. Sjekkliste. Introduksjon

Pong. Oversikt over prosjektet. Steg 1: En sprettende ball. Plan. Sjekkliste. Introduksjon Pong Introduksjon Pong er et av de aller første dataspillene som ble laget, og det første dataspillet som ble en kommersiell suksess. Selve spillet er en forenklet variant av tennis hvor to spillere slår

Detaljer

Hvordan gjøre fjernhjelp til noen som ønsker hjelp med Hageselskapets portal? Av Ole Petter Vik, Asker Versjon 1.2-27.09.2012

Hvordan gjøre fjernhjelp til noen som ønsker hjelp med Hageselskapets portal? Av Ole Petter Vik, Asker Versjon 1.2-27.09.2012 Hvordan gjøre fjernhjelp til noen som ønsker hjelp med Hageselskapets portal? Av Ole Petter Vik, Asker Versjon 1.2-27.09.2012 Mange får spørsmål om å hjelpe noen med å bruke Hageselskapets portal. Enkle

Detaljer

INF1000 : Forelesning 1 (del 2)

INF1000 : Forelesning 1 (del 2) INF1000 : Forelesning 1 (del 2) Java Variable og tilordninger Heltall, desimaltall og sannhetsverdier Utskrift på skjerm Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet

Detaljer

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1.

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1. Pingviner på tur Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill Fag: Programmering Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse Introduksjon Velkommen til Scratch. Vi skal

Detaljer

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

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS Løkker og if-tester Gløer Olav Langslet Sandvika VGS 29.08.2011 Informasjonsteknologi 2 Funksjoner, løkker og iftester Læreplansmål Eleven skal kunne programmere med enkle og indekserte variabler eller

Detaljer

Argumenter fra kommandolinjen

Argumenter fra kommandolinjen Argumenter fra kommandolinjen Denne veiledningen er laget for å vise hvordan man kan overføre argumenter fra kommandolinjen til et program. Hvordan transportere data fra en kommandolinje slik at dataene

Detaljer

I dag skal vi ved hjelp av ganske enkel Python-kode finne ut om det er mulig å tjene penger på å selge og kjøpe en aksje.

I dag skal vi ved hjelp av ganske enkel Python-kode finne ut om det er mulig å tjene penger på å selge og kjøpe en aksje. Trading-algoritme I dag skal vi ved hjelp av ganske enkel Python-kode finne ut om det er mulig å tjene penger på å selge og kjøpe en aksje. Vi skal gjøre dette ved å lage et Python-program (med noen for-løkker)

Detaljer

Tryll bort heksa. Introduksjon. Sjekkliste Følg instruksjonene på lista. Huk av etter hvert. Test. Lagre 2/8

Tryll bort heksa. Introduksjon. Sjekkliste Følg instruksjonene på lista. Huk av etter hvert. Test. Lagre 2/8 Innhold Innhold Tryll bort heksa Introduksjon Steg 1: Lag en flyvende heks Steg 2: Få heksa til å dukke opp og forsvinne Steg 3: Tryll bort heksa med et klikk! Steg 4: Legg til tid og poeng En ekstra utfordring:

Detaljer

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.

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. Tetris Introduksjon Processing Introduksjon Lag starten på ditt eget tetris spill! Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å

Detaljer

Utførelse av programmer, metoder og synlighet av variabler i JSP

Utførelse av programmer, metoder og synlighet av variabler i JSP Utførelse av programmer, metoder og synlighet av variabler i JSP Av Alf Inge Wang 1. Utførelse av programmer Et dataprogram består oftest av en rekke programlinjer som gir instruksjoner til datamaskinen

Detaljer

Kanter, kanter, mange mangekanter

Kanter, kanter, mange mangekanter Kanter, kanter, mange mangekanter Nybegynner Processing PDF Introduksjon: Her skal vi se på litt mer avansert opptegning og bevegelse. Vi skal ta utgangspunkt i oppgaven om den sprettende ballen, men bytte

Detaljer

Forelesning inf Java 1

Forelesning inf Java 1 Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 Litt Java-historikk The Green Team I 1991 opprettet Sun Microsystems

Detaljer

TDT4102 Prosedyreog objektorientert programmering Vår 2016

TDT4102 Prosedyreog objektorientert programmering Vår 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 4 Frist: 2016-02-12 Mål for denne øvingen:

Detaljer

Kapittel 1 En oversikt over C-språket

Kapittel 1 En oversikt over C-språket Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske

Detaljer

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities. Oversikt UNIX shell 1 UNIX shell Beskrivelse Bash 2 Kommandolinje som brukergrensesnitt 3 Input og output 4 Bash builtins 5 Linux utilities Lars Vidar Magnusson () Forelesning i Operativsystemer 30.08.2011

Detaljer

Hvordan å lage og publisere ditt personlige visittkort

Hvordan å lage og publisere ditt personlige visittkort Hvordan å lage og publisere ditt personlige visittkort Av Asle Skauge Dette skal være en bruksanvisning som alle kan følge for å få lagt ut sitt personlige visittkort på internett. Hensikten med et slikt

Detaljer

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

GeoGebra. brukt på eksamensoppgaver i 10. kl. Sigbjørn Hals GeoGebra brukt på eksamensoppgaver i 10. kl. Sigbjørn Hals Innhold Hva er GeoGebra?... 2 Hvilken nytte har elevene av å bruke GeoGebra?... 2 Hvor finner vi GeoGebra?... 2 Oppbyggingen av programmet...

Detaljer

MAT 1120: Obligatorisk oppgave 1, H-09

MAT 1120: Obligatorisk oppgave 1, H-09 MAT 110: Obligatorisk oppgave 1, H-09 Innlevering: Senest fredag 5. september, 009, kl.14.30, på Ekspedisjonskontoret til Matematisk institutt (7. etasje NHA). Du kan skrive for hånd eller med datamaskin,

Detaljer

Humanware Companion.

Humanware Companion. Humanware Companion. Humanware Companion er et Windows basert program. Dette brukes sammen med Victor Reader Stream eller ClassMate avspilleren for å organisere dine bøker, musikk, Podcast, innspille lydnotater

Detaljer

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

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill! Tetris Skrevet av: Kine Gjerstad Eide Kurs: Processing Introduksjon Lag starten på ditt eget tetris spill! Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett

Detaljer

INF109 - Uke 1a

INF109 - Uke 1a INF109 - Uke 1a 19.01.16 NOTE: Download the latest version of python: 3.5.1. 1 Introduksjon 1.1 Goodbye world! For å komme i gang, start IDLE fra Start Programs Python3.5.1 IDLE. (Varierer litt fra datamaskin

Detaljer

Inf109 Programmering for realister Uke 5. I denne leksjonen skal vi se på hvordan vi kan lage våre egne vinduer og hvordan vi bruker disse.

Inf109 Programmering for realister Uke 5. I denne leksjonen skal vi se på hvordan vi kan lage våre egne vinduer og hvordan vi bruker disse. Inf109 Programmering for realister Uke 5 I denne leksjonen skal vi se på hvordan vi kan lage våre egne vinduer og hvordan vi bruker disse. Før du starter må du kopiere filen graphics.py fra http://www.ii.uib.no/~matthew/inf1092014

Detaljer

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen. Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. [Kurssidene] [ ABI - fagsider bibin ] Webprogrammering høsten 2015 //funksjonskall printhallo(); //enda en gang printhallo();

Detaljer

Høgskolen i Oslo og Akershus. sin 2 x cos 2 x = 0, x [0, 2π) 1 cos 2 x cos 2 x = 0 2 cos 2 x = 1 cos 2 x = 1 2 1 2

Høgskolen i Oslo og Akershus. sin 2 x cos 2 x = 0, x [0, 2π) 1 cos 2 x cos 2 x = 0 2 cos 2 x = 1 cos 2 x = 1 2 1 2 Innlevering i DAFE/ELFE 1000 Oppgavesett 1 Innleveringsfrist: 31. januar klokka 14:00 Antall oppgaver: 3 Løsningsforslag Oppgave 1 Løs disse likningene ved regning, og oppgi svarene eksakt: a) Vi kan for

Detaljer

Beregninger i ingeniørutdanningen

Beregninger i ingeniørutdanningen Beregninger i ingeniørutdanningen John Haugan, Høyskolen i Oslo og Akershus Knut Mørken, Universitetet i Oslo Dette notatet oppsummerer Knuts innlegg om hva vi mener med beregninger og Johns innlegg om

Detaljer

Etablering av nettressurs med eksempler, prosjekter og data

Etablering av nettressurs med eksempler, prosjekter og data 1 / 10 Etablering av nettressurs med eksempler, prosjekter og data Øyvind Ryan CMA, Universitetet i Oslo Gardermoen, 29. Mai, 2012 2 / 10 GEO1040 - Grunnkurs i programmering for geofaglige problemstillinger

Detaljer

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS Mine notater Gløer Olav Langslet Sandvika VGS Et praktisk eksempel med objekter Vi kjenner alle til korktavlen med gule lapper. Vi henger opp en lapp for at vi selv eller andre skal huske eller bli minnet

Detaljer

En enkel lærerveiledning

En enkel lærerveiledning En enkel lærerveiledning ~ 1 ~ Innhold INNLEDNING... 3 Hva?... 3 Hvorfor?... 3 INN- og UTLOGGING... 4 Innlogging... 4 Utlogging... 5 Lærerinnlogging/-utlogging... 5 OUTLOOK / EPOST... 6 Skrive epost...

Detaljer