64
MATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil 1 von 6 Dr. Matthias Wohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für Numerische Mathematik Basierend auf Kursunterlagen von Boris von Loesch 14. März 2012 Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

  • Upload
    others

  • View
    4

  • Download
    1

Embed Size (px)

Citation preview

Page 1: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

MATLAB Ferienkurs WiSe 2011 SoSe 2012Teil 1 von 6

Dr. Matthias Wohlmuth

Technische Universität MünchenFakultät Mathematik, Lehrstuhl für Numerische Mathematik

Basierend auf Kursunterlagen von Boris von Loesch

14. März 2012

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 2: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Ablauf

Theorie 1+2 Mi, 9:00 - 10:30 HS 1Übung 1 Mi, 10:30 - 12:00 große Rechnerhalle

Theorie 3+4 Mi, 12:15 - 13:45 HS 1Übung 2 Mi, 14:30 - 16:00 große RechnerhalleÜbung 3 Mi, 16:00 - 17:30 große RechnerhalleÜbung 4 Do, 9:30 - 11:00 große Rechnerhalle

Theorie 5+6 Do, 11:00 - 12:30 HS 1Übung 5 Do, 13:30 - 15:00 große RechnerhalleÜbung 6 Do, 15:00 - 16:30 Uhr große RechnerhalleTutorium Do, 16:30 - 18:00 Uhr große Rechnerhalle

Kurswebseite mit Skript:

http://www-m2.ma.tum.de/bin/view/Allgemeines/MatlabSoSe2012

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 3: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Teil 1: Inhalt

1 Einführung

2 Grundlagen

3 Vektoren und MatrizenErzeugen von MatrizenDoppelpunkt OperatorOperatorenBeispiel: Auswerten von Polynomen

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 4: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Teil 1: Inhalt

1 Einführung

2 Grundlagen

3 Vektoren und MatrizenErzeugen von MatrizenDoppelpunkt OperatorOperatorenBeispiel: Auswerten von Polynomen

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 5: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Organisatorisches

Folien und Übungsblätter werden auf die Webseite gestellt

(Fast) alle im Kurs behandelten Programm-Beispiele und Übungenlaufen auch unter Octave (ab Version 3.2.3)Eine graphische Benutzeroberfläche für Octave bietet QtOctave.Das Testat wird im Rahmen eines Multiple-Choice-Tests amMontag, den 16.04.2012, 18:30-19:15 im HS 1 stattfinden

Warum Matlab/Octave?

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 6: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Organisatorisches

Folien und Übungsblätter werden auf die Webseite gestellt(Fast) alle im Kurs behandelten Programm-Beispiele und Übungenlaufen auch unter Octave (ab Version 3.2.3)Eine graphische Benutzeroberfläche für Octave bietet QtOctave.

Das Testat wird im Rahmen eines Multiple-Choice-Tests amMontag, den 16.04.2012, 18:30-19:15 im HS 1 stattfinden

Warum Matlab/Octave?

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 7: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Organisatorisches

Folien und Übungsblätter werden auf die Webseite gestellt(Fast) alle im Kurs behandelten Programm-Beispiele und Übungenlaufen auch unter Octave (ab Version 3.2.3)Eine graphische Benutzeroberfläche für Octave bietet QtOctave.Das Testat wird im Rahmen eines Multiple-Choice-Tests amMontag, den 16.04.2012, 18:30-19:15 im HS 1 stattfinden

Warum Matlab/Octave?

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 8: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Organisatorisches

Folien und Übungsblätter werden auf die Webseite gestellt(Fast) alle im Kurs behandelten Programm-Beispiele und Übungenlaufen auch unter Octave (ab Version 3.2.3)Eine graphische Benutzeroberfläche für Octave bietet QtOctave.Das Testat wird im Rahmen eines Multiple-Choice-Tests amMontag, den 16.04.2012, 18:30-19:15 im HS 1 stattfinden

Warum Matlab/Octave?

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 9: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Was ist Matlab?Matlab ist...ein Softwaresystem für technische Berechnungen:

Numerische Berechnungen

Entwicklung von Algorithmen (Rapid Prototyping)Visualisierung von ErgebnissenAnwendungen mit grafischer Benutzeroberfläche (siehe Übung 6)Toolboxen zur Modellierung und Simulation technischer ProblemeViele Numerikbibliotheken bieten Matlab-Schnittstelle(Petsc, IPOpt, ODE Löser (C. Ludwig (M3)), MatlabLaserLibrary)Quasi-Standard in Wissenschaft und Industrie=⇒ Eigene Codes nutzbar für Anwender und Kooperationspartner

Matlab ist NICHT...

Matlab ist kein Computer Algebra System wie z.B. Mathematicaoder Maple. Die symbolic Toolbox stellt solche Funktionen aberauch zur Verfügung.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 10: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Was ist Matlab?Matlab ist...ein Softwaresystem für technische Berechnungen:

Numerische BerechnungenEntwicklung von Algorithmen (Rapid Prototyping)

