Einführung in MATLAB / GNU Octave

Ähnliche Dokumente
Eine kurze Einführung in Octave

Eine kurze Einführung in Octave

Matlab: eine kurze Einführung

Matlab - eine kurze Einführung

2 Matrizen und Vektoren

Einführung in. Pierre Bayerl

Einführung in Matlab Was ist MATLAB? Hilfe Variablen

Einführung in MATLAB

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

3 Kurzeinführung in Matlab

NUMERISCHE MATHEMATIK I

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

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

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

MATLAB Einführung. Numerische Methoden für ITET und MATL Dr. S. May, D. Devaud. ETH Zürich, Seminar for Applied Mathematics

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

10:Exkurs MATLAB / Octave

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II

Einführung in Matlab, 2. Teil

Mathematik am Computer 7. Vorlesung: Matlab, Teil II

GNUPlot. Anleitung zu. 1 Grundlagen. Aloha. Zunächst hier einmal ein Bild der GNUPlot-Oberäche: Abb.1: GNUPlot-Oberäche

Tipps und Tricks für Matlab

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

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

Übersicht Shell-Scripten

Eine Einführung zum numerischen Programmieren mit Matlab

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

Einführung in die Programmierung (MA8003)

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

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

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

8.2 Invertierbare Matrizen

Informationsverarbeitung im Bauwesen

Installation. Arbeiten mit der MATLAB-Entwicklungsumgebung. MATLAB als Taschenrechner mit Matrix- und Vektorrechnung.

9.2 Invertierbare Matrizen

Jens Kappei. Vorlesung Numerische Basisverfahren 21./

Programmieren in MATLAB Mehr als nur ein Taschenrechner

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

Programmieren. Aufgabe 1 (Eine erste Datenstruktur)

Im Falle einer zweimal differenzierbaren Funktion lässt sich das Krümmungsverhalten anhand der zweiten Ableitung feststellen.

Datenanalyse in der Physik. Übung 1. Übungen zu C und MAPLE

Numerische Verfahren Übungen und Lösungen, Blatt 1

INTELLIGENTE DATENANALYSE IN MATLAB

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Eine kleine Anleitung zum Programmieren mit MATLAB

Matlab Einführung. Tobias Wunner

2. Programmieren in MATLAB (1)

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

3 Matrizenrechnung. 3. November

Running R. Windows Aus Menü. Lese R Code ein führt den Code auch gleich aus, eventuell muss vorher das Verzeichnis gewechselt werden.

Tutorium Mathematik II, M Lösungen

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

Lösungen zu Mathematik I/II

Einführung in MATLAB für die Übungen zur Numerik partieller Differentialgleichungen von Dr. Harald Schmid

WiMa-Praktikum 1. Woche 8

Einführung Matlab Aufgabenkatalog

Matlab-Seminar: Grundlagen

2. Dezember Lineare Algebra II. Christian Ebert & Fritz Hamm. Skalarprodukt, Norm, Metrik. Matrizen. Lineare Abbildungen

Funktionen mehrerer Variabler

1 Inhalte des Programmierkurses

Programmieren in C/C++ und MATLAB

Daniel S. Steingrube Institut für Quantenoptik Leibniz Universität Hannover.

Probeklausur Informatik 2 Sommersemester 2010

Einführung in MATLAB Blockkurs DLR:

MATLAB Kurs SS Boris von Loesch. Technische Universität München Center for Mathematical Sciences, Chair of Mathematical Optimization

MATLAB: Kapitel 2 Grafiken

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

Strings. Daten aus Dateien einlesen und in Dateien speichern.

MATLAB Eine Einführung

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

Matrizen, Determinanten, lineare Gleichungssysteme

2.2 Lineare Gleichungssysteme (LGS)

Lineare Gleichungssysteme und Matrizen

1 Operatoren und Werte

Aufgabe 2: Anzahl Erdbeben als Funktion der Zeit

1 Starten und Installation von gnuplot

Mathematik für Wirtschaftswissenschaftler, WS 10/11 Musterlösungen zu Aufgabenblatt 11

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

5. Elementare Befehle und Struktogramme

Zyklen: break und continue

Simulation. Lineare Regression Methode der kleinsten Quadrate (Excel-Matrix-Formel) Verknüpfung des Euler- und Newton-Verfahrens. Das Euler-Verfahren

Prof. Dr. Barbara Wohlmuth Lehrstuhl für Numerische Mathematik. MATLAB-Kurs. MATLABKURS (Title01) 1

Matrizen. Jörn Loviscach. Versionsstand: 12. April 2010, 19:00 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung.

Dipl.-Math. Robert Offinger Wintersemester 2006/07 Otto-von-Guericke-Universität Magdeburg Fakultät für Mathematik

