Einführung in numerische Methoden für Ingenieure

Werbung
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
Herunterladen