Matlab Praktikum Dipl.-Math. Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Praktikumsübersicht Teil 1 Erste Schritte in Matlab Einführung und Motivation Einfaches Rechnen Rechnen mit Vektoren und Matrizen Teil 2 Vertiefter Umgang mit Matlab Anwendungen zur Matrix und Vektorrechnung Weitere Datentypen Programmieren Teil 3 Funktionen in Matlab Funktionen m-Files Debuggen 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Praktikumsübersicht Teil 4 Graphische Ausgaben mit Matlab 2D Plots Gestalten von Graphikausgaben Mehrdimensionale Plots Animationen Teil 5 Erweiterungen von Matlab Toolboxen Graphische Oberflächen Profiler Teil 6 Projekt Selbstständiges Bearbeiten einer mathematischen Fragestellung mit Hilfe von Matlab 28.03.2017 Dipl.-Math Zülfü Taskesen
Einführung und Motivation Was ist Matlab? MATrix LABoratory Matlab ist ein Softwarepaket für numerische Berechnungen und zur Visualisierung; wurde in den 1970er Jahren zur Unterstützung von Kursen der Linearen Algebra und numerischen Analysis entwickelt. 28.03.2017 Dipl.-Math Zülfü Taskesen
Einführung und Motivation Was kann Matlab? Matlab bietet eine einfache Syntax basierend auf dem Matrix-Datentyp; ein breites Spektrum mathematischer Funktionen und Algorithmen aus verschiedenen Anwendungsbereichen; eine plattformübergreifende Programmiersprache; einfach zu bedienende Visualisierungsmöglichkeiten. 28.03.2017 Dipl.-Math Zülfü Taskesen
Einführung und Motivation Matlab starten Nach erfolgreichem Start erscheint ein dreigeteiltes Fenster bestehend aus Eingabefenster (Command Window): Hier werden die Matlab Befehle eingegeben; Workspace Fenster: Zeigt die definierten Variablen an; History Fenster: Zeigt die zuletzt eingegebenen Befehle an; 28.03.2017 Dipl.-Math Zülfü Taskesen
Einfaches Rechnen in Matlab Beispiel: Berechne zu einem Kreisradius r die Fläche und den Umfang des Kreises. >> r = 3 r = 3 >> A_Kreis = r ^2* pi A_Kreis = 28.2743 >> U_Kreis = 2* r*pi U_Kreis = 18.8496 28.03.2017 Dipl.-Math Zülfü Taskesen
Einfaches Rechnen in Matlab Elementares Rechnen in Matlab: Variablen werden durch Zuweisungen eines Wertes mit ”=” definiert. Namen müssen mit einem Buchstaben anfangen und dürfen Buchstaben, Zahlen und den Unterstrich enthalten. Dabei wird Groß- und Kleinschreibung berücksichtigt. Die Grundrechenarten sind durch die Zeichen +,−,*, /,^, ( potenzieren) definiert. Bei den Operatoren gilt die übliche Auswertungsreihenfolge: Potenzieren vor Punktrechnung vor Strichrechnung. Auswertungsreihenfolgen können durch Klammerung geändert werden. 28.03.2017 Dipl.-Math Zülfü Taskesen
Elementare Funktionen in Matlab Es gibt eine Vielzahl elementarer Funktionen in Matlab: exp, pow2 Exponentialfunktion zur Basis e bzw. 2 log, log10, log2 Logarithmus Funktionen sqrt, realsqrt Wurzelfunktionen sin, cos, tan Trigonometrische Funktionen asin, acos, atan Inverse der trigonometrischen Funktionen sinh, cosh, tanh Hyperbelfunktionen asinh, acosh, atanh Area Hyperbolicus Funktionen round, floor, ceil runden, abrunden, aufrunden mod, rem, sign Modul, Divisionsrest, Vorzeichen 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Konstanten in Matlab In Matlab sind einige spezielle Zahlen definiert: realmin, realmax kleinste bzw. größte darstellbare Gleitpunktzahl eps relative Genauigkeit von Gleitpunktzahlen inf, -inf ± unendlich NaN Not a number, nicht definierter Ausdruck, z.B. 0/0 pi Kreiszahl p i, j imaginäre Einheit 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Variablen in Matlab In Matlab werden Variablen durch Zuweisungen ohne vorherige Deklaration angelegt. In einem Workspace definierte Variablen können mit den Funktionen who und whos angezeigt werden. Durch Variablendefinition können vorhandene Matlab Funktionen und Variablen überschrieben werden. Mit clear <Variablenname> bzw. clear kann eine Variable bzw. alle Variablen im Workspace gelöscht werden. 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Komplexe Zahlen Komplexe und reellwertige Zahlen können in Matlab gleichzeitig ohne besondere Deklaration verwendet werden. Real- und Imaginärteil einer Zahl können mit den Funktionen real bzw. imag bestimmt werden. Der Betrag einer komplexen Zahl kann mit abs bestimmt werden. Vorsicht mit den Variablen i und j: 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Ausgabeformatierung Die Ausgabeformatierung kann mit format angepasst werden. format loose: Darstellung mit großen Abständen format compact: kompakte Darstellung format short: Festpunktdarstellung mit 5 Stellen format long: Festpunktdarstellung mit 15 Stellen format e: Gleitpunktdarstellung mit 5 Stellen format long e: Gleitpunktdarstellung mit 15 Stellen format rat: Rationale Näherung 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Einfache Skripte Matlab Befehle können in Textdateien mit Endung .m gespeichert und im Workspace durch Eingabe des Dateinamens (ohne Endung) ausgeführt werden. Dazu kann der Matlab Editor edit oder jeder andere Texteditor benutzt werden. Kegel.m >> Kegel r = 3 h = 5 V = 15 >> % Berechnung des Volumens % eines Kegels r=3 h=5 V =1/3* r ^2* h 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Zeilen, die mit einem % beginnen, werden als Kommentarzeilen behandelt. Lange Eingaben können durch ... auf mehrere Zeilen verteilt werden. Beim Aufruf im Workspace werden alle Skripte im aktuellen Verzeichnis und im Suchpfad berücksichtigt. Die Funktion what listet alle m-Files im aktuellen Verzeichnis auf. 28.03.2017 Dipl.-Math Zülfü Taskesen
Rechnen mit Matrizen und Vektoren Matrizen und Vektoren können in Matlab durch Angabe der Elemente in eckigen Klammern definiert werden. >> alpha =pi /4; >> A=[ cos ( alpha ), -sin ( alpha ); sin ( alpha ), cos ( alpha )] A = 0.7071 -0.7071 0.7071 0.7071 Vektoren werden als Matrizen definiert, wobei die Zeilen- oder Spaltendimension 1 ist. In Matlab sind Operatoren zum Rechnen mit Matrizen, Vektoren und Skalaren definiert. 28.03.2017 Dipl.-Math Zülfü Taskesen
Operatoren für Matrizen Operationen zwischen zwei Matrizen / Vektoren: +, -, * zum Addieren, Subtrahieren, Multiplizieren. Operatoren zum Lösen linearer Gleichungssysteme: /, \. Komponentenweise Multiplikation und Division: skalare Multiplikation mit den Operatoren .* und ./: Komponentenweises Potenzieren mit .^: 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Spezielle Matrizen Einsmatrix- bzw. –vektor: ones(n), ones(n,m) Nullmatrix- bzw. -vektor: zeros(n), zeros(n,m) Einheitsmatrix bzw. -vektor: eye(n), eye(n,m) Zufallsmatrix bzw. -vektor: rand(n,m), randn(n,m) Diagonalelemente einer Matrix: diag(x), diag(A) >> rand (3) ans = 0.4898 0.7094 0.6797 0.4456 0.7547 0.6551 0.6463 0.2760 0.1626 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Matrixindizierung über Zeilen- und Spaltenindizes über Indizes der Elemente >> A =[1 2 3; 4 5 6] >> A(2, 2) ans = 5 >> A (2) 4 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Matrix-Abmessungen Die Abmessungen einer Matrix kann mit der Funktion size A bzw. [z,s]=size(A) ermittelt werden, mit length(A) kann man die Länge eines Vektors ermitteln. Die Funktion numel(A) gibt die Anzahl der Elemente von A zurück, 28.03.2017 Dipl.-Math Zülfü Taskesen
Aufgaben -Elementares Rechnen Ermitteln Sie das Ergebnis von >> 3+4/5*6 >> 48/3-3^2 >> exp(700) >> exp(710) >> round(-2.6), fix(-2.6) >>sqrt(1^2+1^2) >> z = (3+2i)/(1-i) >> real(z), imag(z) >> z = 4i/(1+i) >> conj(z) >> angle(z)*180/pi >> abs(z) 28.03.2017 Dipl.-Math Zülfü Taskesen
Aufgaben - Rechnen mit Matrizen Erzeugen Sie einen Zeilenvektor mit der ersten Koordinate 29 und der letzten 1, wobei sich die Koordinaten absteigend um 2 unterscheiden sollen. Erzeugen Sie einen Vektor y, der die Funktionswerte des natürlichen Logarithmus an den Stellen 1; 3; 5; 7 enthält. Was ist y(1)? >> zeros(3,2) >> eye(3) >> ones(2,3) >> A = [1 2; 3 4; 5 6] >> B = [7 8; 9 10; 11 12] >> A.*B, A.^2+ B.^2 28.03.2017 Dipl.-Math Zülfü Taskesen
Vertiefter Umgang mit Matlab Anwendungen zur Matrix und Vektorrechnung Weitere Datentypen Programmieren 28.03.2017 Dipl.-Math Zülfü Taskesen
Anwendungen zur Matrix und Vektorrechnung Polynome in Matlab Beispiel: P(x) = 2x3 + x2 + 3.5x − 5 28.03.2017 Dipl.-Math Zülfü Taskesen
Anwendungen zur Matrix und Vektorrechnung Darstellung von Polynomen Polynome werden in Matlab durch einen Zeilenvektor repräsentiert, wobei die Koordinaten die Koeffizienten des Polynoms darstellen. Die Reihenfolge ist absteigend festgelegt p(x) = x^4 +8*x^3 + 2*x^2 + x -12 >> p=[1 -8 2 1 12] Beachten Sie, dass Nullkoeffizienten mitgeführt werden müssen 28.03.2017 Dipl.-Math Zülfü Taskesen
Anwendungen zur Matrix und Vektorrechnung Auswerten von Polynomen Polynome können mit der Funktion polyval ausgewertet werden p(x) = x^4 +8*x^3 + 2*x^2 + x -12 >> p=[1 8 2 1 -12] >> xo=2.5 >>px = polyval(p,xo) >> xo=-1:0.5:1 >>px = polyval(p,xo) 28.03.2017 Dipl.-Math Zülfü Taskesen
Anwendungen zur Matrix und Vektorrechnung Zusammenfassung Funktion Beschreibung conv Multipliziert Polynome Deconv Dividiert Polynome poly Polynom aus Nullstellen polyder Berechnet Ableitung polyint Berechnet Integral polyval Berechnet Polynomwerte roots Berechnet Nullstellen 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Weitere Datentypen Zeichenketten Zeichenketten werden in Matlab in einfachen Hochkommata ’ ’ angegeben, gespeichert werden sie als Vektor von Buchstaben (char Array). >> a= 'Hallo Bremen' Auf die Buchstaben einer Zeichenkette kann wie auf Elemente von Matrizen zugegriffen werden. >> a (1:5) 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Weitere Datentypen Cell Arrays Eine Verallgemeinerung von mehrdimensionalen Feldern sind Cell Arrays, in denen beliebige Datenstrukturen gespeichert werden können. >> C={ rand(2,10),eye(10)} 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Programmieren Steuerstrukturen for-Schleifen while-Schleifen Verzweigungen mit if Verzweigungen mit switch 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Programmieren FOR-Schleifen for variable = ausdruck befehle end for n = 1:10 f = n^2 end 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Programmieren WHILE-Schleifen w=0 while w > 1 w = w + 1 end while ausdruck befehle end 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Programmieren If-Anweisung if ( x >1) disp (’ x ist kleiner als 1’); elseif ( abstand <1) disp (’ x ist größer als 1’); else disp (’ x ist keine reelle Zahl‘); end if <Bedingung> <Anweisung> elseif <Bedingung> else end 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Programmieren switch Anweisung n= mod ( floor ( rand (1)*10) , 9)+1 switch n case {1 ,4 ,9} disp ('ist Quadratzahl '); case {2 ,3 ,5 ,7} disp ('ist Primzahl '); otherwise disp ('ist Kubikzahl '); end switch <Ausdruck> case Wert <Anweisung> case {Wert1, Wert2, ...} otherwise end 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen Programmieren Berechne eine Approximation an die Exponentialfunktion e^x durch 28.03.2017 Dipl.-Math Zülfü Taskesen
Dipl.-Math Zülfü Taskesen ergebnis = 1; for i = 1 : n ergebnis = ergebnis *i; end Fakultät erg = 0; for i = 0 : n erg = erg + x ^ i /ergebnis ; end Exponentialfunktion 28.03.2017 Dipl.-Math Zülfü Taskesen