Einführung in numerische Methoden für Ingenieure (nach A. Quarteroni, F. Saleri: Wissenschaftliches Rechnen mit MATLAB) Prof. R. Leithner, Dipl. Phys. E. Zander Wintersemester 2010/2011 Übung 1 Grundlagen: Zahlen, Vektoren, Matrizen, Funktionen, Fehleranalyse Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/2 Matlab • Matlab starten (Kommandozeile/Terminal matlab) Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/3 Matlab • Matlab starten (Kommandozeile/Terminal matlab) • Hilfe anzeigen: help inv, doc det, oder Menü/F1-Taste Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/3 Matlab • Matlab starten (Kommandozeile/Terminal matlab) • Hilfe anzeigen: help inv, doc det, oder Menü/F1-Taste • Arithmetik: 2*3, pi^2, 1/0, -1/0, 0/0, inf-inf, inf+inf Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/3 Matlab • Matlab starten (Kommandozeile/Terminal matlab) • Hilfe anzeigen: help inv, doc det, oder Menü/F1-Taste • Arithmetik: 2*3, pi^2, 1/0, -1/0, 0/0, inf-inf, inf+inf • Vergleiche: 3==3, inf==inf, nan==nan, inf>1e300, inf>nan Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/3 Matlab • Matlab starten (Kommandozeile/Terminal matlab) • Hilfe anzeigen: help inv, doc det, oder Menü/F1-Taste • Arithmetik: 2*3, pi^2, 1/0, -1/0, 0/0, inf-inf, inf+inf • Vergleiche: 3==3, inf==inf, nan==nan, inf>1e300, inf>nan • Komplexe Zahlen: sqrt(-1), i*i, (1+i)^2, (-1)^(1/3) Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/3 Matlab • Matlab starten (Kommandozeile/Terminal matlab) • Hilfe anzeigen: help inv, doc det, oder Menü/F1-Taste • Arithmetik: 2*3, pi^2, 1/0, -1/0, 0/0, inf-inf, inf+inf • Vergleiche: 3==3, inf==inf, nan==nan, inf>1e300, inf>nan • Komplexe Zahlen: sqrt(-1), i*i, (1+i)^2, (-1)^(1/3) • Matrizen: A=[1 2; 3 4], size(A), A^2, A.^2, det(A), inv(A) Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/3 Matlab • Matlab starten (Kommandozeile/Terminal matlab) • Hilfe anzeigen: help inv, doc det, oder Menü/F1-Taste • Arithmetik: 2*3, pi^2, 1/0, -1/0, 0/0, inf-inf, inf+inf • Vergleiche: 3==3, inf==inf, nan==nan, inf>1e300, inf>nan • Komplexe Zahlen: sqrt(-1), i*i, (1+i)^2, (-1)^(1/3) • Matrizen: A=[1 2; 3 4], size(A), A^2, A.^2, det(A), inv(A) • Vervollständigen: Befehl linspace(0,2,10), Eingabe “lins”, dann Tab-Taste drücken, auswählen, dann Eingabe “(0,2,10)” Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/3 Matlab • Matlab starten (Kommandozeile/Terminal matlab) • Hilfe anzeigen: help inv, doc det, oder Menü/F1-Taste • Arithmetik: 2*3, pi^2, 1/0, -1/0, 0/0, inf-inf, inf+inf • Vergleiche: 3==3, inf==inf, nan==nan, inf>1e300, inf>nan • Komplexe Zahlen: sqrt(-1), i*i, (1+i)^2, (-1)^(1/3) • Matrizen: A=[1 2; 3 4], size(A), A^2, A.^2, det(A), inv(A) • Vervollständigen: Befehl linspace(0,2,10), Eingabe “lins”, dann Tab-Taste drücken, auswählen, dann Eingabe “(0,2,10)” • Ausgabe unterdrücken mit Semikolon: x=1, y=1; Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/3 Matlab • Laden und Speichern von Workspace-Variablen: save, load Beispiel: x=1, save foo, x=2, load foo, x Anmerkung: speichert alle Workspace-Variable save filename var1 var2 speichert nur var1, var2 • Funktionen: Beispiel: Funktion sqr kommt in Datei sqr.m: function s=sqr(x) s=x*x Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/4 Matlab • Laden und Speichern von Workspace-Variablen: save, load Beispiel: x=1, save foo, x=2, load foo, x Anmerkung: speichert alle Workspace-Variable save filename var1 var2 speichert nur var1, var2 • Bedingungen: if ... else ... end Beispiel Maximum: if a>b; m=a; else m=b; end • Funktionen: Beispiel: Funktion sqr kommt in Datei sqr.m: function s=sqr(x) s=x*x Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/4 Matlab • Laden und Speichern von Workspace-Variablen: save, load Beispiel: x=1, save foo, x=2, load foo, x Anmerkung: speichert alle Workspace-Variable save filename var1 var2 speichert nur var1, var2 • Bedingungen: if ... else ... end Beispiel Maximum: if a>b; m=a; else m=b; end • Schleifen: for ... in ... end und while ... end Beispiel Quadratzahlen von 1 bis 10: for i=1:10; i^2, end • Funktionen: Beispiel: Funktion sqr kommt in Datei sqr.m: function s=sqr(x) s=x*x Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/4 Vektoren Aufgabe 1: Zeige (in Matlab) dass folgende Vektoren in R4 linear abhängig (!) sind: v1 = [0, 1, 0, 1]T , v2 = [1, 2, 3, 4]T , v3 = [1, 0, 1, 0]T , v4 = [0, 0, 1, 1]T Hinweis: Benutze Eigenschaften der Determinante. Aufgabe 2: Zeige, dass die Vektoren v1, . . . , v3 linear unabhängig sind Aufgabe 3: Sind die Vektoren v1 = [1, 0, 0]T , und v2 = [2, 10−15 , 0]T linear unabhängig? Was sagt Matlab? Warum? Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/5 Vektoren Aufgabe 1: Zeige (in Matlab) dass folgende Vektoren in R4 linear abhängig (!) sind: v1 = [0, 1, 0, 1]T , v2 = [1, 2, 3, 4]T , v3 = [1, 0, 1, 0]T , v4 = [0, 0, 1, 1]T Hinweis: Benutze Eigenschaften der Determinante. Lösung 1: Definiere in Matlab v1=[0;1;0;1] etc. Dann berechne det([v1,v2,v3.v4]). Ergebnis 0. Aufgabe 2: Zeige, dass die Vektoren v1, . . . , v3 linear unabhängig sind Aufgabe 3: Sind die Vektoren v1 = [1, 0, 0]T , und v2 = [2, 10−15 , 0]T linear unabhängig? Was sagt Matlab? Warum? Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/5 Vektoren Aufgabe 1: Zeige (in Matlab) dass folgende Vektoren in R4 linear abhängig (!) sind: v1 = [0, 1, 0, 1]T , v2 = [1, 2, 3, 4]T , v3 = [1, 0, 1, 0]T , v4 = [0, 0, 1, 1]T Hinweis: Benutze Eigenschaften der Determinante. Lösung 1: Definiere in Matlab v1=[0;1;0;1] etc. Dann berechne det([v1,v2,v3.v4]). Ergebnis 0. Aufgabe 2: Zeige, dass die Vektoren v1, . . . , v3 linear unabhängig sind Lösung 2: Benutze den Befehl rank([v1, v2, v3]) ergibt 3. Aufgabe 3: Sind die Vektoren v1 = [1, 0, 0]T , und v2 = [2, 10−15 , 0]T linear unabhängig? Was sagt Matlab? Warum? Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/5 Vektoren Aufgabe 1: Zeige (in Matlab) dass folgende Vektoren in R4 linear abhängig (!) sind: v1 = [0, 1, 0, 1]T , v2 = [1, 2, 3, 4]T , v3 = [1, 0, 1, 0]T , v4 = [0, 0, 1, 1]T Hinweis: Benutze Eigenschaften der Determinante. Lösung 1: Definiere in Matlab v1=[0;1;0;1] etc. Dann berechne det([v1,v2,v3.v4]). Ergebnis 0. Aufgabe 2: Zeige, dass die Vektoren v1, . . . , v3 linear unabhängig sind Lösung 2: Benutze den Befehl rank([v1, v2, v3]) ergibt 3. Aufgabe 3: Sind die Vektoren v1 = [1, 0, 0]T , und v2 = [2, 10−15 , 0]T linear unabhängig? Was sagt Matlab? Warum? Lösung 3: Ja, aber Matlab berechnet rank([v1 v2]) = 1. Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/5 Polynome Aufgabe 1: Vergleiche die berechneten Nullstellen eines Polynoms mit den in Matlab berechneten 1 2 3 Definiere den Vektor v=1:5 Definiere das Polynom p=poly(v) mit Nullstellen 1, . . . , 5 Berechne die Nullstellen des Polynoms mit roots(p) und vergleiche mit den exakten Nullstellen Aufgabe 2: Wiederhole Aufgabe 1 mit 10, 15 und 25 Nullstellen Aufgabe 3: Definiere das Polynom x3 − 5x2 + 4x + 2 in Matlab. Berechne Ableitung und Integral von Hand und in Matlab und vergleiche die Ergebnisse. Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/6 Binominalkoeffizienten n! Schreibe eine Funktion, die den Binominalkoeffizienten nk = k!(n−k)! berechnet. Die Funktion soll als binom(7,3) aufgerufen werden können und im gegebenen Beispiel 35 zurückliefern. • Gebe edit binom ein um die Datei binom.m zu erstellen und zu editieren • Definiere das Funktionsinterface “function rueckgabe=funkname( paramter )” • Werte den oben stehenden Ausdruck aus weise ihn der Rückgabevariablen zu • Teste die Funktion mit binom(7,3) Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/7 Fließkommazahlen - Aufgaben Aufgabe 1: Aus wie vielen Zahlen besteht die Menge F(2, 3, −2, 4)? Bitte ein paar Zahlen im Fließkommaformat aufzählen. (Basis β = 2, Länge der Mantisse t = 3, kleinster Exponent L = −2, größter Exponent U = −4) Aufgabe 2: Wie groß ist M für diese Menge? Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/8 Fließkommazahlen - Aufgaben Aufgabe 1: Aus wie vielen Zahlen besteht die Menge F(2, 3, −2, 4)? Bitte ein paar Zahlen im Fließkommaformat aufzählen. (Basis β = 2, Länge der Mantisse t = 3, kleinster Exponent L = −2, größter Exponent U = −4) Lösung 1: Menge F(2, 3, −2, 4) enthält 56 Zahlen. Aufgabe 2: Wie groß ist M für diese Menge? Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/8 Fließkommazahlen - Aufgaben Aufgabe 1: Aus wie vielen Zahlen besteht die Menge F(2, 3, −2, 4)? Bitte ein paar Zahlen im Fließkommaformat aufzählen. (Basis β = 2, Länge der Mantisse t = 3, kleinster Exponent L = −2, größter Exponent U = −4) Lösung 1: Menge F(2, 3, −2, 4) enthält 56 Zahlen. Aufgabe 2: Wie groß ist M für diese Menge? Lösung 2: m = 21−3 = 1/4 Betrachte: |0.1002 · 21 − 0.1012 · 21 | = 0.012 = 2−2 = 1/4 Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/8 Fließkommazahlen - Aufgaben Aufgabe 1: Zeige, dass die Menge F(β, t, L, U ) genau 2(β − 1)β t−1 (U − L + 1) Zahlen enthält. Aufgabe 2: In Matlab: Wie groß ist eps? Berechne alternativ für Datentyp double (β = 2, t = 53). Aufgabe 3: Was ergibt (1+eps)-1 und (2+eps)-2 Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/9 Fließkommazahlen - Aufgaben Aufgabe 1: Zeige, dass die Menge F(β, t, L, U ) genau 2(β − 1)β t−1 (U − L + 1) Zahlen enthält. Lösung 1: 2 (positive und negative Zahlen) mal β − 1 Möglichkeiten für die erste Stelle der Mantisse mal β t−1 Möglichkeiten für die restlichen t − 1 Stellen mal (U − L + 1) verschiedene Exponenten Aufgabe 2: In Matlab: Wie groß ist eps? Berechne alternativ für Datentyp double (β = 2, t = 53). Aufgabe 3: Was ergibt (1+eps)-1 und (2+eps)-2 Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/9 Fließkommazahlen - Aufgaben Aufgabe 1: Zeige, dass die Menge F(β, t, L, U ) genau 2(β − 1)β t−1 (U − L + 1) Zahlen enthält. Lösung 1: 2 (positive und negative Zahlen) mal β − 1 Möglichkeiten für die erste Stelle der Mantisse mal β t−1 Möglichkeiten für die restlichen t − 1 Stellen mal (U − L + 1) verschiedene Exponenten Aufgabe 2: In Matlab: Wie groß ist eps? Berechne alternativ für Datentyp double (β = 2, t = 53). Lösung 2: eps=2.2204e-16, dasselbe wie 2^-52 Aufgabe 3: Was ergibt (1+eps)-1 und (2+eps)-2 Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/9 Fließkommazahlen - Aufgaben Aufgabe 1: Zeige, dass die Menge F(β, t, L, U ) genau 2(β − 1)β t−1 (U − L + 1) Zahlen enthält. Lösung 1: 2 (positive und negative Zahlen) mal β − 1 Möglichkeiten für die erste Stelle der Mantisse mal β t−1 Möglichkeiten für die restlichen t − 1 Stellen mal (U − L + 1) verschiedene Exponenten Aufgabe 2: In Matlab: Wie groß ist eps? Berechne alternativ für Datentyp double (β = 2, t = 53). Lösung 2: eps=2.2204e-16, dasselbe wie 2^-52 Aufgabe 3: Was ergibt (1+eps)-1 und (2+eps)-2 Lösung 3: Wie zu erwarten eps und 0. Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/9