380 likes | 581 Views
Matlab Praktikum. 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
E N D
Matlab Praktikum Dipl.-Math. Zülfü Taskesen
Praktikumsübersicht Teil 1Erste Schritte in Matlab • Einführung und Motivation • Einfaches Rechnen • Rechnen mit Vektoren und Matrizen Teil 2Vertiefter Umgang mit Matlab • Anwendungen zur Matrix und Vektorrechnung • Weitere Datentypen • Programmieren Teil 3Funktionen in Matlab • Funktionen • m-Files • Debuggen Dipl.-Math Zülfü Taskesen
Praktikumsübersicht Teil 4Graphische Ausgaben mit Matlab • 2D Plots • Gestalten von Graphikausgaben • Mehrdimensionale Plots • Animationen Teil 5Erweiterungen von Matlab • Toolboxen • Graphische Oberflächen • Profiler Teil 6Projekt • Selbstständiges Bearbeiten einer mathematischen • Fragestellung mit Hilfe von Matlab 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. 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. 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; 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 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. Dipl.-Math Zülfü Taskesen
Elementare Funktionenin 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 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 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. 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: 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 formatshort: Festpunktdarstellung mit 5 Stellen formatlong: Festpunktdarstellung mit 15 Stellen formate: Gleitpunktdarstellung mit 5 Stellen formatlong e: Gleitpunktdarstellung mit 15 Stellen formatrat: Rationale Näherung 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 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. 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. 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 .^: 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 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) ans = 4 Dipl.-Math Zülfü Taskesen
Matrix-Abmessungen • Die Abmessungen einer Matrix kann mit der Funktion sizeA 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, 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) 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 Koordinatenabsteigend 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)? >> A = [1 2; 3 4; 5 6] >> B = [7 8; 9 10; 11 12] >> A.*B, A.^2+ B.^2 >> zeros(3,2) >> eye(3) >> ones(2,3) Dipl.-Math Zülfü Taskesen
Vertiefter Umgang mit Matlab • Anwendungen zur Matrix und Vektorrechnung • Weitere Datentypen • Programmieren Dipl.-Math Zülfü Taskesen
Anwendungen zur Matrix und Vektorrechnung Polynome in Matlab Beispiel: P(x) = 2x3 + x2 + 3.5x − 5 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 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=-1:0.5:1 >>px = polyval(p,xo) >> xo=2.5 >>px = polyval(p,xo) 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 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) 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)} Dipl.-Math Zülfü Taskesen
Programmieren Steuerstrukturen • for-Schleifen • while-Schleifen • Verzweigungen mit if • Verzweigungen mit switch Dipl.-Math Zülfü Taskesen
Programmieren FOR-Schleifen for variable = ausdruck befehle end for n = 1:10 f = n^2 end Dipl.-Math Zülfü Taskesen
Programmieren WHILE-Schleifen w=0 while w > 1 w = w + 1 end while ausdruck befehle end 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> <Anweisung> else <Anweisung> end 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, ...} <Anweisung> otherwise <Anweisung> end Dipl.-Math Zülfü Taskesen
Programmieren Berechne eine Approximation an die Exponentialfunktion e^x durch 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 Dipl.-Math Zülfü Taskesen