Visualisierung von ErgebnissenAnwendungen mit grafischer Benutzeroberfläche (siehe Übung 6)Toolboxen zur Modellierung und Simulation technischer ProblemeViele Numerikbibliotheken bieten Matlab-Schnittstelle(Petsc, IPOpt, ODE Löser (C. Ludwig (M3)), MatlabLaserLibrary)Quasi-Standard in Wissenschaft und Industrie=⇒ Eigene Codes nutzbar für Anwender und Kooperationspartner

Matlab ist NICHT...

Matlab ist kein Computer Algebra System wie z.B. Mathematicaoder Maple. Die symbolic Toolbox stellt solche Funktionen aberauch zur Verfügung.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 11: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Was ist Matlab?Matlab ist...ein Softwaresystem für technische Berechnungen:

Numerische BerechnungenEntwicklung von Algorithmen (Rapid Prototyping)Visualisierung von Ergebnissen

Anwendungen mit grafischer Benutzeroberfläche (siehe Übung 6)Toolboxen zur Modellierung und Simulation technischer ProblemeViele Numerikbibliotheken bieten Matlab-Schnittstelle(Petsc, IPOpt, ODE Löser (C. Ludwig (M3)), MatlabLaserLibrary)Quasi-Standard in Wissenschaft und Industrie=⇒ Eigene Codes nutzbar für Anwender und Kooperationspartner

Matlab ist NICHT...

Matlab ist kein Computer Algebra System wie z.B. Mathematicaoder Maple. Die symbolic Toolbox stellt solche Funktionen aberauch zur Verfügung.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 12: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Was ist Matlab?Matlab ist...ein Softwaresystem für technische Berechnungen:

Numerische BerechnungenEntwicklung von Algorithmen (Rapid Prototyping)Visualisierung von ErgebnissenAnwendungen mit grafischer Benutzeroberfläche (siehe Übung 6)

Toolboxen zur Modellierung und Simulation technischer ProblemeViele Numerikbibliotheken bieten Matlab-Schnittstelle(Petsc, IPOpt, ODE Löser (C. Ludwig (M3)), MatlabLaserLibrary)Quasi-Standard in Wissenschaft und Industrie=⇒ Eigene Codes nutzbar für Anwender und Kooperationspartner

Matlab ist NICHT...

Matlab ist kein Computer Algebra System wie z.B. Mathematicaoder Maple. Die symbolic Toolbox stellt solche Funktionen aberauch zur Verfügung.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 13: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Was ist Matlab?Matlab ist...ein Softwaresystem für technische Berechnungen:

Numerische BerechnungenEntwicklung von Algorithmen (Rapid Prototyping)Visualisierung von ErgebnissenAnwendungen mit grafischer Benutzeroberfläche (siehe Übung 6)Toolboxen zur Modellierung und Simulation technischer Probleme

Viele Numerikbibliotheken bieten Matlab-Schnittstelle(Petsc, IPOpt, ODE Löser (C. Ludwig (M3)), MatlabLaserLibrary)Quasi-Standard in Wissenschaft und Industrie=⇒ Eigene Codes nutzbar für Anwender und Kooperationspartner

Matlab ist NICHT...

Matlab ist kein Computer Algebra System wie z.B. Mathematicaoder Maple. Die symbolic Toolbox stellt solche Funktionen aberauch zur Verfügung.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 14: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Was ist Matlab?Matlab ist...ein Softwaresystem für technische Berechnungen:

Numerische BerechnungenEntwicklung von Algorithmen (Rapid Prototyping)Visualisierung von ErgebnissenAnwendungen mit grafischer Benutzeroberfläche (siehe Übung 6)Toolboxen zur Modellierung und Simulation technischer ProblemeViele Numerikbibliotheken bieten Matlab-Schnittstelle(Petsc, IPOpt, ODE Löser (C. Ludwig (M3)), MatlabLaserLibrary)

Quasi-Standard in Wissenschaft und Industrie=⇒ Eigene Codes nutzbar für Anwender und Kooperationspartner

Matlab ist NICHT...

Matlab ist kein Computer Algebra System wie z.B. Mathematicaoder Maple. Die symbolic Toolbox stellt solche Funktionen aberauch zur Verfügung.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 15: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Was ist Matlab?Matlab ist...ein Softwaresystem für technische Berechnungen:

Numerische BerechnungenEntwicklung von Algorithmen (Rapid Prototyping)Visualisierung von ErgebnissenAnwendungen mit grafischer Benutzeroberfläche (siehe Übung 6)Toolboxen zur Modellierung und Simulation technischer ProblemeViele Numerikbibliotheken bieten Matlab-Schnittstelle(Petsc, IPOpt, ODE Löser (C. Ludwig (M3)), MatlabLaserLibrary)Quasi-Standard in Wissenschaft und Industrie=⇒ Eigene Codes nutzbar für Anwender und Kooperationspartner

Matlab ist NICHT...

