P. 1
Matlab

Matlab

|Views: 132|Likes:
Veröffentlicht vonsankumi

More info:

Published by: sankumi on Oct 07, 2011
Urheberrecht:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

10/07/2011

pdf

text

original

Einführung in MATLAB 5.

3
Paul Weber 22.06.99

Rechenzentrum Universität Karlsruhe

1 von 95

Was ist MATLAB?
MATLAB steht für MATrix LABoratory und ist ursprünglich als Interface zu LINPACK/EISPACK entwickelt worden: • die Objekte, auf denen MATLAB arbeitet sind matrixorientiert, d.h.
- Matrizen sind Felder mit 2 Indizes - Vektoren sind Felder mit 1 Index, also 1 x N - Matrizen - Skalare sind 1 x 1 - Matrizen

• MATLAB ist ein interaktives Programm mit einem Kommandointerpreter, die Kommandos können auch in einer Datei stehen und im Batch abgearbeitet werden = M-Files • MATLAB rechnet rechnet numerisch, Schnittstellen zu Algebrasystemen wie MAPLE werden angeboten • 2D und 3D Grafik; über ein Handle Graphics System kann man sich u.a. eigene grafische Oberflächen konstruieren • Einbinden von eigenen FORTRAN- oder C-Routinen über sog. MEX-Files ist möglich.

Rechenzentrum Universität Karlsruhe

2 von 95

Toolboxen und SIMULINK
• Sammlungen von M-Files, die für bestimmte Aufgabenstellungen gemacht sind, werden als Toolboxen angeboten, z.B. in Karlsruhe:
Control Toolbox für Regelsysteme Neural Toolbox für neuronale Netze Optimization Toolbox für Optimierungsprobleme Signal Processing Toolbox für Signalverarbeitung PDE Toolbox für partielle Differentialgleichungen Fuzzy Logic Toolbox Statistics Toolbox Wavelet Toolbox Mapping Toolbox System Identification Toolbox Financial Toolbox

• SIMULINK ist ein grafisches, blockorientiertes System zur Modellierung und Simulation dynamischer Systeme. SIMULINK-Modelle können auch aus MATLAB direkt oder über M-Files gestartet werden.

Rechenzentrum Universität Karlsruhe

3 von 95

Verfügbarkeit
Unix-Version: Floating License, im HP-Pool (Raum -122) und IBM-Pool (Raum -101) und in allen vom RZ administrierten Pools verfügbar, auf Institutsrechnern gegen Kostenbeteiligung

Rechenzentrum Universität Karlsruhe

4 von 95

Aufruf
Unter Unix: matlab5 eingeben, es erscheint der Prompt >>

SIMULINK-Aufruf:

>> simulink

Toolbox-Aufrufe:

Eingabe der entsprechenden Kommandos

Beenden von MATLAB:

>> quit oder >> exit

Rechenzentrum Universität Karlsruhe

5 von 95

Hilfe
• Nach Aufruf von MATLAB:
>> >> >> >> >> >> >> >> intro tour demo ver help helpwin lookfor helpdesk startet eine kurze Demo Vorstellung der MATLAB Produktpalette startet die MATLAB EXPO zeigt alle installierten Toolboxen und die Versionen an übliches On-Line Helpsystem

Hypertext-Dokumentationssystem unter Netscape

• Von UNIX aus: matlabdoc • Handbücher zu MATLAB, SIMULINK und den Toolboxen beim Betreuer bzw. Online

Rechenzentrum Universität Karlsruhe

6 von 95

Weitere Informationen
WWW: MathWorks Homepage: http://www.mathworks.com/ Scientific Computers: RZ Uni Karlsruhe: http://www.scientific.de/ http://www.uni-karlsruhe.de/~MATLAB/

Newsgroup:

comp.soft_sys.matlab

Rechenzentrum Universität Karlsruhe

7 von 95

Einfache Operationen
Arithmetische Operatoren: Division von links: Potenzieren: Transposition und komplexe Konjugation: +, -, *, / \ ^ ´

Beispiel:

>> 3\6 ans = 2

>> 5^3 ans = 125 Priorität der Operationen und Regeln für Klammerung wie üblich. Rechenzentrum Universität Karlsruhe
8 von 95

