Föreläsning 14 • Matlab • Javaexempel - sortering • Fler kurser på Nada: – 2D1320 Tillämpad datalogi (Tilda) – 2D1210 Numeriska metoder (Numme) – 2D1385 Programutvecklingsteknik (Prutt) Matlab • • • • • • MATrix LABoratory Interaktivt matteprogram Vektor- och matrisräkning Matematiska funktioner 2- och 3-dimensionell kurvritning Programmering Variabler • Inga deklarationer behövs (alla variabler blir av flyttalstyp). • who visar alla variabler man använt hittills. • clear tar bort alla variabler. • Exempel: x = 5 »y »z »w »A = = = = [1 2 3] [1;2;3] -5:0.2:5 [1 2;3 4] Operatorer • Matematiska operationer är definierade även för hela vektorer/matriser. • [5 4] + [1 2] blir [6 6] • [54] - [1 2] blir [4 2] • [5 4] * [1 2]’ blir 13 • [1 2; 3 4]^2 blir [7 10;15 22] Elementvisa operatorer • Elementvisa operationer görs för varje element i vektorn/matrisen. • [5 4] .* [1 2] blir [5 8] • [54] ./ [1 2] blir [5 2] • [5 4].^2 blir [25 16] • [1 2; 3 4].^2 blir [1 4;9 16] Matriser • A = [3 7 2; 4 6 -3; 9 0 2] • det(A) determinanten • inv(A) inversen • eig(A) egenvärden • x = A\b lösning av ekvationssystem Kurvritning • Skapa en vektor med x-koordinaterna: x = 1:0.1:5; • ...och en med y-koordinaterna: y = x.^3+2*x-4; • Rita en kurva: plot(x,y); • Eller markera punkterna: plot(x,y,´*´); Tredimensionella kurvor • Använd meshgrid för att skapa matriser med önskade koordinater i planet: [X,Y]=meshgrid(0:0.2:3*pi,0:0.25:5*pi); • Beräkna funktionsvärden för varje matrispunkt: Z=sin(X).*sin(Y); • Rita kurvan: mesh(Z); Kommandofiler • Matlabkommandon som skrivits i en fil med namnet xxx.m exekveras i Matlab med kommandot xxx • Programhuvud och variabeldeklarationer behövs inte. Alla variabler blir lokala för programmet, utom de som explicit deklarerats som globala. Funktionsfiler • Funktioner i Matlab kan returnera flera värden. • Första raden i funktionsfilen måste se ut så här: function [utdata] = namn(indata); • Exempel på funktionsanrop: [X,Y] = meshgrid(v,w); • Anrop i ett uttryck: k = 12*f(x,y,z) if-satser och slingor • Avslutas alltid med end: if a==b ... end for x=1:0.5:3 ... end while x<3 ... end Javaexempel:Sortering • I API-klassen Arrays finns flera metoder för sortering av en array. • Man kan sortera samma array på flera olika sätt. Deklarera en jämförelseklass som – implementerar gränssnittet Comparable – innehåller blott en metod compare som v isar hur objekten ska jämföras. • Se foerelaesningar/exempel/Sortering.java