Introduktion till MATLAB Föreläsning 1

Relevanta dokument
Introduktion till Matlab Föreläsning 1. Ingenjörsvetenskap

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

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

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

Beräkningsverktyg HT07

Beräkningsvetenskap föreläsning 2

Introduktion till MATLAB

TSBB14 Laboration: Intro till Matlab 1D

Instruktion för laboration 1

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

Beräkningsvetenskap och Matlab. Vad är MATLAB? Vad är MATLAB? Användningsområden. Vad är MATLAB? Grunderna i Matlab. Beräkningsvetenskap == Matlab?

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

Introduktion till Matlab Föreläsning 2

Variabler och konstanter

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

Introduktion & MATLABrepetition. (Kap. 1 2 i MATLAB Programming for Engineers, S. Chapman)

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

Matematisk Modellering

Laboration: Grunderna i MATLAB

Linjär algebra med tillämpningar, lab 1

Laboration: Grunderna i Matlab

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

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

Introduktion till MATLAB, med utgångspunkt från Ada

Instruktion för laboration 1

MATLAB Matrix laboratory

Introduktion till Matlab

Introduktionsföreläsning i MATLAB (TFYY51)

Kapitel 4. Programmet MATLAB

Matematisk Modellering

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

MAPLE MIKAEL STENLUND

Introduktion till Matlab

Matriser och Inbyggda funktioner i Matlab

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

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB

Introduktion till Matlab

Introduktion till Matlab

Matriser och Inbyggda funktioner i Matlab

Introduktionskurs i MATLAB (TSRT04)

Laboration 1: Linjär algebra

TANA17 Matematiska beräkningar med Matlab

Matlabövning 1 Funktioner och grafer i Matlab

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

Grunderna i MATLAB. Beräkningsvetenskap och Matlab

Laboration: Vektorer och matriser

MMA132: Laboration 2 Matriser i MATLAB

Motivering för programmering. F1: Introduktion, Matlabrepetition (kap. 1 2) Att kunna programmera. Interpreterat/kompilerat

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

Vad är MATLAB? Vad är MATLAB? Vad är MATLAB? Användningsområden. Att börja använda MATLAB. Informationsteknologi. Grunderna i MATLAB

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter

Användarhandledning Version 1.2

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

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

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 8 december 2015 Sida 1 / 22

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

MAM283 Introduktion till Matlab

4.3. Programmering i MATLAB

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

Sanningar om programmering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

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

jsp?d=&a=827474&sb2231i0=1_

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor

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

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

Matriser. Vektorer. Grunderna i MATLAB 2. Informationsteknologi. Informationsteknologi.

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

MATLAB - en kompakt introduktion av Tore Gustafsson

Från labben: if, for och while. Från labben: if, for och while. Från labben: if, for och while. Från labben: if, for och while

Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut

Inledning till matematik med Matlab kompendium för M1 och TD

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Matriser och vektorer i Matlab

Matlabövning 1 Funktioner och grafer i Matlab

Introduktion till Matlab

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

Kursinnehåll. Introduktion till kursen. Hederskodex. Programmering

Introduktion till Matlab

Allmänt om Mathematica

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning

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

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Från labben: if, for och while. Från labben: if, for och while. Från labben: if, for och while. Från labben: if, for och while

Kursuppläggning. F1: Introduktion, Matlabrepetition (kap. 1 2) Motivering för programmering. Att kunna programmera

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

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

MATLAB handbok Introduktion

Texten är en omarbetning av en text skriven av Rikard Bögvad för kursen Matematik I (30 hp).

MATLAB. En kort praktisk introduktion. Olof Hultin FAFA Omarbetad efter original av Henrik Persson

Introduktion till Matlab

TAIU07 Matematiska beräkningar med Matlab

i LabVIEW. Några programmeringstekniska grundbegrepp

TSKS08 Introduktionskurs i MATLAB

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

FY021G Ingenjörsvetenskap MATLAB och regressionsanalys

Kort om programmering i Matlab