Matlab ist kein Computer Algebra System wie z.B. Mathematicaoder Maple. Die symbolic Toolbox stellt solche Funktionen aberauch zur Verfügung.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 16: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Was ist Matlab?Matlab ist...ein Softwaresystem für technische Berechnungen:

Numerische BerechnungenEntwicklung von Algorithmen (Rapid Prototyping)Visualisierung von ErgebnissenAnwendungen mit grafischer Benutzeroberfläche (siehe Übung 6)Toolboxen zur Modellierung und Simulation technischer ProblemeViele Numerikbibliotheken bieten Matlab-Schnittstelle(Petsc, IPOpt, ODE Löser (C. Ludwig (M3)), MatlabLaserLibrary)Quasi-Standard in Wissenschaft und Industrie=⇒ Eigene Codes nutzbar für Anwender und Kooperationspartner

Matlab ist NICHT...

Matlab ist kein Computer Algebra System wie z.B. Mathematicaoder Maple. Die symbolic Toolbox stellt solche Funktionen aberauch zur Verfügung.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 17: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Beispiel: Numerische Berechnungen

Lösen eines Gleichungssystems.

>> A = gallery(’poisson’,4);>> f = ones(16,1);>> x = A \ f

x =0.83331.16671.1667...1.16670.8333

>> full(A)ans =

4 -1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0-1 4 -1 0 0 -1 0 0 0 0 0 0 0 0 0 00 -1 4 -1 0 0 -1 0 0 0 0 0 0 0 0 00 0 -1 4 0 0 0 -1 0 0 0 0 0 0 0 0

-1 0 0 0 4 -1 0 0 -1 0 0 0 0 0 0 00 -1 0 0 -1 4 -1 0 0 -1 0 0 0 0 0 00 0 -1 0 0 -1 4 -1 0 0 -1 0 0 0 0 00 0 0 -1 0 0 -1 4 0 0 0 -1 0 0 0 00 0 0 0 -1 0 0 0 4 -1 0 0 -1 0 0 00 0 0 0 0 -1 0 0 -1 4 -1 0 0 -1 0 00 0 0 0 0 0 -1 0 0 -1 4 -1 0 0 -1 00 0 0 0 0 0 0 -1 0 0 -1 4 0 0 0 -10 0 0 0 0 0 0 0 -1 0 0 0 4 -1 0 00 0 0 0 0 0 0 0 0 -1 0 0 -1 4 -1 00 0 0 0 0 0 0 0 0 0 -1 0 0 -1 4 -10 0 0 0 0 0 0 0 0 0 0 -1 0 0 -1 4

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 18: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Beispiel: Entwicklung von Algorithmen

Iteratives Lösungsverfahren (PCG).function [u,m] = solvePCG(A, f, u_s, C1, C2, tol, m_max)

u = u_s; m = 0;r = f - A * u;p = C2 \ (C1\ r);norm_f = norm(f);while( (norm(r)/norm_f > tol) & (m < m_max))

a = A * p;a_dot_p = a’ * p;lambda = (r’ * p) / a_dot_p;u = u + lambda * p;r = r - lambda * a;inv_C_times_r = C2 \ (C1 \ r);p = inv_C_times_r - ((inv_C_times_r’ * a) / a_dot_p) * p;m=m+1;

end

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 19: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Beispiel: Visualisierung

3D-Plot der Funktion 1x2+y2 .

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 20: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Beispiel: Modellierung und Simulation

Berechnen und Darstellen der Verschiebungsfigur eines Querschnittsunter einer Flächenlast.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 21: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Beispiel: GUI-AnwendungenPartial Differential Equations Toolbox pdetool von Matlab.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 22: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Stärken von Matlab

Algorithmen lassen sich in einer an die Mathematik angelehntenForm implementierenNative Unterstützung von Vektoren und Matrizen (auchdünnbesetzt!!)Große Bibliothek mit numerischen Funktionen, z.B. spline zurBerechnung kubischer Splines

Umfangreiche VisualisierungsmöglichkeitenMatlab wählt automatisch effizienten Algorithmus für bestimmteAufgabe, z.B. beim Lösen von linearen Gleichungssystemen mit \Weite Verbreitung in der CommunityLeicht zu lernende, umfangreiche ProgrammierumgebungNicht so langsam wie sein Ruf bei Beachtung gewisser Regeln

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 23: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Stärken von Matlab

Algorithmen lassen sich in einer an die Mathematik angelehntenForm implementierenNative Unterstützung von Vektoren und Matrizen (auchdünnbesetzt!!)Große Bibliothek mit numerischen Funktionen, z.B. spline zurBerechnung kubischer SplinesUmfangreiche VisualisierungsmöglichkeitenMatlab wählt automatisch effizienten Algorithmus für bestimmteAufgabe, z.B. beim Lösen von linearen Gleichungssystemen mit \Weite Verbreitung in der CommunityLeicht zu lernende, umfangreiche ProgrammierumgebungNicht so langsam wie sein Ruf bei Beachtung gewisser Regeln

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 24: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Bezugsmöglichkeit und Alternativen

