Introduktion till MATLAB

Relevanta dokument
Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

TANA17 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

TSBB14 Laboration: Intro till Matlab 1D

TANA17 Matematiska beräkningar med Matlab

Laboration: Grunderna i MATLAB

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23

Introduktion till Matlab

TAIU07 Matematiska beräkningar med Matlab

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

Matlabövning 1 Funktioner och grafer i Matlab

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

Introduktion till Matlab

Introduktion till Matlab

Laboration: Grunderna i Matlab

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Matlabövning 1 Funktioner och grafer i Matlab

TANA17 Matematiska beräkningar med Matlab

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB

Du kan söka hjälp efter innehåll eller efter namn

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 13:e januari klockan

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Lab 1, Funktioner, funktionsfiler och grafer.

2 februari 2016 Sida 1 / 23

Beräkningsvetenskap föreläsning 2

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

TAIU07 Matematiska beräkningar med Matlab

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB

TANA17 Matematiska beräkningar med Matlab

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Introduktion till Matlab

Introduktion till Matlab

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

15 februari 2016 Sida 1 / 32

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Beräkningsverktyg HT07

Introduktion till Matlab

Introduktion till Matlab

Introduktion till Matlab

Mer om funktioner och grafik i Matlab

Introduktion till Matlab

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

MMA132: Laboration 2 Matriser i MATLAB

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 18:e augusti klockan

Kort om programmering i Matlab

M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1

Vad är MATLAB? Användningsområden. Var kan man köra MATLAB? MATLAB-miljön: avsluta. MATLAB-miljön: Start. Informationsteknologi. Grunderna i MATLAB

Lab 2, Funktioner, funktionsfiler och grafer.

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 26 november 2015 Sida 1 / 28

MATLAB. Vad är MATLAB? En kalkylator för linlär algebra. Ett programspråk liknande t.ex Java. Ett grafiskt verktyg.

Instruktion för laboration 1

1.1 MATLABs kommandon för matriser

Matlabföreläsningen. Lite mer och lite mindre!

Laborationstillfälle 1 Lite mer om Matlab och matematik

TAIU07 Matematiska beräkningar med Matlab

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Matematik med Matlab för I Inledning. 1 Programmering i MATLAB

Datorövning 1 Fördelningar

Introduktion till Matlab

Sanningar om programmering

Matriser och Inbyggda funktioner i Matlab

4.3. Programmering i MATLAB

Laboration: Vektorer och matriser

Variabler och konstanter

Kort om programmering i Python

MATLAB - en kompakt introduktion av Tore Gustafsson

MMA132: Laboration 1 Introduktion till MATLAB

Mer om funktioner och grafik i Matlab

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

MMA132: Laboration 1 & 2 Introduktion till MATLAB

Matematisk Modellering

Matematisk Modellering

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Matriser. Vektorer. Forts. Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Matriser och Inbyggda funktioner i Matlab

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

MATLAB övningar, del1 Inledande Matematik

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor

Introduktion till Matlab

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

MATLAB Matrix laboratory

MAM283 Introduktion till Matlab

Funktioner och grafritning i Matlab

Matematisk Modellering

Lägg märke till skillnaden, man ser det tydligare om man ritar kurvorna.

Datorövning 1: Fördelningar

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Allmänt om Mathematica

Matriser och linjära ekvationssystem

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

Department of Physics Umeå University 27 augusti Matlab för Nybörjare. Charlie Pelland

Transkript:

29 augusti 2017 Introduktion till MATLAB 1 Inledning MATLAB är ett interaktivt program för numeriska beräkningar med matriser. Med enkla kommandon kan man till exempel utföra matrismultiplikation, beräkna matrisinvers och lösa linjära ekvationssystem. Det finns också kommandon för grafik och möjlighet att skriva egna program. Programmet startas från ett terminalfönster med matlab &. Alla operationer i MATLAB styrs sedan via interaktiva kommandoord. Symbolen >> indikerar att programmet är redo att tolka nästa kommando. Information om ett kommandon erhålles med help. Uppgift 1.1 Undersök vad hjälpen har att säga om kommandot log. Små bokstäver ska användas vid anrop av funktionen även om hjälptexten i äldre versioner av MATLAB använder stora. LOG Natural logarithm. LOG(X) is the... 2 Variabler och elementära operationer I MATLAB finns variabler för lagring av rektangulära matriser med komplexa element. Eftersom reella skalärer, vektorer och matriser är specialfall så kan även dessa lagras. Variabelnamnen utgörs av högst 19 siffror eller bokstäver ur det engelska alfabetet. Första tecknet får dock ej vara en siffra. Tilldelning sker enligt följande exempel skalär: s = 12 radvektor: r = [1 5 7] kolumnvektor: k = [1;5;7] matris: A = [8 3 4;1 2 3;9 9 7] Utskrift vid tilldelning kan undvikas med hjälp av ett semikolon på slutet av raden. Värdet av en variabel erhålls om man skriver variabelnamnet. Matriser kan indexeras med skalärer eller vektorer. Till exempel refererar A(:,[1 3]) till första och tredje kolumnen i matrisen A. Addition, subtraktion och multiplikation av matriser utföres med de vanliga symbolerna. Transponat av A ges av A, inv(a) ger inversen och för att lösa ett ekvationssystem Ax = b skriver man x=a\b. Uppgift 2.1 Skapa variablerna 1 2 3 A = 2 3 4 4 5 7, B = 1 2 3 2 3 4 3 4 7 och v = samt bilda C = A 1, CA, (AB) T och B T A T. Blir resultaten som förväntade? Uppgift 2.2 Lös ekvationssystemet Ax = v. Bilda även y = A 1 v och jämför x och y. Ger båda beräkningarna samma svar? Om det är svårt att avgöra kan du pröva att använda format long eller format long e. För att återställa till standardutskrift skriver du format short. 6 9 16

