71
M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen Matrixoperationen Elementweise Operationen auf Matrizen Vektoren und Matrizen manipulieren Matrixfunktionen Programmierung Ablaufkontrolle M-Files + Scripts + Funktionen Graphik

M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

Embed Size (px)

Citation preview

Page 1: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

1Überblick

Exzerpt aus Matlab User's Guide (Version 4.0)

• Einführung

• Elementare Operationen– Matrixoperationen

– Elementweise Operationen auf Matrizen

– Vektoren und Matrizen manipulieren

– Matrixfunktionen

• Programmierung– Ablaufkontrolle

– M-Files

+ Scripts

+ Funktionen

• Graphik

Page 2: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

2Matlab (1)

• Matrix Laboratory– Matrizen, Vektoren

+ reell, komplex

+ Kompakte Vektor- Matrixnotation

+ lineare Algebra, Gleichungen lösen, Eigenwerte und -Vektoren

– Funktionen

+ math. Standardfunktionen

+ selbstdefinierte Funktionen

– Differentialgleichungen, Integration, Fouriertransformation

– Leistungsfähige 2D und 3D Grafik

• Erweiterung– Simulink. Graphisch orientiertes System zur Simulation dynamischer Systeme

Page 3: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

3Matlab (2)

• Vorteile / Nachteile+ Sehr geringer Entwicklungsaufwand

– Nützt Maschineneffizienz nicht voll aus

– Schlechte Effizienz bei nicht vektorisierbaren Problemen

• Anwendung:– numerische Probleme

ersetzt Fortran oder C

– Visualiserung von Lösungen oder Datenersetzt oft Spezialprogramme

– Entwicklung von LösungsmethodenPrototypentwicklung:erster Schritt zu Fortran/C - Programm

Page 4: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

4Matrizen, Vektoren und Skalare

• Elementares Datenobjekt:m n - Matrix (reell, komplex)

• Sonderfälle:– Skalar

1 1 - Matrix

– Zeilenvektor1 n - Matrix

– Spaltenvektorn 1 - Matrix

• Alle algebraischen Operationen definiert

• + ,-, * , /, ^, …

Page 5: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

5Matrizen eingeben (1)

• Methoden– Explizit

– In M-Files erzeugen

– Aus externen Dateien laden

– Durch Funktionen erzeugen

• Explizite EingabeEingabe: zeilenweise

A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ]

ergibt

A = 1 2 3 4 5 6 7 8 9

; oder trennt Zeilen in Matrix

definiert Variable A als Matrix

Leerzeichen oder , trennt Elementeinnerhalb Zeile

Page 6: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

6Matrizen eingeben (2)

• Durch M-FileDatei gena.m enthalte

% cat gena.mA = [ 1 2 3 4 5 6 7 8 9 ]%

Matlab-Kommando

>> gena

erzeugt Matrix A

• Externe DateienMatlab-Kommando save speichert Daten in Datei.

Kann mit load eingelesen werden

• Durch Matlab-Funktionen erzeugenBesprechung später

Page 7: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

7Matrixelemente (2)

• MatrixindizesMit runden Klammern ( )

>> A(2,1)

ans = 4

Erzeugen neuer Elemente

>> x(5) = abs(x(1))

x = -1.3000 1.7321 4.8000 0 1.3000

Zusätzliche Elemente = 0nach Bedarf eingeschoben

Page 8: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

8Blockmatrizen

• Aufbau großer Matrix aus kleinen

r = [ 10 11 12 ];A = [ A ; r ]

A = 1 2 3 4 5 6 7 8 9 10 11 12

• Submatrix

A(1:2,:)

ans = 1 2 3 4 5 6

; unterdrückt Ausgabe

Ausgabe beliebiger Ausdruckdurch Eingabe ohne ;

Page 9: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

9Statements, Ausdrücke, Variable

• Matlab - Statementvariable = ausdruck

oder

ausdruck

• Ausdruck– Einfache Variable oder Konstante

– Komplexer Ausdruckkonstruiert mit Operatoren

– Lange Ausdrücke:Fortsetzung einer Zeile mit ...

Beispiel

w = exp( i*omega*t) ... + exp(-i*omega*t)

• Syntax– Variablennamen: 19 alphanumerische Zeichen

– Groß/Kleinschreibung signifikant

Page 10: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

10Information über Variablen

• Variablen in Workspace gespeichertInfo über Workspace:

who listet alle Variablen

Detailinfo über Workspace

whos listet Variablen mit Größe, ob komplex

• Vordefinierte Variablen bzw. Funktionen eps Maschinengenauigkeit = min{ x>0 |

1+x 1 }ans letztes Ergebnis (Answer)i j imaginäre Einheitpi Zahl realmax realmin größte / kleinste darstellbare Zahlinf Unendlich. z.B. Ergebnis von 1 / 0NaN Not A Number z.B. Ergebnis von 0 / 0