Installiert auf den Rechnern in der RechnerhalleMatlab Campus Lizenz (mit persönlicher Registrierung)https://matlab.rbg.tum.de/

Spezielle Version für Mathematikstudenten aus Studiengebühren,nur aus dem Mathenetz installierbar. Infos unterwww.ma.tum.de/Studium/MatlabForStudents (Username:MatlabForStudents, Passwort: MFS)Studentenversion direkt bei Mathworks bestellbar (ohne Gewähr: ca.90 Euro ): www.mathworks.de/academia/student_version/

Kostenlose Alternative: Octave (www.octave.org)

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 25: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Matlab IDE

Verzeichnis-FensterBefehls-FensterBefehls-HistorieVariablenspeicherHilfe (help und doc)

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 26: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Teil 1: Inhalt

1 Einführung

2 Grundlagen

3 Vektoren und MatrizenErzeugen von MatrizenDoppelpunkt OperatorOperatorenBeispiel: Auswerten von Polynomen

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 27: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Befehlseingabe

Eingaben können direkt in das Befehlsfenster gemacht werdenMit help <Funktionsname> und doc <Funktionsname> findetman HilfeStichwortsuche in den Hilfetexten aller Funktionen mit lookfor<Stichwort>

Tabulator-Taste verwenden um Befehle automatisch zuvervollständigenMit den Hoch/Runter-Tasten können die zuletzt verwendetenBefehle durchgegangen werdenLaufende Operationen können mit Ctrl+C abgebrochen werdenKeine Ausgabe bei Abschluss mit ;

Mehrere Befehle in einer Zeile mit , oder ; trennen

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 28: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Rechnen in Matlab

Variablenzuweisung durch =Punkt-vor-Strich-RechnungIn ans steht das Ergebnis der letzten RechnungEingabe im DezimalsystemFormat: [Vorzeichen] Zahl [Exponent]

Vorzeichen: + oder −Zahl: mind. 1 Ziffer, ggf. DezimalpunktExponent: e oder E gefolgt von + oder − und ganzer Zahl

>> a=5;>> 5*a+2

ans =27

>> b=sqrt(a), b^2

b =2.2361

ans =5.0000

>> 1+2/3*4-5

ans =-1.3333

>> ans

ans =-1.3333

>> 1+2/3*4-5;>>

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 29: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Rechnen in Matlab

Variablenzuweisung durch =Punkt-vor-Strich-RechnungIn ans steht das Ergebnis der letzten RechnungEingabe im DezimalsystemFormat: [Vorzeichen] Zahl [Exponent]

Vorzeichen: + oder −Zahl: mind. 1 Ziffer, ggf. DezimalpunktExponent: e oder E gefolgt von + oder − und ganzer Zahl

>> a=5;>> 5*a+2

ans =27

>> b=sqrt(a), b^2

b =2.2361

ans =5.0000

>> 1+2/3*4-5

ans =-1.3333

>> ans

ans =-1.3333

>> 1+2/3*4-5;>>

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 30: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Komplexe Zahlen

Matlab unterstützt das Rechnen mit komplexen Zahlen.Eingabeformat: a+bi oder a+bj

Alternativ: complex(a,b)

Achtung: Automatischer Wechsel kann zu Problemen führen

>> z=5+3.5i

z =5.0000 + 3.5000i

>> a=2;>> b=3;>> z2 = a+bi??? Undefined function or variable ’bi’.

>> z2 = a+b*j

z2 =2.0000 + 3.0000i

>> j=2;>> z3 = a+b*j

z3 =8

>> z3=complex(a,b)

z3 =2.0000 + 3.0000i

>> sqrt(-5.2)

ans =0 + 2.2804i

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 31: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Komplexe Zahlen

Matlab unterstützt das Rechnen mit komplexen Zahlen.Eingabeformat: a+bi oder a+bj

Alternativ: complex(a,b)

Achtung: Automatischer Wechsel kann zu Problemen führen

>> z=5+3.5i

z =5.0000 + 3.5000i

>> a=2;>> b=3;>> z2 = a+bi??? Undefined function or variable ’bi’.

>> z2 = a+b*j

z2 =2.0000 + 3.0000i

>> j=2;>> z3 = a+b*j

z3 =8

>> z3=complex(a,b)

z3 =2.0000 + 3.0000i

>> sqrt(-5.2)

ans =0 + 2.2804i

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 32: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Komplexe Zahlen

Matlab unterstützt das Rechnen mit komplexen Zahlen.Eingabeformat: a+bi oder a+bj

Alternativ: complex(a,b)

Achtung: Automatischer Wechsel kann zu Problemen führen

>> z=5+3.5i

z =5.0000 + 3.5000i

>> a=2;>> b=3;>> z2 = a+bi??? Undefined function or variable ’bi’.

>> z2 = a+b*j

z2 =2.0000 + 3.0000i

