Matlab: eine kurze Einführung

Ähnliche Dokumente
Matlab: eine kurze Einführung

Kurze Einführung in Octave

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

Numerik-Programm, mittlerweile mit vielen Erweiterungen (Toolboxen) Matlab = Matrix Laboratory Sehr gute Doku (doc, help, lookfor)

MATLAB Sommersemester 2018 Dr. Ulf Mäder

Matlab Selbstlernkurs

Einführung in Matlab Was ist MATLAB? Hilfe Variablen

Einführung in MATLAB Blockkurs DLR:

Mathematische Computer-Software

Octave/Matlab-Übungen

Schülerworkshop Computertomographie Mathematik als Schlüsseltechnologie

Einführung in. Pierre Bayerl

Einführung in MATLAB / GNU Octave

Markus Grasmair. 8. März 2010

2 Matrizen und Vektoren

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

Einführung in Matlab, 2. Teil

Lösungsvorschlag zur Modulprüfung Numerische Methoden Sommersemester 2016

Einführung in MATLAB

Einführung in die Modellierung

Praktikum zur Vorlesung: Numerische Mathematik für Lehramt SS Matlab: Fortsetzung. Jan Mayer. 4. Mai 2006

10:Exkurs MATLAB / Octave

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

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

Eine kurze Einführung in Matlab

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

MATLAB: Kapitel 3 Programmieren

Eine Einführung zum numerischen Programmieren mit Matlab

2. Einführung in das Ingenieurtool MATLAB

Mathematik für Wirtschaftswissenschaftler im WS 12/13 Lösungen zu den Übungsaufgaben Blatt 12

Hörsaalübung 1 Differentialgleichungen I für Studierende der Ingenieurwissenschaften

MATLAB-Toolskurs HS17

Einführung in die Programmierung (MA8003)

Numerische Lineare Algebra - Matlab-Blatt 1

3 Kurzeinführung in Matlab

Lösungen zu Mathematik I/II

Übungsaufgaben zu den mathematischen Grundlagen von KM

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

Lösungen zu Mathematik I/II

PPS "Bits on Air" 1. Teil, Matlab-Tutorial Vorbereitungsaufgaben (Lösungsvorschläge)

Lösung Semesterendprüfung

Die Programmieraufgaben

Programmiervorkurs für die Numerik Teil 2/4

MATLAB: Kapitel 2 Grafiken

Inhalt. Mathematik für Chemiker II Lineare Algebra. Vorlesung im Sommersemester Kurt Frischmuth. Rostock, April Juli 2015

Kommentierte Musterlösung zur Klausur HM II für Naturwissenschaftler

LABORÜBUNG MATLAB/OCTAVE

Octave/Matlab-Übungen

WiMa-Praktikum 1. Woche 8

Aufgabe 1. Berechnen Sie die absolute und die relative Kondition des Problems x f(x) für die Abbildung. x = x 2 e x 1.

Eine kurze Einführung in GNU Octave (Teil 2)

Lösungsskizzen zur Nachklausur

a 11 a 12 a 1(m 1) a 1m a n1 a n2 a n(m 1) a nm Matrizen Betrachten wir das nachfolgende Rechteckschema:

Kommentierte Musterlösung zur Klausur HM I für Naturwissenschaftler

Kommentierte Musterlösung zur Klausur HM I für Naturwissenschaftler

Schriftlicher Test zu Matlab (90 Minuten) VU Einführung ins Programmieren für TM. 17. Juni 2011

Lineare Gleichungssysteme und Matrizen

3 Matrizenrechnung. 3. November

Übungen zur Mathematik Blatt 1

Mathematik 3 für Informatik

Numerische Lösung von retardierten Differentialgleichungen mit Matlab

Einführung in Octave. Theorie & Aufgaben

Einführung in die Programmierung (MA8003)

4) Lösen linearer Gleichungssysteme mit zwei oder drei Unbekannten

Musterlösungen Blatt Mathematischer Vorkurs. Sommersemester Dr. O. Zobay. Matrizen

Übung April Was ist Matlab? Aufgabe 1.1: Hochschule Bochum Sommersemester 2014 Vorlesung Autonome Roboter Prof. Dr.

Analytische Geometrie

Lösungsvorschlag zur Modulprüfung Numerische Methoden - Wintersemester 2016/17

Lineare Algebra für D-ITET, D-MATL, RW. Beispiellösung für Serie 9. Aufgabe 9.1. Herbstsemester Dr. V. Gradinaru D. Devaud A.