• Falls ein .Allgemein haben MATLAB-Kommandos die Form: [variable=]expression[. am Kommandoende eingegeben wird. Beispiel: >> x=12*3 x = 36 >> 25/5 ans = 5 >> y=7^2. wird das Ergebnis der rechten Seite in die Variable ans geschrieben. • Lebensdauer der Variablen: bis Ende der MATLAB-Sitzung >> who Your variables are: ans x y >> whos Name ans x y Size 1 by 1 1 by 1 1 by 1 Bytes 8 8 8 Class double array double array double array Grand total is 3 elements using 24 bytes Rechenzentrum Universität Karlsruhe 10 von 95 .] • Falls kein Variablenname angegeben wird. wird das Ergebnis nicht angezeigt.5. Rechenzentrum Universität Karlsruhe 9 von 95 Workspace Variable werden im Workspace (Stack) gehalten.

][-ascii][-double][-tabs] [-append] sichert die angegebenen Variablen in der Datei name. Rechenzentrum Universität Karlsruhe 11 von 95 • Zurückladen geschieht durch >> load [name[. wird in der Datei matlab.. Falls keine Variablen angegeben werden..mat gesichert.. wenn zusätzlich -double angegeben wird.] • Löschen des Workspace oder einzelner Variable: >> clear [var1 var2 . werden die Daten im ASCII-Format (8 Zeichen) gesichert. werden alle im Workspace befindlichen Variablen gesichert.] • Kompaktifizieren des Workspace >> pack Beispiel: >> x x = 36 >> clear x >> x ??? Undefined function or variable ‘x‘. werden jeweils 16 Zeichen gesichert..extension]][var1 var2 . Mit -tabs werden die Daten durch Tabulatoren getrennt.mat. Mit -append wird an eine existierende Datei angehängt.. Wenn -ascii gesetzt ist.. Rechenzentrum Universität Karlsruhe 12 von 95 . Wird kein Dateiname angegeben.• Abfrage der Variablen durch Eingabe des Namens: >> y y = 129.6418 • Sicherung des Workspace >> save [name][var1 var2 .

. ..Matrizen und Vektoren Eingabe von Matrizen und Vektoren: >> A=[a11 a12 ... an1 an2 . a21 a22 . a2n . . a1n a21 a22 .... a2n. an1 an2 .... ann] Entsprechend wird ein Zeilenvektor durch >> V=[b1 b2 . ann] oder >> A=[a11 a12 .. b n] beschrieben.. Vektoren sein... a1n. Die Matrixelemente bzw.. Vektorkomponenten können • reelle oder komplexe Zahlen • Ausdrücke • oder Matrizen bzw.. Rechenzentrum Universität Karlsruhe 14 von 95 .. bn] und ein Spaltenvektor durch Rechenzentrum Universität Karlsruhe 13 von 95 >> VT=[b1 b2 ..

Vektor Addition bzw.3 sqrt(3) 7/5*6] x= 1.r] A = 1 4 7 10 2 5 8 11 3 6 9 12 Rechenzentrum Universität Karlsruhe 15 von 95 Matrixoperationen + .4000 >> r=[10 11 12]. Subtraktion Rechenzentrum Universität Karlsruhe 16 von 95 . >> B=A‘ B = 1 4 7 2 5 8 3 6 9 >> C=A+B C = 2 6 10 6 10 14 10 14 18 Transposition beziehen sich auf die komplette Matrix bzw.3000 1.* / \ ^ ‘ Beispiel: >> A=[1 2 3.Beispiel: >> A = [1 2 3 4 5 6 7 8 9]. >> A=[A.7321 8. 7 8 9]. >> x=[-1. 4 5 6.

6667 -4.3333 6.6667 0 >> X=C/B X = 5.6667 -11.3333 11. y=x-2.0000 -14.3333 -15.3333 22. >> x*y‘ ans = 2 >> y*x‘ ans = 2 Matrixmuliplikation NxM.6667 24.0000 X*B = C -9.3333 0.6667 5.6667 -8.3333 >> x=A\y‘ x = 9.>> A*B ans = 14 32 50 32 77 122 50 122 194 >> x=[-1 0 1].0000 X ist die Lösung von A*X = B -7.0000 -8.mit MxK-Matrix inneres Produkt >> x*y ??? Error using ==> * Inner matrix dimensions must agree.3333 20. Rechenzentrum Universität Karlsruhe 17 von 95 >> X=A\B X = -0.0000 x ist die Lösung des Gleichungssystems A*x = y‘ Rechenzentrum Universität Karlsruhe 18 von 95 .0000 -8.6667 -15.

Falls p irgendeine andere Zahl ist..>> A^2 ans = 30 36 42 66 81 96 102 126 150 Potenzieren von Matrizen A^p..* . wird intern zunächst das Eigenwertproblem gelöst A*v=v*D wobei D die Diagonalmatrix der Eigenwerte ist und v der Eigenvektor.5000 2./ .^ Array Operatoren Diese Operatoren wirken bei Matrizen und Vektoren gleicher Dimension elementweise. y=[4 5 6].0000 Rechenzentrum Universität Karlsruhe 20 von 95 ..*y z = 4 10 18 >> z=x. >> z=x. Beipiel: >> x=[1 2 3]. λn) Dann folgt A^p = v * diag( λ1p λ2p .\y z = 4. D=diag( λ1 λ2 .0000 2. A muß quadratisch sein und p ein Skalar Falls p eine positive ganze Zahl ist.\ . wie oft A mit sich multipliziert wird.. λnp) / v Rechenzentrum Universität Karlsruhe 19 von 95 Operationen auf Feldelementen in MATLAB-Bezeichnung: array operations . gibt die Potenz an.

Subtraktion einer Konstanten -3 0 3 -2 1 4 Links./ .>> z=x.5000 4.0000 2.0000 3.5000 1. erfolgt die Operationen ebenfalls elementweise.0000 4.^y z = 1 32 729 >> z=x.bzw. Hier unterscheiden sich einige der Array-Operatoren nicht von den Matrix-Operatoren: {* / \} entspricht jeweils {.* .5000 Rechenzentrum Universität Karlsruhe 22 von 95 .0000 1.5000 3.5000 >> B/2 ans = 0.^[x y] z = 2 4 8 16 32 64 Rechenzentrum Universität Karlsruhe 21 von 95 Falls ein Operand ein Skalar ist.^2 z = 1 4 9 >>[x y] ans = 1 2 3 4 5 6 >>z=2.\} Beispiel: >> A-5 ans = -4 -1 2 Addition bzw. Rechtsdivision 2.

bzw. nxm .Matrix mit 1 auf der Diagonalen und sonst 0 erzeugt eine nxn .0000 2.bzw.5000 4.0000 3.Matrix mit 0 erzeugt eine nxn .0000 1.5000 2.>> 2\B ans = 0.5000 Multiplikation mit einer Konstanten >> A*5 ans = 5 20 35 10 25 40 15 30 45 Rechenzentrum Universität Karlsruhe 23 von 95 Matrix-Erzeugung >> eye(n) >> eye(n. nxm .Matrix mit gleichförmig verteilten Zufallszahlen zwischen 0 und 1 erzeugt eine nxn. nxm .m) >> zeros(n) >> zeros(n.0000 4.m) erzeugt eine nxn . Rechenzentrum Universität Karlsruhe 24 von 95 .5000 3.Matrix mit 1 erzeugt eine nxn .bzw.m) >> rand(n) >> rand(n.bzw.m) >> ones(n) >> ones(n.m) >> randn(n) >> randn(n. nxm-Matrix mit Zufallszahlen aus einer Normalverteilung mit Mittelwert 0 und Varianz 1.Einheitsmatrix erzeugt eine nxm .5000 1.

7078 -1.3834 0.5964 1.3834 Diagonalmatrix aus einem Vektor Obere Dreiecksmatrix von A 0.Matrix erzeugt mit dem entsprechenden durch das Kommando gefordertem Aussehen.3407 0.0668 0. >> ones(size(A)).8462 Inverse Matrix >> B=inv(A) B = 1.5890 0.6711 0 0 0. jeweils ebenfalls eine nxm .5890 0.4175 0.6711 0 0 >> tril(A) ans = 0.6711 0.8462 Darüberhinaus gibt es eine Reihe von weiteren Funktionen. dann wird durch >> eye(size(A)).318 2.1010 -1.0668 0.C=diag(x) C = 1 0 0 0 2 0 0 0 3 >> triu(A) ans = 0. die spezielle Matrizen erzeugen.6711 0.4175 0 0.0077 0.0777 Rechenzentrum Universität Karlsruhe 25 von 95 >> x=[1 2 3].677 -1. rand(size(A)). zeros(size(A)).8462 Untere Dreicksmatrix von A 0 0. Rechenzentrum Universität Karlsruhe 26 von 95 .Matrix.0077 0.9304 0.3887 0.9304 0.Sei A eine nxm .349 -1.6868 0.4175 0. Beispiel: >> A=rand(3) A = 0.

der die Diagonale von A enthält Rechenzentrum Universität Karlsruhe 27 von 95 >> poly(A) erzeugt einen Zeilenvektor. dessen Komponenten die Anzahl der Zeilen und Spalten von A sind. Alternativ ist M die Anzahl der Zeilen und N die Anzahl der Spalten. deren Spalten die Eigenvektoren enthalten. D ist eine Diagonalmatrix mit den Eigenwerten erzeugt einen Spaltenvektor y mit den Eigenwerten >> y=eig(A) • Determinante. gibt die Länge eines Vektors x aus gibt den Rang von A an • Matrixeigenschaften >> D=size(A) >> [M.Matrixfunktionen • Eigenwerte und -vektoren einer quadratischen Matrix A: >> [V.N]=size(A) >> length(x) >> rank(A) • viele weitere Matrixfunktionen Rechenzentrum Universität Karlsruhe 28 von 95 . charakteristisches Polynom und Spur >> det(A) >> trace(A) >> diag(A) errechnet die Determinante errechnet die Spur erzeugt einen Spaltenvektor. der die Koeffizienten des charakterischen Polynoms enthält D ist ein Zeilenvektor der Länge 2.D]=eig(A) V ist eine Matrix.

das Ergebnis ist ein Zeilenvektor. Standardabweichungen aus den Komponenten Summe und Produkt der Komponenten kumulierte Summe bzw. Kovarianzmatrix bei Matrizen Matrix der Korrelationskoeffizienten Die aufgelisteten Funktionen sind also dazu geeignet.. eine N-fache Messung einer Zufallsvariablen • einer Matrix mit N Zeilen und M Spalten. eine N-fache Stichprobe von M Zufallsvariablen Rechenzentrum Universität Karlsruhe 30 von 95 . min. prod cumsum. Die wichtigsten sind: max. Dabei • entspricht einem Vektor der Länge N. Matrixform gelistete Daten zu analysieren. Minimalwert bzw. median mean. die auf Vektoren operieren. std sum. x(n)-x(n-1)] Rechenzentrum Universität Karlsruhe 29 von 95 hist cov corrcoef Histogramm der Verteilung der Komponenten Varianz bei Vektoren. wird jede Spalte als Vektorargument genommen. cumprod sort diff Maximal-. in Vektor.. Median der Komponenten Mittelwert. Falls sie auf Matrizen angewendet werden.bzw. Produkt Sortieren in aufsteigender Reihenfolge Vektor aus den Differenzen benachbarter Komponenten: [x(2)-x(1) x(3)-x(2) .Vektorfunktionen Funktionen.

Imaginärteil. tanh asinh. conj Sinus. bzw. Kosinus. nat. wirkt die Funktion auf jedes einzelne Element des Vektors oder der Matrix. Falls ein Vektor oder eine Matrix als Argument vorkommt.6) x = 0. log. real.7273 0. Exponentialfunktion. Real.Beispiel: >> x=rand(1. atan sinh.bzw. sin.7734 >> mean(x) ans = 0.4868 >> median(x) ans = 0.2992 >> cov(x) ans = 0.5501 >> std(x) ans = 0. konjugiert komplexe einer Zahl Rechenzentrum Universität Karlsruhe 32 von 95 . cosh. exp. imag. atanh sqrt. log10 abs. dekadischer Logarithmus Absolutwert. Arccos und Arctangens hyperbolische Funktionen und deren Umkehrfunktionen Wurzel. Tangens Arcsin. tan asin.3192 0. cos.4177 0. (y(3)+y(4))/2 Standardabweichung Varianz = std(x)^2 Rechenzentrum Universität Karlsruhe 31 von 95 Skalare Funktionen Skalare Funktionen sind Funktionen. die auf einzelne skalare Variable wirken. acosh.0009 0.0895 0.6825 Mittelwert von 6 Meßwerten y = sort(x). acos.

7 9. Modulofunktion Rechenzentrum Universität Karlsruhe 33 von 95 Beispiel: y = -2.gcd. rem Signum-.8 9 3 9 3 10 4 9 4 1 1 Rechenzentrum Universität Karlsruhe 34 von 95 . lcm fix.3 3. round größter gemeinsamer Teiler.4 >> fix(y) ans = -2 0 6 >> floor(y) ans = -3 -1 6 >> ceil(y) ans = -2 0 7 >> round(y) ans = -2 0 7 >> sign(y) ans = -1 -1 1 6. kleinstes gemeinsames Vielfaches Rundungsfunktionen: kappt den Nachkommateil einer Dezimalzahl floor rundet auf die nächst niedere ganze Zahl ceil rundet auf die nächst höhere ganze Zahl round rundet entsprechend nach oben oder unten. floor. je nach dem Nachkommateil einer Dezimalzahl fix sign. ceil.1 -0.

Vergleichsoperationen In MATLAB gibt es 6 Vergleichsoperatoren: < <= > >= == ~= kleiner als kleiner oder gleich größer als größer oder gleich gleich ungleich Die Operatoren können Matrizen. Bei Vergleichen einer Matrix oder eines Vektors mit einem Skalar. je nach dem. Rechenzentrum Universität Karlsruhe 35 von 95 Beispiel: A = 5 8 0 A>=B ans = 1 1 0 A > 5 ans = 0 1 0 0 5 6 0 3 0 B = 4 6 5 9 8 5 0 6 4 0 0 1 1 0 0 0 0 1 0 0 0 Rechenzentrum Universität Karlsruhe 36 von 95 . Der Vergleich findet elementweise statt. entsprechend zugelassene Ausdrücke davon. Das Ergebnis ist eine Matrix. wird jedes Element mit dem Skalar verglichen. ein Vektor oder Skalar mit Elementen 0 oder 1. ob das Ergebnis falsch oder wahr ist. Vektoren oder Skalare sein bzw.

wo das Element von A ungleich 0 ist. 1. falls mind. falls alle Elemente ungleich 0 sind In allen anderen Fällen ist das Ergebnis Null. die ungleich Null sind. wenn eines der beiden ungleich 0 ist 0. wird diese als Spaltenvektor aus den aneinandergehängten Spalten aufgefaßt. ist das Ergebnis bei any 1. any. find Rechenzentrum Universität Karlsruhe 38 von 95 .und logischen Operationen stellt MATLAB einige Funktionen zur Verfügung. all Falls das Argument ein Vektor (oder Skalar) ist. C ist dann eine Matrix aus 0 und 1. wenn eines der beiden Elemente 0 ist | 1. Die logische Operation wird elementweise durchgeführt. wird jede Spalte als Vektor behandelt und das Ergebnis ist eine Reihenvektor aus 0 und 1. falls das Argument ein Vektor ist. Falls das Argument eine Matrix ist.Logische Operationen Die logischen Operationen sind & | ~ and or not C=A lop B A und B müssen Matrizen gleicher Dimension sein oder einer der beiden kann auch ein Skalar sein. & B= ~A Rechenzentrum Universität Karlsruhe 37 von 95 Logische Funktionen Im Zusammenhang mit Vergleichs. ist das Ergebnis ein Vektor mit den Indizes der Elemente. Falls das Argument eine Matrix ist. wo das entsprechende Element von A gleich 0 ist. wenn beide Elemente ungleich 0 sind 0. es ist 0. wenn beide Elemente 0 sind Ein Element von B ist 1. ein Element ungleich 0 ist all 1.

[i. ein M-File.bzw.j]=find(X) wobei X eine Matrix ist. wird n=100 angenommen.bzw. 1/0) falls die Matrix X leer ist. x=start:end y=linspace(x1. Spaltenindex der Elemente von X enthalten. die den Reihen.b. Entdeckt undefinierte Elemente (z. Falls n fehlt. MATLAB-Funktion existiert.B.x2. Elemente mit logarithmischen Abstand. eine SIMULINK.n) Rechenzentrum Universität Karlsruhe 40 von 95 . sonst isempty(X) = 1 =0 Rechenzentrum Universität Karlsruhe 39 von 95 Generierung von Vektoren Zur Generierung von Vektoren gibt es • die Doppelpunkt-Methode • die linspace Funktion • die logspace Funktion x=start:inkrement:end erzeugt einen n-komponentigen Vektor mit n-1=(end-start)/inkrement das Inkrement ist 1 erzeugt einen n-komponentigen Vektor mit den Elementen gleichverteilt zwischen x1 und x2.n) y=logspace(a. die ungleich Null sind. i und j sind dann Spaltenvektoren. ob eine Variable (im Workspace). Weitere Funktionen sind: exist finite Testet.

1416 Rechenzentrum Universität Karlsruhe 41 von 95 Teilfelder und Indizierung Die Doppelpunkt-Notation wird intensiv bei der Spezifikation von Teilfeldern von Vektoren oder Matrizen verwendet. und 4. Spalte A(:.0000 0. nämlich [x(v(1)).x(v(2))..x(v(n))] Die Elemente von v müssen jedoch positive ganze Zahlen sein..7854 >> z=6:-1:1 z= 6 5 4 3 1. dann ist x(v) ebenfalls ein Vektor..5708 2.m1:m2) bezeichnet die Teilmatrix von A.4) k= -3.3) A(:.Beispiel: >> x=1:5 x= 1 2 3 4 5 >> y=0:pi/4:pi y= 0. ist die 3. A(n1:n2. Ein “ :“ alleine bezeichnet den gesamten Bereich.1416 2 1 >> k=linspace(-pi.pi. da die Indizes von Vektoren und Matrizen selbst wieder als Vektoren aufgefaßt werden können.1416 -1.0472 1. die aus den Zeilen von n1 bis n2 und den Spalten von m1 bis m2 bestehen.0472 3. Spalte von A. Seien x und v Vektoren.[2 4]) Rechenzentrum Universität Karlsruhe 42 von 95 .. ist die 2.3562 3.

4777 1 2 3 4 5 6 Rechenzentrum Universität Karlsruhe 44 von 95 . so muß die rechte Seite der Zuordnung die gleiche Größe haben. Also z.4364 x= 0. die die rechte Seite vorgibt • steht dagegen links ein Teilfeld (einer Matrix oder eines Vektors). eine Matrix oder ein Teilfeld. Spalte von A durch die erste 3 Spalten von B. und 10. A(3.A(:. • rechts von einer Zuweisung bedeutet A(:) ein Spaltenvektor.7) Grundsätzliches zu Zuweisungen: • steht links von der Zuweisung eine Variable. so nimmt die linke Seite den Typ und die Größe an. Vektor oder eine Matrix bezeichnet und rechts ein Skalar. 5. wobei A eine Matrix ist. kehrt die Reihenfolge der Spalten um Ein weiteres nützliches Konstrukt mit “ : “ ist A(:). x(4). Vektor.3 4.[2 5 10])=B(:. A(:)=11:16 ergibt dann A= 11 14 12 15 13 16 Rechenzentrum Universität Karlsruhe 43 von 95 Individuelle Elemente werden durch Angabe der Indizes ausgewählt. der alle Spalten von A hintereinander verkettet.B. die einen Skalar.2727 0. dann bedeutet A(:) links von einer Zuweisung eine Umformung eines Vektors in die Form der Matrix A.5 6] b=A(:) dann folgt b=[1 3 5 2 4 6]‘ • wenn A schon existiert. Beispiel: A = 0.n:-1:1) ersetzt die 2..7665 0. A=[1 2.1:3) A(:.

0000 0.0000 0. the number of columns in A and B must be the same. entfernt die Zeilen aus X.2727 0.4777 >> C=x(2:4) C= 2 3 4 >> A(1.:) eine Matrix.4777 ??? In an assignment A(matrix.4364 0.3)>100 L ist ein Spaltenvektor mit 1 in der Reihe. v=(x<=3*std(x)) v enthält dort 1.4364 4.4777 >>A(2.7665 0.:)=x 0.:) = B.:) x=[] erzeugt eine leere Matrix. Eine leere Matrix ist eine 0x0 Matrix. die kleiner als 3*std(x) sind. der nur Elemente enthält. die aus den Reihen von A besteht. 46 von 95 Rechenzentrum Universität Karlsruhe . Beide Anweisungen können zu einer zusammengefaßt werden: x=x(x<=3*std(x)) L=X(:. die durch die Einsen in L bestimmt werden.1)=x(6) A= 6.4364 3 4 5 6 >> A(1.>> B=x B= 1 2 >> B=A B= 0.:)=x(3:4) A= 3. wo der Vergleich richtig ist x=x(v) x wird zu einem Vektor zusammengeschoben. Spalte hat. dann ist A(L.0000 4. der nur 0 und 1 als Komponenten enthält und A eine mxn Matrix.0000 0. Rechenzentrum Universität Karlsruhe 45 von 95 Sei L ein Vektor der Länge m. deren Entsprechung in X eine Zahl größer als 100 in der 3. an denen L eine 0 hat X=X(L.

A.^2 one(size(A))] eine 2nx2n Matrix. Festkomma 5 Ziffern. Rechenzentrum Universität Karlsruhe 47 von 95 Ausgabeformate Zahlen in MATLAB werden im IEEE-Format dargestellt. um dadurch größere Matrizen bzw. Spalte von A. und 4. Gleitkomma beste Darstellung von short oder short e beste Darstellung von long oder long e Hex-Darstellung auf 2 Dezimalstellen gerundet Darstellung als rationale Zahl setzt für positive Zahlen ein +. Festkomma (Default) 15 Ziffern. und die 4. also kompakter. standardmäßig auf 5 Ziffern genau. Ausgabe erfolgt mit weniger Leerzeilen. für negative Zahlen ein -. für Nullen ein Blank ein. Gleitkomma 15 Ziffern. Mit dem format Kommando lassen sich verschiedene Formen und Genauigkeiten wählen: format format format format format format format format format format short long short e long e short g long e hex bank rat + 5 Ziffern. Dann ist C=[A A‘. format compact Rechenzentrum Universität Karlsruhe 48 von 95 . Vektoren und Matrizen können zusammengesetzt werden.Beispiel: A(:.[2 4])=[] eliminiert die 2. Spalte aus A. Beispiel: A sei eine nxn Matrix. Vektoren zu erzeugen. Die Anweisung A(:.[2 4]) bezeichnet die 2.

33333333333333 0.00000123450000 1. ans enthält immer das letzte Resultat.3333 1.00000123450000 1.797693134862316e+308 3. im Gegensatz zu format compact.3333 0. die eine vorgegebene Bedeutung oder einen vorgegebenen Zahlenwert haben.234500000000000e-06 1.2204e-16 kleinste bzw.33 0. der Abstand von 1 zur nächst größeren Gleikommazahl.225073858507201e-308 1.2345e-06 1.2345e-06 1.format loose Beispiel: Ausgabe erfolgt aufgelockerter. Für IEEE-Format ist eps = 2. das nicht expilzit einer Variablen zugewiesen wurde ist die Maschinengenauigkeit.j inf.2345e-6] short short e short g long long e long g bank rat hex 1.33333333333333 0.00 4/3 1/810045 3ff5555555555555 3eb4b6231abfd271 Rechenzentrum Universität Karlsruhe 49 von 95 MATLAB stellt Konstante zur Verfügung.0000 1. größte darstellbare Gleitkommazahl: 2. Default x=[4/3 1.NaN flops Rechenzentrum Universität Karlsruhe 50 von 95 .333333333333333e+00 1.3333e+00 1.1416 stehen bei komplexen Zahlen für √−1 IEEE Darstellung für ∞ und für Not-a-Number kumulierte Anzahl der Floating Point Operationen eps realmin realmax pi i.

diese nicht mehr die Bedeutung der imaginären Einheit hat.3.date Uhrzeit. HP700) MATLAB-Version: 5. liefert die komplex Konjugierte von z liefert den Realteil von z liefert den Imaginärteil von z ist atan(b/a). z. Datum computer version Computertyp (z.clock. der Winkel bei der Polardarstellung von z liefert den Absolutwert. ii=sqrt(-1). a und b können Skalare oder auch Vektoren und Matrizen gleicher Größe sein. daß nach einer Zuweisung an i.B. Man beachte. Man kann sich eine eigene definieren.0. z=3+4*ii Rechenzentrum Universität Karlsruhe 52 von 95 . so daß z=abs(z)*exp(i*angle(z)) ist.B.10183(R11) Rechenzentrum Universität Karlsruhe 51 von 95 Komplexe Zahlen z=a+b*i z=a+b*j z=a+bi z=a+bj conj(z) real(z) imag(z) angle(z) abs(z) sind alles gleichberechtigte Darstellung von komplexen Zahlen.

y. der Ausdruck anxn + an-1xn-1 +. >> r=roots(coeff) r = -1 -1 >> poly(r) ans = 1 2 1 p1 und p2 seien 2 Vektoren. der aus r wieder die Polynomkoeffizienten berechnet (p=coeff) Rechenzentrum Universität Karlsruhe 53 von 95 Beispiel: >> coeff=[1 2 1].B.Polynome Darstellung von Polynomen durch einen Reihenvektor..r]=deconv(p3.n) das Produkt der beiden Polynome der Quotient p2 und der Rest r Ableitung des Polynoms p x und y sind Vektoren der x. y-Koordinaten von Punkten.+ a1x + a0 entspricht dem Vektor [an an-1 .bzw. a1 a0] Sei coeff ein Zeilenvektor (der ein Polynom repräsentieren soll): r=roots(coeff) p=poly(r) r ist ein Spaltenvektor... der die Koeffizienten in absteigender Reihenfolge der Potenzen der Variablen enthält. der die Nullstellen des Polynoms enthält p ist ein Zeilenvektor.p1) q=polyder(p) p=polyfit(x.p2) [p2. Dann ist p3=conv(p1.. polyfit erzeugt ein fittendes Polynom n-ter Ordnung p. Rechenzentrum Universität Karlsruhe 54 von 95 . Z. die Polynome repräsentieren.

der die Werte des Polynoms enthält.Sei p ein Polynom und x ein Vektor. x=-3:0. r red x g green + b blue (Default) o w white * k black .y sind Vektoren linetype ist eine Kombination aus -(Def) y yellow -m magenta : c cyan -. Beispiel: >> >> >> >> >> >> >> >> p=[1 -3 -6 8]. Die Argumente sind Vektoren gleicher Länge. Durch plot(x.y.‘linetype‘) x. Zusätzlich kann ein Linientyp und die Farbe eingegeben werden.1:8. y=polyval(p.x). plot(x.x) y ist ein Vektor. deren Komponenten paarweise einen Datenpunkt in der xy-Ebene definieren. plot(x. square diamond 56 von 95 Rechenzentrum Universität Karlsruhe . Dessen Elemente sollen Auswertestellen des Polynoms sein: y=polyval(p.y) wird dann ein Plot des Polynoms erzeugt.y) grid xlabel(‘x‘) ylabel(‘y‘) title(‘y=x^3-3x^2-6x+8‘) Rechenzentrum Universität Karlsruhe 55 von 95 2D-Grafik plot erzeugt xy-Plots.

>> y=1. in der alle Kurven dargestellt werden können.y) Rechenzentrum Universität Karlsruhe 58 von 95 .y1.5] geplottet werden. Beispiel: plot(x.^ > < v pentagram hexagram Um mehrere Kurven in einem Diagramm darzustellen.x.^2).‘c+‘. können mehrere Argumentsätze eingegeben werden.y2) plot(x1. plot(y) Falls nur ein Argument vorkommt. >> x=-5:0. Rechenzentrum Universität Karlsruhe 57 von 95 Beispiel: Die Funktion y = 1/(1+x2) soll im Intervall [-5.y1./(1+x.x2.y2) Bei verschiedenen Skalen wird eine gemeinsame Skala gewählt. >> plot(x.y) plot(x.1:5. werden die Komponenten von y gegen den Index geplottet.

hist(y.y) sind die Koordinaten im Diagramm legend text Rechenzentrum Universität Karlsruhe 59 von 95 gtext grid hold on hold off wie text. dann wird durch hist(y) ein Histogramm erzeugt.B. wobei das erste Argument als Winkel und das zweite Argument als Radius interpretiert wird. y-Achse erzeugt Polarplots.‘text‘) (x. Das Argument dieser Kommandos besteht aus einem Text in Hochkomma. dieses Kommando hat kein Argument aufeinanderfolgende Plots werden überlagert Histogramme Sei y ein Vektor. versieht den Plot mit einem Titel einer x-Achenbeschriftung und einer y-Achsenbeschriftung.y. text(x. nur die Position wird durch Cursor festgelegt gtext(‘text‘) erzeugt ein Gitternetz.und y-Achse erzeugt Plot mit logrithmischer x.n) es werden n Balken ausgegeben Rechenzentrum Universität Karlsruhe 60 von 95 . title(‘Dies ist eine Überschrift‘) fügt eine Legende in die Grafik ein Fügt einen Text in den Plot an beliebiger Stelle ein. in dem die Komponenten der Größe nach sortiert werden und 10 Balken ausgegeben werden.Weitere Plotkommandos sind: loglog semilogx semilogy polar title xlabel ylabel erzeugt xy-Plots mit logarithmischer x.bzw. z.

unterliegende Fläche wird eingefärbt Tortengrafik. mit explodierten Anteilen Polardarstellung von komplexen Zahlen Rechenzentrum Universität Karlsruhe 61 von 95 Funktionenplot Sei fun eine Funktion. n enthält die Häufigkeiten. in dem zwei Linientypen kombiniert werden.x]=hist(y) es wird keinPlot ausgegeben. Falls y eine Matrix mit m Spalten ist. rose bar bar3 stairs area pie compass erzeugt ein Winkelhistogramm. ggf. Rechenzentrum Universität Karlsruhe 62 von 95 . z. entweder intrinsisch oder vom Benutzer definiert. 2D und 3D erzeugt Balkendiagramme ohne interne Linien XY-Plots. wird jede Spalte als eigene Balkengruppe geplottet. Es werden Werte aus dem Definitionsbereich gewählt und von der Funktion ausgewertet. ‘-o‘ . Die Anzahl hängt von der Fehlertoleranz tol ab (Default: 1e-3). Als Marker kann eine der Linientypen gewählt werden (Default: ‘-‘). x die Positionen der Balken.tol) plottet die Funktion im angegebenen Intervall. das Argument wird als Winkelvariable aufgefaßt erzeugt Balkendiagramme.B.[xmin xmax ymin ymax].‘marker‘. Die Auswahlpunkte können als Überlagerung geplottet werden.[n. fplot(‘fun‘.

z 3 Vektoren gleicher Länge.‘linetype‘) einen Linienplot im dreidimensionalen Raum.y.[-10 10]. >> plot3(sin(t).Beispiel: >> fplot(‘sin(x)/x‘. Dann erzeugt plot3(x.cos(t). y und z jeweils einen Punkt in 3D bedeuten. bei dem äquivalente Komponenten von x.t) Überlagerungen von Plots sind möglich. y.z.‘-+‘) >> title(‘y=sin(x)/x‘) Rechenzentrum Universität Karlsruhe 63 von 95 3D-Grafik Linienplots Seien x. Beispiel: >> t=0:pi/50:10*pi. Rechenzentrum Universität Karlsruhe 64 von 95 .

surf. surfc und surfl erzeugen schattierte Flächenplots Rechenzentrum Universität Karlsruhe 66 von 95 . Funktion von X und Y erzeugt den Gitternetz-Plot Man kann auch statt der Matrizen X und Y.y.y=x.y) Z=f(X. Z=(X. y-Achse enthalten.^2-Y. Rechenzentrum Universität Karlsruhe 65 von 95 Beispiel: >> >> >> >> x=[-2:0. [X.Y]=meshgrid(x. x und y seien 2 Vektoren.bzw.und ySchnittebenen meshc meshz Fabverläufe. Bei mesh(Z) werden als x.^2) mesh(x. die die Werte entlang der x. Es werden dann die Tripel (xi.yj.Y]=meshgrid(x.Z) erzeugt zusätzlich noch Kontourplots auf der xy-Ebene erzeugt zusätzlich Referenzebenen an den x. die die Werte der xy-Ebene enthalten Z ist eine Matrix.Gitternetze Darstellung von z-Koordinaten oberhalb der Punkte eines rechteckigen Gitters in der xy-Ebene.und y-Achse die Vektorindizes verwendet.Y. axis.Zij) geplottet. Achsenskalierung und Ansichten können durch zusätzliche Kommandos kontrolliert werden (s. dazu mesh. view).Z) erzeugt 2 Matrizen X und Y.Y) mesh(X.1:2].y). die Vektoren x und y als Argumente verwenden. [X. Der Farbverlauf der Fläche entspricht dem Z-Wert.

Kontourplots contour(x.Y. >> contour3(X. Default Gouraud Shading shading flat shading faceted shading interp Die Standardansicht ist die Draufsicht auf die xy-Ebene.20)+3 Rechenzentrum Universität Karlsruhe 67 von 95 Oberflächen-Plots pcolor(x. Sie kann durch view geändert werden: view(az. jedes Zij wird entsprechend seinem Wert als farbiges Rechteck eingefärbt.n) contour(x. Jede Zelle ist schwarz umrandet.Z.el) view(2) view(3) view([x y z]) az ist der Azimuthwinkel um die z-Achse el ist der Höhenwinkel az=0. Die Farbwerte werden aus einer Farbtabelle entnommen.Z.Z. el=90 az=-37.y.^2 + Y. el=30 Winkel in kartesischen Koordinaten Rechenzentrum Universität Karlsruhe 68 von 95 .Y. die im Vektor v stehen contour3(X. Die Umrandung fällt weg.Z) pcolor(Z) Kontourplots mit Farbverläufen. Defaultwert für n: 5 erzeugt Kontourplot mit Kontourlinen an den Werten.^2).n) erzeugt 3D Kontourplots Beispiel: >> Z=sqrt(X.y.v) erzeugt Kontourplots mit n Kontourlinien.Z) pcolor(X.5.Y.Z.y.

pcolor und image erzeugt werden auf die Werte der Matrix abgebildet. die entweder im Workspace bereitsteht oder eine von MATLAB bereitgestellte Farbtabelle ist.y. die durch mesh. Die m Farben werden bei den Plots. image(x. Rechenzentrum Universität Karlsruhe 69 von 95 Farbtabellen Eine Farbtabelle (Color Lookup Table) ist eine mx3-Matrix. wobei die 3 Spalten in jeder Reihe den RGB-Anteil der Farbe festlegt. surf.Z) image(X. deren Elemente den Indizes einer (eigenen) Farbtabelle entsprechen. colormap(colm) aktiviert die Farbtabelle colm .Ein Image ist eine Matrix. schreibt die aktive Farbtabelle in die Matrix Map Map=colormap Von MATLAB werden 14 Farbtabellen zur Verfügung gestellt: hsv Standardtabelle hot cool jet colorcube pink flag copper gray lines spring summer autumn winter Rechenzentrum Universität Karlsruhe 70 von 95 .Z) image(Z) Ansonsten ähnlich wie pcolor.Y.

Pseudocolors).h. Kameraposition. d. Auf 24-Bit grafikfähigen Rechner kann MATLAB auch im TruecolorModus arbeiten. Über surf(Z.i) enthalten jeweils einen der 3 RGB-Anteile. Projektionen etc. Bei 8-Bit Grafik wird der Truecolor Modus simuliert. wobei nxm die Dimension des Gitternetzes ist. Die 3 Matrizen C(:. Die Farbzuweisung geschieht dann über den Index in der Farbtabelle.Matrix C. Beleuchtung.:. findet man im Handbuch Using MATLAB Graphics. 224 Farben ausgeben. über das geplottet werden soll.Farben Standardmäßig verwendet MATLAB 256 Farben (indexed Colors. Dazu definiert man eine mxnx3 . Andere Aspekte der 3D Grafik wie Texturen. Rechenzentrum Universität Karlsruhe 71 von 95 Achsenskalierung axis([xmin xmax ymin ymax zmin zmax])skaliert die Achsen axis(‘auto‘) axis(axis) axis(‘ij‘) axis(‘xy‘) axis(‘square‘) axis(‘equal‘) axis(‘off‘) axis(‘on‘) automatische Skalierung „friert“ die aktuelle Skalierung ein skaliert im Matrixkoordinatensystem skaliert nach Matrixwerten Plotbereich ist quadratisch Skalenfaktoren und Abstand der Skalenstriche sind gleich schaltet die Achsen aus schaltet die Achsen an Rechenzentrum Universität Karlsruhe 72 von 95 .C) wird dann die Truecolor-Matrix ausgewertet.

Beispiel: print meshdata -dps erzeugt ein PostScript-File meshdata. Man kann aber auch Teilbereiche davon abbilden. Davon ist auch die Dateinamenserweiterung ext abhängig. den Drucker an. Welche „Devices“ zulässig sind. Rechenzentrum Universität Karlsruhe 74 von 95 . Davon wird das i-te aktiviert. kann man der Ausgabe von help print entnehmen. wird es neu angelegt Standard Rechenzentrum Universität Karlsruhe 73 von 95 Subplots subplot(m. Die geschieht durch caxis([cmin cmax]) wobei cmin (cmax) jeweils die untere (obere) Grenze des Wertebereichs ist Verdeckungen hidden on hidden off mehrfache Fenster figure(n) aktiviert das n-te Fenster.dps für schwarz-weiß Bilder teilt das aktive Fenster auf in eine mxn-Matrix aus Teilfenstern.Farbskalierung Üblicherweise wird das komplette Wertespektrum auf die Farbtabelle abgebildet.ext geschrieben.n.i) Hardcopies print plotdata -device Das aktive Fenster wird in die Datei plotdata. Als Device gibt man das Grafikformat bzw. falls dieses nicht existiert.

in dem nacheinenander jede Spalte von expression der Variable var zugewiesen wird und die statements ausgeführt werden. wie alle Komponenten der expression ungleich Null bzw. end Rechenzentrum Universität Karlsruhe 75 von 95 Es gilt aber auch die bekannte Form der FOR Loop: for i=1:n statements.Programmieren von M-Files Kontrollstrukturen FOR Loops for var=expression statements end expression ist im allgemeinen eine Matrix. wahr sind. Die FOR Loop wird durchlaufen. . Üblicherweise ist expression ein Zeilenvektor und die Spalten sind Skalare: index=1:n. end WHILE Loops while expression statements end Die WHILE Loop wird solange durchlaufen. end Rechenzentrum Universität Karlsruhe 76 von 95 . Meistens liegen Vergleichsoperationen vor: while n>1 n=n-1 . for var=index statements.

. . otherwise statements end Rechenzentrum Universität Karlsruhe 78 von 95 ..IF if expression-1 statements elseif expression-2 statements .end statements end Rechenzentrum Universität Karlsruhe 77 von 95 SWITCH verzweigt in Abhängigkeit vom Wert eines Ausdrucks switch expression case value1 statements case value2 statements .break. else statements end BREAK bricht FOR.oder WHILE-Loop ab: while 1 n=n-1 if n<=0.

Die 1.m Gibt man >> filename ein. die MATLAB-Kommandos enthalten. Aufruf: >> alpha=[0:1:90]. Skripts Functions sind M-Files. Rechenzentrum Universität Karlsruhe 80 von 95 . Stadtstrasse 11 % y=sin(pi*x/180). d. bis m-te Zeile Kommentarzeilen sind. Falls die 2.Skripts und Functions M-Files sind Dateien. hier sollte die Function dokumentiert werden. bei denen Parameter mitübergeben werden. werden die einzelnen Anweisungen in dem M-File ausgeführt. werden diese nach Eingabe von help sind am Bildschirm ausgegeben. Rechenzentrum Universität Karlsruhe 79 von 95 function y = sind(x) % SIND(X) Sinuswerte der Elemente von X in Grad % Autor: Helmut Huber % Karlsruhe. • die erste Kommentarzeile (H1-Zeile) wird von lookfor nach dem geforderten Stichwort durchsucht. sind M-Files. >> beta=sind(alpha) • die Variablen x und y in der Function sind lokal • % leitet eine Kommentarzeile ein. Diese Dateien haben Namen der Form filename. die mit Namen aufgerufen und dann ausgeführt werden. Zeile beginnt mit dem Wort function.h.

[1.y)=ode23(‘lotka‘. Beispiel: function yp=lotka(t. wartet auf eine Eingabe und speichert diese in der Variablen n Rechenzentrum Universität Karlsruhe 81 von 95 global globalisiert Variable.02 [t.0.1]] plot(t.y) %LOTKA Lotka-Volterra Modell global ALPHA BETA yp=[ y(1)-ALPHA*y(1)*y(2) -y(2)+BETA*y(1)*y(2)]. Private Functions Ein Unterverzeichnis des Arbeitsverzeichnisses mit dem Namen private. >> >> >> >> >> global ALPHA.10. Primary (aufrufende) Function und Subfunctions stehen hintereinander im selben M-File. pause(n) unterbricht die Funktion für n Sekunden Rechenzentrum Universität Karlsruhe 82 von 95 .y) pause unterbricht die Abarbeitung eines M-Files bis der Benutzer eine Eingabetaste betätigt.Subfunctions Functions können selbst wieder Functions aufrufen. kann als Sammlung für eigene Funktionen dienen. Nützliche Features input n = input(‘text‘) gibt text am Bildschirm aus.BETA ALPHA=0.01 BETA=0. Help-Funktion und lookup durchsuchen nur Primary Functions. Beim Aufruf von Funktionen und M-Files im Arbeitsverzeichnis wird auch das private Verzeichnis durchsucht. Subfunctions sind lokal.

Erweitern des Suchpfades path addpath pfad zeigt den gesamten MATLAB Suchpfad an hängt ein Verzeichnis vor den MATLAB Suchpfad Rechenzentrum Universität Karlsruhe 83 von 95 Suchreihenfolge von Functions Wird ein Function-Name aufgerufen. der im Hauptspeicher verbleibt bis er durch clear function_name gelöscht wird. Ist sind eine Variable? 2. entweder direkt oder in einem MFile. >> y=‘sin(x)‘ >> eval(y) Suchreihenfolge von M-Files Gibt man den Namen eines M-Files.m im aktuelle Arbeitsverzeichnis? 4. P-Codes Files können gesichert werden durch pcode mfile mfile. Rechenzentrum Universität Karlsruhe 84 von 95 . Ist sind eine intrinsische MATLAB-Funktion? 3. Gibt es eine Datei sind. Ist der Name eine Variable? 2. ein. ist die Reihenfolge 1. sind. z.B. Durchsucht alle Verzeichnisse.B. Ist der Name im private Verzeichnis? 4.eval(‘string‘) wertet das Textargument aus.p gespeichert.m wird dann auch als mfile. Ist der Name eine Subfunktion? 3.m. so arbeitet der Interpreter folgendermaßen: 1. z. Ist der Name im MATLAB Suchpfad? P-Code Files MATLAB erzeugt beim Aufruf von M-Files und Functions einen Pseudocode (P-Code) . die im MATLAB Suchpfad eingetragen sind nach der Datei sind.

Vektor. for i=1:100 y(i)=det(X^i).1:10 y=sin(t).trace) Integration nach dem adaptiven Simpson-Verfahren fun Name der Funktion a. y(i)=sin(t).tol.b. end • Präallokierung nutzt den Workspace besser aus und vermeidet Fragmentierung Rechenzentrum Universität Karlsruhe 85 von 95 Numerische Integration MATLAB stellt 2 Funktionen zur numerischen Integration von analytischen Funktionen bereit: q= quad(‘fun‘.1:10.Performance-Aspekte • wo immer möglich. nicht jedesmal zu vergrößern: y=zeroes(1.bzw. end • Vektoren vorallokieren. Matrixoperationen statt for oder while verwenden (Vektorisierung): i=0. t=0:0.100). wird ein Plot mit den Berechnungspunkten ausgegeben quad8 Integration nach dem adaptiven Newton-Coates Verfahren Rechenzentrum Universität Karlsruhe 86 von 95 .a.b Integrationsintervall tol Rel. i=i+1. for t=0:0. in den geschrieben wird. dann braucht der Interpreter den Vektor. Fehlertoleranz (1e-3) trace falls ≠ 0.

>> y=sin(x). Euler-Verfahren Hier bietet sich die MATLAB-Funktion cumsum an. >> x=0:pi/60:2*pi. wird die zu integrierende Funktion jeweils an drei Stützstellen durch Parabeln approximiert. >> yint=cumsum(y)*pi/60. rad‘ >> gtext(‘y=sin(x)‘) >> gtext(‘Integral von sin(x)‘) Rechenzentrum Universität Karlsruhe 87 von 95 Trapezregel MATLAB stellt dazu sie Funktion trapz zur Verfügung. muß man andere Integrationsalgorithmen verwenden. Dann ist q=trapz(x. der die Simpson-Integration durchführt.y. Man kann die Funktion noch komfortabler und funktionaler machen. Sei x ein Vektor. Simpsonregel Im Simpsonverfahren.x. Rechenzentrum Universität Karlsruhe 88 von 95 .Falls die analytische Form der zu integrierenden Funktion nicht bekannt ist oder man die Stammfunktion plotten möchte. Es folgt der Kern einer Funktion.yint) >> grid >> xlabel(‘x. y=fun(x) ein Vektor mit den Funktionswerten. Davon soll hier abgesehen werden.y) das Integral nach der Trapezregel. >> plot(x.

function z=simp(x.Y) Simpson Integration der Funktion y(x). if length(x)~=n error(‘Die Eingabevektoren müssen die gleiche Länge haben‘) end if rem(n.y0) name t0. und 5. und 3. Argument muß t.y]=odenn(‘name‘.2)==0 error(‘Ungerade Anzahl an Intervallen‘) end dx=diff(x).m]=size(y). ausgewertet zu jedem Zeitpunkt t Rechenzentrum Universität Karlsruhe 90 von 95 . 1. [n.[t0 tf].y) % SIMP(X. for i=1:2:(n-2) if(abs(dx(i)-dx(i+1)))>0. Differentialgleichungen mit dem Runge-KuttaVerfahren. 2. Ordnung für Runge-Kutta 4.und Endzeitpunkt der Integration Spaltenvektor mit den Anfangsbedingungen Ausgabe: y ist der Zustandsvektor.Ordnung Adams-Bashfort-Moulton Solver Für beide Verfahren ist die Syntax: [t. Je nach Ordnung heißen die MATLAB-Files ode23 ode45 ode113 für Runge-Kutta 2. end z=z/3. Argument muß y sein Anfangs. Rechenzentrum Universität Karlsruhe 89 von 95 Differentialgleichungen MATLAB löst gew. das die Funktion definiert. X % und Y sind Zeilenvektoren der gleichen Länge.z=0.tf y0 ist der Name des M-Files. Die % Integrationsintervalle sind konstant.0001 error(‘Ungleiche Intervalle‘) end z=z+(y(i)+4*y(i+1)+y(i+2))*dx(i)).

title(‘Pendel‘).[0 2].x) dx=[-9. plot(t.t.theta) Rechenzentrum Universität Karlsruhe 91 von 95 >> >> >> >> xlabel(‘TIME‘). gtext(‘THETA‘).1].81*sin(x(2)). >> >> >> >> >> theta0=[0.Beispiel: Physikalisches Pendel Θ‘‘= -glsinΘ übliche Schulnäherung: Auflösen in 2 DGLen 1.81). y=cos(a*t).x(1)]. gtext(‘y‘). [t. a=sqrt(9.theta0). Ordnung: Anfangsbedingungen: Definiere Funktion: sinΘ ≈ Θ Θ(1)‘= Θ(2)‘= Θ(1) = Θ(2) = -glsinΘ(2) Θ(1) 0 1 function dx=pendel(t.y. Rechenzentrum Universität Karlsruhe 92 von 95 .theta]=ode23(‘pendel‘.

Rechenzentrum Universität Karlsruhe 94 von 95 . daß ode23s etwa dreimal schneller ist als ode23s Weitere Informationen speziell zur Steigerung der Performance von ODE Solver findet man im Handbuch Using MATLAB. >> y0=[1. d. >> [t. dy=a*y.-999 -1999].y]=ode23(‘stiff‘. ode15s und ode23s sind 2 Solver speziell für steife Systeme Eine Zeitmessung des o.y). Das System ist ein sog.0].h. steifes System.g.y0). Rechenzentrum Universität Karlsruhe 93 von 95 Berechnungen von steifen Systemen mit üblichen ODE Solvern können sehr lange dauern oder auch scheitern. die exakte Lösung y1=2e-t-e-1000t y2=-e-t+e-1000t zeigt sehr unterschiedliche Zeitskalen.Steife Systeme function dy=stiff(t. Problems zeigt.0].[0 1.. a=[998 1998.

oder Fortran-Routinen Im Grafikbereich • 3D Grafik: Beleuchtung.Was hier nicht behandelt wurde • • • • • • • • • Debugger Fourier Analyse und FFT Vertiefte Behandlung der ODE Solver Sparse Matrizen M-File Programmierung Daten Typen. • Bildbearbeitung • 3D Modellierung • Handle Graphics System Rechenzentrum Universität Karlsruhe 95 von 95 . Projektionen etc. insbesondere Felder und Strukturen Definition von Klassen und Objekte Ein-/Ausgabe von Daten Einbindung von eigenen C.

You're Reading a Free Preview

Herunterladen
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->