3. Generell informasjon
• Pensum: Amos Gilat, MatLab: An Introduction With Applications
(tilgjengelig som eBook fra Wiley). Boka er litt for «grunnleggende»
• Vi kommer til å bruke litt ekstra stoff om numeriske metoder, matriser,
differensialligninger fra en litt mer «videregående» bok Numerical Methods
for Engineers and Scientists (også tilgjengelig som eBook)
• Øvelser – lurt å bruke tid på!
• Prosjektoppgave: en litt større individuell oppgave som må godkjennes for å kunne
gå opp til eksamen (skriftlig)
• NB! Kom gjerne med forslag til deres prosjektoppgave (kanskje noe dere kan
bruker til bacheloroppgaven??)
• Kurset krever ingen forkunnskaper i programmering!
4. Forkunnskaper i matematikk
• Lineær algebra: enkle matrise- og vektoroperasjoner, som
addisjon og multiplikasjon
• Matriseinversjon, løsning av lineære ligningssystemer
• Kunnskap om funksjoner, derivasjon/integrasjon
• Lineære førsteordens / andreordens differensialligninger.
5. Hvorfor MatLab?
• MatLaB (Matrix Laboratory): dataelementene er matriser og
vektorer
• Et effektivt programmeringsspråk, enklere å lære enn
”vanlige” programmeringsspråk
• Brukes til matematiske og fysiske beregninger, simulering,
modellering, grafisk fremstilling av data og mye, mye mer…
• Brukes mye på universiteter og forskningsinstitusjoner, men
også i industrien
6. Vinduer i MatLab
• Kommandovinduet/ Command Window : hovedvinduet til å gjøre
beregninger og kjøre programmer
• Current Folder : viser arbeidsmappen
• Workspace : viser alle variable som er i bruk, og deres dimensjoner.
Nyttig!
• Command history: viser alle kommandoer som ble utført
• Editor : lage script- og funksjonsfiler
• Help : MatLab hjelpefunksjon (Veldig nyttig!)
• Figure window : viser alt grafikk
7. MatLab som kalkulator
• MATLAB kan brukes som en avansert kalkulator
• Vi bruker "kommandovinduet”
• NB! viktig a bruke riktig rekkefølge på aritmetiske
operasjoner (bruk parentes dersom man er i tvil, men ikke
overdrive!)
• Operasjonene: + - * / ^
• Hva er «høyredivisjon» ? (invers av «vanlig divisjon»)
8. MatLab som kalkulator
Husk rekkefølgen:
1. Parenteser (innerste først)
2. Eksponent (^)
3. Gange /dele
4. Addisjon/substraksjon
9. Tips
• For å få plass til et langt uttrykk, skriv … og trykk ENTER
• Bruk pil opp- og ned- tastene for å finne frem til tidligere
kommandoer
• Tegnet % i begynnelsen av linjen viser at alt på denne linje er
kommentarer og linjen tolkes ikke som kode. VELDIG lurt!
• Vi kan viske ut alt som ble gjort ved å skrive 'clear'. (Lurt å starte
et nytt script med det)
• Vi kan «viske ut» (tømme skjerm, uten å slette noe) med ‘clc’
• Avbryte en kommando (komme tilbake til >>) Ctrl +C
10. Flere tips
• Kommando format brukes til å bestemme hvor mange
desimaler skal vises på skjermen, f.eks format short viser 4
desimaler og format long 14 desimaler
• For å finne en kort beskrivelse av en kommando, skriv help
kommandonavn, f.eks. help format
• Ellers er det lurt å bruke MatLab Help-vindu!
11.
12. Innebygde funksjoner
• MatLab har en hel mengde innebygde funksjoner
• Fungerer på samme måte som matematiske funksjoner:
F(x) = Funksjon(argument) ,
f.eks. f(x) = sin(x)
• Eksponentialfunksjonen blir ikke e^x, men exp(x), fordi
MatLabs innebygde funksjon for eksponentialfunksjonen
heter exp()
13. Mer om funksjoner
• Et funksjonsnavn må alltid etterfølges av parenteser.
• Inne i parentesene skrives inn argumentet til funksjonen,
som for eksempel i sin(2) er argumentet x lik 2
• En funksjon kan ha en annen funksjon som argument, f.eks.
sqrt(sin(2))
14. Variable
• Ulike fysiske størrelser representeres som variable med
navn og verdier
• En variabel blir tilordnet en verdi/et uttrykk på høyre siden:
Variabel_navn = verdi (eller et uttrykk)
• F.eks. fart = 20, tid = 10, avstand = fart * tid
• Det er alltid ett (og kun ett om gangen) variabelnavn på
venstre side
15. Tilordningsoperatoren
• Tilordningsoperatoren (= ) er ikke det samme som et
likhetstegn i matematisk betydning!
• Tilordning betyr at vi ”krever” at variabelen skal ha en gitt
verdi
• Finnes det da en ”likhetsoperator”? Ja:
• Relasjonsoperator == brukes der vi trenger å finne ut hva
slags verdi variabelen har, eller sammenligne med en annen
variabel. (== >= <= > < er andre relasjonsoperatorer)
16. Forskjell på = og ==
% Illustrate if and == operator
A = 2;
B = 3;
C = A+B;
if (C == 5)
C
else
A
B
end
Error: File: EnkelIF.m Line: 8 Column: 7
The expression to the left of the equals sign is not a valid target
for an assignment.
=
17. Mer om variable
Variabelnavn:
Kan velges fritt, men
• Må ikke inneholde mellomrom eller punktum, kolon eller
semikolon
• Må starte med en bokstav
• Bør gjerne være beskrivende! Men ikke altfor lange
• Det er forskjell på store og små bokstaver!
18. Mer om variable
• Variabler kan ikke ha samme navn som innebygde MatLab-
funksjoner. De er mange! (sum, sqrt, exp, sin, … )
• Kan ikke ha samme navn som kommandoer (format, long, short,
if, for, … )
• Enkete variable allerede finnes (pi, inf, ans, NaN,… )
• Norske bokstaver æ ø å kan skape problemer
19. Mer om variable
• Fjerne variablene x, y og z: clear x y z
• Skrive semikolon etter tilordning vil hindre at verdien til
variabelen blir skrevet ut i kommandovinduet
• Man får ut verdien til variabelen ved å skrive navnet til
variabelen og trykke ENTER
• Man kan skrive inn flere tilordninger på samme linje
dersom man bruker semikolon imellom
20. Oppgaver
• Regn ut 4x³-14x² -6.32x +7.3 og
• ln(x² -x³)² for x = 9.75
• Vis at
• tan(3x) = (3tan(x) – tan³(x))/(1-3tan^2(x)) stemmer, ved
å sjekke den for vinkelen x = 27 grader
21. Oppgaver
• Kombinatorikk: Antall mulige kombinasjoner når man
velger r objekter ut av en samlig på n objekter er gitt
ved n!/(r!(n-r)!)
• Hvor mange kombinasjoner får vi ved å velge ut 5
kuler ut av en samling med 12 kuler? Hint: bruk
funksjonen factorial
22. Scripter
• Et script (eller program) er rett og slett en liste over
kommandoer som MatLab utfører sekvensielt (en etter en)
– akkurat som om de var skrevet i kommandovinduet
• Et script lages i en tekst-editor, og kan lagres, endres på og
brukes mange ganger
• Kalles også for m-filer, fordi MatLab legger automatisk på
en .m etter filnavnet når filen blir lagret
23. Et lite eksempel
• Et lite script finans.m :
% skriptet som regner ut rente av et lånebeløp
laan = input('Skriv inn lånebeløpet ');
rentesats = input('Skriv inn rentesatsen i prosent ');
renter = laan*rentesats/100
• Scriptet kjøres ved å skrive finans og trykke ENTER i
kommandovinduet
24. Programmering
• Hva er det vi skal finne?
• Formuler det fysiske problemet
• Foreta de nødvendige forenklingene
• Skriv opp matematiske utrykk
• Lag en skisse for programmet (evt skriv «pseudokode»)
• Implementer
• Sjekk svaret – er det rimelig?
25. Oppgave
• Lag et script som løser en andregradsligning
ax² + bx + c = 0
med a=4, b=-9 og c=-17.5
• Utvid scriptet til å kunne håndtere forskjellige verdier for
a, b og c