Lineare Algebra: Determinanten und Eigenwerte

Einführung in MATLAB Februar 2005

9.1 Eine Gleichung mit einer Unbekannten exakt lösen x Beispiel 1: Die Gleichung x 2 = 4 lösen. solve( x / (x 2) = 4, x ); 8 3

3 Schnellkurs in MATLAB

Informatik für Elektrotechnik und Informationstechnik

Numerisches Programmieren, Übungen

Vektoren Vektorräume Lineare Unabhängigkeit, Basis Matrizen Benutzen von MuPAD-Bibliotheken Erstes Programm

1 Lineare Gleichungssysteme und Matrizen

Vektoren. 2.1 Darstellung. Kapitel Subtraktion und Addition

Eine kurze Einführung in scilab

Matrizen und Determinanten, Aufgaben

Matrizen. Spezialfälle. Eine m nmatrix ist ein rechteckiges Zahlenschema mit. m Zeilen und n Spalten der Form. A = (a ij ) =

HDNUM. Peter Bastian (IWR) Numerik November / 158

Matlab Praktikum - Tag 4

Dokumentation. Gnuplot

Einführung in MATLAB. Unterlagen zur Lehrveranstaltung Numerische Mathematik I

Transkript:

Einführung in MATLAB / GNU Octave Philipp Siehr Heidelberg 01. Oktober 2014

Inhalt Organisatorisches Erste Schritte mit Linux. Was ist MATLAB bzw. Octave? Erste Schritte mit MATLAB. Zuweisung von Werten an Variablen. Anlegen und Bearbeiteten von Matrizen. Operatoren auf Matrizen. Anlegen von Funktionen. Einfache Funktionen Schleifen und Verzweigungen Dieser Workshop basiert zu Teilen auf der Numerik 0 Einführung von Klinger, Vihharev. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 2 / 52

Organisatorisches

Organisatorisches Accounts: vkmp0xx mit XX=Rechnernummer Bitte nicht die Passwörter ändern. Material: www.mathsim.eu/ psiehr/links.html Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 4 / 52

Erste Schritte mit Linux

Linux Wechsel in euer Home-Verzeichnis ( ) cd /Dokumente/, benutzt autofill: cd /Dok +Tab Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 6 / 52

Linux Wechsel in euer Home-Verzeichnis ( ) cd /Dokumente/, benutzt autofill: cd /Dok +Tab Dateien und Verzeichnisse anzeigen lassen: ls, bzw. optional: ls -l Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 6 / 52

Linux Wechsel in euer Home-Verzeichnis ( ) cd /Dokumente/, benutzt autofill: cd /Dok +Tab Dateien und Verzeichnisse anzeigen lassen: ls, bzw. optional: ls -l Ein Verzeichnis TestOrdner anlegen: mkdir TestOrdner Benutzt abermals ls. Was hat sich geändert? Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 6 / 52

Linux Wechsel in euer Home-Verzeichnis ( ) cd /Dokumente/, benutzt autofill: cd /Dok +Tab Dateien und Verzeichnisse anzeigen lassen: ls, bzw. optional: ls -l Ein Verzeichnis TestOrdner anlegen: mkdir TestOrdner Benutzt abermals ls. Was hat sich geändert? In das Verzeichnis wechseln: cd TestOrdner Wieder ls verwenden. Beobachtung? Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 6 / 52

Linux Wechsel in euer Home-Verzeichnis ( ) cd /Dokumente/, benutzt autofill: cd /Dok +Tab Dateien und Verzeichnisse anzeigen lassen: ls, bzw. optional: ls -l Ein Verzeichnis TestOrdner anlegen: mkdir TestOrdner Benutzt abermals ls. Was hat sich geändert? In das Verzeichnis wechseln: cd TestOrdner Wieder ls verwenden. Beobachtung? In das übergeordnete Verzeichnis zurück wechseln: cd.. ls. Und jetzt? Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 6 / 52

Linux Wechsel in euer Home-Verzeichnis ( ) cd /Dokumente/, benutzt autofill: cd /Dok +Tab Dateien und Verzeichnisse anzeigen lassen: ls, bzw. optional: ls -l Ein Verzeichnis TestOrdner anlegen: mkdir TestOrdner Benutzt abermals ls. Was hat sich geändert? In das Verzeichnis wechseln: cd TestOrdner Wieder ls verwenden. Beobachtung? In das übergeordnete Verzeichnis zurück wechseln: cd.. ls. Und jetzt? Löschen von Dateien und Verzeichnissen: rm -r TestOrdner ls. Der Ordner sollte verschwunden sein! Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 6 / 52

Linux Aufgabe Erstellt den Ordner MATLAB mit: matlab & /Dokumente/vorkurs, und öffnet darin Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 7 / 52

