• No results found

Föreläsning 2. Mera om matrishantering. Skriva mera avancerade funktioner. Beräkning av integraler. Nollställen, max- och minvärden.

N/A
N/A
Protected

Academic year: 2022

Share "Föreläsning 2. Mera om matrishantering. Skriva mera avancerade funktioner. Beräkning av integraler. Nollställen, max- och minvärden."

Copied!
13
0
0

Loading.... (view fulltext now)

Full text

(1)

• Mera om matrishantering

• Skriva mera avancerade funktioner

• Beräkning av integraler

• Nollställen, max- och minvärden

• Polynomhantering

Föreläsning 2

(2)

Repetition – matriser

• Matlab arbetar generellt med komplexa matriser

• En reell skalär är en 1⨯1-matris med imaginärdel 0

• *, / och ^ är matrisoperationer

– elementvisa varianter finns: .*, ./ och .^

• De flesta standardfunktioner är elementvisa och bör användas tillsammans med .*, ./ och .^

• Lätt att skapa matriser, ex: A = [ 1 2 ; 3 4 ]

• Kan läsa ut enskilda element, ex: A(2,1)

• Kan modifiera enskilda element: A(2,1) = 8

(3)

Delar av matriser

• Index till en matris är vektorer!

• A(2,[2 3 4]) ger en vektor bestående av element 2, 3 och 4 på rad 2 i matrisen A

• :-operatorn användbar: A(2,2:4) samma sak som ovan

• A(2,:) ger hela rad 2

• A(2,end) ger sista elementet på rad 2

• find(A>5) ger index för alla element i A som är större än 5

• Ta bort rad 2: A(2,:) = []

(4)

Exempel (se film 2.1–2.2)

• Låt A vara en 5x7-matris med slumptal och skriv ut följande:

1. Övre vänstra hörnet (som 2x2-matris) 2. Första raden

3. Andra kolonnen

4. De tre sista värdena i näst sista kolonnen 5. De fyra hörnen

6. Det inre av matrisen

• Vi ersätter alla tal > 1 i en vektor med nollor

• Vi tar bort alla udda tal ur en vektor

(5)

Repetition – enkla funktioner och scripts

Enkla matematiska funktioner kunde vi definiera enligt:

f = @(x) sin(x)/2;

Vi kan lägga en följd av kommandon i en script-fil.

Vi kan köra kommandona i filen genom att ange namnet på script-filen.

Vi kan använda if-satser, for-satser och while-satser.

Inmatnings- och utskriftssatser liknande Java.

(6)

Funktionsfiler i Matlab

function resultat = min_funktion(x, t)

% Enradskommentar

% Längre kommentar, som i regel

% kräver flera rader.

... egentliga programrader ...

resultat = ...funktionsvärde...

end

• Funktionens och filens namn ska stämma överens.

Funktionen ovan ska ligga i en fil som heter min_funktion.m, annars hittar Matlab den inte.

• Returvärdet kan vara en vektor.

Ofta namnger man de enskilda elementen i returvektorn:

function [x y z] = ...

• Vi kan anropa funktionen med ett variabelt antal parametrar – nargin ger aktuellt antal parametrar.

(7)

Exempel (se film 2.3–2.4)

• Vi skriver en egen funktion:

hur många gånger förekommer talet a i vektorn v?

• Vi skriver en egen funktion för att beräkna integralen av en annan (godtycklig) funktion

(8)

Integralberäkningar

Det är (någorlunda) enkelt att skriva en funktion som integrerar en funktion med hjälp av definitionen av en Riemannsumma.

Det finns dock en mycket bättre funktion för integralberäkning inbyggd i Matlab:

integral

Exempel: integral(gauss,-1,1)

Både snabbare och smartare än vår egenskrivna lösare.

(9)

Nollställen, minimum/maximum

Standardfunktionerna fzero och fsolve hittar nollställen till en given funktion.

fzero(f, x)

söker nollgenomgång för funktionen f i närheten av x fsolve(f, x)

söker nollställen för f i närheten av x

(x kan vara en vektor; då returneras en vektor med nollställen).

Kräver att Matlabs optimization toolbox är installerad.

Tips: Använd plot för att plotta funktionen och se ungefär var nollställen finns.

fminbnd(f,a,b) – hittar ett lokalt minimum i intervallet a..b.

Maximum av f(x): Definiera g(x) = –f(x). Sök minimum.

(10)

Exempel (se film 2.5–2.6)

• Vi tar reda på nollställen för funktionen (i x-intervallet 0..5):

• Vi tar reda på nollställen för funktionen (i x-intervallet 1..3):

(11)

Polynom (se film 2.7)

Matlab innehåller ett antal polynomrelaterade funktioner.

De bygger på att polynom representeras som vektorer.

Ett polynom som a

0

x

n

+ a

1

x

n–1

+ … + a

n–1

x + a

n

skrivs i Matlab [ a

0

a

1

... a

n

]

Exempel: x

3

– 19x + 30 skrivs [ 1 0 -19 30 ]

(12)

Polynomfunktioner (se film 2.7)

roots(p)

ger rötterna till polynomet p

poly(q)

ger en radvektor med koefficienterna till det polynom som har rötterna q

polyval(p, x)

beräknar värdet av polynomet p för värdena x

polyfit(x, y, n)

försöker anpassa ett n:egrads-polynom så nära punkterna (x,y) (vektorer) som möjligt

(13)

References

Related documents

För att skapa en struktur utgår resultat- och analysdelen från de tre frågeställningarna; hur på- verkas elevernas matematikkunskaper av att arbeta med imitativt lärande och

Resultaten visade även tendenser till skillnader då tjejers psykiska ohälsa oftare hade bakgrund i prestation och att killar oftare har svårare att prata om

Majoriteten av intervjupersonerna ansåg att de fått informationen och vi ser att IP 7 sticker ut med sitt svar. Eftersom det endast är en av de intervjuade i vårt resultat lägger

Detta för att bidra med kunskap till organisationer som vill utveckla en mer cirkulär verksamhet samt för att göra ett teoretiskt bidrag till forskningen om cirkulär ekonomi

Således ligger dimensionerna autonomi, signifikans, utvecklingsmöjligheter, feedback, tillhörighet och lojalitet samt work- life balance till grund för enkätstudien.. 4.1

Med utgångspunkten att expatrierande par med varsin karriär består av två personer (varav den ena blir erbjuden utlandsuppdraget) är den medföljande partnern av

Svaren på dessa frågor kommer att utgöra underlaget till de frågor som sedan skall ställas till operatörerna. 1) Vilken intern ekonomisk information anser Ni att operatörerna bör

Det första stora problemet som författaren ställdes inför var, vad det var som gjorde att de skåp som idag finns på marknaden inte uppfattas som en spelmaskin och därefter vad