u.a.

Page 11: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

11Hilfe

• On-line-Hilfehelp

ergibt...matlab/general - General purpose commands.matlab/ops - Operators and special characters.matlab/lang - Language constructs and debugging....

help general

ergibt...Managing variables and the workspace. who - List current variables. whos - List current variables, long form....

help who

gibt Detailbeschreibung zu who-Kommando

Page 12: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

12Beenden, Abspeichern der Sitzung

• Beendenquit

oder

exit

• Sitzung speichernsave name speichert alle lokalen Variablen in name.mat

save temp x speichert nur Variable x in temp.mat

• Einlesen von MAT-Fileload name lädt in name.mat gespeicherte Daten

Page 13: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

13Zahlen

• Dezimalnotation, mit ZehnerexponentenBeispiele3.14, -12, 1.6022e-19, 6.022e23

Imaginäre Zahlen3i, -3e5i

• Eigenschaften– Wertebereich: ca. 10-308 bis 10308

– Relative Genauigkeit: eps , d.h. ca. 16 Dezimalstellen

– Spezielle Werte an IEEE-Maschinen

inf Infinity: z.B. 1/0

NaN Not A Number: Undefiniertes Ergebnis, z.B. 0/0

Page 14: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

14Arithmetische Ausdrücke

• Ausdrücke: Operatoren+ Addition

- Subtraktion

* (Matrix-) Mulitplikation

/ Division

\ Division nach links: x = A \ b ist Lösung von A x = b

^ Potenz

Page 15: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

15Komplexe Zahlen und Matrizen

• Komplexe Zahlenz = 3+4*i

w = r*exp(i*phi)

• Komplexe MatrizenA = [1 2 ; 3 4] + i*[5 6 ; 7 8]

A = [1+5i , 2+6i ; 3+7i , 4+8i]

Achtung: Kein Leerzeichen!

Falls i undefiniert wurde:Wiederherstellung i = sqrt(-1)

Page 16: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

16Ausgabeformat (1)

• Format für alle weiteren Ausgaben: format - BefehlNormales Format: 4 Dezimalstellen: short-Format

>> format short

>> x = [ 1.2 3.7e-6 0 ]

x = 1.2000 0.0000 0

>> format short e , x

x = 1.2000e+000 3.7000e-006 0

>> format long , x

x = 1.20000000000000 0.00000370000000 0

>> format long e , x

x = 1.200000000000000e+000 3.700000000000001e-006 0

exakt Null

Voreinstellung

gerundet Null

Page 17: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

17Funktionen (1)

• Matlab: umfangreiche Ausstattung mit Funktionen– Eingebaut und M-Files

– Anwender kann selbst Funktionen definieren (M-Files)

– Übersicht: Siehe Kurzreferenz.u.a.:

+ Elementare mathematische (min, abs, sin, exp ...)

+ Spezielle Funktionen (bessel, erf ...)

+ Matrixfunktionen (zeros, eye ...)

+ Lineare Gleichungen (/ , \, inv, ...)

+ Differentialgleichungen lösen

+ Integration

• Argumente: runde Klammern ( )x = sqrt(log(z))

Mehrere Argumente durch , getrennt

z = gammainc(1.3,0.8)

Page 18: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

18Funktionen (2)

• Rückgabewert– ein Rückgabewert (Skalar, Vektor, Matrix)

x = max(A) Zeilenvektor mit Spaltenmaxima

– mehrere Rückgabewerte: Eckige Klammern

[V,D] = eig(A) Spalten von V: EigenvektorenD: Diagonale Matrix mit

Eigenwerten

Funktionen wissen, wieviele Ein/Ausgabeargumente sie haben(Überladen)

[x,i] = max(A) i enthält Indices der Maxima

• Regel:Matlab modifiziert nie Eingabeargumente

Eingabeargumente

Ausgabeargumente

Page 19: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

19Matrixoperationen

• Grundregel:Syntax und Bedeutung entspricht zumeistmathematischen Konventionen

Einschränkungen:Numerische GenauigkeitZeichensatz

• Übersicht– Transponieren

– Addieren, Subtrahieren

– Multiplizieren

– Dividieren: Gleichung lösen

– Potenzen

Page 20: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

20Transponieren

• Apostroph: Transponierte Matrix (reell)

>> A = [1 2 3 ; 4 5 6 ; 7 8 9 ] , B = A'

A = 1 2 3 4 5 6 7 8 9B = 1 4 7 2 5 8 3 6 9

Spaltenvektor

>> x = [ -1 0 2 ]'oder x = [ -1; 0; 2 ]

x = -1 0 2