Was ist MATLAB / GNU Octave?

MATLAB / GNU Octave MATLAB Kommerzielle Software zur Lösung numerischer Probleme: Numerik 0: Lineare Gleichungssysteme Numerik 1: Gewöhnliche Differentialgleichungen Numerik 2: Partielle Differentialgleichungen Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 9 / 52

MATLAB / GNU Octave MATLAB Kommerzielle Software zur Lösung numerischer Probleme: Numerik 0: Lineare Gleichungssysteme Numerik 1: Gewöhnliche Differentialgleichungen Numerik 2: Partielle Differentialgleichungen GNU Octave Kostenfreies Pendant zu MATLAB. Besitzt keine eigene Oberfläche (GUI). Verwendet gnuplot Start mit octave & Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 9 / 52

Erste Schritte mit MATLAB

Newtonverfahren Newtonverfahren Mit dem Newtonverfahren ist die approximative Bestimmung der Nullstellen einer Funktion möglich. Was genau dahinter steckt kommt später. Tafel Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 11 / 52

Variablen Variablen werden durch die Zuordnung von Werten angelegt. Variablennamen müssen mit einem Buchstaben anfangen, ansonsten dürfen Buchstaben, Zahlen und Unterstriche benutzt werden. Es wird zwischen Groß- und Kleinschreibung unterschieden (A a). Variablen sollten sinnvolle Namen haben. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 12 / 52

Variablen Ab jetzt steht nur auf den Folien ein > vor MATLAB Code Variable anlegen > a=42.42; Variable ausgeben > a ergibt a=42.42 Das Semikolon ; unterdrückt die Ausgabe. Bis auf wenige Ausnahmen sind die Werte, die wir Variablen in MATLAB zuordnen können, n m Matrizen. Ein Skalar ist dann eine 1 1 Matrix. Zeilenvektoren sind 1 m Matrizen und Spaltenvektoren n 1 Matrizen. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 13 / 52

Matrizen

Matrizen Beispiel Finde den Schnittpunkt der Geraden: f(x) = 3x + 5, g(x) = 6x + 7. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 15 / 52

Matrizen Beispiel Finde den Schnittpunkt der Geraden: f(x) = 3x + 5, g(x) = 6x + 7. Tafel: Schnittpunkt: ( 1 3 1 6 ) ( y x ) = (x, y) = ( 2 3, 3) ( 5 7 ) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 15 / 52

Vektoren anlegen Vektoren anlegen a) Komponentenweise eingeben b) Mit (vorgegebenen) Funktionen sukzessive füllen. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 16 / 52

Vektoren anlegen Vektoren anlegen a) Komponentenweise eingeben b) Mit (vorgegebenen) Funktionen sukzessive füllen. > a=[1,2,3] erzeugt a=(1 2 3). ( ) 1 > b=[1;2] erzeugt b=. 2 Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 16 / 52

Vektoren anlegen Vektoren anlegen a) Komponentenweise eingeben b) Mit (vorgegebenen) Funktionen sukzessive füllen. > a=[1,2,3] erzeugt a=(1 2 3). ( ) 1 > b=[1;2] erzeugt b=. 2 > c=1:5 erzeugt c=(1 2 3 4 5). > d=1:2:5 erzeugt d=(1 3 5). Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 16 / 52

Vektoren anlegen Vektoren anlegen a) Komponentenweise eingeben b) Mit (vorgegebenen) Funktionen sukzessive füllen. > a=[1,2,3] erzeugt a=(1 2 3). ( ) 1 > b=[1;2] erzeugt b=. 2 > c=1:5 erzeugt c=(1 2 3 4 5). > d=1:2:5 erzeugt d=(1 3 5). Länge von Vektoren >length(a) ans= 3 >length(c) ans= 5 Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 16 / 52

Vektoren bearbeiten Lese-/Schreibzugriff auf die i-te Komponente von a über a(i): > e=11:15 e=(11 12 13 14 15) > val=e(3) val=13 > e(3) = 42 e=(11 12 42 14 15) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 17 / 52

Vektoren bearbeiten Lese-/Schreibzugriff auf die i-te Komponente von a über a(i): > e=11:15 e=(11 12 13 14 15) > val=e(3) val=13 > e(3) = 42 e=(11 12 42 14 15) Subvektoren: > f= 5: 1 f=( 5 4 3 2 1) > g=f(2:4) g=( 4 3 2) > f(2:4) = [5,5,5] f=( 5 5 5 5 1) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 17 / 52

Vektoren bearbeiten Lese-/Schreibzugriff auf die i-te Komponente von a über a(i): > e=11:15 e=(11 12 13 14 15) > val=e(3) val=13 > e(3) = 42 e=(11 12 42 14 15) Subvektoren: > f= 5: 1 f=( 5 4 3 2 1) > g=f(2:4) g=( 4 3 2) > f(2:4) = [5,5,5] f=( 5 5 5 5 1) Mit werden Vektoren transponiert 4 > g liefert 3 2 Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 17 / 52

