Introduktion till MATLAB Föreläsning 1

Slides:



Advertisements
Liknande presentationer
Talföljder formler och summor
Advertisements

Kap 1 - Algebra och linjära modeller
hej och välkomna EKVATIONER Ta reda på det okända talet.
Föreläsning 1 i programmeringsteknik och Matlab 2D1312
MS Excel 2010 – Dag 2 Mahmud Al Hakim
Programstruktur: C för enchipsdatorer
Funktioner och programorganisation
1 Ingenjörsmetodik IT & ME 2007 Föreläsare Dr. Gunnar Malm.
1 Ingenjörsmetodik IT & ME Dagens tema Att tänka rätt är stort att tänka fritt är större MATLAB programmering är väldigt kreativt men minsta tecken.
Leif Håkansson’s Square Dancer Rotation
Föreläsning 10 Kurvanpassning som en del av problemlösning med datorer
Föreläsning 15 Matlab överkurs KTH, CSC, Vahid Mosavat.
MS Excel 2007 Dag 1 Lärare: Mahmud Al Hakim. Agenda 1.Börja arbeta med Excel Hantera arbetsböcker 3.Formler 4.Formatera 5.Diagram Att läsa: sid.
MS Excel 2010 – Dag 1 Mahmud Al Hakim. Kursens innehåll 2 DagInnehåll 1 Introduktion till Excel 2010 Hantera arbetsböcker Formler Formatering Litteratur:
Föreläsning 7 Analys av algoritmer T(n) och ordo
1 Ingenjörsmetodik IT & ME 2009 Föreläsare Dr. Gunnar Malm.
Operatorer.
Föreläsning 12 Matlab J-uppgiften.
Grundläggande programmering
Föreläsning 2 Datalogi för E1 2D1343
Kommunpussel Din uppgift är att sortera de organisatoriska delar på nästa sida på ett sådant sätt att det överensstämmer med hur din kommun är organiserad.
V E R S I O N N R 2. 0 T A V E L I D É E R I M I L J Ö.
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2007.
Flödeskontroll Satser i ett program utförs en och en efter varandra. Detta kallas sekvensiell flödeskontroll. Ofta är det dock nödvändigt att modifiera.
Programmering B PHP Lektion 2
INFÖR NATIONELLA PROVET
Repetition inför slutprovet
Programmeringsbegrepp
Från binära till hexadecimala
Programmering B PHP Lektion 3
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Vektorer (klassen Vector) Sortering
Beräkna en ekvation (metod 1)
TÄNK PÅ ETT HELTAL MELLAN 1-50
Introduktion till Matlab Föreläsning 2
Föreläsning 3 Programmeringsteknik och Matlab DD1312
Internet A Javaskript.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska opertorer -Poster.
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
Funktioner, styrstrukturer, manipulering av matriser
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
Grundläggande programmering
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
2 Agenda 1. Börja arbeta med Excel Hantera arbetsböcker 3. Formler 4. Formatera 5. Diagram 6. Skriva ut 7. Referenser mellan kalkylblad 8. Arbeta.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Grunderna i MATLAB 1 Vad är MATLAB? Användningsområden MATLAB-miljön
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Problemlösningsmetodik
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Ingenjörsmetodik IT & ME 2008
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska operatorer och logiska uttryck -Referenstyper.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
Projekt 5.3 Gilpins och Ayalas θ-logistiska modell A Course in Mathematical Modeling - Mooney & Swift.
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
Bild 1 Prognos för länets arbetsmarknad Stefan Tjb.
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
När infaller Julafton och hur ofta?
Föreläsning 2 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 2 2D1312 Introduktion till Python Kap 1 och 2 i kursboken.
1 Ingenjörsmetodik IT & ME 2007 Föreläsare Dr. Gunnar Malm.
1 Matlab, föreläsning 1 Oktober MATLAB Perspektiv på materialdesign Lina Kjellqvist Rum: K324 Telefon:
1 Föreläsning 13 programmeringsteknik och Matlab Funktioner, styrstrukturer, mer om matriser.
Anders Sjögren Operatorer. Anders Sjögren Operand(er)
KPP053, HT2015 MATLAB, Föreläsning 4
Python.
Presentationens avskrift:

Introduktion till MATLAB Föreläsning 1 F2. programmeringsteknik och Matlab 2005-09-08 Introduktion till MATLAB Föreläsning 1 FY021G Ingenjörsvetenskap Magnus.Eriksson@miun.se Reviderad 2007-09-23 KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 Dagens agenda MATLAB - vad ska det vara bra för? Arrayer, matriser och vektorer Manipulation av arrayer Matematiska arrayoperationer Villkor Slingor KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 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å. KTH, NADA, Vahid Mosavat