>> j=2;>> z3 = a+b*j

z3 =8

>> z3=complex(a,b)

z3 =2.0000 + 3.0000i

>> sqrt(-5.2)

ans =0 + 2.2804i

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 33: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Teil 1: Inhalt

1 Einführung

2 Grundlagen

3 Vektoren und MatrizenErzeugen von MatrizenDoppelpunkt OperatorOperatorenBeispiel: Auswerten von Polynomen

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 34: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Alles ist Matrix!

Matlab unterstützt das Rechnen mit mehrdimensionalen Datenstrukturen(bei uns Vektoren und Matrizen). Jede Variable wird als Matrixgespeichert, z.B. wird eine Zahl als 1× 1-Matrix interpretiert.

Um Matlab effizient zu nutzen muss vektorisiert gearbeitetwerden!

Dies führt in der Regel auch zu (zumindest für Mathematiker) gutlesbarem Code.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 35: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Erzeugen von Matrizen I

Spezielle häufig benötigte Matrizen können mit Hilfe von Befehlenerzeugt werden:

eye: Einheitsmatrixones: Einsmatrixzeros: Nullmatrixrand: Matrix mit gleichverteilten Zufallswerten in (0, 1)

Syntax (bei allen identisch)rand(n,m): Matrix mit n Zeilen und m Spaltenrand(n): Quadratische Matrix mit n Zeilen und n Spalten

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 36: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Erzeugen von Matrizen I

Spezielle häufig benötigte Matrizen können mit Hilfe von Befehlenerzeugt werden:

eye: Einheitsmatrixones: Einsmatrixzeros: Nullmatrixrand: Matrix mit gleichverteilten Zufallswerten in (0, 1)

Syntax (bei allen identisch)rand(n,m): Matrix mit n Zeilen und m Spaltenrand(n): Quadratische Matrix mit n Zeilen und n Spalten

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 37: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Erzeugen von Matrizen II

>> R = rand(2,4)

R =

0.8913 0.4565 0.8214 0.61540.7621 0.0185 0.4447 0.7919

>> eye(4,3)

ans =1 0 00 1 00 0 10 0 0

>> ones(4,1)

ans =1111

>> zeros(1,3)

ans =0 0 0

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 38: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Erzeugen von Matrizen III

Matrizen und Vektoren können auch direkt mit Hilfe von [...] erzeugtwerden

Zeileneinträge mit Leerzeichen oder Komma trennenZeilenumbruch oder Semikolon für eine neue ZeileAnzahl der Einträge muss in jeder Zeile gleich sein

>> x = [3,4 5 -6]x =

3 4 5 -6

>> x = [2,3;4,5]x =

2 34 5

>> x = [2,3,45 6 7]

x =2 3 45 6 7

>> x = [1,2,3;4,5]??? Error using ==> vertcatCAT arguments dimensions are not consistent.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 39: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Erzeugen von Matrizen III

Matrizen und Vektoren können auch direkt mit Hilfe von [...] erzeugtwerden

Zeileneinträge mit Leerzeichen oder Komma trennenZeilenumbruch oder Semikolon für eine neue ZeileAnzahl der Einträge muss in jeder Zeile gleich sein

>> x = [3,4 5 -6]x =

3 4 5 -6

>> x = [2,3;4,5]x =

2 34 5

>> x = [2,3,45 6 7]

x =2 3 45 6 7

>> x = [1,2,3;4,5]??? Error using ==> vertcatCAT arguments dimensions are not consistent.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 40: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Erzeugen von Matrizen III

Matrizen und Vektoren können auch direkt mit Hilfe von [...] erzeugtwerden

Zeileneinträge mit Leerzeichen oder Komma trennenZeilenumbruch oder Semikolon für eine neue ZeileAnzahl der Einträge muss in jeder Zeile gleich sein

>> x = [3,4 5 -6]x =

3 4 5 -6

>> x = [2,3;4,5]x =

2 34 5

>> x = [2,3,45 6 7]

x =2 3 45 6 7

>> x = [1,2,3;4,5]??? Error using ==> vertcatCAT arguments dimensions are not consistent.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 41: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Erzeugen von Matrizen IV

Statt Zahlen können auch Vektoren oder Matrizen innerhalb von [...]verwendet werden (Blockmatrizen).Achtung: Auf Dimensionen achten

>> A=[eye(2); ones(2)]

A =

1 00 11 11 1

>> A=[eye(2), [1;2]; rand(1,2), 5]

A =

1.0000 0 1.00000 1.0000 2.0000

0.9218 0.7382 5.0000

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 42: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Erzeugen von Matrizen IV

Statt Zahlen können auch Vektoren oder Matrizen innerhalb von [...]verwendet werden (Blockmatrizen).Achtung: Auf Dimensionen achten

>> A=[eye(2); ones(2)]

A =

1 00 11 11 1

>> A=[eye(2), [1;2]; rand(1,2), 5]

A =

1.0000 0 1.00000 1.0000 2.0000