Matrizen erstellen Wie bereits erwähnt sind Vektoren spezielle Matrizen. Also lassen sich auch diese entsprechend befüllen. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 18 / 52

Matrizen erstellen Wie bereits erwähnt sind Vektoren spezielle Matrizen. Also lassen sich auch diese entsprechend befüllen. > A=[1,2,3;4,4,4;0,0,0] erzeugt A= 1 2 3 4 4 4 0 0 0 Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 18 / 52

Matrizen erstellen Wie bereits erwähnt sind Vektoren spezielle Matrizen. Also lassen sich auch diese entsprechend befüllen. > A=[1,2,3;4,4,4;0,0,0] erzeugt A= > v=[1,2] B=[v; 5, 32] erzeugt B= ( 1 2 5 32 1 2 3 4 4 4 0 0 0 ) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 18 / 52

Matrizen erstellen Weitere Befehle zum Befüllen von Matrizen. 1 0 0 Einheitsmatrix > I=eye(3) erzeugt B= 0 1 0 0 0 1 Nullmatrix > N=zeros(3) erzeugt N= Einsmatrix > E=ones(3) erzeugt N= 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 ( 0 0 0 n m Nullmatrix > N=zeros(2,3) erzeugt N= 0 0 0 ( ) n m Einsmatrix > N=zeros(1,3) erzeugt N= 1 1 1 ) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 19 / 52

Matrizen erstellen Aufgabe Berechnet den Schnittpunkt der beiden Geraden aus dem Beispiel. Wenn A, b angelegt sind, dann kann MATLAB mit > x=a\b das LGS lösen. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 20 / 52

Matrizen erstellen Aufgabe Berechnet den Schnittpunkt der beiden Geraden aus dem Beispiel. Wenn A, b angelegt sind, dann kann MATLAB mit > x=a\b das LGS lösen. Lösung > A=[1, 3;1, 6]; > b=[5;7]; > x=a\b Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 20 / 52

Matrizen bearbeiten Sei nun C = 1 2 3 4 0 1 0 0 0 0 1 0 Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 21 / 52

Matrizen bearbeiten Sei nun C = 1 2 3 4 0 1 0 0 0 0 1 0 Anzahl der Zeilen (n) und Spalten (m). > [n,m]=size(c). Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 21 / 52

Matrizen bearbeiten Sei nun C = 1 2 3 4 0 1 0 0 0 0 1 0 Anzahl der Zeilen (n) und Spalten (m). > [n,m]=size(c). Lese-/Schreibzugriff auf Eintrag (i,j): > val=c(i,j) > C(i,j)=5. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 21 / 52

Matrizen bearbeiten Sei nun C = 1 2 3 4 0 1 0 0 0 0 1 0 Anzahl der Zeilen (n) und Spalten (m). > [n,m]=size(c). Lese-/Schreibzugriff auf Eintrag (i,j): > val=c(i,j) > C(i,j)=5. Zugriff auf i-te Zeile, j-te Spalte mit : > w=(1,:) liefert: ( 1 2 3 4 ) > w=(1,3:4) liefert: ( 3 4 ) > C(:,4)=[] liefert: C = 1 2 3 0 1 0 0 0 1 Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 21 / 52

Matrizen bearbeiten Aufgabe Erzeugt mit der Matrix C die Matrix C2 = ( 1 0 0 1 ). Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 22 / 52

Matrizen bearbeiten Aufgabe Erzeugt mit der Matrix C die Matrix C2 = Lösung > C2=C(2:3,2:3) ( 1 0 0 1 ). Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 22 / 52

MATLAB Funktionen octave:1> <EINGABE> abs( ) sqrt( ) exp( ) sin( ), cos( ), etc. diag( ) fliplr( ), flipud( ) sum( ) who help <Function> help Kurze Erläuterung Der Absolutbetrag (Matrizen: Komponentenweise) Die Wurzel Exponentialfunktion Trigonometrische Funktionen Erzeugt eine Diagonalmatrix (z.b. diag(1:5)) Spiegelt die Matrix (vertikal, horizontal) Summiert einen Vektor oder alle Spalten einer Matrix Variablenbelegung (Was ist alles schon erzeugt?) Informationen über die Funktion (z.b. help sum) Übersicht über sämtliche Funktionen von Octave Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 23 / 52

Matrizen bearbeiten Aufgabe Erzeugt mit dem Befehl diag(1:5) diese 10 10 Matrix F 4 1. F = 1 4........ 1. 1 4 Bestimmt die Summe aller Spalten und der gesammten Matrix. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 24 / 52

