MATLAB. Mathematik mit Rechnerunterstützung. Dr. Margarita Esponda-Argüero. Sommeruniversität 2005

Ähnliche Dokumente
Tipps und Tricks in MATLAB

Einführung in die Informatik I

Ein kleiner Matlab Primer Frank Schimmel

Grundlagen von MATLAB

Einführung in MATLAB

Einstieg in die Informatik mit Java

Einführung in Matlab Was ist MATLAB? Hilfe Variablen

10:Exkurs MATLAB / Octave

MATLAB Eine Einführung

Schülerworkshop Computertomographie Mathematik als Schlüsseltechnologie

Einstieg in die Informatik mit Java

Zyklen: break und continue

Matlab Einführung Einführung in die Neuroinformatik SS 12. Miriam Schmidt Institut für Neuroinformatik

Matlab Einführung Theorie Neuronaler Netze WS 11/12. Miriam Schmidt Institut für Neuroinformatik

2. Einführung in das Ingenieurtool MATLAB

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Übung 4: Einführung in die Programmierung mit MATLAB

Einführung in. Pierre Bayerl

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Algorithmen und ihre Programmierung

Fachhochschule Südwestfalen Wir geben Impulse. Kontrollstrukturen und Schleifen in Octave

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

Einführung in MATLAB + MATLAB Simulink. Dipl.-Inf. Markus Appel

Einführung in MATLAB Blockkurs DLR:

R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung.

WiMa-Praktikum 1. Woche 8

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

3 Kurzeinführung in Matlab

Funktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

m-files sind Folgen von MATLAB-Anweisungen oder Daten-Files.

JAVA-Datentypen und deren Wertebereich

Einführung in MATLAB für Maschinenbauer im ersten Semester. Aufgaben und Lösungen

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

1 Konsole öffnen. 2 matlab & und return eingeben. 3 Konsole dauerhaft geöffnet lassen. 1 Menüpunkt File - Exit MATLAB oder. 2 quit (und return) oder

Einführung in die Programmierung (MA8003)

Zweiter Teil des Tutorials. Workspace M-files Matrizen Flow Control Weitere Datenstrukturen Gemeinsames Beispiel erarbeiten

Dipl.-Volksw. Markus Pullen Wintersemester 2012/13

Tutorium für Fortgeschrittene

Einführung in MATLAB für Maschinenbauer im ersten Semester

Matlab Übersicht. Matlab steht für MATrix LABoratory, die Fa. The Mathworks wurde 1984 gegründet

Matlab Einführung. Tobias Wunner

Algorithmen und Programmieren II Einführung in Python (Teil 2)

Dr. Monika Meiler. Inhalt

Grundlagen der Programmierung

Funktionen in Matlab. Lehrstuhl für Angewandte Mathematik Sommersemester und 29. Mai 2008

Dr. Michael Lehn WS 2013/2014 Iris Häcker Klaus Stolle Institut für Numerische Mathematik Universität Ulm

Informationsverarbeitung im Bauwesen

MATLAB. im Rahmen der Vorlesung Digitale Bildverarbeitung

Syntax der Sprache PASCAL

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Termin 4: Programmieren in MATLAB

MATLAB Onlinevorlesung. Dipl.-Inf. (FH) Patrick Rogge Seite 1

2. Programmieren in MATLAB (1)

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002

Operatoren und Ausdrücke

Klausur Grundlagen Informatik Musterklausur & Lösungen

PIC16 Programmierung in HITECH-C

Microsoft Rechner. Kurzanleitung ohne Maus

MATLAB Grundlagen MATLAB. Grundlagen. Vorlesung Matlab/Simulink Dipl.-Ing. U. Wohlfarth

Grundstruktur eines C-Programms

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

Matlab: eine kurze Einführung

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Die einfachsten Anweisungen

INTELLIGENTE DATENANALYSE IN MATLAB

Übung zur Vorlesung Multimedia im Netz

1. Einstieg in MATLAB

MATLAB. 18. Mai 2010 MATLAB. Eine Einführung. Marina Schneider. Inhalt. Allgemeines zu MATLAB und erste Schritte. Vektoren und Matrizen.

2 Matrizen und Vektoren

Programmieren. Aufgabe 1 (Eine erste Datenstruktur)

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Microsoft Excel 2007 Basis. Leseprobe