Transkript:

Introduktion till MATLAB Föreläsning 1 FY021G Ingenjörsvetenskap Magnus.Eriksson@miun.se Reviderad 2007-09-23 1

Dagens agenda MATLAB - vad ska det vara bra för? Arrayer, matriser och vektorer Manipulation av arrayer Matematiska arrayoperationer Villkor Slingor 2

Examination En enkel dugga (kort prov, ca 20 minuter) inleder labbtillfället Duggans uppgifter har liknande karaktär som dokumentet Introduction to the MATLAB language examples and exercises. För tillträde till labben krävs 50% godkänt på duggan. För VG på labben krävs minst 75% rätt på duggan. Ligger man strax under gränsen kan en mycket väl genomförd laboration kompensera. G ger 1 poäng och VG 2 poäng bidrag till poängsiffran som slutbetyget grundar sig på. 3

Förberedelse inför labben Förberedelse inför duggan: Repetera exemplen i dokumentet Examples and exercises. Repetera denna slide show (publiceras i WebCT i eftermiddag). Läs ev. i läroboken Introduction to MATLAB 7, kap 1 till 6 inför labbtillfället om det som känns oklart. Läs i läroboken kapitel 8.2-8.3, om regressionsanalys MATLAB finns i PC-labbsalarna om du redan nu vill testa. 4

Vad är MATLAB? MATrix LABoratory En avancerad och programmerbar miniräknare Hanterar bl.a. vektor- och matrisalgebra, samt komplexa tal. Utvecklades i slutet av 70-talet. Idag vanligt inom forskning och utveckling, främst för numeriska beräkningar, och visualiering av data med diagram 5

Tillämpningsområden Grafisk visualisering av data Numerisk analys Interpolation, extrapolation, regressionsanalys (i denna kurs) Statistik Optimering Datorsimulering Signalbehandling Styr- och reglerteknik Kommunikationssystem Bildbehandling M.m. 6

Hur MATLAB står sig i en jämförelse Fördelar: Många toolboxar (funktionsbibliotek) finns utvecklade för olika tekniska specialområden. Vanligt förekommande i forskningsvärlden Kan både användas som kommandostyrd miniräknare och programmeras Enkelt, dynamiskt typat, programmeringsspråk Kompakt programmeringsspråk Alternativ till MATLAB: Hårt typade programmeringsspråk såsom FORTRAN, C, C++ och Java ger snabbare beräkningar FORTRAN (utvecklades på 50-talet) hade förr större funktionsbibliotek GNU Octave, som har öppen källkod, och är delvis kompatibelt MathCAD, Maple och Mathematica är bättre på symboliska (icke-numeriska) beräkningar MathCAD har ett icke-kommandobaserat användargränssnitt, ett slags kalkylblad för matematiker Kalkylbladsprogram såsom Excel används och är mer utbredda, men mycket mer begränsade. Avancerade miniräknare 7

Så här ser MATLAB ut Workspace: Variabellista Command history Command window: Här skriver du in kommandon 8

Fler MATLAB-fönster som kan öppnas Figure window Array editor M-file editor 9

Hur får man hjälp? help funktionsnamn Visar oformaterad text i kommandofönstret doc funktionsnamn Visar HTML-dokumentation i en särskild browser. 10

Operationer i MATLAB Matematisk notation 2 4 + 3 8 6 144 3 2 0.5 e MATLAB-syntax 2*4+3/8-6 sqrt(144) 2^3 exp(.5) 11

Logaritmer ln(2.79) log(2.79) log(1000) log10(1000) log 2 (1024) log2(1024) 12

Trigonometriska funktioner Matematisk notation sin( π 2 ) cos(π) tan( π 4 ) cot( π 4 ) asin(1) MATLAB-syntax sin(pi/2) cos(pi) tan(pi/4) cot(pi/4) asin(1) 13