Matrizen bearbeiten Aufgabe Erzeugt mit dem Befehl diag(1:5) diese 10 10 Matrix F 4 1. F = 1 4........ 1. 1 4 Bestimmt die Summe aller Spalten und der gesammten Matrix. Lösung > F=diag(4*ones(10,1)) + diag( 1*ones(9,1),1) + diag( 1*ones(9,1), 1); > sum(f) > sum(sum(f)) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 24 / 52

Grafische Ausgabe

Grafische Ausgabe Zu einem gegebenen Vektor mit Stützstellen (x) und Funktionswerten (f(x) = y) kann man mit > plot(x,y) ein buntes Bild erzeugen. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 26 / 52

Grafische Ausgabe Zu einem gegebenen Vektor mit Stützstellen (x) und Funktionswerten (f(x) = y) kann man mit > plot(x,y) ein buntes Bild erzeugen. 1) > x=0:0.01:10; > y=x.^2; > plot(x,y) 2) > x=0:0.01:10; > Y=[x, (x.^2),(x.^3) ] ; > plot(x,y) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 26 / 52

Grafische Ausgabe Zu einem gegebenen Vektor mit Stützstellen (x) und Funktionswerten (f(x) = y) kann man mit > plot(x,y) ein buntes Bild erzeugen. 1) > x=0:0.01:10; > y=x.^2; > plot(x,y) 2) > x=0:0.01:10; > Y=[x, (x.^2),(x.^3) ] ; > plot(x,y) Beschriftung Titel title( titletext ); Achsen xlabel( x-achsentext ); ylabel( y-achsentext ); Legende legend( plot1, plot2,...); Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 26 / 52

Grafische Ausgabe Zu einem gegebenen Vektor mit Stützstellen (x) und Funktionswerten (f(x) = y) kann man mit > plot(x,y) ein buntes Bild erzeugen. 1) > x=0:0.01:10; > y=x.^2; > plot(x,y) 2) > x=0:0.01:10; > Y=[x, (x.^2),(x.^3) ] ; > plot(x,y) Beschriftung Titel title( titletext ); Achsen xlabel( x-achsentext ); ylabel( y-achsentext ); Legende legend( plot1, plot2,...); Achsen können mit semilogy, semilogx und loglog logarithmisch skaliert werden. Z.B. erzeugt semilogy(x,y) einen plot mit logarithmisch skalierter y-achse. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 26 / 52

Grafische Ausgabe Zu einem gegebenen Vektor mit Stützstellen (x) und Funktionswerten (f(x) = y) kann man mit > plot(x,y) ein buntes Bild erzeugen. 1) > x=0:0.01:10; > y=x.^2; > plot(x,y) 2) > x=0:0.01:10; > Y=[x, (x.^2),(x.^3) ] ; > plot(x,y) Beschriftung Titel title( titletext ); Achsen xlabel( x-achsentext ); ylabel( y-achsentext ); Legende legend( plot1, plot2,...); Achsen können mit semilogy, semilogx und loglog logarithmisch skaliert werden. Z.B. erzeugt semilogy(x,y) einen plot mit logarithmisch skalierter y-achse. Mit figure(i), wobei i N können mehrere Ausgabefenster geöffnet werden. Mit hold on können mehrere Plots in einem Fenster ausgegeben werden. Mittels hold off deaktiviert man dieses Verhalten. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 26 / 52

Grafische Ausgabe Aufgabe Man plotte die Funktion f(x) = sin(x) im Intevall [ π, π]. Beschriftet die Ausgabe. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 27 / 52

Grafische Ausgabe Aufgabe Man plotte die Funktion f(x) = sin(x) im Intevall [ π, π]. Beschriftet die Ausgabe. Lösung > I = -pi:0.01:pi; > I(1:10) I = -3.1416... -3.0516 > fx = sin(i); > plot(i,fx); > title( Die Sinus-Funktion ); > xlabel( x ); > ylabel( f(x)=sin(x) ); Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 27 / 52

.m-files und eigene Funktionen

.m-files und eigene Funktionen Was ist ein.m-file? Wie lege ich ein.m-file an? Konzept einer Funktion. Wie beschreibt man Rekursionen/Iterationen mittels Schleifen und Verzweigungen? while-schleife for-schleife if-verzweigung Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 29 / 52

Funktionen MATLAB Befehle können in Dateien abgespeichert werden. Diese werden als <Name>.m abgespeichert. Vorteile: Wiederverwenbarkeit von Funktionen. Zeitersparnis. Übersichtlichkeit. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 30 / 52