Eine Einführung zum numerischen Programmieren mit Matlab

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Bei der Und-Verknüpfung müssen beide Ausdrücke wahr sein, dass der gesamte Ausdruck wahr wird. a=1; b=2; a=1; b=3; else. endif

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Einführung in MATLAB. Grundlagen für die Übungen begleitend zur Vorlesung Neuroinformatik I

Anwendungssoftware III (MATLAB)

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Einführung in MATLAB zur Veranstaltung Einführung in die Numerik

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

4.Grundsätzliche Programmentwicklungsmethoden

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut

Projekt 3 Variablen und Operatoren

Einführung in die Programmierung mit VBA

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Quadrieren Sie die Zahlen 3, pi, 1 und i mit Hilfe des Operators ^ und ziehen Sie aus den Ergebnissen jeweils die Wurzel.

Grundlagen der Programmiersprache C++

Informatik 1 MATLAB-Labor 1

Programmierkurs Python I

Programmieren in C (Übungsblatt 1)

Programmieren mit Python

Programmieren lernen mit Visual Basic

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Programmieren in C (Übungsblatt 1)

System.out.println("TEXT");

Vorlesung Unix-Praktikum

Transkript:

MATLAB Mathematik mit Rechnerunterstützung Dr. Margarita Esponda-Argüero Fachbereich Mathematik und Informatik Freie Universität Berlin Inhalt Einfache Befehle und Ausdrücke Arbeiten mit Feldern und Matrizen Steueranweisungen 2-D und 3-D-Grafik MATLAB - Programme und Funktionen Dr. Margarita Esponda 1

MATLAB MATLAB ist ein Softwarepaket besonderes gut für: numerische Berechnungen Visualisierung von Daten Simulation dynamische Systeme in den 70er Jahren an der University of New Mexico und der Stanford University entwickelt für umfangreiche Probleme kann MATLAB als Programmiersprache eingesetzt werden. MATLAB MATLAB kann auf zwei Arten verwet werden Interaktiv mit direkte Eingabe von Anweisungen und sofortige Ausführung durch den Interpreter als Programmiersprache oder indirekte Eingabe. Die Anweisungen werden zuerst in einer Datei (M-File) gespeichert und können dann ausgeführt werden. Dr. Margarita Esponda 2

Befehlsfenster Bei der interaktiven Verwung werden Befehle direkt in ein MATLAB-Befehlsfenster eingegeben und sofort ausgeführt. >> 48/3 16 >> ans*ans 256 >> ans^2 65536 >> a = 10 a = 10 >> b = 20 b = 20 >> a/b 0.5000 >> c = 7; >> Das Semikolon verhindert, dass der Wert von c wieder ausgegeben wird. MATLAB Matrix Laboratory Der Grundbaustein ist der Datentyp Matrix Variablen in Programmiersprachen sind Stellen im Speicher, in denen Werte abgelegt werden können. In MATLAB werden alle Variablen als MxN-Matrizen gespeichert. Wo M die Anzahl der Zeile und N die Anzahl der Spalten ist. Die einzelne Elemente der Matrix können einfache Zahlen oder komplexe Elemente sein. 4x5 Vektoren Variablen sind Matrizen mit nur einer Zeile (1xn-Matrizen). 1x5 Einfache Variablen sind 1x1-Matrizen. 1x1 Dr. Margarita Esponda 3

Arbeitsumgebung Arbeitsspeicher Befehlseingabe Befehlsgeschichte Eingabe von Daten Variablen Vektoren Matrizen >> a = 2 a = 2 >> x = [1; 2; 3] x = 1 2 3 >> A = [1,2,3;4,5,6;7,8,9] A = 1 2 3 4 5 6 7 8 9 Dr. Margarita Esponda 4

Arithmetische Operationen = Zuweisung + Addition - Subtraktion * Multiplikation (Matrizen) / Division (Matrizen) ^ Potenzierung (Matrizen) Arithmetische Operationen.* Multiplikation (elementweise)./ Division (elementweise) \ dividiert Matrizen nach links.\ dividiert nach links (elementweise).^ Potenzierung (elementweise) '.' adjungiert Matrix transponiert Matrix Dr. Margarita Esponda 5