Dynamiskt typade variabler En variabel är en del av datorns arbetsminne MATLABs variabler kallas Arrayer, vilket betyder att de kan bestå av flera element (flera värden) MATLAB har dynamiskt typade arrayer, vilket innebär: Första gången man tilldelar en array ett värde så definieras den, dvs det skapas en plats i datorns minne för variabeln. Exempel: minvariabel = 1 Arrayerna kan automatiskt ändra storlek, utan att särskilda deklarationskommandon krävs Exempel: minvariabel = [ 1 3 7 ] % minvariabel utökas till en radvektor bestående av 3 element 14

Workspace Workspace är de variabler som är åtkomliga från kommandofönstret Så fort man definierar en variabel så visas den i delfönstret Workspace Radera alla variabler ur workspace med: clear 15

Val av variabelnamn MATLAB skiljer mellan versaler och gemener, alltså variabeln area är inte samma som variabeln Area Ord som används till annat är olämpliga som variabelnamn t.ex: ans, pi, i, j, plot. Första tecknet i variabelnamnet måste vara en bokstav Övriga tecken kan vara siffror eller understreck _. Svenska tecknen Å, Ä, Ö kan inte användas. 16

Skalär, vektor och matris En skalär är en array av storleken 1x1, dvs ett element. Exempel: x = 1. En vektor av längden N är en-dimensionell array av storleken 1 x N (radvektor) eller en N x 1 (kolumnvektor). Exempel: x = [10 20] är en radvektor av längd 2. y = [10;20;30] är en kolumnvektor av längd 3. En matris är en tvådimensionell array av storleken N x M. Skalärer och vektorer är specialfall av matriser. En tredimensionsionell array av storlek M x N x L består av L matriser, var och en av storlek M x N. En tom array har noll element. Exempel: tom_matris = [] 17

Definiera matriser i MATLAB [ ] används vid definiering av vektorer och matriser. Matematisk notation MATLAB-syntax 2 4 1 9 1 0 ( 2 4 3 1 8) [2 4 1; 9-1 0] [2 4 3 1 8] 18

Mer om matriser Anta följande matris [2 3 5; 7 6 1] Transponering av vektorn kan man lätt få med hjälp av transpose operatorn [2 3 5; 7 6 1] 2 3 5 7 6 1 2 3 5 7 6 1 Τ 2 7 3 6 5 119

Manipulering av matriser M(4) M(1:4:9) M(2:3,1:2) 11 12 13 M = 14 15 16 17 18 19 11 12 13 M = 14 15 16 17 18 19 11 12 13 M = 14 15 16 17 18 19 20

Manipulering av matriser 11 12 13 M = 14 15 16 17 18 19 11 12 13 M = 14 15 16 17 18 19 11 12 13 M = 14 15 16 17 18 19 M(4)=99 M(1:4:9)=[ 3 6 2] M(2:3,1:2)=[ 3 6 ;2 4] 11 99 13 M = 14 15 16 17 18 19 3 12 13 M = 14 6 16 17 18 2 11 12 13 M = 3 6 16 2 4 19 21

Multiplikation och addition med skalär Exempel: [1 2;3 4] * 0 resulterar i ans = 0 0 0 0 Exempel: [1 2;3 4] + 10 resulterar i ans = 11 12 13 14 Snygga MATLAB-program utnyttjar denna typ av arrayoperationer istället för slingor (loopar). Det ger kompakta och ofta mer lättöverskådliga och snabba program. 22

Inre vektorprodukt Radvektor * Kolumnvektor = Skalär Vektorerna måste ha samma längd, annars Error Exempel: [1 2 3]*[10; 0; 20] resulterar i 1 10 + 2 0 + 20 3 = 70 Matematisk definition: b1 b N 2 ( a1 a2 a ) i = a b = ab 1 1 + a2b2 + + a b k = 1 bn 23 N k k N N