Förberedelse inför labben F2. programmeringsteknik och Matlab 2005-09-08 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. KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 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 KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 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. KTH, NADA, Vahid Mosavat

Hur MATLAB står sig i en jämförelse… F2. programmeringsteknik och Matlab 2005-09-08 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 KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 Så här ser MATLAB ut Workspace: Variabellista Command history Command window: Här skriver du in kommandon KTH, NADA, Vahid Mosavat

Fler MATLAB-fönster som kan öppnas F2. programmeringsteknik och Matlab 2005-09-08 Fler MATLAB-fönster som kan öppnas Figure window Array editor M-file editor KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 Hur får man hjälp? help funktionsnamn Visar oformaterad text i kommandofönstret doc funktionsnamn Visar HTML-dokumentation i en särskild browser. KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 Operationer i MATLAB Matematisk notation MATLAB-syntax 2*4+3/8-6 sqrt(144) 2^3 exp(.5) KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 Logaritmer        log(2.79) log10(1000) log2(1024) KTH, NADA, Vahid Mosavat

Trigonometriska funktioner F2. programmeringsteknik och Matlab 2005-09-08 Trigonometriska funktioner Matematisk notation MATLAB-syntax sin(pi/2) cos(pi) tan(pi/4) cot(pi/4) asin(1) KTH, NADA, Vahid Mosavat

Dynamiskt typade variabler F2. programmeringsteknik och Matlab 2005-09-08 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 KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 Base Workspace Base 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 base workspace med: clear KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 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. KTH, NADA, Vahid Mosavat

Skalär, vektor och matris F2. programmeringsteknik och Matlab 2005-09-08 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 = [] KTH, NADA, Vahid Mosavat

Definiera matriser i MATLAB F2. programmeringsteknik och Matlab 2005-09-08 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] KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 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]’ KTH, NADA, Vahid Mosavat

Manipulering av matriser F2. programmeringsteknik och Matlab 2005-09-08 Manipulering av matriser M(4) M(1:4:9) M(2:3,1:2) KTH, NADA, Vahid Mosavat

Manipulering av matriser F2. programmeringsteknik och Matlab 2005-09-08 Manipulering av matriser M(4)=99 M(1:4:9)=[ 3 6 2] M(2:3,1:2)=[ 3 6 ;2 4] KTH, NADA, Vahid Mosavat

Multiplikation och addition med skalär F2. programmeringsteknik och Matlab 2005-09-08 Multiplikation och addition med skalär Exempel: [1 2;3 4] * 0 resulterar i ans = 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. KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 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: KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 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 produkt- kombinationer av elementen Exempel: [10; 20] * [1 2 3] resulterar i Matematisk definition: KTH, NADA, Vahid Mosavat

Matrismultiplikation F2. programmeringsteknik och Matlab 2005-09-08 Matrismultiplikation 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 * . KTH, NADA, Vahid Mosavat

Andra elementvisa arrayoperationer F2. programmeringsteknik och Matlab 2005-09-08 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. KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 För fler exempel Se dokumentet ”Introduction to MATLAB language: Examples and exercises”. KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 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. KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 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.']) disp betyder display, dvs visa texten. Apostrofer omger textsträngar, som är vektorer bestående av alfanumeriska tecken. KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 If - syntax if villkor sats else end if villkor1 sats elseif villkor2 end if villkor sats end ”Elseif” besparar ett ”end” KTH, NADA, Vahid Mosavat

Relationsoperatorer och logiska operatorer F2. programmeringsteknik och Matlab 2005-09-08 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 KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 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. KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 Switch - Case if x == värde1 sats A elseif x == värde2… | x == värde 3 sats B else sats C end switch x case värde1 sats A case {värde2,värde3} sats B otherwise sats C end Ger samma resultat som: KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 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 KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 Slingor - syntax While-sats while logiskt_uttryck sats end For-sats for variabel = vektor, KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 Exempel på for-slinga Matematisk notation: MATLAB-kommandon: for k=1:3 x(k)= k^2 end Utskrift: x = 1 1 4 1 4 9 KTH, NADA, Vahid Mosavat

F2. programmeringsteknik och Matlab 2005-09-08 För fler exempel Se dokumentet ”Introduction to MATLAB language: Examples and exercises”. KTH, NADA, Vahid Mosavat