Vektor- und Matrizen-Operationen >> v = [1 2 3 4 5] v = 1 2 3 4 5 >> 2 * v 2 4 6 8 10 >> v.* v 1 4 9 16 25 >> v * v.' 55 >> A = [1 2; 3 4] A = 1 2 3 4 >> A + A 2 4 6 8 >> 3 + A 4 5 6 7 Vektor- und Matrizen-Operationen >> A = [1,2; 3,4] A = >> A + A 1 2 3 4 2 4 6 8 >> 2 * A 2 4 6 8 >> B = [2,2; 3,3] B = >> A * B 2 2 3 3 8 8 18 18 >> A.* B 2 4 9 12 Dr. Margarita Esponda 6

Eingabe von Matrizen und Vektoren Die einfachste Methode Matrizen oder Vektoren zu erzeugen ist, die direkte Eingabe innerhalb eckiger Klammern in dem Eingabefenster. Elemente werden durch Komma oder Leerzeichen getrennt, Spalten durch Semikolon oder durch Zeilenumbruch. >> A = [1 2; 3 4] A = 1 2 3 4 Ein einzelnes Element einer Matrix wird dann mit Zeile und Spaltennummer gekennzeichnet. >> x = A (2, 2) x = 4 Der " : "-Operator kann als "von...bis" übersetzt werden. Damit können Sie Vektoren oder Matrizen erzeugen: >> v = [1:7] v = 1 2 3 4 5 6 7 >> m = [1:7;8:14] v = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Allgemeine Funktionen whos clear cd dir help help Thema lookfor Wort doc Thema clock listet alle Variablen, die im Speicher sind löscht alle Variablen und Funktionen aus dem Speicher wechselt die aktuelle Arbeitverzeichnis listet alle Dateien des aktuellen Arbeitsverzeichnisses listet alle Hilfethemen liefert Hilfe zu bestimmtem Thema sucht in der Dokumentation alle Stellen, in denen Wort vorkommt liefert Hilfe zu bestimmtem Thema (neues Fenster) gibt aktuelles Datum und Zeit in einem Vektor zurück Dr. Margarita Esponda 7

Elementare mathematische Funktionen Einfache Funktionen sqrt(x) Quadrat Wurzel von x abs(x) Absoluter Wert von x log(x) Natürlicher Logarithmus log10(x) Logarithmus mit Basis 10 exp(x) Exponentialfunktion Trigonometrische Funktionen sin(x) Sinus cos(x) Kosinus tan(x) Tangens asin(x) Arcus-Sinus acos(x) Arcus-Kosinus atan(x) Arcus-Tangens mod(x,y) rem(x,y) round(x) flour(x) ceil(x) fix(x) x Modulo y Rest der Division x/y rundet rundet ab rundet auf ganzzahliger Anteil Funktionen >> help round ROUND Round towards nearest integer. ROUND(X) rounds the elements of X to the nearest integers. See also FLOOR, CEIL, FIX. >> round( 5.7) 6 >> x = fix( 5.7) x = 5 Dr. Margarita Esponda 8

MATLAB-Dataien M-Files M-Files sind Dateien mit dem Suffix.m In M-Files können Befehlssequenzen gespeichert und später ausgeführt werden. File New M-File Debug Run a = 1; b = 3; c = 2; x1 = (-b + sqrt( b^2-4*a*c ))/(2*a) x2 = (-b - sqrt( b^2-4*a*c ))/(2*a) >> x1 = -1 x2 = -2 >> File Save As... q_gleichung.m Eingabe und Ausgabe Funktionen clc disp sprintf input löscht das MATLAB-Kommando-Fenster Ausgabe auf dem Bildschirm wandelt Zahlen unter einer Formatangabe in einen String um Eingabe von Zahlen mittels Tastatur clc; x = 5; disp('hello'); disp(x); y = input( 'y = ' ); a = sprintf('x=%i y=%i', x, y); disp( a ); >> hello 5 y = 13 x = 5 y = 13 Dr. Margarita Esponda 9

MATLAB-Dataien M-Files File New M-File Debug Run a = input('a = '); b = input('b = '); c = input('c = '); x1 = (-b + sqrt(b^2-4*a*c))/(2*a) x2 = (-b - sqrt(b^2-4*a*c))/(2*a) a = 1 b = c = 2 2 x1 = -1.0000 + 1.0000i x2 = -1.0000-1.0000i >> Programmieren in MATLAB M-Dateien Skripte Funktionen Der Gültigkeitsraum der im Skript definierten Variablen ist die globale Arbeitsumgebung oder (Basis- Workspace) M-Funktionen definieren eine eigene Arbeitsumgebung und besitzen keinen direkten Zugriff auf den Basis-Workspace Dr. Margarita Esponda 10