Page 21: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

21Adjungierte Matrix

• Komplexe Matrix:Apostroph bedeutet in Wirklichkeit Adjungierte Matrix

>> k = [ 1 i ; 0 1 ]k = 1.0000 0 + 1.0000i 0 1.0000

>> k'ans = 1.0000 0 0 - 1.0000i 1.0000

Transponierte: verwende .'

>> k.'ans = 1.0000 0 0 + 1.0000i 1.0000

Page 22: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

22Addieren, Subtrahieren

• Plus, Minus : normale Matrixaddition/subtraktion– Matrixdimensionen müssen übereinstimmen

– Ausnahme: ein Operand ist Skalar wird auf alle Elemente angewandt

Seien A, B 33-Matrizen, x 31 Spaltenvektor

C = A + B Definiert 33-Matrix C

y = x - 1 y 31, y(i) = x(i)-1, i=1,3

k = A + x verboten

• Funktion sumFür Vektoren: Summe der Elemente

Für Matrizen: Zeilenvektor, der Spaltensummen enthält

Page 23: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

23Matrixmultiplikation

• Stern: Multiplikation (im algebraischen Sinn)

Skalares (inneres) Produkt von x,y

>> x' * y

4

Äußere Produkte: x*y' und y*x'

• Matrix-Vektorprodukt>> b = A * x

b = 5 8 11

• Multiplikation mit Skalar (c-Zahl): Auf jedes Element angewandtA * c

Page 24: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

24Division von Matrizen

• Zwei Matrixdivisionszeichen\ Division nach links

/ Division nach rechts

• BedeutungX = A \ B heißt formal: X = inv(A)*B

implementiert effizient als Lösung des Gleichungssystems

A*X = B

x = A / B heißt formal: X = A*inv(B)implemtiert als Lösung vonX*A = B

Es gilt: B/A = (A'\B')'

• Anwendung: Lösen von GleichungssystemenSei A nn und b n1

Erhalten Lösung x von A x = b alsx = A \ b

k Simultane Gleichungssysteme: b ist nk, Spalten von k sind Inhomogenitäten Spalten von x sind Lösungen

Page 25: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

25Lösung von Gleichungssystemen: Hinweise

• Effizienz, GenauigkeitFür Gleichungssysteme immer Matrixdivision,

nie Inversion!

Vergleich:Division: x = A \ bInversion: x = inv(A) * b

Zufallsmatrix Flops Genauigkeit

100100 Division 7105 510-14

100100 Inversion 2106 410-14

10001000 Division 7108 510-13

10001000 Inversion 2109 310-12

• Schwach besetzte MatrizenSparse Matrices (Matrizen mit vielen Null-Elementen) können in Matlab definiert

und sollten verwendet werden.

Beispiel: Partielle Differentialgleichung mit Finiten Differenzen (z.B. Poissongleichung aus Teil 1: SOR-Verfahren überflüssig)

Page 26: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

26Potenzen von Matrizen

• Zirkumflex: MatrixpotenzDefiniert für quadratische Matrizen

Natürliche Exponenten

A^n A * A * ... * A (n-mal)

Reelle Exponenten: Definiert über Spektraldarstellung

Ist

[V,D] = eig(A)

dann gilt

A^p V * D.^p / V

Elementweise Potenzierung(nächster Abschnitt)

Page 27: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

27Weitere Matrixfunktionen

• Analytische Matrixfunktionen:Definition über Spektraldarstellung

Achtung: Elementare Funktionen (exp, log, ...) operieren elementweise

Vordefinierte Matrixfunktionen

expm, logm, sqrtm Matrix-Exponential, -Logarithmus, -Wurzel

funm(A,'fun') Matrix-Funktion fun

• Weitere Funktionendet, inv Determinante, Inverese

trace Spur

poly Charakteristisches Polynom

Page 28: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

28Elementweise Matrixoperationen

• Array-Operationen:Matrixelemente werden einzeln verknüpft

• Notation:Punkt (.) vor Operator

• Übersicht– Addition, Subtraktion, Multiplikation, Division

– Vergleichsoperationen

– Logische Operationen

– Mathematische Funktionen

Page 29: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

29Binäre elementweise Operationen

• Addition, SubtraktionMatrixoperation elementweise definiert

• Multiplikation, Division.* bedeutet elementweise Multiplikation

./ .\ elementweise Division nach rechts / links

Beispielx = [ 1 2 3 ] ; y = [ 4 5 6 ]z = x .* y

z = 4 10 18

• Potenzierung.^ bedeutet elementweise Potenzierung

(ein oder beide Operanden Skalar oder Vektor)

z = x .^ y z = 1 32 729z = x .^ 2 z = 1 4 9z = 2 .^ x z = 2 4 8