Uppgift 2.3 Jämför v *v, v*v, v.*v och dot(v,v). Vilka blir lika? Uppgift 2.4 Fungerar v*v? Varför/varför inte? Uppgift 2.5 Jämför A*A, A 2, A.*A och A. 2. Vad innebär punkten? Uppgift 2.6 Byt rad 1 och 3 i B. Hur gör man det på ett enkelt sätt? Uppgift 2.7 Skapa en radvektor x = (1 2 3 4) och en kolumnvektor y = (10 10.5 11 11.5 12) T med hjälp av kolonnotation. Med help colon får du hjälp. Uppgift 2.8 Använd ones för att skapa en 6 2 matris A som enbart innehåller ettor. Skapa sedan en 2 3 matris B som innehåller slumptal med hjälp av kommandot rand. Bilda produkten C = AB, och använd funktionen size för att kontrollera att matrisen C:s dimensioner stämmer. 3 Plottning I MATLAB finns kommandon för två- och tredimensionell grafik. Kommandot plot används för att generera två-dimensionell grafik i vanligt kartesiskt koordinatsystem medan till exempel loglog ger en bild med logaritmiska skalor på båda axlarna. Vektorn x ritas mot vektorn y med kommandot plot(x,y) eller till exempel plot(x,y, +r ) som då markerar punkterna med röda plus. Det finns några varianter på plot-kommandot. Användbart är plot(x,y,u,v) som plottar x mot y och u mot v. Man kan välja olika typer av punkter, linjer och färger, se help plot. Anges ingen punkttyp binds punkterna ihop med heldragna räta linjer. Följande exempel plottar funktionen f(x) = e x på intervallet [0,1] >> x = 0:0.01:1; >> y = exp(x); >> plot(x,y) Varje nytt plot-kommando rensar bort det som tidigare fanns i grafikfönstret. Vill man rita flera grafer i samma figur anger man hold on. När man är nöjd skriver man hold off. Man kan rensa innehållet i fönstret genom att ge kommandot clf. Vill man stänga fönstret helt skriver man close. Uppgift 3.1 Skapa en vektor x=-1:0.5:1 och låt y=x. 2. Använd plot för att rita gröna * i punkterna (x i,y i ). Använd sedan plot för att sammanbinda punkterna med svarta linjer. Kom ihåg hold on. Uppgift 3.2 Plotta funktionen f(x)=sin(x 2 ) på intervallet [ π,π]. Uppgift 3.3 Använd title, xlabel och ylabel för att namnge grafen och koordinataxlarna. Uppgift 3.4. Plotta funktionerna f 1 (x)=x, f 2 (x)=x 2 och f 3 (x)=x 3 på intervallet [0,3] i samma figur, utan att använda hold on och hold off. Plotta sedan funktionerna med logaritmisk skala på båda axlarna. Studera figuren (speciellt kurvornas lutningar). Hur hanterar Matlab den första punkten i x-vektorn? Plotta (med plot) ln(f) mot ln(x) för de tre funktionerna. Vilka värden har linjernas lutningar? 2