Mathematik. für das Ingenieurstudium. 10 Funktionen mit mehreren Variablen. Jürgen Koch Martin Stämpfle.

Analysis II für Studierende der Ingenieurwissenschaften

Untersuchen Sie, ob die folgenden Abbildungen linear oder nicht linear sind. x y

Vektoren. 2.1 Darstellung. Kapitel Subtraktion und Addition

D-MAVT NUMERISCHE MATHEMATIK FS 14 K. Nipp, A. Hiltebrand Lösung vom Test 1

Transkript:

Matlab: eine kurze Einführung Marcus J. Grote, Christoph Kirsch, Imbo Sim Department of Mathematics, University of Basel, INRIA 26. März 27 In dieser Einführung zu Matlab sind die im Praktikum I erworbenen Kenntnisse zusammengefasst. Im Anhang gibt es dazu noch eine kleine Ergänzung. Erste Schritte in Matlab. Wie fange ich an? Starte Matlab mit dem Befehl matlab. Mit help Befehl kannst du Informationen zu jedem Matlab-Befehl erhalten. Erläuterungen zu den Matlab-Befehlen findest du auch in der Menüleiste unter?. Der Befehl clear all löscht die gespeicherten Variablen..2 Rechnen mit Zahlen >+2 >a=+2; % weist der Variablen a das Ergebnis der Rechnung +2 zu >a % der Wert von a wird ausgegeben a = >2*7+^4 95

>k=cos(*pi/25) % weist der Variablen k den Wert von cos(*pi/25) zu k =.9298 >format long >k % Anzeige von 5 Stellen k =.92977648588825 >format short % Anzeige von 5 Stellen >k^-*k^2+sqrt(5).4464 >sqrt(-) % imaginaere Einheit +.i >a=+4i; >real(a) % komplexe Zahl % Realteil >imag(a) % Imaginaerteil 4 >abs(a) % Absolutbetrag 5 >round(5.4) % runden 5 2

. Vektoren >x=[ 2 ] % Zeilenvektor x = >x(2) 2 2 % 2. Eintrag von x >y=[4;5;6] % Spaltenvektor y = 4 5 6 >y(:2) % Eintraege und 2 von y 4 5 >y([ ]) % Eintraege und von y 4 6 >length(x) % Anzahl Eintraege in x >length(y) >z=*x z = 6 9 % weist dem Vektor z das Ergebnis von *x zu

>w=y+ % zu jedem Eintrag von y wird addiert w = 5 6 7 >x % transponieren: Zeilenvektor <-> Spaltenvektor 2 >x*y % Skalarprodukt 2 >y*x >x.*x 4 8 2 5 5 6 2 8 4 9 % Produkt einer x-matrix und einer x-matrix % komponentenweise Multiplikation >cos(x) % cos wird auf jeden Eintrag von x angewendet.54 -.46 -.99 >z=:5 % Zahlen von bis 5 mit Schrittweite z = 2 4 5 >z2=:.25: % Zahlen von bis mit Schrittweite.25 z2 =.25.5.75. 4

.4 Matrizen und lineare Gleichungssysteme >A=[ 2 ;4 5 6;7 8 9] A = 2 4 5 6 7 8 9 >det(a) % Determinante >size(a,) % Anzahl der Zeilen >size(a,2) % Anzahl der Spalten >B=[ ; ; ] B = >A+B >A*B 5 5 6 7 8 2 5 4 6 8 7 9 % Addition von Matrizen % Matrixmultiplikation 5

>A.*B >A^ >A 2 4 9 % komponentenweise Multiplikation % A*A*A 468 576 684 62 5 548 656 24 242 4 7 2 5 8 6 9 % Transponierte >A(,2) % Eintrag von A an der Stelle (,2) 2 >A(2,:) % 2. Zeile von A 4 5 6 >A(:,) %. Spalte von A 6 9 >A(:2,2:) % Teilmatrix aus Zeilen und 2, Spalten 2 und 2 5 6 6

>C=A([ ],[ ]) % Teilmatrix aus Zeilen und, Spalten und C = 7 9 >A*C % Produkt einer x-matrix mit einer 2x2-Matrix??? Error using ==> * Inner matrix dimensions must agree. >b=rand(,) % Zufallsvektor der Laenge b =.95.2.668 >x=b\b % loest das lineare Gleichungssystem Bx=b x =.2.95.668 >D=zeros(2,) % 2x-Nullmatrix D = >E=ones(,2) % x2-einsmatrix E = >F=eye() % x-identitaetsmatrix A = 7