Funktionen MATLAB Befehle können in Dateien abgespeichert werden. Diese werden als <Name>.m abgespeichert. Vorteile: Wiederverwenbarkeit von Funktionen. Zeitersparnis. Übersichtlichkeit. Vorgehen: Öffnet mit einem beliebigen Editor eine neue Datei. Bspw. strg+n mit MATLAB. Prinzipieller Funktionsaufbau function [<out1>,...,<outn>] = <name>(<in1>,...,<inn>) end <Funktionsbefehle> Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 30 / 52

Funktionen Vorgehen: Öffnet mit einem beliebigen Editor eine neue Datei. Bspw. strg+n mit MATLAB. Prinzipieller Funktionsaufbau function [<out1>,...,<outn>] = <name>(<in1>,...,<inn>) end <Funktionsbefehle> Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 31 / 52

Funktionen Vorgehen: Öffnet mit einem beliebigen Editor eine neue Datei. Bspw. strg+n mit MATLAB. Prinzipieller Funktionsaufbau function [<out1>,...,<outn>] = <name>(<in1>,...,<inn>) <Funktionsbefehle> end Diese Datei wird unter dem Namen <name>.m gespeichert. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 31 / 52

Funktionen Vorgehen: Öffnet mit einem beliebigen Editor eine neue Datei. Bspw. strg+n mit MATLAB. Prinzipieller Funktionsaufbau function [<out1>,...,<outn>] = <name>(<in1>,...,<inn>) <Funktionsbefehle> end Diese Datei wird unter dem Namen <name>.m gespeichert. Wichtig: Die Datei muss genau diesen Namen haben und muss genau im verwendeten Verzeichnis liegen. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 31 / 52

Funktionen Vorgehen: Öffnet mit einem beliebigen Editor eine neue Datei. Bspw. strg+n mit MATLAB. Prinzipieller Funktionsaufbau function [<out1>,...,<outn>] = <name>(<in1>,...,<inn>) <Funktionsbefehle> end Diese Datei wird unter dem Namen <name>.m gespeichert. Wichtig: Die Datei muss genau diesen Namen haben und muss genau im verwendeten Verzeichnis liegen. Aufruf mit: <name>(<in1>,...,<inn>) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 31 / 52

Funktionen Aufgabe Erstellt eine Funktion ExpPlot die einen Vektor x bekommt und einen Vektor erg = e x zurückgibt. Die MATLAB-Funktion soll auch diese Funktion plotten. Verwendet diese Funktion. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 32 / 52

Funktionen Aufgabe Erstellt eine Funktion ExpPlot die einen Vektor x bekommt und einen Vektor erg = e x zurückgibt. Die MATLAB-Funktion soll auch diese Funktion plotten. Verwendet diese Funktion. Lösung Das m-file: ExpPlot.m function erg = ExpPlot(x) erg = exp(x); plot(x,erg); end Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 32 / 52

for-schleife Syntax: for <LAUFINDEX> = <START>:<ENDE> <BEFEHL-1> <BEFEHL-2>. <BEFEHL-M> end Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 33 / 52

for-schleife Syntax: for <LAUFINDEX> = <START>:<ENDE> <BEFEHL-1> <BEFEHL-2>. <BEFEHL-M> end Für eine bestimmte Anzahl von Wiederholungen wird dieselbe Gruppe von Befehlen immer wieder ausgeführt. Dabei wird ein Laufindex hochgezählt, der ebenfalls in der Befehlsgruppe verwendet werden kann. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 33 / 52

for-schleife Syntax: for <LAUFINDEX> = <START>:<ENDE> <BEFEHL-1> <BEFEHL-2>. <BEFEHL-M> end Für eine bestimmte Anzahl von Wiederholungen wird dieselbe Gruppe von Befehlen immer wieder ausgeführt. Dabei wird ein Laufindex hochgezählt, der ebenfalls in der Befehlsgruppe verwendet werden kann. Beispiel: Sum=0; for i = 1:10 Sum = Sum + i end Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 33 / 52

for-schleife Aufgabe Erstellt eine Funktion die alle geraden Zahlen bis zur Eingabevariablen summiert und zurückgibt. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 34 / 52

for-schleife Aufgabe Erstellt eine Funktion die alle geraden Zahlen bis zur Eingabevariablen summiert und zurückgibt. Lösung Das m-file: MySum.m erg=mysum(x) Sum=0; for i = 0:2:x Sum = Sum + i; end Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 34 / 52

while-schleife Syntax: while <BEDINGUNG ERFÜLLT> <BEFEHL-1>. <BEFEHL-M> end Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 35 / 52

while-schleife Syntax: while <BEDINGUNG ERFÜLLT> <BEFEHL-1>. <BEFEHL-M> end Wiederholt eine Gruppe von Octave-Befehlen bis eine bestimmte logische Bedingung nicht mehr erfüllt ist. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 35 / 52