4 Logiska uttryck I MATLAB finns de sex relationsoperatorerna <, <=, >, >=, == och ~=. De returnerar ett resultat som ska tolkas som sant eller falskt. I MATLAB är 0 falskt och 1 sant. Relationsoperatorer kan användas för att jämföra såväl skalärer som matriser. Matriser jämförs elementvis och resultatet blir en matris med ettor och nollor. Förutom relationsoperatorerna finns ett antal logiska operatorer. I MATLAB finns & (och), (eller) och ~ (negation). De kan kombineras med relationsoperatorer för att skapa logiska uttryck. De logiska operatorerna har lägst prioritet i MATLAB. Relationsoperationer och aritmetiska operationer beräknas innan de logiska operationerna i ett uttryck. Ofta är det lämpligt att införa parenteser i logiska uttryck för att göra uttrycken lättare att läsa. Uppgift 4.1 Låt a=3 och b=6 Vad blir a<=b, a==b och a>b? Är resultaten rimliga? Uppgift 4.2 Låt a, b och c vara reella tal. Hur testar man om alla tre talen är lika? Pröva, både med lika och olika värden på a, b och c, för att försäkra dig om att du tänker rätt. Uppgift 4.3 Låt x vara ett reellt tal. Hur testar man om 0<x 10? Pröva med olika värden på x för att försäkra dig om att du tänker rätt. Låt A= 2 1 3 2 1 1 1 0 3 och B= 1 1 0 2 1 0 2 1 3. Uppgift 4.4 Vad blir A==B, A~=B och A<=B? Är resultaten rimliga? Uppgift 4.5 Vad blir A>B A<B? Kan samma uttryck skrivas enklare? 5 Skript Det går att samla flera MATLAB-kommandon i en så kallad m-fil. Filen ska vara en textfil och ha ett namn med ändn.m. Kommandona i filen utförs då man skriver filens namn (utan det avslutande.m) i MATLABs kommandofönster. Det finns en inbyggd editor i MATLAB och menyval för att skapa nya m-filer. Uppgift 5.1 Skapa och kör en m-fil som plottar funktionen f(x) = sin(x 2 ) på intervallet [ π,π]. 6 Selektion Om kommandon ska utföras ast under vissa förutsättningar kan if satsen användas. if <logiskt villkor> Det finns även mer avancerade varianter, som till exempel 3

if <logiskt villkor> Uppgift 6.1 Funktionen f(x) ges av uttrycket { sin(x), x<π/2 f(x)= 1, x π/2 Skriv ett MATLAB-skript som beräknar y = f(x) för ett givet x. Testa att programmet fungerar. Uppgift 6.2 Antag att a = 5 och att flagga är falskt, det vill säga flagga = 0. Fundera ut vad som händer i följande två fall. Pröva om du är osäker. if flagga if flagga if a<10 if a<10 a=a+1 a=a+1 a=a-1 a=a-1 Uppgift 6.3 Vad händer i uppgiften ovan om a=5, men flagga istället är sant? 7 Iteration I MATLAB finns två kommandon för upprepad exekvering: for och while. Kommandot for används då man på förhand vet hur många iterationer som kommer att behövas. Kommandot while exekverar en samling kommandon så länge ett logiskt villkor är sant. for <variabel>=<vektor> while <logiskt villkor> I for-loopen löper loopvariabeln <variabel> genom värdena i vektorn <vektor>. Uppgift 7.1 Skriv ett program som beräknar summan 100 S = k. k=1 Uppgift 7.2 Vad blir x(5) då följande program exekveras? x=zeros(5,1); for k=2:1:5 x(k)=x(k-1)+k Uppgift 7.3 Skriv ett program som skriver ut det minsta tal 3 n som är större än 5000, där n är ett heltal. 4

8 Funktioner Genom att låta första raden i en m-fil börja med ordet function skapar man en egen funktion i MATLAB. På första raden deklareras också funktionsnamnet, inparametrarna och utparametrarna. Inparametrarna är de a variabler som finns tillgängliga då kommandona i funktionen börjar utföras. Utparametrarna är de a värden som finns kvar då funktionsanropet har avslutats. Antag att följande har skrivits in i filen funk.m. function [x,y]=funk(a,b) x=a^2; y=cos(b); Vi har då en funktion funk som till exempel kan anropas enligt [u,v]=funk(1.5,3.6). Inparametern a ges då värdet 1.5 och parametern b får värdet 3.6. När x och y har beräknats lagras deras värden i u respektive v. Uppgift 8.1 Skriv en MATLAB-funktion (funktionsfil) som beräknar y=e 1.5x 4.2x. Lös ekvationen e 1.5x 4.2x = 0 med fzero. Uppgift 8.2 Skapa en anonym funktion som beräknar y=e 1.5x 4.2x. Lös ekvationen e 1.5x 4.2x = 0 med fzero. Uppgift 8.3 Skriv en funktion polynom som beräknar värdet av p(x) = c 0 + c 1 x +... + c n x n. Funktionen skall ha två inparametrar, en vektor c som innehåller koefficienterna c 0,c 1,...,c n och en skalär x, och en utparameter y som innehåller det beräknade värdet av p(x). Uppgift 8.4 En reell rot till ekvationen p(x) = x 3 3ax+1 = 0, där a 1, kan bestämmas som gränsvärde till talföljden {x k } k=0 definierad av x 0 = 0, x k+1 = x3 k +1 3a, k = 0,1,2... Skriv en funktion med inparameter a, som beräknar detta gränsvärde. Avbryt då x k+1 x k < 10 6 Utdata ska vara x k+1, p(x k+1 ) och värdet på k +1. Vilka resultat fås då a = 3? 5