>G=[C D;E F] % Matrix zusammengesetzt aus Matrizen G = 7 9.5 Grafische Darstellungen 2-D >x=:.:2*pi; % Zahlen von bis 2*pi, Schrittweite. >plot(x,cos(x)) % zeichnet cos(x) gegen x >plot(x,cos(x), -,x,sin(x), -. ) % zeichnet cos(x) und sin(x) gegen x >axis([-. 2*pi+. -..]) % legt den zu zeichnenden Bereich fest >legend( Cosinus, Sinus ) % Legende >xlabel( x ) % x-achsen-beschriftung >ylabel( f(x) ) % y-achsen-beschriftung >x=[ 2 4]; >y=[ 2.5 -.5]; >plot(x,y, o ) % zeichnet die Punkte (x,y) >axis([ 5-2 ]) plot(x,cos(x)) plot(x,cos(x), -,x,sin(x), -. ).8.8 Cosinus Sinus.6.6.4.4.2.2 f(x) -.2 -.4 -.6 -.8 -.2 -.4 -.6 -.8 - - 2 4 5 6 7 plot(x,y, o ) 2 4 5 6 x 2.5 2.5.5 -.5 - -.5-2.5.5 2 2.5.5 4 4.5 5 8

.6 Grafische Darstellungen -D >x=-2:.:2; >y=-:.:; >[X,Y]=meshgrid(x,y); >Z=sin(X.*X+Y.*Y); >mesh(x,y,z) >xlabel( x ) >ylabel( y ) >zlabel( z ) % Gitter mit den Punkten (x,y) % Werte von sin(x^2+y^2) auf dem Gitter % zeichnet die Punkte (x,y,z) und verbindet sie.5 z.5.5 2 y.5 2 x.7 Nullstellen eines Polynoms Bestimmung der Nullstellen des Polynoms p(x) = x 4 2x 2 x 2. >roots([ -2 - -2]) % nimmt den Koeffizientenvektor von p als Eingabe 2. -. -.5 +.866i -.5 -.866i 9

2 Programmieren in Matlab 2. M-Files Ein M-File ist eine Textdatei dateiname.m, die mehrere Zeilen mit Matlab-Befehlen enthält. Diese Befehle kann man in Matlab am Stück ausführen mit >dateiname In M-Files kann man auch Kommentare zu gewissen Zeilen schreiben. Ein Kommentar beginnt mit % und endet mit dem Zeilenende. 2.2 for-schleifen Mit dem Matlab-Befehl for realisiert man eine for-schleife. Als Beispiel soll hier die Fixpunktiteration x = x k+ = ln(2 x 2 k ), k betrachtet werden. In ein M-File Fix.m schreiben wir n=5; x()=; for k=:n x(k+) = log(2-x(k)^2); end und starten die Fixpunktiteration mit dem Befehl Fix. Wir zeichnen die Werte x k :.7.6.5.4..2. 2 4 5 6 Der Fixpunkt liegt etwa bei.57. Er ist eine Näherungslösung der Gleichung x 2 +e x = 2.

2. if-bedingungen Mit dem Matlab-Befehl if kann man eine if-bedingung stellen. Als Beispiel soll hier die Simulation von Münzwürfen betrachtet werden. Ein Münzwurf entspricht hier einer Zufallszahl in [, ]. Ist die Zahl grösser als /2, zählt der Wurf als Kopf, sonst als Zahl. Das folgende M-File Muenzwurf.m berechnet nach jedem Münzwurf den laufenden Mittelwert Anzahl Kopf Anzahl Würfe. n=; % Anzahl Muenzwuerfe x=rand(n,); % n Zufallszahlen in [,] ("faire" Muenze) AnzahlKopf=; % Zaehler fuer Anzahl Kopf for k=:n if x(k)>.5 % Wurf zaehlt als Kopf, wenn die Zufallszahl >.5 ist AnzahlKopf=AnzahlKopf + ; end Mittel(k)=AnzahlKopf/k; end Wir zeichnen eine Realisierung der Folge Mittel(k):.7.6.5.4..2. 2 4 5 6 7 8 9 Der Wert nach Münzwürfen liegt hier bei.492. Für echte Zufallszahlen ist der Erwartungswert.5.