while-schleife Syntax: while <BEDINGUNG ERFÜLLT> <BEFEHL-1>. <BEFEHL-M> end Wiederholt eine Gruppe von Octave-Befehlen bis eine bestimmte logische Bedingung nicht mehr erfüllt ist. Beispiel: Sum=10; while Sum>0 Sum = Sum - 1 end Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 35 / 52

while-schleife Syntax: while <BEDINGUNG ERFÜLLT> <BEFEHL-1>. <BEFEHL-M> end Wiederholt eine Gruppe von Octave-Befehlen bis eine bestimmte logische Bedingung nicht mehr erfüllt ist. Beispiel: Sum=10; while Sum>0 Sum = Sum - 1 end Hinweis: Ändern wir im obigen Beispiel das Minus durch ein Plus, wird das Abbruchkriterium Sum>0 nie erfüllt Endlosschleife. Die Endlosschleife kann ebenfalls mittels <Strg>-C beendet werden! Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 35 / 52

if-verzweigung Logische Vergleiche Seien a und b zwei Skalare a gleich b? a == b a ungleich b? a = b a kleiner/größer gleich b? a <= b, bzw. a >= b a kleiner/größer b? a < b, bzw. a > b if-verzweigung Syntax: if <BEDINGUNG ERFÜLLT> <BEFEHL-A> else <BEFEHL-B> end Anhand eines logischen Vergleichs wird entweder der eine oder der andere Octave-Befehl ausgeführt. Beispiel: x=10;y=5; if (x>y) z=1 else z=0 end Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 36 / 52

if-verzweigung Aufgabe Erstellt eine Funktion die 3 Zahlen x, y, z bekommt und die größte zurückgibt. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 37 / 52

if-verzweigung Aufgabe Erstellt eine Funktion die 3 Zahlen x, y, z bekommt und die größte zurückgibt. Lösung Das m-file: MyMax.m function erg=mymax(x,y,z) if x>y erg = x; else if y>z erg = y; end erg = z; end end Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 37 / 52

Euklidischer Algorithmus Aufgabe Erstellt eine Funktion erg=ggt(a,b) die den größten gemeinsamen Teiler von a, b N bestimmt. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 38 / 52

Euklidischer Algorithmus Aufgabe Erstellt eine Funktion erg=ggt(a,b) die den größten gemeinsamen Teiler von a, b N bestimmt. Pseudo-Code 1 wenn a = 0 2 dann return b 3 sonst solange b 0 4 wenn a > b 5 dann a a b 6 sonst b b a 7 return a Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 38 / 52

Euklidischer Algorithmus Lösung Das m-file: Euklid.m function erg=euklid(a,b) if (b==0) erg = a; else while (b =0) if (a>0) a=a b; else (a>0) b=b a; end erg=a; end end Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 39 / 52

Funktionen II An den Beispielen haben wir gesehen, das es sinnvoll ist Algorithmen auszulagern. So muss man den Euklidischen Algorithmus nicht für jedes Zahlenpaar neu schreiben. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 40 / 52

Funktionen II An den Beispielen haben wir gesehen, das es sinnvoll ist Algorithmen auszulagern. So muss man den Euklidischen Algorithmus nicht für jedes Zahlenpaar neu schreiben. Das funktioniert auch mit Funktionen. So kann bspw. das Newtonverfahren für verschiedene Funktionen Nullstellen berechnen. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 40 / 52

Funktionen II An den Beispielen haben wir gesehen, das es sinnvoll ist Algorithmen auszulagern. So muss man den Euklidischen Algorithmus nicht für jedes Zahlenpaar neu schreiben. Das funktioniert auch mit Funktionen. So kann bspw. das Newtonverfahren für verschiedene Funktionen Nullstellen berechnen. Sei foo.m eine Funktion. Problem: Unterscheidung Matrix und Funktion: erg=algorithm(f,a,b,...) main.m: algorithm(foo,x,y,...) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 40 / 52

Funktionen II An den Beispielen haben wir gesehen, das es sinnvoll ist Algorithmen auszulagern. So muss man den Euklidischen Algorithmus nicht für jedes Zahlenpaar neu schreiben. Das funktioniert auch mit Funktionen. So kann bspw. das Newtonverfahren für verschiedene Funktionen Nullstellen berechnen. Sei foo.m eine Funktion. Problem: Unterscheidung Matrix und Funktion: erg=algorithm(f,a,b,...) main.m: algorithm(foo,x,y,...) Lösung: Function Handle erg=algorithm(f,a,b,...) main.m: algorithm(@foo,x,y,...) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 40 / 52

Funktionen II Aufgabe Erstellt eine Funktion []=MyPlot(f,a,b), die eine Funktion im Intervall [a, b] plottet. Erstellt eine Funktion []=main(). Ruft dort mit einer beliebigen Funktion MyPlot auf. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 41 / 52