Yttre vektorprodukt Kolumnvektor av längd M * Radvektor av längd N = Matris av storlek M x N Kompakt notation för alla tänkbara produktkombinationer av elementen Exempel: [10; 20] * [1 2 3] resulterar i 10 1 10 2 10 3 10 20 30 Matematisk definition: = 20 1 20 2 20 3 20 40 60 a1 ab 1 1 ab 1 2 ab 1 N a2 ab 2 1 ab 2 2 ab 2 N i( b1 b2 bn ) = a a b a b a b M M 1 M 2 M N 24

Matrismultiplikation 1 3 1 3 2 0 1 5 4 0 = 1 18 5 19 0 6 Så här skriver man ovanstående i MATLAB: [1 3 2; 5 4 0] * [1 3; 0 1; 0 6] Kombination av inre och yttre produkt. Antal kolumner i första matrisen måste vara lika med antal rader i den andra. Annars Error. Hur man räknar ut? Vänta till kursen Linjär algebra. Visar detta enbart som varning för operatorn *. 25

Andra elementvisa arrayoperationer Varning: På samma sätt som * så resulterar / och ^ applicerade på arrayer inte i vanlig operationer, utan i vektor- och matrisoperationer enligt definitioner som ni får lära er i kursen Linjär Algebra../ ger elementvis division. Ex: 1./ [2 4] ger [0.5 0.25].^ ger elementvis upphöjt till. Ex: [2 3].^ 2 ger [4 9]. Tag därför för vana att sätta en punkt före * / och ^. + och hanterar elementvisa arrayoperationer, och behöver inte någon punkt. 26

För fler exempel Se dokumentet Introduction to MATLAB language: Examples and exercises. 27

Kommentarer i MATLAB I MATLAB är allt som står till höger om tecknet % på en rad kommentarer, dvs anteckningar som inte påverkar hur programmet körs. Det är en god vana att skriva rikligt med kommentarer. Kommentarer kan underlätta för andra att förstå tanken bakom koden. Kommentarer kan också utgöra ett minnesstöd man glömmer lätt hur man en gång tänkt. 28

Villkor if-satser Man behöver ofta göra selektion, dvs val av vad som ska utföras beroende på ett logiskt villkor. price=input('what is the price of the book? '); if price >= 135 disp('very expensive but') end disp(['i buy one copy of the book.']) Ddisp betyder display, dvs visa texten. Apostrofer omger textsträngar, som är vektorer bestående av alfanumeriska tecken. 29

If - syntax if villkor sats sats end if villkor sats sats else sats end if villkor1 sats elseif villkor2 sats end Elseif besparar ett end 30

Relationsoperatorer och logiska operatorer "<" - mindre än "<=" mindre än eller lika med ">" - större än ">=" större än eller lika med "==" test om lika med ("=" betyder tilldelning) "~=" - not equal to "&" - AND " " - OR "~" - NOT 31

Exempel på if-else I vissa lösningar behöver man ibland skriva ett programmet där ett val måste göras beroende på ett villkor uppfylls eller inte. age = input( How old are you? ') ; if age >= 20, disp( Welcome to systembolaget') else d = 20-age; disp([ Sorry. ] disp([ You must wait ' int2str(d) ' years']) end Semikolon i slutet av en sats undertrycker utskrift. Funktionen int2str(d) omvandlar heltalet d till en teckensträng. 32

Switch - Case if x == värde1 sats A elseif x == värde2 x == värde 3 sats B else sats C end Ger samma resultat som: switch x case värde1 sats A case {värde2,värde3} sats B otherwise sats C end 33

Iteration - slingor Om man vill upprepa något flera gånger använder man sig av en s.k. iteration eller slinga (loop på engelska) Det finns två typer av slingor i MATLAB: for while 34

Slingor - syntax While-sats while logiskt_uttryck sats sats end For-sats for variabel = vektor, sats sats end 35

Exempel på for-slinga Matematisk notation: x = k 2, föralla k = 1,2,3 k MATLAB-kommandon: for k=1:3 x(k)= k^2 end Utskrift: x = 1 x = 1 4 x = 1 4 9 36

För fler exempel Se dokumentet Introduction to MATLAB language: Examples and exercises. 37