Funktionen in Matlab. Eigene Funktionen definieren Mit dem Befehl function kann man in Matlab eigene Funktionen definieren. Als Beispiel betrachten wir die Funktion f(t, y) = t + e y. Schreibe die folgenden Zeilen in ein M-File: function z = f(t,y) z = t + exp(y); Speichere die Datei unter dem Namen f.m. Es ist wichtig, dass die Datei denselben Namen hat wie die Funktion! Jetzt kannst du den Funktionswert von f an einer beliebigen Stelle (t, y) berechnen mit dem Befehl f(t,y). Die Funktion f kann jetzt also wie jede andere Matlab-Funktion (z. B. sin) benutzt werden: >f(,2.5) % Wert von f an der Stelle (,2.5).825 >t=; >s=2.5; >f(t,s) % Wert von f an der Stelle (t,s).825 >f(s,t) % Wert von f an der Stelle (s,t) 5.28 Die Reihenfolge der Eingabeargumente ist wesentlich! Variablen innerhalb der Funktionsdefinition sind nur lokal sichtbar. Die Namen der Variablen in der Funktionsdefinition und beim Aufruf müssen nicht übereinstimmen..2 Vordefinierte Matlab-Funktionen benutzen In Matlab gibt es viele vordefinierte Funktionen für die verschiedensten Aufgaben. Als Beispiel betrachten wir hier die Funktion ode45: Wir betrachten eine Anfangswertaufgabe der Form y = f(t, y), < t T () y() = y. (2) 2

Die Gleichung () ist eine gewöhnliche Differenzialgleichung für die Funktion y(t) und (2) ist die Anfangsbedingung bei t =. Um eine solche Anfangswertaufgabe mit Matlab numerisch zu lösen, benutzen wir den Befehl ode45. Dieser Befehl verwendet ein so genanntes Runge-Kutta-Verfahren mit automatischer Schrittweitensteuerung der Ordnung 4(5). Die Syntax ist [t,y] = ode45( f,[ T],y) Dabei muss f eine Matlab-Funktion sein, T ist der Zeitpunkt, bis zu dem man die Lösung berechnen will, und y ist der Startwert. ode45 gibt t und y zurück. Dabei ist t der Vektor der Zeitpunkte t i, = t < t 2 < < t N < t N = T, und y ist der Vektor mit den Werten der numerischen Lösung y mit y i y(t i ). Die numerische Lösung kann man dann mit plot(t,y) zeichnen. Problem Löse die Anfangswertaufgabe y = e y sin(t), < t y() = ln() numerisch mit ode45. Zeichne die numerische Lösung y und die exakte Lösung y(t) = ln(cos(t) + 2) in dieselbe Grafik. Zeichne auch den Fehler y y. Lösung Zunächst definieren wir die Funktion f in einem M-File f.m: function z = f(t,y) z=exp(y)*sin(t); Das M-File Loesung.m löst die Anfangswertaufgabe und zeichnet die Lösungen sowie den Fehler gegenüber der exakten Lösung: [t,y]=ode45( f,[ ],-log()); tex=:.:; % Zeitpunkte fuer die exakte Loesung yex=-log(cos(tex)+2); % Werte der exakten Loesung plot(tex,yex, -,t,y, o ) axis([- -.2.]) xlabel( t ) ylabel( y(t) ) legend( exakte Loesung, numerische Loesung ) figure % oeffnet ein neues Grafikfenster plot(t,-log(cos(t)+2)-y, o- ) axis([- -e- e-]) xlabel( t ) ylabel( Fehler )

Die Lösungen y und y exakte Lösung numerische Lösung -.2 -.4 y(t) -.6 -.8-2 4 6 8 t Der Fehler y y x Fehler 2 4 6 8 t 4

4 Anhang > x.^2 % x.*x =x.^2 4 9 > norm(x,) % -Norm 6 > sum(abs(x)) % -Norm 6 > norm(x,2) % Euklidische Norm( = 2-Norm).747 > norm(x) % norm(x,2) = norm(x).747 > sqrt(sum(x.^2)) % norm(x,2) = sqrt(sum(x.^2)).747 > norm(x,inf) % Maximum-Norm > max(abs(x)) % norm(x,inf) = max(abs(x)) 5

>x=linspace(,2*pi,); >y=cos(x); >y2=sin(x); >y=(cos(x).^2).*sin(x); >subplot(2,2,:2) >plot(x,y, r- ) >hold on >subplot(2,2,) >plot(x,y2, b-- ) >subplot(2,2,4) >plot(x,y, g-. ).8 y=cos(x).6.4.2 y.2.4.6.8 2 4 5 6 7 x.8 y=sin(x).4. y=cos 2 (x) sin(x).6.4.2.2. y y.2..4.6.2.8. 2 4 5 6 7 x.4 2 4 5 6 7 x 6