• No results found

Programmeringsteknik: Matlab

N/A
N/A
Protected

Academic year: 2022

Share "Programmeringsteknik: Matlab"

Copied!
16
0
0

Loading.... (view fulltext now)

Full text

(1)

PATRIK PERSSON

Programmeringsteknik: Matlab

FÖRELÄSNING 1

(2)

Matlab

• Program för att enkelt utföra beräkningar, t.ex.:

– plotta grafer

– lösa ekvationssystem och differentialekvationer – beräkna integraler

– anpassa kurvor – göra simuleringar

• Interaktivt – vi för en dialog med programmet

• Variabler och funktioner ungefär som i Java

(3)

Matlab i EDAA55: upplägg våren 2021

Föreläsning

v6 v7 v8

Lab 2

Lab 1 Lab 3

+ eget arbete eget arbete eget arbete

(4)

Laborationer: obligatoriska (3st)

Webbaserade laborationer

(se kurssidan och avsnitt 5 i kompendiet Programmeringsteknik) Vissa uppgifter genereras; ibland finns ledtrådar och/eller facit

Ni genomför laborationen i förväg (i par om två studenter), redovisar i Zoom

För att bli godkänd:

övertyga handledaren om att du kan använda Matlab för att lösa uppgifterna

(5)

Ditt arbete i Matlab-momentet

1,5hp = 40 timmar självständigt arbete Kursmaterial (som tidigare):

läsanvisningar till Matlab Primer, föreläsningsbilder

Ytterligare resurser på distans (2021):

Zoom-föreläsning, inspelade filmer, särskild resurstid,

frågekanal i Slack (C/E: #5_matlab, F: #2_matlab-frågor) Genomförs på distans i grupper om två studenter

(6)

Redovisning

Redovisning i Zoom, enligt tidsbokning ett tio minuter långt möte

visa er lösning, besvara frågor, få feedback använd handledaren – ställ frågor!

Om ni får problem: Matlab-resurstid (tisdag 15-17) ställ frågor, få hjälp

redovisning endast tillåten om man deltagit i ordinarie redovisning (men inte blivit godkänd)

http://cs.lth.se/edaa55/matlab/zoom/

(7)

• Grundläggande beräkningar

• Några standardfunktioner

• Definiera egna funktioner

• Vektorer och matriser

• Ekvationssystem

• Plotta grafer

• Scriptfiler

Vecka 1

(8)

Standardfunktioner, exempel

rem(n,k) round(x) floor(x) sin(x) cos(x) tan(x) sqrt(x)

x^y

exp(x) log(x) log10(x)

real(z) / imag(z)

abs(z) / angle(z)

conj(z)

(9)

Egendefinierade funktioner

• Vi kan definiera egna funktioner

• Enkla enradsfunktioner kan definieras som en “anonym”

funktion och lagras i en variabel:

f = @(x) sqrt(1+sin(x));

g = @(x,y) sin(x)+y^2;

• “;” gör att resultatet av kommandot inte skrivs ut

• Funktionen kan sedan användas i uttryck:

z = f(3) + g(5,9);

• (Man kan göra något liknande i Java med lambdauttryck.

Mer om dessa i fördjupningskursen, EDAA01.)

(10)

Vektorer och matriser

Matlab – ”Matrix Laboratory”

Matlab arbetar generellt med komplexa matriser

Skalärer bara ett specialfall – 1 ⨯ 1-matris

(11)

Matrisoperation kontra elementvis operation

• Operationerna har hittills varit “riktiga” matrisoperationer

• De flesta inbyggda funktioner opererar dock elementvis på vektorer/matriser (exp, sin, abs osv)

• Addition/subtraktion alltid elementvis

• För att få elementvis multiplikation, division och exponentiering måste vi skriva .*, ./ och .^

• När vi använder någon av standardfunktionerna är det oftast .*, ./ och .^ som är naturligt att använda

(12)

Vektorer som datastruktur

Vektorer används ofta för att spara serier av värden, t.ex. en serie av mätvärden

Vi vill ofta göra samma beräkning på varje enskilt

värde och då är elementvisa operationer naturliga

(13)

Följder av värden

• Ibland vill man skapa en vektor med en följd av värden, t.ex. [1 2 3 4 5 6 7 8 9 10]

• :-notation: räknar upp med ett givet steg

– 1:2:9 ger [1 3 5 7 9]

– 1:5 ger [1 2 3 4 5]

• linspace-funktionen: ger ett antal jämnt fördelade värden i ett intervall

– linspace(0,10,42) ger 42 värden mellan 0 och 10 – linspace(0,10) ger 100 värden mellan 0 och 10

(14)

Plotta grafer

plot(y)

plottar y-värden i x-koordinaterna 1, 2, 3, ...

plot(x,y)

plottar punkterna (xk,yk) och drar linjer mellan på varandra följande punkter

plot(x,y,ch)

markerar alla punkter (xk,yk) med en given markering

(15)

Laboration 1

• Använd Matlab för enkla beräkningar, med såväl reella som komplexa tal,

• Använd standardfunktioner och definiera egna funktioner

• Lös problem med vektorer och matriser

Temauppgift:

• Konstruera script i Matlab

(babyloniska kvadratrötter, ~3600 år sedan)

http://cs.lth.se/edaa55/matlab/lab1/

(16)

References

Related documents

private int antal; // antal talpar lagrade public Koordinater() {...} // standardkonstruktor public Koordinater(int n){...} // plats för n talpar public void läggin(Point p) {...}

private int seats; // antalet platser i vagnen private int free; // antalet lediga platser /** Skapar en vagn med nbrSeats platser... /** Tar reda på antalet platser

Kvartsfinalerna avgörs i bäst av fem matcher och det bäst placerade laget i Elitserien börjar hemma (Spelordning; Bäst placerade lag spelar hemma, borta, hemma, borta,

Här kan du sätta in egna mallar och blanketter (t ex pouleprotokoll). Besök www.fencing.se och ladda ned det du behöver!.. Poule Pist President..

För de bostäder som inte blir skyddade av skärmar längs järnvägen kan åtgärder på fastigheten vidtas i form av lokala skärmar, skyddad uteplats eller fasadåtgärder som

Hur påverkar läkemedlet saltsyran (HCl) i magsäcken? Svara med en reaktionsformel. Samarin är ett annat exempel på antacida läkemedel. Det innehåller bikarbonat, som är ett fast,

Skriv en C-funktion som givet h¨ ojden och radien som inparametrar returnerar motsvarande cylinders volym... Uppgift 3 (7

Detta är alltså sista ekvationen och den måste vara uppfylld för att ( x, y, z ) ska ligga i planet. En annan slutsats är att ett alternativt sätt att beskriva planet på är