Funktionen II Lösung Das m-file: MyPlot.m function []=MyPlot(f,a,b) plot(a:0.01:b,f(a:0.01:b)) end Das m-file: main.m function []=main() a=1; b=2; MyPlot(@f,a,b) end Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 42 / 52

Funktionen II Lösung Das m-file: MyPlot.m function []=MyPlot(f,a,b) plot(a:0.01:b,f(a:0.01:b)) end Das m-file: main.m function []=main() a=1; b=2; MyPlot(@f,a,b) end plot(x,sin(x)) foo=@(x) x.^2; plot(x,foo(x)) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 42 / 52

Newtonverfahren

Newtonverfahren Newtonverfahren (Tafel) Gegeben: x 0 Startwert Iteriere: x k+1 = x k f(xk ) f (x k ) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 44 / 52

Newtonverfahren Aufgabe I Erstellt je eine Funktion für f und f mit f(x) = x 3 1. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 45 / 52

Newtonverfahren Aufgabe I Erstellt je eine Funktion für f und f mit f(x) = x 3 1. Aufgabe II Erstellt eine Funktion [x]=newton(f,df,x0,max step). Diese soll alle berechneten Werte x k im Vektor x ausgeben. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 45 / 52

Newtonverfahren Aufgabe I Erstellt je eine Funktion für f und f mit f(x) = x 3 1. Aufgabe II Erstellt eine Funktion [x]=newton(f,df,x0,max step). Diese soll alle berechneten Werte x k im Vektor x ausgeben. Aufgabe III Erstellt eine Funktion []=main() und testet mit 10 Schritten und Startwert 6. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 45 / 52

Newtonverfahren Aufgabe IV Wie kann man feststellen ob man tatsächlich gegen die Nullstelle konvergiert? Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 46 / 52

Newtonverfahren Aufgabe IV Wie kann man feststellen ob man tatsächlich gegen die Nullstelle konvergiert? Aufgabe V Plottet den Fehler mit der Anzahl der Schritte in x-richtung. Die y-skala sollte logarithmisch sein. Auch das kommt in die main. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 46 / 52

Newtonverfahren Aufgabe IV Wie kann man feststellen ob man tatsächlich gegen die Nullstelle konvergiert? Aufgabe V Plottet den Fehler mit der Anzahl der Schritte in x-richtung. Die y-skala sollte logarithmisch sein. Auch das kommt in die main. Aufgabe VI* Übergebt dem Newtonverfahren einen Toleranzwert (ToL). Ändert die for-schleife zu einer while-schleife. Führt eine Zählvariable für die maximale Schrittanzahl ein. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 46 / 52

2D-Plot

2D-Plot Surface Plot [X,Y]=meshgrid(-pi:0.1:pi,-pi:0.1:pi); Z=sin(X+Y); surf(x,y,z) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 48 / 52

Gewöhnliche Differentialgleichungen

Gewöhnliche Differentialgleichungen Gewöhnliche Differentialgleichungen (Tafel) Löse im Intervall I = [0, T ]: u (t) = f(t, u(t)), u(0) = u 0. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 50 / 52

Gewöhnliche Differentialgleichungen Gewöhnliche Differentialgleichungen (Tafel) Löse im Intervall I = [0, T ]: u (t) = f(t, u(t)), u(0) = u 0. Explizites Eulerverfahren (Tafel) Sei N die maximale Anzahl an Schritten. Dann ist h = b a N Schrittgröße. Sei t 0 = 0, y t k = t 0 + h k, u 0 = u(0). Iteriere: u k+1 = u k + h f(t k, u k ) Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 50 / 52

Gewöhnliche Differentialgleichungen Aufgabe Löse im Intervall I = [0, 5] mit N {5, 20, 50}: u (t) = λu(t), u(0) = 50. Mit λ = 2. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 51 / 52

Gewöhnliche Differentialgleichungen Aufgabe I Erstellt eine Funktion rhs(t,u,lambda). Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 52 / 52

Gewöhnliche Differentialgleichungen Aufgabe I Erstellt eine Funktion rhs(t,u,lambda). Aufgabe II Erstellt eine Funktion [u]=expeuler(f,t0,t,u0,n). Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 52 / 52

Gewöhnliche Differentialgleichungen Aufgabe I Erstellt eine Funktion rhs(t,u,lambda). Aufgabe II Erstellt eine Funktion [u]=expeuler(f,t0,t,u0,n). Aufgabe III Löst mit allen Werten für N und plottet die Ergebnisse. Probiert den Befehl Subplot aus. Philipp Siehr (Heidelberg) Einführung in MATLAB 01. Oktober 2014 52 / 52