0.9218 0.7382 5.0000

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 43: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Erzeugen von Matrizen IV

Statt Zahlen können auch Vektoren oder Matrizen innerhalb von [...]verwendet werden (Blockmatrizen).Achtung: Auf Dimensionen achten

>> A=[eye(2); ones(2)]

A =

1 00 11 11 1

>> A=[eye(2), [1;2]; rand(1,2), 5]

A =

1.0000 0 1.00000 1.0000 2.0000

0.9218 0.7382 5.0000

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 44: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Doppelpunkt Operator, Linspace I

Mit Hilfe der Doppelpunkt Operators können spezielle Vektoren erzeugtwerden. Diese finden häufig in Schleifen oder beim Indizieren Anwendung.

Syntaxv = <Start>:<Abstand>:<Ende>Erzeugt einen Vektor v mit Elementen von <start> bis <Ende>, wobei jezwei benachbarte Elemente den Abstand <Abstand> haben.Hinweis: <Start>:<Ende> == <Start>:1:<Ende>

Auch der verwandte Befehl linspace erzeugt Vektoren.

Syntaxv = linspace(<Start>, <Ende>, n)Erzeugt einen Vektor v der Länge n mit Elementen von <Start> bis<Ende>, wobei je zwei benachbarte Elemente denselben Abstand haben.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 45: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Doppelpunkt Operator, Linspace I

Mit Hilfe der Doppelpunkt Operators können spezielle Vektoren erzeugtwerden. Diese finden häufig in Schleifen oder beim Indizieren Anwendung.

Syntaxv = <Start>:<Abstand>:<Ende>Erzeugt einen Vektor v mit Elementen von <start> bis <Ende>, wobei jezwei benachbarte Elemente den Abstand <Abstand> haben.Hinweis: <Start>:<Ende> == <Start>:1:<Ende>

Auch der verwandte Befehl linspace erzeugt Vektoren.

Syntaxv = linspace(<Start>, <Ende>, n)Erzeugt einen Vektor v der Länge n mit Elementen von <Start> bis<Ende>, wobei je zwei benachbarte Elemente denselben Abstand haben.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 46: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Doppelpunkt Operator, Linspace II

>> x = 1:2.5:7

x =1.0000 3.5000 6.0000

>> x = -1:-2:-6

x =-1 -3 -5

>> x = -1:2

x =-1 0 1 2

>> 2:-1

ans =Empty matrix: 1-by-0

>> x = linspace(1,2,4)

x =1.0000 1.3333 1.6667 2.0000

>> linspace(4,-1,3)

ans =4.0000 1.5000 -1.0000

>> linspace(1,2,0)

ans =2

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 47: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Doppelpunkt Operator, Linspace II

>> x = 1:2.5:7

x =1.0000 3.5000 6.0000

>> x = -1:-2:-6

x =-1 -3 -5

>> x = -1:2

x =-1 0 1 2

>> 2:-1

ans =Empty matrix: 1-by-0

>> x = linspace(1,2,4)

x =1.0000 1.3333 1.6667 2.0000

>> linspace(4,-1,3)

ans =4.0000 1.5000 -1.0000

>> linspace(1,2,0)

ans =2

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 48: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Weitere Möglichkeiten: Einlesen aus Datei

Matrizen können aus Textdateien, die z.B. durchTabellenkalkulationsprogramme erzeugt wurden oder numerischeEregbnisse enthalten, eingelesen werden.

SyntaxA = csvread(’eingabe.csv’) erwartet per Kommata getrennteSpalten.A = dlmread(’eingabe.txt’,’\t’) erlaubt die Angabe desTrennungszeichens zwischen den Spalten (hier Tabulator).

Analog zu csvread,dlmread gibt es Befehle um Matrizen inTextdateien abzuspeichern: csvwrite,dlmwrite

In der Matlab-Hilfe finden Sie zahlreiche Lese- und Schreibbefehlefür andere Dateiformate (z.B. Bild-, Audio- und Videodateien)

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 49: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Weitere Möglichkeiten: Einlesen aus Datei

Matrizen können aus Textdateien, die z.B. durchTabellenkalkulationsprogramme erzeugt wurden oder numerischeEregbnisse enthalten, eingelesen werden.

SyntaxA = csvread(’eingabe.csv’) erwartet per Kommata getrennteSpalten.A = dlmread(’eingabe.txt’,’\t’) erlaubt die Angabe desTrennungszeichens zwischen den Spalten (hier Tabulator).

Analog zu csvread,dlmread gibt es Befehle um Matrizen inTextdateien abzuspeichern: csvwrite,dlmwrite

In der Matlab-Hilfe finden Sie zahlreiche Lese- und Schreibbefehlefür andere Dateiformate (z.B. Bild-, Audio- und Videodateien)

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 50: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Weitere Möglichkeiten: Einlesen aus Datei

Matrizen können aus Textdateien, die z.B. durchTabellenkalkulationsprogramme erzeugt wurden oder numerischeEregbnisse enthalten, eingelesen werden.

