![Page 1: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/1.jpg)
Eine kurze Einführung in Matlab
Bärbel Janssen und Thomas WickAG Numerik
Universität Heidelberg
Numerik 0 Matlab-Einführung 30. April 2010 1
![Page 2: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/2.jpg)
Übersicht
1. Woche:
Zuweisung von Werten an Variablen.
Anlegen und Bearbeiten von Vektoren & Matrizen.
Operatoren auf Vektoren & Matrizen.
Schleifen und Verzweigungen.
Programmieren mit Matlab.
Graphische Ausgabe der Ergebnisse.
2. Woche:
Einfache Numerik Aufgaben, d.h. Umsetzung von Mathematik inAlgorithmik.
Numerik 0 Matlab-Einführung 30. April 2010 2
![Page 3: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/3.jpg)
Überblick
1 Erste Aufgabe in Matlab
2 Variablen, Handwerkszeug zum Lösen der ersten Aufgabe
3 Arbeiten mit Vektoren und Matrizen
4 Erste Schritte zum Programmieren in Matlab
5 2. Woche: Numerik Aufgaben
Numerik 0 Matlab-Einführung 30. April 2010 3
![Page 4: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/4.jpg)
Basics im Umgang mit Linux
Shell oder Konsole öffnenPasswort ändern mit
1 >passwd
Verzeichnis anlegen mit
1 >mkd i r Matlab_Ordner
In das Verzeichnis wechseln
1 >cd Matlab_Ordner
Verzeichnisse und Dateien löschen
1 >rmd i r Matlab_Ordner2 >rm Date i
Matlab öffnen
1 >mat lab &
Numerik 0 Matlab-Einführung 30. April 2010 4
![Page 5: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/5.jpg)
Was ist Matlab?
MATrix LABoratory.
Was kann Matlab berechnen?
Was kann man mit Matlab berechnen?
Was kann ich mit Matlab berechnen?
MATLAB-die Sprache für technische BerechnungenMATLAB ist eine Hochsprache und eine interaktive Umgebung, mit derSie rechenintensive Aufgaben schneller als mit herkömmlichenProgrammiersprachen wie C, C++ und Fortran ausführen können.
Numerik 0 Matlab-Einführung 30. April 2010 5
![Page 6: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/6.jpg)
Was kann ich mit Matlab berechnen?
1. Beispiel: Fibonacci-Zahlen
fib(n) =
0 n = 0,
1 n = 1,
fib(n − 1) + fib(n − 2) n > 1.
1. Aufgabe:Berechne fib(25) mit Matlab.
Numerik 0 Matlab-Einführung 30. April 2010 6
![Page 7: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/7.jpg)
Wie löse ich die Aufgabe?
Was benötige ich?Zahlen, hier: 0, 1, 2 u.s.w.
Variablen, hier: n
Funktionen, hier: fib(·)Vergleiche, hier = 0, = 1, > 1.
Vorgehensweiseneue .m Datei bearbeiten
mathematische Formel in einen Algorithmus umwandeln
Numerik 0 Matlab-Einführung 30. April 2010 7
![Page 8: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/8.jpg)
Überblick
1 Erste Aufgabe in Matlab
2 Variablen, Handwerkszeug zum Lösen der ersten Aufgabe
3 Arbeiten mit Vektoren und Matrizen
4 Erste Schritte zum Programmieren in Matlab
5 2. Woche: Numerik Aufgaben
Numerik 0 Matlab-Einführung 30. April 2010 8
![Page 9: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/9.jpg)
Variablen I
Variablen werden durch die Zuordnung von Werten angelegt.
Variablennamen müssen mit einem Buchstaben anfangen, ansonstendürfen Buchstaben, Zahlen und Unterstriche benutzt werden.
Es wird zwischen Groß und Kleinschreibung unterschieden, d.h.A 6= a.
Variable anlegen und Wert zuordnen:>> a = 3.14159;
Variable ausgeben:>> aergibt:a =
3.14159
Numerik 0 Matlab-Einführung 30. April 2010 9
![Page 10: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/10.jpg)
Variablen II
Schönere Ausgabe:>> disp([′Variable a =′, num2str(a)])bewirktVariable a = 3.14159.
Das Semikolon hinter einer Wertzuweisung unterdrückt die Ausgabe.So weista = 3.14159der Variable a den Wert 3.14159 zu und erzeugt die Ausgabea =
3.14159.
Matlab kennt praktisch nur den Datentyp der n ×m Matrix.
Skalar = 1× 1 Matrix
Zeilen- und Spaltenvektoren sind 1×m, bzw. n × 1 Matrizen.
Numerik 0 Matlab-Einführung 30. April 2010 10
![Page 11: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/11.jpg)
Handwerkszeug
Logische VergleicheSeien a und b zwei Skalare, X und Y zwei boolscheVariablen.
a gleich b?
a == b
a kleiner/größer b?
a < b, bzw. a > b
X und Y ?
X & Y
nicht X?
∼ X
a ungleich b?
a ∼= b
a kleiner/größer gleich b?
a <= b, bzw. a >= b
X oder Y ?
X | Y
Numerik 0 Matlab-Einführung 30. April 2010 11
![Page 12: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/12.jpg)
Zurück zu den Fibonacci-Zahlen
1. Beispiel: Fibonacci-Zahlen
fib(n) =
0 n = 0,
1 n = 1,
fib(n − 1) + fib(n − 2) n > 1.
1. Aufgabe:Berechne fib(25) mit Matlab.
Numerik 0 Matlab-Einführung 30. April 2010 12
![Page 13: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/13.jpg)
Lösung der ersten Aufgabe
* Klick auf ’File’ -> New -> M-File.
* Datei ’fib.m’ benennen und mit einem Editor öffnen.
function erg = fib(n)if(n == 0)erg = 0;elseif(n==1)erg = 1;elseerg = fib(n-1) + fib(n-2);end
Speichere die Datei ab.
Numerik 0 Matlab-Einführung 30. April 2010 13
![Page 14: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/14.jpg)
Lösung der ersten Aufgabe
* Klick auf ’File’ -> New -> M-File.
* Datei ’fib.m’ benennen und mit einem Editor öffnen.
function erg = fib(n)if(n == 0)erg = 0;elseif(n==1)erg = 1;elseerg = fib(n-1) + fib(n-2);end
Speichere die Datei ab.
Numerik 0 Matlab-Einführung 30. April 2010 13
![Page 15: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/15.jpg)
Lösung der ersten Aufgabe
* Klick auf ’File’ -> New -> M-File.
* Datei ’fib.m’ benennen und mit einem Editor öffnen.
function erg = fib(n)if(n == 0)erg = 0;elseif(n==1)erg = 1;elseerg = fib(n-1) + fib(n-2);end
Speichere die Datei ab.
Numerik 0 Matlab-Einführung 30. April 2010 13
![Page 16: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/16.jpg)
Lösung der ersten Aufgabe
* Klick auf ’File’ -> New -> M-File.
* Datei ’fib.m’ benennen und mit einem Editor öffnen.
function erg = fib(n)if(n == 0)erg = 0;elseif(n==1)erg = 1;elseerg = fib(n-1) + fib(n-2);end
Speichere die Datei ab.
Numerik 0 Matlab-Einführung 30. April 2010 13
![Page 17: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/17.jpg)
Lösung der ersten Aufgabe
* Klick auf ’File’ -> New -> M-File.
* Datei ’fib.m’ benennen und mit einem Editor öffnen.
function erg = fib(n)if(n == 0)erg = 0;elseif(n==1)erg = 1;elseerg = fib(n-1) + fib(n-2);end
Speichere die Datei ab.
Numerik 0 Matlab-Einführung 30. April 2010 13
![Page 18: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/18.jpg)
Lösung der ersten Aufgabe
* Klick auf ’File’ -> New -> M-File.
* Datei ’fib.m’ benennen und mit einem Editor öffnen.
function erg = fib(n)if(n == 0)erg = 0;elseif(n==1)erg = 1;elseerg = fib(n-1) + fib(n-2);end
Speichere die Datei ab.
Numerik 0 Matlab-Einführung 30. April 2010 13
![Page 19: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/19.jpg)
Lösung der ersten Aufgabe
* Klick auf ’File’ -> New -> M-File.
* Datei ’fib.m’ benennen und mit einem Editor öffnen.
function erg = fib(n)if(n == 0)erg = 0;elseif(n==1)erg = 1;elseerg = fib(n-1) + fib(n-2);end
Speichere die Datei ab.
Numerik 0 Matlab-Einführung 30. April 2010 13
![Page 20: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/20.jpg)
Lösung der ersten Aufgabe
* Klick auf ’File’ -> New -> M-File.
* Datei ’fib.m’ benennen und mit einem Editor öffnen.
function erg = fib(n)if(n == 0)erg = 0;elseif(n==1)erg = 1;elseerg = fib(n-1) + fib(n-2);end
Speichere die Datei ab.
Numerik 0 Matlab-Einführung 30. April 2010 13
![Page 21: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/21.jpg)
Lösung der ersten Aufgabe
* Klick auf ’File’ -> New -> M-File.
* Datei ’fib.m’ benennen und mit einem Editor öffnen.
function erg = fib(n)if(n == 0)erg = 0;elseif(n==1)erg = 1;elseerg = fib(n-1) + fib(n-2);end
Speichere die Datei ab.
Numerik 0 Matlab-Einführung 30. April 2010 13
![Page 22: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/22.jpg)
Lösung der ersten Aufgabe
* Klick auf ’File’ -> New -> M-File.
* Datei ’fib.m’ benennen und mit einem Editor öffnen.
function erg = fib(n)if(n == 0)erg = 0;elseif(n==1)erg = 1;elseerg = fib(n-1) + fib(n-2);end
Speichere die Datei ab.
Numerik 0 Matlab-Einführung 30. April 2010 13
![Page 23: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/23.jpg)
Überblick
1 Erste Aufgabe in Matlab
2 Variablen, Handwerkszeug zum Lösen der ersten Aufgabe
3 Arbeiten mit Vektoren und Matrizen
4 Erste Schritte zum Programmieren in Matlab
5 2. Woche: Numerik Aufgaben
Numerik 0 Matlab-Einführung 30. April 2010 14
![Page 24: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/24.jpg)
Vektoren erstellen
Vektoren können als Zeilen- oder Spaltenvektoren angelegt werden.Sie werden entweder explizit, d.h. komponentenweise eingegeben,oder mittels (vorgegebener) Funktionen sukzessive gefüllt.
a = [1, 2, 3] erzeugt a =(1 2 3
).
b = [4; 5] erzeugt b =
(45
).
Beispiele für spezielle Funktionen zum Füllen eines Vektors:a = 1 : 5 liefert den Vektor a =
(1 2 3 4 5
).
b = 1 : 2 : 5 liefert den Vektor a =(1 3 5
).
Die Länge eines Vektors a wird mit length(a) abgefragt.Sei a = 1 : 10, dann ist length(a) = 10.
Numerik 0 Matlab-Einführung 30. April 2010 15
![Page 25: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/25.jpg)
Vektoren bearbeiten
Lese-/Schreibzugriff auf die i-te Komponente von a über a(i):Sei a = 11 : 15 =
(11 12 13 14 15
)b = a(3) liefert b = 13a(3) = −1 erzeugt a =
(11 12 −1 14 15
)Analoger Zugriff auf Subvektoren:
Sei a = −5 : −1 =(−5 −4 −3 −2 −1
)b = a(2 : 4) liefert b =
(−4 −3 −2
)a(2 : 4) =
(1 2 3
)erzeugt a =
(−5 1 2 3 −1
)Mittels ′ werden Vektoren (und später auch Matrizen) transponiert
Sei a = 1 : 4, dann liefert a′ den Vektor
1234
Numerik 0 Matlab-Einführung 30. April 2010 16
![Page 26: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/26.jpg)
Matrizen erstellen
Auch Matrizen können sowohl explizit, als auch mithilfe diverserFunktionen erstellt werden.
A = [1, 2, 3; 4, 4, 4; 0, 0, 0] erzeugt A =( 1 2 3
4 4 40 0 0
).
Mit v = [1, 2] erzeugt B = [v ; 0, 0] die Matrix ( 1 20 0 ).
Beispiele für spezielle Funktionen zum Füllen einer Matrix:
Einheitsmatrix: I = eye(3) erzeugt I =(
1 0 00 1 00 0 1
).
Nullmatrix: N = zeros(3) erzeugt N =(
0 0 00 0 00 0 0
).
n ×m Nullmatrix: N = zeros(2, 3) erzeugt N = ( 0 0 00 0 0 ).
Eins-Matrix: N = ones(3) erzeugt N =(
1 1 11 1 11 1 1
).
n ×m Eins-Matrix: N = ones(1, 3) erzeugt N =(1 1 1
).
Numerik 0 Matlab-Einführung 30. April 2010 17
![Page 27: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/27.jpg)
Matrizen bearbeiten
Sei nun A =
1 2 3 40 1 0 00 0 1 0
.[n,m] = size(A) liefert Zeilenvektor
(n m
), wobei n = #Zeilen und
m = #Spalten von A.[n,m] = size(A) gibt den Vektor
(3 4
)zurück.
Lese-/Schreibzugriff auf den Eintrag i , j mittels A(i , j)b = A(1, 3) liefert b = 3.
Zugriff auf n-te Zeile / m-te Spalte mittels A(n, :), bzw. A(:,m)
v = A(1, :) liefert v =(1 2 3 4
).
w = A(1, 3 : 4) hingegen ergibt v =(3 4
).
A(:, 4) = [ ] löscht die 4. Spalte: A =
1 2 30 1 00 0 1
.
Numerik 0 Matlab-Einführung 30. April 2010 18
![Page 28: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/28.jpg)
Grundlegende Operatoren I
Matlab kennt beispielsweise die Operatoren +, −, ∗, / und ∧.Grundsätzlich werden Operatoren als Matrizenoperatoreninterpretiert. Durch das Voranstellen eines Punktes (’.’) erzwingtman die komponentenweise Interpretation des Operators.
Seien nun A und B n × n Matrizen, v und w Spaltenvektoren passenderGröße, sowie c und d Skalare.
Operatoren zwischen ’Matrizen’.Addition: A + B, v + w und c + d addiert einfach die jeweiligenKomponenten.Multiplikation ∗
A ∗ B und c ∗ A liefern eine Matrix, c ∗ d einen Skalar.A ∗ v , w ′ ∗ B und c ∗ v liefern einen Vektor.v ′ ∗ w =
∑ni=1 vi ∗ wi liefert einen Skalar.
v ∗ w ′ hingegen ergibt die Matrix (vi ∗ wj)ni ,j=1.
Numerik 0 Matlab-Einführung 30. April 2010 19
![Page 29: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/29.jpg)
Beispiele zu den grundlegenden Operatoren I
Sei A = 2 ∗ eye(2), B = [4, 2; 0, 2], v = [1; 0], w = [1; 3]
A + B =
(6 20 4
), v + w =
(23
).
A ∗ B =
(8 40 4
), 0.5 ∗ A =
(1 00 1
).
A ∗ v =
(20
), w ′ ∗ B =
(4 8
).
v ′ ∗ w = 1, v ∗ w ′ =(1 30 0
).
Numerik 0 Matlab-Einführung 30. April 2010 20
![Page 30: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/30.jpg)
Grundlegende Operatoren II
Fortsetzung der Matrix-OperatorenDivision: A/B berechnet A ∗ B−1 (falls B invertierbar).Potenzieren: A ∧ c berechnet Ac .
Komponentenweise OperatorenMultiplikation ’.∗’: A. ∗ B und v . ∗ w multipliziert die jeweiligenKomponenten miteinander.Division ’./’: Funktioniert analog zur Multiplikation.Potenzieren ’.∧:
v . ∧ c und A. ∧ c bewirkt das komponentenweise Potenzieren.c. ∧ v liefert den Vektor (cvi )n
i=1.
Sinngemäß lassen sich die Operatoren auch auf Subvektorenübertragen.
Numerik 0 Matlab-Einführung 30. April 2010 21
![Page 31: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/31.jpg)
Beispiele zu den grundlegenden Operatoren II
B/A =
(2 10 1
), B ∗ A ∧ −1 =
(2 10 1
).
B ∧ 2 =
(16 120 4
), A ∧ 0.5 =
(1.4142 0
0 1.4142
).
A. ∗ B =
(8 00 4
), v ./w =
(10
).
Mit a = (1 : 5) ergibt a. ∧ 2 die ersten fünf Quadratzahlen.
a. ∧ 2 erzeugt(1 4 9 16 25
)Durch 2. ∧ a erhält man die ersten fünf Zweierpotenzen.
2. ∧ a erzeugt(2 4 8 16 32
)
Numerik 0 Matlab-Einführung 30. April 2010 22
![Page 32: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/32.jpg)
Überblick
1 Erste Aufgabe in Matlab
2 Variablen, Handwerkszeug zum Lösen der ersten Aufgabe
3 Arbeiten mit Vektoren und Matrizen
4 Erste Schritte zum Programmieren in Matlab
5 2. Woche: Numerik Aufgaben
Numerik 0 Matlab-Einführung 30. April 2010 23
![Page 33: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/33.jpg)
Steuerstrukturen
Warum?
→ Sequentielle Steuerung des Programmablaufs
Was hat Matlab zu bieten?→ 4 Arten von Schleifen und Verzweigungen
for-Schleifewhile-Schleifeif-Verzweigungswitch-Verzweigung
Numerik 0 Matlab-Einführung 30. April 2010 24
![Page 34: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/34.jpg)
Schleifen
for-Schleifen
n = 10; z = 0;
for i = 1 : n
z = z + i
end ;
while-Schleifen
format long
c = 0; a = 1; n = 0;
while(c ∼= a)
c = a + 2 ∧ (−n)n = n + 1;
end ;
Numerik 0 Matlab-Einführung 30. April 2010 25
![Page 35: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/35.jpg)
Verzweigungen
if-Verzweigung
function [z ] = fun(x , y)
if (x > y)
z = 1;
elseif (x < y)
z = −1;else
z = 0;
end ;
switch-Verzweigung
x = −2;switch x
case − 2
disp(’x ist -2’)
case 0
disp(’x ist Null’)
case 1001
disp(’x ist groß’)
end ;
Numerik 0 Matlab-Einführung 30. April 2010 26
![Page 36: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/36.jpg)
Dateien für Skripte und Funktionen
m-filesZwecks Zeitersparnis können Matlabbefehle in Dateien, sogenanntem-files gespeichert werden.
Zum Erstellen: Eine Textdatei mit entsprechenden Befehlen füllenund diese als ’Dateiname.m’ abspeichern.Diese Dateien können zwei verschiedene Aufgaben erfüllen:
FunktionshülleDie Datei dient zurDefinition von Funktionen.
SkriptDie Datei enthält eineAbfolge von Matlabbefehlen.
Dateien können nur benutzt werden, wenn sie im aktuellenMatlab-Verzeichnis (’current directory’) liegen.Skripte und Funktionen können mit <STRG>-C abgebrochenwerden.Numerik 0 Matlab-Einführung 30. April 2010 27
![Page 37: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/37.jpg)
Skripte
Zweck Erleichtert das Programmieren mit Matlab.
Arbeitsweise Die Befehlssequenzen in der Datei werden der Reihe nachabgearbeitet.
Aufruf Das Skript wird über den Dateinamen aufgerufen, d.h.’befehle.m’ wird mit dem Aufruf ’befehle’ gestartet.
Sichtbarkeit Das Skript kann auf alle vorher definierten Variablenzugreifen.Nach Ablauf des Skriptes sind alle im Skript erstelltenVariablen weiterhin sichtbar.
Der Befehl pause hält ein Skript an, bis <RETURN> betätigt wird.
Der Befehl pause(n) lässt ein Skript n Sekunden lang pausieren.
Numerik 0 Matlab-Einführung 30. April 2010 28
![Page 38: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/38.jpg)
Funktionen
Zweck Definition und Implementation von Funktionen.Arbeitsweise Die Funktion arbeitet ihren Rumpf mit den übergebenen
Parametern ab. Als Rückgabewert dienen die im Kopfdeklarierten Variablen:function [ output_args ] = fun( input_args )
Aufruf Die Funktion wird über den Dateinamen aufgerufen. Diesersollte mit dem Funktionsnamen übereinstimmen.
Sichtbarkeit Die Funktion kann nicht auf vorher definierte Variablenzugreifen.Nach Ablauf der Funktion sind alle in der Funktion erstelltenVariablen verschwunden.
Ein m-file kann mehrere Funktionen enthalten, allerdings kann nurdie erste ’extern’ aufgerufen werden.Es können nur Funktionen in der Datei definiert werden, außerhalbdürfen keine Befehle stehen.Numerik 0 Matlab-Einführung 30. April 2010 29
![Page 39: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/39.jpg)
Aufgabe zum Funktionsplot
Man plotte die Funktion f (x) = sin(x) auf I = [−π, π]
Numerik 0 Matlab-Einführung 30. April 2010 30
![Page 40: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/40.jpg)
Lösung
1 >>x=−p i : p i /10 : p i ;2 >>y= s i n ( x ) ;3 >>p l o t ( x , y ) ;
Numerik 0 Matlab-Einführung 30. April 2010 31
![Page 41: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/41.jpg)
Funktionen und grafische Ausgabe
Definition einer Funktion, die (x + sin(x))2 berechnet.
Nebenstehendes Programmeintippen und speichern.
fun.m
function erg = fun(x)
tmp = x + sin(x);
erg = tmp. ∧ 2;
Funktionsaufruf für x = 5 über y = fun(5);
Grafische Ausgabe der Funktion auf dem Intervall [0, 1]:v = 0 : 0.1 : 1;
plot(v , fun(v),′ r−′);Funktionen können mehre Ein-/Ausgabeparameter besitzen:function[erg1, erg2] = fun2(x ,A, c)
Numerik 0 Matlab-Einführung 30. April 2010 32
![Page 42: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/42.jpg)
Plotten
Vektor von Funktionswerten y gegen Vektor von x plotten:plot(x , y)
x-Werte sind z.B. x = 0 : 0.01 : 10;Funktionswerte sind z.B. y = f (x), odern = length(x); y = zeros(1, n); for i = 1 : n y(i) = f (x(i)); end ;Anstelle von y kann auch eine Matrix übergeben werden. Dann wirdder x-Vektor gegen jede Zeile geplottet.
Beschriftung des PlotsTitel title(′titletext ′);
Achsen xlabel(′x − Achsentext ′); ylabel(′y − Achsentext ′);Legende legend(′plot1′,′ plot2′, . . . );
Achsen können mit semilogy , semilogx und loglog logarithmischskaliert werden.
Mit figure(i), i ∈ N kann das Ausgabe gewechselt werden. Mithold on können mehrere Plots in einem Fenster ausgegeben werden.
Numerik 0 Matlab-Einführung 30. April 2010 33
![Page 43: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/43.jpg)
Fortsetzung Funktionsplot
Man plotte die Funktion f (x) = sin(x) auf I = [−π, π] undbeschrifte die Achsen auf sinnvolle Art und Weise. Danach gebe mandem Plot einen Titel.
Numerik 0 Matlab-Einführung 30. April 2010 34
![Page 44: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/44.jpg)
Hilfe & Softwarealternativen
Matlabinterne Hilfehelp eingebenFür Hilfe zu einem bestimmten Befehl help befehl . . .. . . noch ausführlicher mit doc befehl
Externe HilfeKostenloser Zugriff über die UB:http://www.springerlink.com/content/q41041/http://en.literateprograms.org/Category:Programming_language:Matlab
Alternative zu Matlab: http://www.gnu.org/software/octave/
Numerik 0 Matlab-Einführung 30. April 2010 35
![Page 45: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/45.jpg)
Hausaufgabe: Octave installieren
octave 3.X.exe herunterladen und installieren (mit Admin Rechten)
stabile Version 3.2.4 mit ca. 70 MB
Testen mit dem Befehl ‘sombrero(40)’ (40 steht für die Feinheit derDiskretisierung)
Numerik 0 Matlab-Einführung 30. April 2010 36
![Page 46: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/46.jpg)
Überblick
1 Erste Aufgabe in Matlab
2 Variablen, Handwerkszeug zum Lösen der ersten Aufgabe
3 Arbeiten mit Vektoren und Matrizen
4 Erste Schritte zum Programmieren in Matlab
5 2. Woche: Numerik Aufgaben
Numerik 0 Matlab-Einführung 30. April 2010 37
![Page 47: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/47.jpg)
Übersicht
2. Woche:
Einfache Numerik Aufgaben, d.h. Umsetzung von Mathematik inAlgorithmik.
Numerik 0 Matlab-Einführung 30. April 2010 38
![Page 48: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/48.jpg)
Präsenzaufgabe 1: Polynomauswertung
Man werte das folgende Polynom an den Stellen x = −3,−1, 1, 3, 5aus:
p(x) = 0.01x3 + 5.7x − 45
Numerik 0 Matlab-Einführung 30. April 2010 39
![Page 49: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/49.jpg)
Präsenzaufgabe 1: Lösung
1 % Prae s en z au f g ab e 12 % Polynomauswertung3 % De f i n e r e S c h r i t t w e i t e h4 h = 2 ;5 x=−3:h : 3 ;6 po lynom_koef f = [ 0 . 0 1 0 5 .7 −45] ;7 p o l y v a l ( po lynom_koef f , x )
Numerik 0 Matlab-Einführung 30. April 2010 40
![Page 50: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/50.jpg)
Präsenzaufgabe 2: Taylorapproximation des Sinus
Man entwickle die Funktion sin(x) als Polynom bis zur Ordnung 5und werte das Polynom anschließend an den Stellen im IntervallI = [a, b] mit der Schrittweite h = 2 aus. Man vergleiche mit derAuswertung des sin(x) an den gleichen Stellen.
Man variiere die Intervallgrenzen a und b und interpretiere dasErgebnis.
Dazu plotte man beide Funktionen im Intervall I = [a, b].
Numerik 0 Matlab-Einführung 30. April 2010 41
![Page 51: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/51.jpg)
Präsenzaufgabe 2: Lösung
1 % Prae s en z au f g ab e 22 % Polynomauswertung f u e r3 % s i n ( x ) = x − x ^3/3! + x ^5/5!4 % De f i n i e r e : I =[ a , b ]5 a=−5;6 b=5;7 x=a : 2 : b ;8 po lynom_koef f = [1/5/4/3/2 , 0 , −1/6 , 0 , 1 , 0 ] ;9 p o l y v a l ( po lynom_koef f , x )
10 s i n ( x )11 % Plo t de r Funk t i o n mit S c h r i t t w e i t e h12 h =0 . 1 ;13 y=a : h : b ;14 p l o t ( y , s i n ( y ) , y , p o l y v a l ( po lynom_koef f , y ) )
Numerik 0 Matlab-Einführung 30. April 2010 42
![Page 52: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/52.jpg)
Präsenzaufgabe 3: exp-Funktion
Man schreibe ein Matlabprogramm zur Berechnung derExponentialfunktion
ex =∞∑
k=0
xk
k!, x ∈ R
mit Hilfe ihrer Taylor-Summen
Tn(x) =n∑
k=0
xk
k!, x ∈ R, n ∈ N.
Man plotte für n ∈ [0, 20] den relativen Fehler für die Argumentex ∈ {10, 1,−1,−10}, und gebe eine Modifikation an, mit deren Hilfenegative wie positive Argumente gleich gut behandelt werden können.
Numerik 0 Matlab-Einführung 30. April 2010 43
![Page 53: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/53.jpg)
Präsenzaufgabe 3: Lösungsansatz
Vorgehen vor dem ProgrammierenProblem verstehen!
Problem mit Bleistift und Papier lösen.
Vorgehen während des ProgrammierensFunktion mit Argumenten x und n zur Auswertung derTaylorreihe schreiben.Hauptprogramm schreiben, in welchem1. x und n initialisiert werden.2. der relative Fehler unter Aufruf der zuvor programmierten
Funktion berechnet wird.3. für jeden Wert von x der relative Fehler gegen n aufgetragen wird.
Fehler analysieren, Verbesserungsstrategie überlegen.
Numerik 0 Matlab-Einführung 30. April 2010 44
![Page 54: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/54.jpg)
Präsenzaufgabe 3: Lösung 1 Taylorsumme
1 f u n c t i o n e r g = taysum ( x , n )2 %Berechne x k , k = 0 , . . . , n :3 N = 0 : n ;4 X = x .^N;5 %D i v i s i o n von X ( k ) du rch k !6 f o r i = 2 : l e n g t h (X )7 X ( i ) = X ( i )/ f a c t o r i a l ( i −1);8 end ;9 e r g = sum(X ) ; %Aufsummieren
10 r e tu rn ;
Numerik 0 Matlab-Einführung 30. April 2010 45
![Page 55: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/55.jpg)
Präsenzaufgabe 3: Lösung 1 Hauptteil
1 f o rmat long ;2 x = [ 10 , 1 , −1, −10] ;3 e = exp ( x ) ; n = 0 : 20 ;4 l_x = l e n g t h ( x ) ;5 l_n = l e n g t h ( n ) ;6 f e h l e r = z e r o s ( l_x , l_n ) ;7 f o r i = 1 : l_x8 f o r j = 1 : l_n9 tmp = taysum ( x ( i ) , n ( j ) ) ;
10 tmp = ( tmp −e ( i ) )/ e ( i ) ;11 f e h l e r ( i , j ) = abs ( tmp ) ;12 end ;13 end ;14 f e h l e r15
16 p lo t_exp ;
Numerik 0 Matlab-Einführung 30. April 2010 46
![Page 56: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/56.jpg)
Präsenzaufgabe 3: Lösung 1 Plot
1 % Plo t de r Funk t i on en2 y = −10 :0 .01 :5 ;3 z= z e r o s ( l e n g t h ( y ) , 1 ) ;4 exponen t =5;5 f o r i =1: l e n g t h ( y )6 % i f ( y ( i ) <0)7 % z ( i ) = 1/ taysum ( y ( i ) , e xponen t ) ;8 % e l s e9 z ( i ) = taysum ( y ( i ) , e xponent ) ;
10 % end ;11 end ;12 p l o t ( y , z , ’ r e d ’ , y , exp ( y ) , ’ b l a c k ’ ) ;
Numerik 0 Matlab-Einführung 30. April 2010 47
![Page 57: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/57.jpg)
Präsenzaufgabe 3: Lösung 2 Taylorsumme
1 % Vo r s c h l a g 2 zu r Imp l emen t i e r u n g de r Taylorsumme2 a=−10; b=3 % I n t e r v a l l e n d e n3 h =0 . 1 ; % S c h r i t t w e i t e4 x=a : h : b ; % D e f i n i t i o n s i n t e r v a l l (− v e k t o r )5 n=20; % Ordnung des Tay l o r po l ynoms6 % E r g e b n i s v e k t o r i n i t a l i s i e r e n ( y−Werte )7 erg_tay= z e r o s (1 , l e n g t h ( x ) ) ;8 % Berechne f u e r j e d e n E i n t r a g x_i9 % den Tay lorsummenwert
10 f o r k = 0 : n11 erg_tay = erg_tay + x .^ k/ f a c t o r i a l ( k ) ;12 end13 % Ausgabe de r E r g e b n i s s e14 d i s p ( [ ’ Werte␣ de r ␣Taylorsumme : ␣ ’ , num2str ( erg_tay ) ] ) ;15 % Plo t de r E r g e b n i s s e16 p l o t ( x , erg_tay , ’ r e d ’ , x , exp ( x ) , ’ b l a c k ’ ) ;
Numerik 0 Matlab-Einführung 30. April 2010 48
![Page 58: Eine kurze Einführung in Matlablehre/SS10/numerik0/Folien/... · BasicsimUmgangmitLinux ShelloderKonsoleöffnen Passwortändernmit 1 >passwd Verzeichnisanlegenmit 1 >mkdir Matlab_Ordner](https://reader033.vdocuments.pub/reader033/viewer/2022041417/5e1c6ec4ef0fe9391c0954bf/html5/thumbnails/58.jpg)
Vielen Dank für die Mitarbeit
Numerik 0 Matlab-Einführung 30. April 2010 49