Kommentare Kommentare in MATLAB beginnen mit % und gehen bis zum Ende der Zeile. Kommentare werden in der Hilfsfunktionen verwet. Bei help <Verzeichnis> wird die erste Kommentarzeile angezeigt. Bei help <Funktion> wird der erste Kommentarblock angezeigt. M-Files % Quadratische Gleichung clear clc a = input('a = '); b = input('b = '); c = input('c = '); d = sqrt(b^2-4*a*c); x1 = ( -b + d )/(2*a) x2 = (-b d )/(2*a) Kommentare in MATLAB fangen mit dem % - Zeichen an Alle Variablen der Arbeitsumgebung werden gelöscht Das Eingabefenster wird gelöscht a = 1 b = c = 2 2 x1 = -1.0000 + 1.0000i x2 = -1.0000-1.0000i >> Dr. Margarita Esponda 11

if-else-anweisung if Bedingung Anweisungen else Anweisungen Vereinfachte Form if Bedingung Anweisungen Beispiel a = input('a = ') if mod(a,2)==0 disp('gerade Zahl') else disp('ungerade Zahl') Vergleichsoperationen < kleiner als > größer als <= kleiner oder gleich >= größer oder gleich == gleich ~= ungleich Normalerweise ist das Ergebnis eine Vergleichsoperation eines Wahrheitswertes. In MATLAB ist der Wert eines Vergleichs entweder 0 (Falsch) oder 1 (Wahr). Dr. Margarita Esponda 12

Logische Operationen ~ Negation & und oder xor exklusiv oder 0 bedeutet falsch alles andere bedeutet wahr true = 1 false = 0 >> 2 5 1 >> -7&5 1 >> 0&5 0 >> 2<7 & 7<2 0 >> ~~7 1 >> mod(8,3)==1 0 >> -1-6 1 >> true 1 >> false 0 >> Logische Operationen mit Matrizen Matrixelemente werden paarweise mit Null verglichen & ergibt 1, wenn beide Elemente 0, sonst 0 ergibt 0, wenn beide Elemente =0, sonst 1 ~ 1, wenn das Element gleich 0, sonst 0 Funktionen all und any all(x) ergibt 1, wenn alle Elemente von x 0, sonst 0 any(x) ergibt 0, wenn alle Elemente =0, sonst 1 Dr. Margarita Esponda 13

if-else-anweisung % Quadratische Gleichung disp( 'Programm zur Lösung einer quadratischen' ) disp( 'Gleichung mit Koefizienten a, b, c ' ) a = input( 'a = ' ); if ( a ~= 0 ) b = input('b = '); c = input('c = '); d = sqrt( b^2-4*a*c ) x1 = (-b + d )/(2*a) x2 = (-b d )/(2*a) else disp( 'Wenn a==0, haben wir keine quadratische Gleichung!' ) ; switch-case-anweisung switch Ausdruck case Konstante_1 Anweisungen case Konstante_2 Anweisungen case Konstante_2 Anweisungen otherwise Anweisungen Dr. Margarita Esponda 14

switch-anweisung zahl = input('bitte eine Zahl eingeben: '); switch sign(zahl) case -1 disp('die Zahl ist negativ') case 0 disp('die Zahl ist gleich Null') otherwise disp('die Zahl ist positiv') switch-case-anweisung a = round(rand(1,1)*9); switch a case 0, b = 'null' case 1, b = 'eins' case 2, b = 'zwei' case 3, b = 'drei' case 4, b = 'vier' case 5, b = 'fünf' case 6, b = 'sechs' case 7, b = 'sieben' case 8, b = 'acht' case 9, b = 'neun' otherwise, b = 'viele' Dr. Margarita Esponda 15

while-anweisung Syntax while Ausdruck Anweisungen Beispiele a = 0 while a<100 disp( a*a ) a = a + 1; clc a = 0 x = [] while a<100 a = a + 1; x = [x a*a] disp(x) while-anweisung Beispiel % Glücksspieler bargeld = input('bargeld = '); while bargeld>0 z = round( rand(1)*100000 ); if mod(z,2)==0 bargeld = bargeld + 1; else bargeld = bargeld - 1; disp( bargeld ) disp('du bist pleite!') Dr. Margarita Esponda 16