SyntaxA = csvread(’eingabe.csv’) erwartet per Kommata getrennteSpalten.A = dlmread(’eingabe.txt’,’\t’) erlaubt die Angabe desTrennungszeichens zwischen den Spalten (hier Tabulator).

Analog zu csvread,dlmread gibt es Befehle um Matrizen inTextdateien abzuspeichern: csvwrite,dlmwrite

In der Matlab-Hilfe finden Sie zahlreiche Lese- und Schreibbefehlefür andere Dateiformate (z.B. Bild-, Audio- und Videodateien)

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 51: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Weitere Möglichkeiten

repmat erzeugt Matrizen durch mehrfaches Kopieren.

Syntaxrepmat(A, n, m)Matrix A wird insgesamt m-mal nach rechts kopiert und die entstehendeMatrix n-mal unten angehängt.

>> B=[1,2;3,4]

B =

1 23 4

>> repmat(B, 2, 3)

ans =1 2 1 2 1 23 4 3 4 3 41 2 1 2 1 23 4 3 4 3 4

>> [B,B,B; B,B,B]

ans =1 2 1 2 1 23 4 3 4 3 41 2 1 2 1 23 4 3 4 3 4

>> repmat(1:3, 3, 1)

ans =1 2 31 2 31 2 3

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 52: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Weitere Möglichkeiten

repmat erzeugt Matrizen durch mehrfaches Kopieren.

Syntaxrepmat(A, n, m)Matrix A wird insgesamt m-mal nach rechts kopiert und die entstehendeMatrix n-mal unten angehängt.

>> B=[1,2;3,4]

B =

1 23 4

>> repmat(B, 2, 3)

ans =1 2 1 2 1 23 4 3 4 3 41 2 1 2 1 23 4 3 4 3 4

>> [B,B,B; B,B,B]

ans =1 2 1 2 1 23 4 3 4 3 41 2 1 2 1 23 4 3 4 3 4

>> repmat(1:3, 3, 1)

ans =1 2 31 2 31 2 3

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 53: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Operatoren I+, -, .*, ./, .^: Elementweise OperationenAchtung: Auf den Punkt bei .*, ./ und . achten.Syntax

C = s + A mit s Skalar, A Matrix/Vektor: cij = aij + s.C = A .* B mit A und B Matrizen: cij = aij · bij .Achtung: A und B müssen die gleiche Anzahl Zeilen und Spaltenhaben

>> A = eye(2)+2

A =3 22 3

>> R = rand(2,3);>> 3.*ones(2,3) + R

ans =3.8147 3.1270 3.63243.9058 3.9134 3.0975

>> (1:5).^2

ans =1 4 9 16 25

>> 2.^(1:5)

ans =2 4 8 16 32

>> ones(2) + [1,2]??? Error using ==> plusMatrix dimensions must agree.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 54: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Operatoren I+, -, .*, ./, .^: Elementweise OperationenAchtung: Auf den Punkt bei .*, ./ und . achten.Syntax

C = s + A mit s Skalar, A Matrix/Vektor: cij = aij + s.C = A .* B mit A und B Matrizen: cij = aij · bij .Achtung: A und B müssen die gleiche Anzahl Zeilen und Spaltenhaben

>> A = eye(2)+2

A =3 22 3

>> R = rand(2,3);>> 3.*ones(2,3) + R

ans =3.8147 3.1270 3.63243.9058 3.9134 3.0975

>> (1:5).^2

ans =1 4 9 16 25

>> 2.^(1:5)

ans =2 4 8 16 32

>> ones(2) + [1,2]??? Error using ==> plusMatrix dimensions must agree.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 55: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Operatoren I+, -, .*, ./, .^: Elementweise OperationenAchtung: Auf den Punkt bei .*, ./ und . achten.Syntax

C = s + A mit s Skalar, A Matrix/Vektor: cij = aij + s.C = A .* B mit A und B Matrizen: cij = aij · bij .Achtung: A und B müssen die gleiche Anzahl Zeilen und Spaltenhaben

>> A = eye(2)+2

A =3 22 3

>> R = rand(2,3);>> 3.*ones(2,3) + R

ans =3.8147 3.1270 3.63243.9058 3.9134 3.0975

>> (1:5).^2

ans =1 4 9 16 25

>> 2.^(1:5)

ans =2 4 8 16 32

>> ones(2) + [1,2]??? Error using ==> plusMatrix dimensions must agree.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 56: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Operatoren II

*: Multiplikation im Matrizenprodukt Sinn oder elementweiseMultiplikation mit Skalar

Syntax

C = A*B mit Matrizen A und B: cij =∑

k aikbkj .Achtung: Anzahl der Spalten von A muss gleich der Anzahl Zeilenvon B seins*A == s.*A, wenn s Skalar.

Hinweis: A*x mit x Spaltenvektor ist das normale Matrix-Vektor Produktvon A mit x .

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 57: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Operatoren III