Page 30: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

30Vergleichsoperationen (1)

• Sechs Operatoren vergleichen Matrizen mit gleicher Dimension< kleiner als

<= kleiner oder gleich

> größer als

>= größer oder gleich

== gleich

~= ungleich

• BedeutungMatrixelemente paarweise verglichen

Ergebnis: Matrix gleicher Dimension mit Elementen ...

1 "wahr"

0 "falsch"

Page 31: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

31Vergleichsoperationen (2)

Beispiele>> 2 + 2 ~= 4

ans = 0

Erkennen von Regelmäßigkeiten

>> a=magic(3)a = 8 1 6 3 5 7 4 9 2

>> p=(rem(a,3)==0)p = 0 0 1 1 0 0 0 1 0

Anwenden von Operationen auf ausgewählte Matrixelementei = find(Y > 3.0); Gibt Indizes von Elementen > 3Y(i) = 10 * ones(i); Indexvektor nächster Abschnitt

Ersetzt alle Elemente von Y größer als 3 durch 10

Page 32: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

32Logische Operationen

• Drei logische Operatoren& und (binär)

| oder (binär)

~ nicht (unär)

• BedeutungMatrixelemente werden paarweise mit null verglichen

Ergebnis

& Ergebnis 1, wenn beide Elemente 0, sonst 0

| 0, wenn beide Elemente 0, sonst 1

~ 1, wenn Element 0, sonst 0

• Funktionen all und anyall(x) Ergebnis 1, wenn alle Elemente von x 0, sonst 0

any(x) 0, wenn alle Elemente 0, sonst 1

Anwendung in Programmenif ( all(a > 3) ) .....end

Page 33: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

33Logische Funktionen

• Logische FunktionenVektorargumente: Ergebnis ist Skalar

Matrixargumente: Ergebnis ist Zeile mit Ergebnissen spaltenweiser Operationen Zweimalige Anwendung gibt immer Skalar

Unter anderem ...

any - Quantor

all - Quantor

find gibt Array-Indices von Elementen 0

isnan entdeckt NaN

isinf entdeckt Unendlich

isempty Matrix ist leer (00)

Page 34: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

34Leere Matrizen

• Leere (00) Matrizen– gültige Werte für Variablen

– Viele Operationen liefern plausible Werte

• Erzeugung: Leere eckige Klammern []x = [] Definiert Variable x als 00 Matrix (gültig)

Unterscheide

clear(x) Löscht Variable x aus Workspace

• Entfernen von Teilen einer MatrixA(:,[2 4]) = [] Entfernt Spalten 2 und 4

• Entstehen leerer Matrix (Beispiele)n=0; x=1:n

x=input('Wert x eingeben ') und Leereingabe des Benutzers

• Entdecken leerer Matrixisempty(x)

Page 35: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

35Spezielle Matrizen

• Wichtig in Erzeugung von MatrizenSpezielle Matrixfunktionen (Argumente s.u.):

zeros Nullmatrix

ones Einsmatrix (alle Elemente 1)

eye Identitäts- (Einheits-)matrix

rand Zufallsmatrix (gleichverteilt)

Argumente:

zeros(size(A)) Nullmatrix mit Dimension von A

eye(n) nn Einheitsmatrix

rand(m,n) mn Zufallsmatrix

Weitere:

diag(V,k) Erzeuge Diagonalmatrix:Matrix, deren k-te Diagonale

Elemente von V sind, sonst 0

linspace(a,b,n) Zeile mit n zwischen a und b linear verteilten Elementen

meshgrid(u,v) In Funktionen von zwei Variablen verwendet

Page 36: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

36Matrizen manipulieren

• Größere MatrizenMit Blockmatrixnotation erzeugen. Beispiel:

Sei A quadratisch

