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