for-anweisung Syntax for Laufvariable = Bereichsangabe Anweisungsblock for Laufvariable = Begin : Schritt : Ende Anweisungsblock Beispiele for-anweisung for i = 1:2:20 disp(i) >> 1 3 5 7 9 11 13 15 17 19 % Eingabe n = input( 'n = ' ); fak = 1; % Berechnung n = 3 for i = 1:n fakultaet(3)= 6 fak = fak*i; % Ausgabe disp(sprintf('fakultaet(%i)=%i',n,fak)) Dr. Margarita Esponda 17

for-anweisung Beispiele n = input( 'n = ' ); for i = 1:n disp(i*i) n = 5 1 4 9 16 25 n = input( 'n = ' ); x = [1:n].*[1:n]; disp( x ) n = x = 5 1 4 9 16 25 for-anweisung n = input('n = ') zahlen = round( rand(1,n)*100 ) for i = 1:n-1 for j = 1:n-i if zahlen(j)>zahlen(j+1) temp = zahlen(j); zahlen(j) = zahlen(j+1); zahlen(j+1) = temp; disp('zahlen =') disp(zahlen) Hier werden n Zufallszahlen generiert und in die Variable zahlen gespeichert. Dr. Margarita Esponda 18

Funktionen Funktionen sind das wichtigste Konzept in der Welt der höheren Programmiersprache. Eingabe Funktion Ausgabe Funktionen sind ein sehr wichtiges Hilfsmittel, um Probleme in kleinere Teilaufgaben zerlegen zu können. Sie ermöglichen damit eine bessere Strukturierung eines Programms sowie die Wiederverwertbarkeit vom Programmcode. etwas genauer: MATLAB-Funktionen function Rückgabevariable = Funktionsname ( Parameterliste ) % Programmbeschreibung für Online-Hilfe Anweisungen Rückgabevariable = berechneter_wert return Funktionsname.m Die return Anweisung befindet sich an beliebiger Stelle und beliebig oft in dem Funktionsrumpf; sie beet die Ausführung der Funktion mit der Rückgabe der Rückgabevariable. Dr. Margarita Esponda 19

Funktionen Beispiel function sum = summe(n) % summe(n) Berechnet die Summe aller Zahlen % von 1 bis n, wo n eine natürliche % Zahl sein muss. % summe(n) = 1+2+...+(n-1)+n if n>=0 sum = n*(n+1)/2 else sum = 'Fehler! weil n negativ ist' return Visualisierung von zweidimensionalen Daten und Funktionen Visualisierung von Daten - Histogramme - Boxplots - Kreidiagramme Beispiel 1 2 3 4 5 6 7 y = [2 3 5 7 11 13 17]; bar(y) Dr. Margarita Esponda 20

Visualisierung von Daten plot ( X-Daten, Y-Daten, Formatangabe ) Beispiel clear n = input('n = '); y = rand(1,n)*1000; plot(y,'b*'); y = rand(1,n)*1000; hold on plot(y,'r*'); y = rand(1,n)*1000; plot(y,'g*'); hold off Formatierungen für plot Farbe Marker Linienart b blau. Punkt - durchgezogen g grün o Kreis : punktiert r rot x Kreuz -. Strich-Punkte c zyan + Plus -- Striche m magenta * Sterne y gelb s Quadrat k schwarz d Diamant w weiß v Dreieck (unten) ^ Dreieck (up) < Dreieck (left) > Dreieck (right) p Pentagramm h Hexagramm Dr. Margarita Esponda 21

Visualisierung von Funktionen Beispiel % Sinus-Funktion x = -3*pi:0.01:3*pi; y = sin(x); hold on for i = 1:50 y = y*i/(i+1); plot(x,y,'k'); hold off Visualisierung von Funktionen Unterteilung des Ausgabefensters subplot(m,n,p) Das aktuelle Ausgabefenster wird in eine mxn-matrix von Fenstern unterteilt, das p-te Teilfenster wird als aktueller Ausgabebereich festgelegt. % Exponential-Funktion clf x = -3:0.2:3; subplot(2,1,1); bar(x,exp(-x.^2)); subplot(2,1,2); plot(x,exp(-x.^2),'r'); Dr. Margarita Esponda 22

Visualisierung von 3D-Funktionen Beispiel % Glockenfunktion clf x = -2.5:0.1:2.5; y = x; [X,Y] = meshgrid(x,y); surf(x,y,exp(-(x.^2 + Y.^2))); Dr. Margarita Esponda 23