C = [ A A' ; ones(size(A) A.^2 ]erzeugt doppelt so große Matrix

• Rotieren, Spiegeln, Form ändern, Teil extrahierenrot90 Rotieren

fliplr An vertikaler Achse spiegeln

flipud An horizontaler Achse spiegeln

diag Extrahiere (oder erzeuge) Diagonale

tril Untere Dreiecksmatrix

triu Obere Dreieckmatrix

reshape Form ändern

' transponieren

: Allgemeineres Umarrangieren

Page 37: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

37Matrixfunktionen (Auswahl)

• SpektralzerlegungSei A nn - Matrix

Eigenwerte und Eigenvektoren x , definiert durch

A x = x

werden berechnet als

[X,D] = eig(A)

i-te Spalte von X ist Eigenvektor xi zu Eigenwert i = D(i,i)

• Norm, Rang, Konditionszahlcond Konditionszahl in 2-Norm (falls >> 1 Matrix singulär)

norm 1-, 2-, F- und -Norm

rank Rang

rcond Schätzung reziproke Kondition (LINPACK) (falls 0 singulär)

Page 38: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

38Integraltransformationen

• Faltung und Kovarianzconv Faltung

deconv Entfaltung

cov Kovarianz

• 1-dimensionale Fouriertransformationfft Fouriertransformation

ifft Fourierrücktransformation

fftshift Vertausche Quadranten

• 2-dimensionale Fouriertransformationfft2 2-D Fouriertransformation

ifft 2-D Fourierrücktransformation

fftshift Vertausche Quadranten

• Siehe auch Signal Processing Toolbox

Page 39: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

39Automatisierung

Matlab: ProgrammierspracheAnwendung: in M-Dateien

• Ablaufkontrollefor Schleifen

while Schleifen

if Bedingungen

break Ausprung

• M-DateienScripts

Funktionen

• Eigene Programmeecho, disp, input, pause, keyboard : Interaktion mit Benutzer

Globale Variablen

Zeichenketten

eval : Text als Befehl ausführen

Effizienz

Page 40: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

40for - Schleifen

Syntax for variable = vektor ... Matlab Statements ...end

Bedeutungvariable durchläuft Elemente von vektor und Schleifeninhalt wird ausgeführt.

Genauer: Rechte Seite ist Matrix, variable erhält nacheinander Spalten der Matrix zugewiesen

Beispielfor i = 1:n , x(i) = 0 , end

Verschachteln: Beispiel Hilbertmatrix for i = 1:m for j=1:n A(i,j) = 1/(i+j-1); endend

Unterdrückt Ausgabeunvollständiger Matrizen

Page 41: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

41while - Schleifen

Syntax while ausdruck ... Matlab Statements ...end

Bedeutungausdruck (Vergleichsausdruck) wird ausgewertet.

Falls 0 (wahr), wird Schleifeninhalt ausgeführt.Solange Wiederholung, bis ausdruck = 0

Beispiel: Iteration delta = 1.e-5;err = realmax;oldy = realmax;

while err > delta ... berechne y ... err = abs ( y - oldy );end

Page 42: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

42if - elseif - else - Bedingungen

Syntax if ausdruck1 ... Matlab Statements 1 ...elseif ausdruck2 ... Matlab Statements 2 ...else ... Matlab Statements 3 ...end

Bedeutungausdruck1 (Vergleichsausdruck) wird ausgewertet. Falls 0, werden

Statements 1 ausgeführt. Sonst wird ausdruck2 ausgewertet etc.Ist kein Ausdruck wahr, wird else - Block ausgeführt, falls vorhanden.

Beispiel if rem (k,2) == 0 coeff = (a-1)^kelse coeff = a^kend

elseif optionell

else optionell

Page 43: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

43break - Schleife abbrechen

Syntax for oder while ... ... break ...end

BedeutungSchleife wird verlassen. Meist ist break in einer if-Bedingung

Beispiel (3n+1 - Problem) while 1 n = input (' Eingabe n '); if isempty(n), break, end while n > 1 if rem(n,2) == 0 n = n/2 else n = 3*n+1 end endend

Bei Leereingabe Aussprung

Page 44: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

44Programmierung von Matlab

• Matlab = Interpreter– Interaktive Verwendung:

Benutzer gibt Kommandos ein

Matlab führt sie aus

– Matlab - Programme

Matlab führt Kommandos in Datei aus

• M-Datei– Dateiname mit Endung .m

– Erstellung mit Texteditor

– Enthält Folge von Matlab-Kommandos

– M-Dateien können andere und sich selber rekursiv aufrufen

– Datei name.m definiert Kommando name

– Zwei Arten

+ Script

+ Funktion

Page 45: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

45Matlab - Scripts

• Script– M-Datei mit Matlab-Kommandos

– Kommandos wirken auf Daten im Workspace

– Oft: Hauptprogramm

• BeispielFibonaccizahlen

>> type fibo.m% fibo.m : erzeuge Fibonaccizahlen < 1000f = [ 1 1 ]; i = 1;while f(i) + f(i+1) < 1000 f(i+2) = f(i) + f(i+1); i = i + 1;endplot(f)

>> fibo

Dateifibo.m

Dateiname als Kommando:führt Kommandos in Datei ausDanach sind f und i im Workspace%-Zeichen:

Kommentar

Page 46: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

46Start-Scripts

Beim Start von Matlab

• matlabrc.mZentrale Initialisierungsdatei

• startup.mBenutzerdefinieres Script startup.m

Gesucht an zwei Stellen:

./startup.m

Falls nicht vorhanden:

$HOME/matlab/startup.m

Anwendung:Initialisierung von Konstanten etc.

Page 47: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

47Funktionen (1)

• Funktion– M-Datei, die mit Wort function in erster Zeile beginnt

– Funktionsdatei name.m definert neue Funktion name

– Hat Ein- / Ausgabeparameter

– Wirkt auf Daten in eigenem (lokalem) Workspace

– Anwendung

+ Großer Teil von Matlab = M-Dateien

+ Erweiterung von Matlab

Page 48: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

48Funktionen (2)

• Beispiel:Datei mean.m

function y = mean(x)%MEAN Mittelwert% Für Vektoren gibt mean(x) Mittelwert% Für Matrizen gibt mean(x) Zeilenvektor% mit Spaltenmittelwerten

[m,n] = size(x)if m == 1 , m = n , endy = sum(x) / m

>> mean(1:99)

50

mean.m = Funktions-M-Dateiy = Ausgabeparametermean = Funktionsnamex = Eingabeparameter

Kommentar:Hilfstext (help mean)

Variablen m,n, y lokal in mean

Page 49: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

49Funktionen (3)

• Mehrfache Ein- / Ausgabeparameterfunction [aus1, aus2] = fun (ein1, ein2, ein3)

Beispiel

function [mean, stdev] = stat (x)

[m,n] = size(x);if m == 1 , m = n ; end

mean = sum(x)/m;stdev = sqrt(sum(x.^2)/m - mean.^2);

Page 50: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

50Interaktion mit Benutzer

echo, disp, input, pause, keyboard

• echoGib Kommandos am Schirm aus

• dispGib Wert am Schirm aus

disp (x)

Falls x Text enthält, wird dieser ausgegeben

• inputErwarte Wert von Benutzern = input('Eingabe n ')

• pauseHalte an und warte auf Tastendruck. pause(n) wartet n Sekunden

• keyboardNimm Benutzereingabe als Script

Page 51: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

51Globale Variablen

• Jede Matlab-Funktion hat eigene Variablen

• Manchmal: mehrere Funktionen - gemeinsame VariablenDefiniere globale Variablen

Syntaxglobal VAR1 VAR2Heißt, daß VAR1 und VAR2 einem speziellen globalen Workspace angehören

Global-Definitionen erforderlich in:

+ Allen Funktionen, die globalen Wert von VAR1 und VAR2 verwenden

+ Falls nötig: Basisworkspace

Beachte:

+ Funktionen, die VARi nicht global definieren,verwenden lokale Variable ( 3.5)

Konvention:

+ Globale Variablen werden oft in Großbuchstaben geschrieben

Page 52: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

52Zeichenketten

• Zeichenketten zwischen Einfachapostrophen>> s = 'Hallo';

Abspeicherung: Zeilenvektor von ASCII-Werten

>> size(s)

1 5>> abs(s)

72 97 108 108 111

Konkatenieren: Blockmatrixnotation

>> s = [ s, ' da!' ]

s = Hallo da!

• Zeichenkettenbezogene Funktionendisp An Schirm ausgeben

isstr Stelle fest, ob Zeichenkette

strcmp Vergleiche Zeichenketten

num2str, int2str, sprintf Verwandle Zahl in Zeichenkette

Page 53: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

53Die Eval-Funktion

Leistungsfähige Makrofunktion

• FunktionSei t Zeichenkette mit Matlab-Kommando.

eval(t)

führt Text in t als Kommando aus

• Beispiel: Hilbertmatrix t = '1/(i+j-1)'for i = 1:n for j = 1:n a(i,j) = eval(t) endend

• Beispiel: Funktionen numerieren spiele = ['schach'; 'dame '; 'mühle '; 'go '];k = input('Spielnummer eingeben: ');eval(spiele(k,:))

Beachte Leerzeichen(Matrix rechteckig!)

Page 54: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

54Effizienz (1)

• Geschwindigkeit– Eingebaute Funktionen

mehr als 1 Größenordnung schneller als Interpreter

– Vektorisiere Algorithmen wenn Effizienz nötig ist!

Beispiel:

statt

i = 0;for t = 0:0.01:10 i = i + 1; y(i) = sin(t);end

verwende

t = 0:0.01:10;y = sin(t)

Page 55: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

55Effizienz (2)

• Vektoren– Falls Vektorisierung unmöglich:

reserviere Platz für Resultatsmatrizen/vektoren

Beispiel:

verwendey = zeros(1,100);for i = 1:100 y(i) = det(X^i);end

viel schneller als wenn erste Zeile fehlte (und y wachsen müßte)

• Speicher– Löschen von Variable fragmentiert Speicher

(außer der letzten Variablen)

– Vergrößern von Vektoren führt zu Neuzuweisung Fragmentierung

– Funktionsargumente werden erst in lokalen Workspacekopiert, wenn man sie ändertKein Speicherproblem mit großen Argumentvariablen

Page 56: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

56Funktionale

• Funktionen mit Funktionen als Argumente– Numerische Quadratur (Integration)

quad Bestimmtes Integral von Funktion einer Variable

quad8 - " - , höhere Ordnung

– Nichtlineare Gleichungen, Optimierung

fmin Minimiere Funktion einer Variable

fmins Minimiere Funktion mehrerer Variablen (umbeschränkt)

fzero Nullstelle Funktion einer Variable

– Numerische Integration von Differentialgleichungen

ode23 2. u. 3. Ordnung Runge-Kutta Integration

ode45 4. u. 5. Ordnung Runge-Kutta-Fehlberg Integration

– Optimization Toolboxweitere Optimierungsfunktionen

Page 57: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

57Quadratur

• Numerische IntegrationBeispiel:

>> type kreis.mfunction k = kreis(x)k = sqrt(1 - x.^2);

Integriere

>> 4*quad('kreis',0,1) - piRecursion level limit reached in quad. Singularity likely.ans = -2.7014e-05

Methode höherer Ordnung

>> 4*quad8('kreis',0,1) - pians = -1.5979e-07

Funktionsname als Zeichenkette

Page 58: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

58Optimierung, Nullstellen

• Suche nach Minima einer FunktionBeispiel

>> type ord4.mfunction s = ord4(x)s = x.^4 - 4 * x.^2 + x;

>> x = linspace(-2.5,2.5);

>> plot(x,ord4(x));

>> fmin('ord4',-3,3)ans = -1.4730

• Suche nach Nullstellen

>> fzero('ord4',0.1)

ans = 2.9512e-017 Schätzwert

Page 59: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

59Differentialgleichungen (1)

• Lösung eines expliziten Systems gekoppelter Differentialgleichungen(Anfangswertproblem)

y '( t ) = f ( t, y )

ode23 und ode45

[t, y] = odexy(F, t0, tend, y0, tol)

Ableitung fystrich = fun(t,y)wobeiF == 'fun'

Anfangswert von t

Endwert von t

Anfangswert von y

Genauigkeit

Page 60: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

60Differentialgleichungen (2a)

• Beispiel: Mathieu-DifferentialgleichungPendel mit periodisch bewegter Aufhängung

" = ( a - b sin( t ) ) sin( )

>> type pendel.mfunction phip = pendel(t,phi)% Gleichung für Pendel mit% beweglicher Aufhängung:% phi" = ( a - b sin(t) ) sin(phi)% phi = [ phi; phi' ]global a bphip = [ phi(2) (a-b*sin(t)).*sin(phi(1)) ];

>> global a b , a = 1; b = 0.5;

>> [t,phi] = ode23('pendel', 0, 100, [0;0.1]);

Page 61: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

61Differentialgleichungen (2b)

• Beispiel: Mathieu-DifferentialgleichungPendel mit periodisch bewegter Aufhängung

" = ( a - b sin ( t ) ) sin ( )

>> type pendel.mfunction phip = pendel(t,phi)% Gleichung für Pendel mit% beweglicher Aufhängung:% phi" = ( a - b sin(t) ) sin(phi)% phi = [ phi; phi' ]global a bphip = [ phi(2) (a-b*sin(t)).*sin(phi(1)) ];

>> global a b , a = 1; b = 0.5;

>> [t,phi] = ode23('pendel', ... 0, 100, [0;0.1]);

>> plot(t,phi)

>> plot(phi(:,1),phi(:,2))

Besitzt chaotische Lösungen

Page 62: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

62Graphik (1)

Übersicht

• Struktur:Graphikobjekte (Linien, Oberflächen)

Manipulation der Objekte möglich, nicht erforderlich

• 2-D-GraphikZeichnen

plot 2-D-Plot von Vektoren oder Spalten von Matrizen

Beschriften

title, xlabel, ylabel, text Titel, Achsenbeschriftung, bel. Text

Wertebereiche

axis Einstellen der Wertebereiche für Achsen

Page 63: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

63Graphik (2)

• 3-D-GraphikWertepaare erzeugen

meshgrid

Höhenlinien zeichnen

contour, contour3

3-D-Plots

mesh, meshc, meshz 3-D-Linienplot, mit Höhenlinien, mit

Nullebene

surf, surfc 3-D-Oberfläche, mit Höhenlinien

Beschriften

title, xlabel, ylabel, zlabel, text Titel, Achsenbeschriftung, bel. Text

clabelHöhenlinienbeschriftung

Wertebereiche

axisEinstellen der Wertebereiche für Achsen

Page 64: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

642-D-Plot

• plot - Funktionplot(y) Zeichnet Spalten von Matrix

y gegen Index

plot(x,y) Zeichnet Vektor y gegen Vektor xx oder y Matrix: Zeilen oder Spalten werden gegen

Vektorgezeichnet

Beispiel:

t = linspace(0,2*pi);

x = sin(t);y1 = sin(t+0.25);y2 = sin(t+0.5);

plot(x,y1,'r-',x,y2,'g--');

Linie rot, durchgezogen

Linie grün, strichliert

Page 65: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

65Beschriften, Linienstil

• Plots beschriften (nach Plot-Kommando!) title('Phasenverschiebung')ylabel('y = sin(t+phi)')xlabel('x = sin(t)')

• Linienstileplot(x,y,stil)

stil ist 1-3 Zeichen. Bedeutung:

Farben:y m c gelb, magenta, cyanr g b rot, grün, blauw k weiß, schwarz

Punkte markieren:. o x Punkt, Kreis, X+ * Kreuz, Stern

Linienart- durchgezogen: punktiert-. strichpunktiert-- strichliert

Page 66: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

66Neue Linien zu bestehender Zeichnung

• Das hold-Kommando plot(x)hold onplot(y1,'--')plot(y2,'-.')hold off

Page 67: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

67Wertebereiche ändern

2- und 3-D-Plots finden Wertebereiche automatisch

Ändern:axis Wertebereich für aktuelle Zeichnung erfragen und setzen

Anwendung: nach Plot-Kommando zu gebenaxis([xmin, xmax, ymin, ymax]) Setze

Limits explizit

axis([xmin, xmax, ymin, ymax, zmin, zmax]) (für 3-D-Plots)

axis('auto') Schalte automatische Skalierung wieder ein

v = axis Merke aktuelle Limits in v. Später...

axis(v) Setze Limits auf gemerkten Wert

axis(axis) Friere Achsen auf aktuellen Wert ein

axis('ij') Matrixmodus: Urprung links oben, i-Achse , j-Achse axis('xy') Kartesisch (Voreinstellung): Ursprung links unten.

axis('square') Beide Achsen gleich lang

axis('equal') Beide Achsen selber Maßstab

axis('off') Schalte Achsenbeschriftung aus

axis('on') Schalte Beschriftung wieder ein (Voreinstellung)

Page 68: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

68Funktionen zeichnen

• Direkte Methode: plot x=(0:1/200:1)';plot(x,cos(tan(pi*x)))

Problem:Funktion oszilliert schnellWerte werden ausgelassen

• Funktion plotten: fplotErzeuge Datei osz.m mit Funktionfunction y = osz(x)y = cos(tan(pi*x));

und verwende fplotfplot('osz',[0 1], ... 25,20,10)

Max. SubunterteilungenMax. KnickwinkelMin. Unterteilungen

optionell

Page 69: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

693-D-Graphik

• Beispiel:sin(r)/r x = -8:0.5:8;y = x;[X,Y] = meshgrid(x,y);R = sqrt(X.^2+Y.^2+eps);Z = sin(R)./R;mesh(X,Y,Z)

Page 70: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

70Animation

• Für schnelle Wiedergabe kurzer Sequenzen: Movie-Funktion

• Sonst: Anwendung objektorientierter Graphik % Lissajou-Figurenclf;m=input('m= ');n=input('n= ');x=linspace(0,2*pi,1000);

p=plot(sin(m*x),sin(n*x),'k','EraseMode','None');

axis([-1.1,1.1,-1.1,1.1]);while 1for delta=linspace(0,2*pi,40*max(m,n)) y=sin(n*x-delta);

set(p,'Color','k');

set(p,'Ydata',y);

set(p,'Color','y'); drawnow;endend

Kurve bleibt inSchirmspeicherstehen

Lösche Kurve: Setze Farbe schwarz

Ändere Daten

Mache neuen Graph sichtbar

Merke Graphikobjekt "Kurve"

Page 71: M.F. + H.R. MATLAB 1 Überblick Exzerpt aus Matlab User's Guide (Version 4.0) Einführung Elementare Operationen –Matrixoperationen –Elementweise Operationen

M.F. + H.R.MATLAB

71Beispiel zur Numerik

Endliche Genauigkeit der ZahlendarstellungStelle ( x - 100 )3 im Intervall [ 100 - , 100 + ] ( = 0.001 )

auf drei Arten berechnet graphisch dar:

1. In faktorisierter Formfunction y = yfac(x)y = ( x - 100 ) .^ 3;

2. Hornerschemafunction y = yhor(x)y = x.*(x.*(x - 300) + 30000) - 1000000;

3. Ausmultipliziertfunction y = yexp(x)y = x.^3 - 300 * x.^2 + 30000 * x - 1000000;

Erkläre Effekt und Größenordnung

Wie wirkt dieser sich z.B. auf Nullstellensuche aus?