>> x = [1; 2; 3];>> A = ones(3)+eye(3)

A =2 1 11 2 11 1 2

>> A*x

ans =789

>> y = [2; 3; 4];>> x*y??? Error using ==> mtimesInner matrix dimensions must agree.

>> y = [2, 3, 4];>> y*x

ans =20

>> B = [2,2;-3,1; 0,1]

B =2 2

-3 10 1

>> A*B

ans =

1 6-4 5-1 5

>> B*A??? Error using ==> mtimesInner matrix dimensions must agree.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 58: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Operatoren III

>> x = [1; 2; 3];>> A = ones(3)+eye(3)

A =2 1 11 2 11 1 2

>> A*x

ans =789

>> y = [2; 3; 4];>> x*y??? Error using ==> mtimesInner matrix dimensions must agree.

>> y = [2, 3, 4];>> y*x

ans =20

>> B = [2,2;-3,1; 0,1]

B =2 2

-3 10 1

>> A*B

ans =

1 6-4 5-1 5

>> B*A??? Error using ==> mtimesInner matrix dimensions must agree.

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 59: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Operatoren IV

A’: Adjungierte Matrix A∗ == AT (alternativ: ctranspose(A)))A.’: Transponierte Matrix AT (alternativ: transpose(A))Wird häufig verwendet um aus Zeilenvektoren (z.B. x = 1:n;)Spaltenvektoren zu machen (x = (1:n)’;)

Hinweis: A’ und A.’ unterscheiden sich nur bei Matrizen mit komplexenEinträgen.

>> A=[1, 1+i;2,3]

A =1.0000 1.0000 + 1.0000i2.0000 3.0000

>> A’

ans =1.0000 2.00001.0000 - 1.0000i 3.0000

>> A.’

ans =1.0000 2.00001.0000 + 1.0000i 3.0000

>> transpose(A)

ans =1.0000 2.00001.0000 + 1.0000i 3.0000

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 60: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Operatoren IV

A’: Adjungierte Matrix A∗ == AT (alternativ: ctranspose(A)))A.’: Transponierte Matrix AT (alternativ: transpose(A))Wird häufig verwendet um aus Zeilenvektoren (z.B. x = 1:n;)Spaltenvektoren zu machen (x = (1:n)’;)

Hinweis: A’ und A.’ unterscheiden sich nur bei Matrizen mit komplexenEinträgen.

>> A=[1, 1+i;2,3]

A =1.0000 1.0000 + 1.0000i2.0000 3.0000

>> A’

ans =1.0000 2.00001.0000 - 1.0000i 3.0000

>> A.’

ans =1.0000 2.00001.0000 + 1.0000i 3.0000

>> transpose(A)

ans =1.0000 2.00001.0000 + 1.0000i 3.0000

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 61: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Beispiel: Auswerten von Polynomen

Beispiel: Auswerten des Polynoms p(x) := 3.5x3 + 2x2 − 2 an denPunkten xi = 0 + i/2, i = 0, . . . , 4. In der Regel speichert man denKoeffizientenvektor, also p = [-2; 0; 2; 3.5].

>> p = [-2; 0; 2; 3.5]

p =-2.0000

02.00003.5000

>> x=(0:0.5:2)’

x =0

0.50001.00001.50002.0000

>> X=[x.^0, x, x.^2, x.^3]

X =1.0000 0 0 01.0000 0.5000 0.2500 0.12501.0000 1.0000 1.0000 1.00001.0000 1.5000 2.2500 3.37501.0000 2.0000 4.0000 8.0000

>> y = X * p

y =-2.0000-1.06253.5000

14.312534.0000

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 62: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Beispiel: Auswerten von Polynomen

Beispiel: Auswerten des Polynoms p(x) := 3.5x3 + 2x2 − 2 an denPunkten xi = 0 + i/2, i = 0, . . . , 4. In der Regel speichert man denKoeffizientenvektor, also p = [-2; 0; 2; 3.5].

>> p = [-2; 0; 2; 3.5]

p =-2.0000

02.00003.5000

>> x=(0:0.5:2)’

x =0

0.50001.00001.50002.0000

>> X=[x.^0, x, x.^2, x.^3]

X =1.0000 0 0 01.0000 0.5000 0.2500 0.12501.0000 1.0000 1.0000 1.00001.0000 1.5000 2.2500 3.37501.0000 2.0000 4.0000 8.0000

>> y = X * p

y =-2.0000-1.06253.5000

14.312534.0000

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 63: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Fragen?

Ende Teil 1

Fragen?

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012

Page 64: MATLAB Ferienkurs WiSe 2011 SoSe 2012 - fileMATLAB Ferienkurs WiSe 2011 SoSe 2012 Teil1von6 Dr.MatthiasWohlmuth Technische Universität München Fakultät Mathematik, Lehrstuhl für

Fragen?

Ende Teil 1

Fragen?

Lehrstuhl für Numerische Mathematik M2 MATLAB Ferienkurs WiSe 2011 SoSe 2012