Matlab-Schnelleinführung

Werbung
Klawonn/Rheinbach 04/05
1
Matlab-Schnelleinführung
1
Variablen definieren
x=1
%
x=1.0
%
x=1.0;
%
u=[ 1 0 0 ]
%
v=[ 0; 0; 1; ]
%
A=[ 2 0 0 ; 0 2 0;
%
A(1,2)=1
%
%
whos
help whos
x wird definiert als 1 und das Ergebnis wird angezeigt
x wird definiert als 1
x wird definiert als 1; das Ergebnis wird nicht angezeigt
v ist ein Zeilenvektor bzw. eine 1 x 3 - Matrix
w ist ein Spaltenvektor bzw. eine 3 x 1 -Matrix
0 0 2 ]
A ist eine 3x3-Matrix mit den Eintraegen a_11=2, a_12=0,...
Eintrag in erster Zeile, zweiter Spalte
von A auf 1 setzen
% alle definierten Variablen anzeigen
% Hilfe zum Befehl whos anzeigen
str=’Hallo Welt!’% str als die Zeichenkette ’Hallo Welt’ definieren
% (einfache Anfuehrungszeichen!)
disp(str);
disp(x);
2
% str anzeigen
% Inhalt von Variable x anzeigen
Operatoren
w=A*v
A’
v+v
2*v
%
%
%
%
w ist das Ergebnis der Matrix-Vektor-Multiplikatoin A*v
Transponierte von A
Zwei Spaltenvektoren addieren und das Ergebnis angezeigen
Multiplikation von v mit einem Skalar
2^3
A^2
% 2 hoch 3
% Matrix A hoch 2
size(A)
A(4,4)=1
m=size(A,1)
n=size(A,2)
%
%
%
%
Groesse von A anzeigen
Den Eintrag A(4,4) auf 1 setzen, die Matrix vergroessern
m ist die Anzahl der Zeilen von A
n ist die Anzahl der Spalten von A
3 VORDEFINIERTE MATRIZEN
sqrt(v’*v)
norm(v)
% euklidische Norm von v
% euklidische Norm von v
inv(A)
%
eig(A)
%
det(A)
%
x=A\[ 1; 1; 1; 1;
%
%
rank(A)
%
null(A)
%
3
Inverse von A bilden
Eigenwerte von A berechnen und als Spaltenvektor ausgeben
Determinante von A berechnen
]
entspricht x=inv(A)*[1;1;1;1], ist aber wesentlich schneller,
da die Inverse nicht explizit berechnet wird
Rang der Matrix A
Kern der Matrix A
Vordefinierte Matrizen
zeros(3,4);
eye(4);
4
2
% 3 x 4 Nullmatrix
% 4 x 4 Einheitsmatrix
Weitere nützliche Operatoren und Funktionen
floor(27.2)
ceil(27.2)
round(27.2)
% Ergibt die naechst kleinere ganze Zahl (27)
% Ergibt die naechst groessere ganze Zahl (28)
% Rundet 27.2 kaufmaennisch korrekt (27)
s=num2str(x)
t=[ ’x ist ’ s ]
disp(t)
% wandelt x in eine Zeichenkette um
% die beiden Zeichenketten verketten
% t ausgeben
[1; 2; 3;] .* [2; 3; 4;] % Komponentenweise Multiplikation der Vektoren
% Ergibt den Vektor [2; 6; 12]
sin(2*pi)
cos(2*pi)
exp(2)
%
%
% Exponentialfunktion
clear i
x=2+3*i
x*x
% Variable i loeschen, falls sie verwendet wurde
% x ist die komplexe Zahl 2+3i
% Rechnen mit komplexen Zahlen funktioniert wie erwartet
5 ZEICHNEN
3
1:5
1:.5:4
% Doppelpunkt-Operator: ergibt [1 2 3 4 5]
% Doppelpunkt-Operator: ergibt [1 1.5 2 2.5 3 3.5 4]
format long
% Ausgabe auf 15 Stellen genau
5
Zeichnen
x=[0:.1:2*pi];
y=sin(x);
plot(x,y);
plot(x,y,x,sin(x+1));
6
Kontrollstrukturen für Programme
for i=1:10
disp(i)
end
% for-Schleife: i laeuft von 1 bis einschliesslich 10
% i wird ausgegeben
if i==1
% if-Abfrage: Wenn i gleich 1 ist, dann...
disp(’i ist 1’);
else
% ansonsten....
disp(’i ist nicht 1);
end
% weitere Vergleichsoperatoren:
% < > <= >= : kleiner, groesser, kleiner gleich, groesser gleich
% == !=
: gleich, ungleich
x=[ 1 3 7 11 ];
while norm(x) > 1
x=.5*x;
end
% x ist der Zeilenvektor...
% While-Schleife: Solange die Norm von x groesser 1 ist,
% wird x mit dem Skalar .5 multipliziert
a=1;
(a < 5.0) && (a > 1.0)
(a < 5.0) || (a > 1.0)
!(a > 1)
% Und-Verknuepfung
% Oder-Verknuepfung
% Negation
Herunterladen