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
Allgemeines
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/2
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Allgemeine Informationen
• Dozent: Prof. R. Leithner, [email protected]
• Betreuer: Dipl. Phys. E. Zander, [email protected]
• Sekretariat:
Institut für Wärme- und Brennstofftechnik
Ina Wolfram
Tel: 0531/391-3043
E-Mail: [email protected]
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/3
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Allgemeine Informationen
• Literatur:
• A. Quarteroni, F. Saleri:
Wissenschaftliches Rechnen mit MATLAB
Springer, ISBN 3-540-25005-0
http://mox.polimi.it/Springer/
• I. N. Bronstein, K. A. Semendjajew:
Taschenbuch der Mathematik
Verlag B. G. Teubner, ISBN 3-519-20012-0 oder
Verlag Harri Deutsch, ISBN 3-8171-2007-9
• Software: Matlab
• Freie Alternativen zu Matlab: GNU Octave, Scilab (Inria)
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/4
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Allgemeine Informationen
• Ablauf
• Vorlesung: Dienstags (alle zwei Wochen)
Zeit: 1400 − 1630 Uhr
Ort: Rechenzentrum RZ 012
• Übung: Dienstags (alle zwei Wochen)
Gruppe 1: 1400 − 1615 Uhr
Gruppe 2: 1615 − 1830 Uhr
Ort: Rechenzentrum RZ 65.2
• Klausur
• Termin wird noch bekannt gegeben
• Inhalt: Beispiele aus Vorlesung und Übung
• Ohne Unterlagen, ohne PC
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/5
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Inhalt
1
Zahlen, Vektoren, Matrizen, Matlab
2
Nichtlineare Gleichungen
3
Approximation
4
Numerische Differentiation & Integration
5
Lineare Systeme
6
Eigenwerte & Eigenvektoren
7
Gewöhnliche Differentialgleichungen
8
Partielle Differentialgleichungen/Randwertprobleme
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/6
Fehleranalyse
Kapitel 1
Grundlagen:
Zahlen, Vektoren, Matrizen, Funktionen, Fehleranalyse
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/7
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Zahlenmengen
• Natürliche Zahlen
N: 1, 2, 3, . . .
Z: . . . , −2, −1, 0, 1, 2, 3, . . .
Rationale Zahlen Q: Brüche und periodische Dezimalbrüche
• Ganze Zahlen
•
z.B.
13
7 , 5, −0.333333 . . .
• Reelle Zahlen
R: rationale
und irrationale Zahlen z.B.
√
π = 3.1415926 . . . , 2 = 1.41421 . . .
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/8
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Zahlenmengen
• Komplexe Zahlen
C: z.B. 3 + 2i
• Darstellung in der Gaußschen Zahlenebene:
Quelle: Wikipedia
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/9
Fehleranalyse
Reelle Zahlen
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/10
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fließkommazahlen/Floating-Point-Zahlen
• Fließkommazahlen
F
• Untermenge der reellen Zahlen:
F⊂R
• Reelle Zahl x wird vom Computer gerundet
⇒ Maschinenzahl: fl(x)
• Beispiel x = 1/7
• Dezimaldarstellung: 0.142857
(Achtung: statt “,” wird “.” als Dezimaltrenner verwendet)
• Beispiel in Matlab
>> 1/7
ans =
0.1429
• Rundung auf 4 Dezimalstellen
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/11
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Ausgabeformate für Fließkommazahlen
• Interne Darstellung genauer (16 Dezimalziffern)
• Verschiedene Output-Formate:
Matlab-Befehl
format long
format short e
format long e
format short g
format long g
Ausgabe
0.14285714285714
1.4286e-01
1.428571428571428e-01
0.14286
0.142857142857143
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/12
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Interne Darstellung
• Interne Darstellung von Zahlen im Computer:
x = (−1)s · (0. a1 a2 . . . at ) · β e
| {z }
Mantisse
= (−1)s · m · β e−t
• s Vorzeichenbit entweder 0 oder 1
• β Basis größer gleich 2 (im Computer meistens β = 2, manche
Prozessoren können aber auch β = 10)
• m Mantisse der Länge t,
speicherbare Ziffern ai zwischen 0 und β − 1
• e Exponent
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/13
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Interne Darstellung
x = (−1)s · (0.a1 a2 . . . at ) · β e
• a1 > 0 für eindeutige Darstellung, sonst
0.1 = 0.1 · 100 = 0.01 · 101 nicht eindeutig
•
F vollständig bestimmt durch: β, t, L und U
wobei L ≤ e ≤ U und L < 0, U > 0
F(β, t, L, U )
In Matlab F(2, 53, −1021, 1024)
• Zahlenmenge
•
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/14
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Rundungsfehler
• Roundoff-Error ensteht durch Ersetzung: x ∈
R −→
fl(x) ∈
F
• Im allgemeinen klein
• M = β 1−t
|x − fl(x)|
1
≤ M
|x|
2
= Abstand von 1 zur nächsten Floating-Point-Zahl
• Datentyp double: M = 2−52 ≈ 2.22 · 10−16
Kommando in Matlab: eps = 2.22044604925031e-16
• relativer Fehler hier sinnvoller als absoluter Fehler |x − fl(x)|
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/15
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Zahlenbereich
• 0 gehört nicht zu
F (⇒ Sonderbehandlung)
• L und U endlich ⇒ Absolutbetrag ist nach oben und unten
beschränkt
• Kleinste und größte Zahl in
xmin = β
L−1
F
,
xmax = β U (1 − β −t )
• In Matlab mit realmin und realmax:
xmin = 2.225073858507201 · 10−308
xmax = 1.7976931348623158 · 10+308
• Abstand zweier Zahlen auf der Zahlengeraden in der Nähe von
xmin sehr klein, in der Nähe von xmax sehr groß, bei gleichem
relativen Fehler
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/16
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Zahlenbereich
• Zahlen kleiner xmin erzeugen Underflow
wird als 0 oder auf besondere Weise dargestellt
• Zahlen größer xmax erzeugen Overflow
⇒ Sonderbehandlung, Ausgabe in Matlab: Inf
• Besondere Ausdrücke: 1/0=Inf, -1/0=-Inf
• Beachte: 0 ist Vorzeichenbehaftet: 1/-0=-Inf, -1/-0=Inf
• Unbestimmte Formen: 0/0, ∞/∞, 0 · ∞, ∞ − ∞,. . .
in Matlab NaN (Not-a-Number)
Beispiel: 0/0=NaN, Inf/Inf=NaN, . . .
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/17
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
IEEE 754 Standard for Floating-Point Arithmetic
• Standardformate: single und double precision
single:
sign exponent (8 bits)
fraction (23 bits)
= 0.15625
31 30
23 22
(bit index)
0
single precision
double:
sign
63
fraction
(52 bit)
exponent
(11 bit)
52
0
Quelle: Wikipedia
• Vorzeichenbit (sign) s: 1 Bit
• Exponent (exponent) e: 11 Bit
Alle Bits gleich 0: Null oder Underflow
Alle Bits gleich 1: Unendlich oder NaN (Not a Number)
• Mantisse (fraction) s: 52 Bit
(53 Bit Genauigkeit, da a1 immer gleich 1 nicht gespeichert wird)
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/18
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Rechnen mit Floating-Point-Zahlen
• Manche Eigenschaften aus
R
bleiben erhalten, Beispiel:
Kommutativität der Addition und Multiplikation:
∀x, y ∈ gilt fl(x + y) = fl(y + x) und fl(xy) = fl(yx)
• Aber: keine Assoziativität, keine Distributivität
• Keine Eindeutigkeit der 0 mehr gegeben. Beispiel:
F
>> a = 1; b =1; while a + b ~= a ; b = b /2; end
• Mit reellen Zahlen bricht die Schleife nicht ab
mit Fließkommazahlen nach endlich vielen Schritten
b=1.1102e-16 = M /2
• Für a und b mit b<eps*a gilt in Fließkommaarithmetik a+b=a
• Anmerkung: ~= in Matlab bedeutet 6=, e-16 bedeutet 10−16
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/19
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Rechnen mit Floating-Point-Zahlen
• Beispiel: Keine Assoziativität bei Overflow oder Underflow:
Sei a=1e308, dann a + (a − a) = a, aber (a + a) − a = Inf
• Auslöschung signifikanter Stellen bei Addition zweier Zahlen mit
ähnlichem Betrag aber verschiedenem Vorzeichen. Beispiel:
>> x = 1. e - 15; ((1 + x ) - 1)/ x
ans =
1.1102
Exaktes Ergebnis 1, Fehler größer als 11%
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/20
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Auslöschung
Beispiel 1: das Polynom (x − 1)7
f (x) = x7 − 7x6 + 21x5 − 35x4 + 35x3 − 21x2 + 7x − 1
im Intervall [1 − 2 · 10−8 , 1 + 2 · 10−8 ]
−15
x 10
6
4
2
0
−2
−4
−6
Quelle: eigenes Bild
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/21
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Auslöschung
Beispiel 2: die Folge
n−1/2
q
p
1 − 1 − 41−n zn2 , n = 2, 3, . . .
z2 = 2, zn+1 = 2
konvergiert gegen π.
Relativer Fehler |π − zn |/|π| steigt ab 16. Iteration wieder an
0
10
−1
10
−2
10
−3
10
−4
10
−5
10
−6
10
−7
10
−8
10
−9
10
−10
10
0
5
10
15
20
25
30
Quelle: eigenes Bild
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/22
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Robuste Summation
• Konstruktion von robusten Algorithmen, d.h. ohne oder mit stark
reduzierter Auslöschung, nicht trivial
Pn
• Beispiel: Summation einer Folge
i=1 xi
• Idee: Explizites Mitführen von Rundungsfehlern in der Summation
• Implementiert im Summationsalgorithmus von W. Kahan
⇒ Speichern der Summe in s, Rundungsfehler in c
1
2
Setze s und c auf 0
In jedem Schritt i:
setze y = xi + c
setze t = s + y
setze c = y − (t − s)
setze s = t
• Noch genauer: robuste Arithmetik-Algorithmen von J. Shewchuk
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/23
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Kahan-Summation - Implementierung
Matlab-Implementierung des Kahan-Summationsalgorithmus
function s = kahan_sum ( x )
c =0;
s =0;
for i =1: numel ( x )
y = x ( i )+ c ;
t=s+y;
c =y -( t - s );
s=t;
end
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/24
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Kahan-Summation - Implementierung
Der Kahan-Summationsalgorithmus liefert genauere Ergebnisse:
>> format long e
>> x =[0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1];
>> sum ( x )
>> kahan_sum ( x )
ans =
9.99 999999 999999 9 e -01
ans =
1
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/25
Fehleranalyse
Komplexe Zahlen
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/26
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Komplexe Zahlen
• Menge der komplexen Zahlen
C
• Form z = x + iy, komplexe Einheit i =
√
−1 d.h. i2 = −1
• In Matlab: z=x+i*y oder complex(x,y)
Achtung: wenn i als Variable benutzt wird, z=x+1i*y schreiben
• Realteil x = Re(z), Imaginärteil y = Im(z)
• In Matlab: x=real(z) bzw. y=imag(z)
• Konjugiert komplexe Zahl: z̄ = x − iy
In Matlab: conj(z)
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/27
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Polardarstellung
• Trigonometrische Darstellung/Polardarstellung
z = reiϕ = r(cos(ϕ) + i sin(ϕ))
p
mit Betrag r = x2 + y 2 (Matlab: abs) und Argument ϕ
Winkel zwischen z und der x-Achse (Matlab: angle)
• Beispiel:
90
5
120
>> z =3+ i *3; abs ( z ) , angle ( z )
ans =
4.2426
ans =
0.7854
>> compass ( z )
60
4
3
150
30
2
1
180
0
210
330
240
300
270
Quelle: eigenes Bild
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/28
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Eindeutigkeit komplexer Funktionen
• Matlab: alle Operationen sind implizit komplex, Beispiel:
>> ( -8)^(1/3)
ans =
1 +
1.7321 i
statt −2 wie erwartet
• Potenzieren mit ^ Symbol
• Alle Zahlen der Form rei(ϕ+2kπ) gleich
• ⇒ 3 verschiedene dritte Wurzeln
√
z1 = 3 reiϕ/3 ,
√
z2 = 3 rei(ϕ/3+2π/3) ,
√
z3 = 3 rei(ϕ/3+4π/3)
Quelle: A. Quarteroni, F. Saleri
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/29
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Eindeutigkeit komplexer Funktionen
• Matlab wählt erste komplexe Wurzel im Uhrzeigersinn (von der
positiven reellen Achse aus)
• Euler-Formeln
1 iϕ
e + e−iϕ
2
1 iϕ
sin(ϕ) =
e − e−iϕ
2i
cos(ϕ) =
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/30
Matrizen und Vektoren
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/31
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Matrizen
• Matrix A mit m Zeilen und n Spalten

a11
 a21

A= .
 ..
a12
a22
..
.
···
···
..
.

a1n
a2n 

.. 
. 
am1 am2 · · · amn
= Menge von m × n Elementen
• Kompakte Schreibweise: A = (aij )
• Eingabe in Matlab: Spalten durch “,” oder “ ” (Leerzeichen)
getrennt, Zeilen durch “;”. Beispiel:
>> A =[1 2 3; 4 5 6]
A =
1
2
3
4
5
6
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/32
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Elementare Operationen auf Matrizen
• Summe zweier Matrizen A = (aij ) und B = (bij )
⇒ A + B = (aij + bij )
• Produkt einer Matrix A = (aij ) mit einer Zahl λ
⇒ λA = (λaij )
• Beispiel in Matlab:
>> A =[1 2 3; 4 5 6]; B =[7 8 9; 10 11 12];
>> A + B
ans =
8
10
12
14
16
18
>> 10* A
ans =
10
20
30
40
50
60
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/33
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Elementare Operationen auf Matrizen
•
•
•
•
Extraktion von Matrixelementen aij : A(i,j)
Extraktion von Spaltenvektoren: A(:,j)
Extraktion von Zeilenvektoren: A(i,:)
Beispiel in Matlab:
>> A =[1 2 3; 4 5 6];
>> A (2 ,3) , A (: ,2) , A (1 ,:)
ans =
6
ans =
2
5
ans =
1
2
3
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/34
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Matrixmultiplikation
• Matrixprodukt zweier Matrizen A und B nur definiert wenn:
A eine m × p, B eine p × n Matrix ist
• Ergebnis: m × n Matrix C
cij =
p
X
aik bkj
k=1
Beispiel:
>> A =[1 2 3; 4 5 6]; B =[13 14; 15 16; 17 18];
>> C = A * B
C =
94
100
229
244
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/35
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Matrizenmultiplikation - Falksches Schema
• Falksches Schema zur Multiplikation von Matrizen
• Beispiel: multipliziere A ∈ 4×5 mit B ∈ 5×3
R
R
2
AB=C
A=
2
3
-2 -1
2
3
4
1
-3
4
0
1 -3
4
2 -1 0
3 -4 -7 29 -12
3 -2 2
1
0 13 20 7
=B
=C
-1 3 -1 -2 -4 -9 -5 -14
3
3 -4 2 -2 -20 1
3
Quelle: eigenes Bild
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/36
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Spezielle Matrizen
• Einheitsmatrix In der Dimension n, quadratische n × n Matrix mit
1 auf der Diagonalen, sonst 0


1 0 ··· 0
0 1 · · · 0


In =  . . .
.. 
.
.
.
. .
. .
0 0 ··· 1
• In Matlab: eye(n)
• Nullmatrix 0 enthält nur Nullen
• In Matlab: zeros(m,n)
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/37
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Inverse einer Matrix
• Inverse X = A−1 einer Matrix A:
Es gilt: XA = AX = I
• In Matlab: X=inv(A)
• Achtung: Inverse wird in der Numerik sehr selten explizit berechnet
x = A−1 b heißt immer: löse das Gleichungssystem Ax = b
• Inverse existiert genau dann, wenn Determinante ungleich Null
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/38
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Determinante
• Mathematisch: Rekursive Definition durch Laplace-Regel:


a11
P
n
i+j det(A )a
det(A) =
ij ij
j=1 (−1)


falls n = 1,
für n > 1, und
i = 1 . . . n beliebig
Aij entsteht aus A durch Streichung von Zeile i und Spalte j
Wert der Determinanten unabhängig von i
• Beispiele:
n=1
n=2
det(A) = a11
det(A) = a11 a22 − a21 a12
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/39
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Determinante
• Berechnung bei 3 × 3 Matrizen
det(A) = a11 a22 a33 + a31 a12 a23 + a21 a32 a13
− a11 a23 a32 − a31 a13 a22 − a21 a33 a12
• Sarrus-Regel:
Quelle: Wikipedia
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/40
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Determinante
• Berechnung bei 4 × 4 Matrizen
• Benutze Laplace-Regel
det(A) = a11 det(A11 )−a12 det(A12 )+a13 det(A13 )−a14 det(A14 )
a11
a21
a31
a41
a12
a22
a32
a42
a13
a23
a13
a14
a14
a11
a24
a
− 21
a34
a31
a44
a41
a12
a22
a32
a42
a13
a23
a13
a14
a14
a24
+···
a34
a44
• Dann wieder Sarrus-Regel für 3 × 3 Matrizen
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/41
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Determinante und Inverse
• Determinante in Matlab mit: det(A)
• Achtung: Berechnung mit Laplace-Regel numerisch ineffizient
(O(n!)) und instabil (Auslöschung!),
• Matlab benutzt LR-Zerlegung/Gauß-Elimination zur Berechnung
• Produktregel: det(AB) = det(A) det(B)
• Für Diagonal- und Dreiecksmatrizen gilt: det(A) = a11 a22 · · · ann
• ⇒ Genaueres in Kapitel 5
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/42
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Determinante und Inverse
Reguläre Matrix
>> A =[1 2; 3 4];
>> Det = det ( A )
Det =
-2
>> X = inv ( A )
X =
-2
1.5
1
-0.5
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/43
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Determinante und Inverse
Singuläre Matrix
>> A =[1 2; 2 4];
>> Det = det ( A )
Det =
0
>> X = inv ( A )
Warning : Matrix is singular to working precision .
X =
Inf
Inf
Inf
Inf
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/44
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Diagonal- und Dreiecksmatrizen
• Diagonalmatrizen: diag(v), v Vektor der Dimension n
• diag(v,m), erzeugt Matrix der Dimension n+abs(m) mit Vektor v
auf m-ter oberen Nebendiagonalen
>> A = diag ([1 2 3] , -1)
A =
0
0
0
0
1
0
0
0
0
2
0
0
0
0
3
0
• diag(A) liefert die Diagonalelemente der Matrix A
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/45
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Diagonal- und Dreiecksmatrizen
• Obere Dreicksmatrizen: aij = 0 für i > j
Untere Dreicksmatrizen: aij = 0 für i < j
• In Matlab mit triu(A) bzw. tril(A)
>> A =[1 2 3; 4 5 6; 7 8 9]; triu ( A )
ans =
1
2
3
0
5
6
0
0
9
• Entsprechend diag gibt es auch triu( A, m ) und
tril( A, m )
• Die Matrizen triu( A, -1 ) und tril( A, 1 ) heißen auch
obere und untere Hessenbergmatrix
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/46
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Transponierte Matrix
• Transponieren = Vertauschen von Zeilen und Spalten
• Wenn A = (aij ), dann transponierte Matrix AT = (aji )
• In Matlab mit Apostroph A’
>> A =[1 2 3
4 5 6
7 8 9]; A ’
ans =
1
4
7
2
5
8
3
6
9
• Wenn A = AT heißt A symmetrisch
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/47
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Vektoren
• Vektoren in Fettbuchstaben: v
• Spaltenvektor: Beispiel v=[1;2;3]
• Zeilenvektor: Beispiel v=[1,2,3]
• Nullvektor 0: zeros(n,1)
(Achtung: zeros(n) erzeugt n × n Null-Matrix)
• Vektor mit nur Einsen: 1: ones(n,1)
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/48
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Lineare Abhängigkeit, Basis
• System von Vektoren {x1 , . . . xm } heißt linear unabhängig, wenn
α1 x1 + · · · + αm xm = 0
nur erfüllt ist wenn α1 = · · · = αm = 0
• n linear unabhängige Vektoren B = {x1 , . . . xn } in
bildet eine Basis von
• Jeder Vektor in
Rn (oder Cn)
Rn (oder Cn)
Rn hat eindeutige Darstellung
w=
n
X
wk x k
k=1
wk Komponenten von w bezgl. der Basis B
• Kanonische Basis: {e1 , . . . en } (i-te Komponente von ei ist 1, der
Rest 0)
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/49
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Vektorprodukte
• Skalarprodukt oder inneres Produkt v · w
zwischen Vektoren v, w mit Komponenten {vk } und {wk }
n
X
(v, w) = vT w =
v k wk
k=1
• In Matlab: v’*w oder mit dot(v,w)
• Länge (Norm) eines Vektors
v
u n
p
uX
vk2
kvk = (v, v) = t
k=1
• In Matlab: norm(v)
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/50
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Vektorprodukte
• Vektorprodukt u = v × w nur für v, w ∈
R3
steht senkrecht auf v und w
Länge ist kuk = kvkkwk sin(α) (Winkel α = ∠(v, w) )
• In Matlab: cross(v,w)
• Komponentenweise Multiplikation u = v w
⇒ ui = vi wi
• In Matlab mit u=v.*w
⇒ alle Operationen, denen ein Punkt vorangestellt werden wirken
komponentenweise (z.B. auch v.^2)
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/51
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Beispiele für Vektorprodukte
• Beispiel: Arbeit: Kraft entlang eines Weges
Skalarprodukt: W = G · s, Betrag: W = |G||s| cos α = |FH ||s|
• Beispiel: Drehmoment: senkrecht auf Kraft und Ortsvektor
Vektorprodukt: M = r × F, Betrag: |M| = |r||F| sin θ = |r||F⊥ |,
Quelle: Wikipedia
Quelle: Wikipedia
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/52
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Vektorprodukte
Beispiele für Produkte zwischen Vektoren
>> v =[1;2;3]; w =[4;5;6];
>> w ’* v
ans =
32
>> dot (w , v )
ans =
32
>> cross (w , v )
ans =
3
-6
3
>> w .* v
ans =
4
10
18
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/53
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Eigenwerte und Eigenvektoren
• Gegeben: n × n Matrix A, ein Vektor v, eine (komplexe) Zahl λ,
für die gilt:
Av = λv
⇒ v heißt Eigenvektor
⇒ λ heißt Eigenwert
• Berechnung im Allgemeinen kompliziert
• Für Diagonal und Dreicksmatrizen:
⇒ Eigenwerte entsprechen den Diagonalelementen
• Wichtig in vielen technischen Anwendungen: z.B.
Schwingungsanalyse
• Genaueres: Kapitel 6
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/54
Reelle Funktionen
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/55
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Plotten reeller Funktionen
• Gegeben: Funktion f auf Intervall (a, b)
Gesucht: Verlauf, Nullstellen, Integral, Ableitung, . . .
• Beispiel: Funktion f (x) = x2 − 1 + ex im Intervall [−1, 1]
3
fun = ’x ^2 -1+ exp ( x ) ’;
lims =[ -1 ,1];
fplot ( fun , lims );
grid on ;
2.5
2
1.5
1
0.5
0
−0.5
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
Quelle: eigenes Bild
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/56
0.8
1
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Nullstellen
• Anzahl und Lage der Nullstellen ein Funktion nicht a priori
feststellbar (⇒ Ausnahme: Polynome)
• Nullstelle in der Nähe von x0 :
In Matlab: fzero(fun,x0)
• Nullstelle im Intervall [x0 , x1 ]:
In Matlab: fzero(fun,[x0 x1])
Voraussetzung: fun wechselt im Intervall das Vorzeichen
• ⇒ Verfahren in Kapitel 2
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/57
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Nullstellen
• Beispiel: Funktion f (x) = x2 − 1 + ex
• Nullstellen sind bei 0 und ca. −0.7
>> fun = ’x ^2 -1+ exp ( x ) ’; fzero ( fun , 1 )
Zero found in the interval [ -0.28 , 1.9051]
ans =
5.4422 e -18
>> fzero ( fun , -1 )
Zero found in the interval [ -0.68 , -1.22627]
ans =
-0.7146
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/58
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Nullstellen
• Beispiel: Funktion f (x) = x2 − 1 + ex (wie vorher)
• Suche Nullstellen in den Intervallen [−0.2, 1] und [−1, −0.2]
>> fzero ( fun ,[ -0.2 ,1])
Zero found in the interval [ -0.2 , 1]
ans =
-5.2609 e -17
>> fzero ( fun ,[ -1 , -0.2])
Zero found in the interval [ -1 , -0.2]
ans =
-0.7146
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/59
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Polynome
• Menge der Polynome vom Grad n:
Pn
2
n
pn (x) = a0 + a1 x + a2 x + · · · + an x =
n
X
ak xk
k=0
• Darstellung eines Polynoms in Matlab:
p=[an,...,a2,a1,a0]
(Reihenfolge!!)
• Auswertung an der Stelle x mit polyval
Beispiel: Polynom x4 + 3x − 1 an den Punkten x = 0, 1 und 2
>> p =[1 0 0 3 -1]; x =[0 , 1 , 2]; polyval (p , x )
ans =
-1
3
21
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/60
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Nullstellen eines Polynoms
• α Nullstelle von p, wenn p(α) = 0,
Polynom vom Grad n hat genau n Nullstellen (⇒ Multiplizität)
Nullstellen reell oder in konjugiert komplexen Paaren
• Berechnung der Nullstellen in Matlab mit roots
• Beispiel: Polynom x3 − 6x2 + 11x − 6:
>> p =[1 -6 11 -6]; roots ( p ) ’
ans =
3.0000
2.0000
1.0000
Nullstellen (1,2 und 3) exakt
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/61
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Nullstellen eines Polynoms
• Zweites Beispiel: Polynom
p(x) = x7 − 7x6 + 21x5 − 35x4 + 35x3 − 21x2 + 7x − 1
Einzige Nullstelle α = 1 (siebenfache Nullstelle)
• Ergebnis in Matlab:
>> p =[1 -7 21 -35 35 -21 7 -1]; roots ( p )
ans =
1.0094
1.0059 + 0.0073 i
1.0059 - 0.0073 i
0.9979 + 0.0092 i
...
Mögliche Erklärung: Rundungsfehler, Auslöschung
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/62
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Multiplikation und Division von Polynomen
• Multiplikation von Polynomen in Matlab mit p=conv(p1,p2)
von Engl. convolution=Faltung (der Koeffizienten)
• Division (mit Rest) durch [q,r]=deconv(p1,p2),
so dass p1=conv(p2,q)+r
>> p1 =[1 0 0 0 -1]; p2 =[1 0 0 -1];
>> p = conv ( p1 , p2 )
p =
1
0
0
-1
-1
0
>> [q , r ]= deconv ( p1 , p2 )
q =
1
0
r =
0
0
0
1
-1
0
1
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/63
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Ableitung und Integral von Polynomen
• Ableitung und Integration von Polynomen einfach
• Ableitung von xn ist nxn−1
1
• Stammfunktion von xn ist n+1
xn+1 + C
• In Matlab: mit polyder und polyint
• Interpolation mit polyfit
Sind n + 1 Werte von p an n + 1 unterschiedlichen Stellen bekannt
liefert polyfit(p) die n + 1 Koeffizienten
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/64
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Integration und Differentiation
6
• Differentiation: Steigung der Tangente der
4
Kurve in einem Punkt
2
• Grenzwert des Differenzenquotienten
f (x + h) − f (x)
f 0 (x) = lim
h→0
h
• Raum der stetigen Funktionen C 0 ([a, b]),
Stetig differenzierbare Funktionen C 1 ([a, b]),
Zweifach stetig differenzierbar C 2 ([a, b]),
etc.
0
−2
−4
−6
2
2.2
2.4
2.6
2.8
3
3.2
3.4
Quelle: eigenes Bild
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/65
3.6
3.8
4
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Integration und Differentiation
3
• Integral: Fläche unter der Kurve
Z
b
2.5
2
f (x)dx
1.5
a
• Problem: Stammfunktion existiert oft nicht,
1
0.5
oder ist schwierig zu finden
oder sehr aufwendig zu berechnen
• ⇒ Numerische Integration Kapitel 4
0
−0.5
0.5
1
1.5
2
2.5
Quelle: eigenes Bild
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/66
3
3.5
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Hauptsatz der Differential und Integralrechnung
Theorem (Hauptsatz der Differential und Integralrechnung)
Sei f eine stetige Funktion im halboffenen Intervall [a, b), dann ist
Z x
F (x) =
f (t)dt
a
eine differenzierbare Funktion, Stammfunktion von f , genannt, und
erfüllt ∀x ∈ [a, b):
F 0 (x) = f (x)
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/67
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Mittelwertsatz der Integralrechnung
Theorem (Mittelwertsatz der Integralrechnung)
Sei f eine stetige Funktion im Intervall [a, b] und x1 , x2 ∈ [a, b], dann
∃ξ ∈ (x1 , x2 ), so dass
Z x2
1
f (ξ) =
f (t)dt
x2 − x1 x1
8
6
4
2
Ξ1
2
3
Ξ2
4
5
Quelle: eigenes Bild
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/68
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Mittelwertsatz der Differentialrechnung
6
Theorem (Mittelwertsatz der
Differentialrechnung)
C 1 ([a, b])
Sei f ∈
eine stetig differenzierbare
Funktion im Intervall [a, b] und x1 , x2 ∈ [a, b],
dann ∃ξ ∈ (x1 , x2 ), so dass
f (b) − f (a)
f 0 (ξ) =
b−a
5
4
3
2
1
0
−1
−2
2
2.2
2.4
2.6
2.8
3
3.2
Quelle: eigenes Bild
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/69
3.4
3.6
3.8
4
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Taylor-Polynom
• Gegeben: Funktion f mit n + 1 stetigen Ableitungen im Punkt x0
• Dann kann f in einer Umgebung von x0 durch das Taylor-Polynom
vom Grad n im Punkt x0 approximiert werden
1
Tn (x) = f (x0 ) + (x − x0 )f 0 (x0 ) + · · · + (x − x0 )n f (n) (x0 )
n!
n
X
(x − x0 )k (k)
=
f (x0 )
k!
k=0
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/70
Fehleranalyse
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/71
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Fehleranalyse
• Fehler im wissenschaftlichen Rechnen unvermeidbar
• Beispiel: Darstellung der reellen Zahlen im Computer
• ⇒ Fehler nicht vermeiden, sondern kontrollieren
• Verschiedene Fehlerarten:
• Modellfehler eM : ersetzen der physikalischen Realität durch ein
mathematische Modell
• Rundungsfehler ea :
• Abbruchfehler et (truncation error): beispielsweise durch abbrechen
einer unendlichen Reihe nach endlich vielen Gliedern
• Berechnungsfehler ec (computational error):
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/72
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehlerarten: Beispiel
• PP: physikalisches Problem
⇒ Lösung xph
• MM: mathematische Modell
⇒ Lösung x
• NP: numerisches Problem
⇒ Lösung xn
• Lösung mit Rundungs- und
Abbruchfehler: x̂
Quelle: A. Quarteroni, F. Saleri
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/73
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Modellfehler (Beispiel)
• Druckverlust-Gleichung als Vereinfachung der Impulsbilanz
berechnet den Druckverlust sehr genau, aber:
• beim schnellen Öffnen und Schließen eines Ventils entstehen
Druckschwingungen
• Druckverlust-Gleichung reicht hier nicht aus,
nur beim langsamen Öffnen und Schließen des Ventils
• Zur Beschreibung der Druckschwingungen muss die vollständige
Impulsbilanz gerechnet werden
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/74
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Absoluter und relativer Fehler
• Exakte Lösung x, numerische Lösung x̂
• Absoluter Rechenfehler
eabs = |x − x̂|
(| · | Absolutbetrag oder anderes Maß, nach Bedeutung von x)
• Relativer Rechenfehler (wenn x 6= 0)
erel =
|x − x̂|
|x|
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/75
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Konvergenz
• Kontinuierliches Modell: Approximation durch Diskretisierung
• Fehler abhängig von Diskretisierungsparameter h
• Konvergenz: wenn h → 0 geht, dann x̂ → x
• Wenn
e ≤ Chp
C Konstante, unabhängig von h
• Verfahren konvergent von der Ordnung p
• Wenn C 0 existiert mit e ≥ C 0 hp , dann e ' Chp
• Beispiel: Approximiere f 0 (x) durch (f (x + h) − f (x))/h
Fehler geht gegen 0, wenn h → 0 (⇒ konvergent)
Falls f ∈ C 2 dann e ≤ Ch (⇒ Ordnung 1)
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/76
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Fehlerordnung
• Konvergenzuntersuchung:
doppelt-logarithmische Graphen:
Abszisse log(h), Ordinate log(e)
• Vorteil: wenn e ' Chp dann
log(e) ' log(C) + p log(h)
p ist Steigung der Geraden log(e)
1e4
1e2
1e0
1e−2
1e−4
1e−6
1e−8
• Größere Steigung⇒ höhere Ordnung
Abbildung: blaue Gerade Ordung 1,
grüne Gerade Ordnung 2
• Matlab: loglog(x,y)
1e−10
1e−12
1e−14
1e−16
1e−18
1e−10
1e−5
Quelle: eigenes Bild
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/77
1e0
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehlerordnung
• Andere Möglichkeit
• Fehler ei für Werte hi bekannt, (i = 1 . . . N )
• Annahme ei ' Chpi dann
pi = log(ei /ei−1 )/ log(hi /hi−1 ),
i = 2...N
• Besser: lineare Regression log(ei ) über log(hi )
• Fehler eigentlich nicht berechenbar
Abschätzung des Fehlers ⇒ Fehlerschätzer
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/78
Fehleranalyse
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Kosten
• Lösung eines Problems am Computer ⇒ Algorithmus
Algorithmus = Vorschrift in Form eines endlichen Textes,
die in eindeutiger Weise alle zur Lösung des Problems
notwendigen Schritte präzisiert
• Rechenaufwand eines Algorithmus (computational cost)
⇒ Anzahl arithmetischer Operationen
• Maßeinheit: Floating-Point-Operationen (Flops)
• Vielfache: Megaflops=106 Flops
Gigaflops=109 Flops
Teraflops=1012 Flops
• Schnellster Rechner: 2003: 136 Teraflops
2010: 2560 Teraflops (China)
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/79
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Komplexität
• Genaue Anzahl an Flops oft unbekannt (und weniger wichtig) ⇒
Größenordnung in Funktion eines Parameters d
• Anzahl von Operationen:
•
•
•
•
•
konstante Komplexität O(1) (von d unabhängig)
lineare Komplexität O(d)
polynomiale Komplexität O(dm )
exponentielle Komplexität O(cd )
faktorielle Komplexität O(d!)
• Symbol O(f (d))
gelesen: “groß O von f(d)”
bedeutet: “verhält sich für große d wie eine Konstante mal f (d)”
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/80
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Komplexität – Beispiel 1
Matrix-Vektor Produkt
• Quadratische Matrix A ∈
Rn×n, Vektor v ∈ Rn
• Berechnung der j-ten Komponente von Av
aj1 v1 + aj2 v2 + . . . aj1 vn
• n Produkte und n − 1 Summen
⇒ n(2n − 1) Operationen zur Berechnung von n Komponenten
⇒ Quadratische Komplexität O(n2 )
• Ähnlich: Matrixprodukt O(n3 ) Operationen
Aber: geschickterer Algorithmus (Strassen): O(nlog2 7 )
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/81
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Komplexität – Beispiel 2
Berechnung der Determinante
• Rekursionsformel hat faktorielle Komplexität: O(n)
• Beispiel n = 24:
Entspricht ca. 6.2 · 1023 Operationen
Rechner mit 1000 Teraflops braucht ca. 20 Jahre
• ⇒ Bedarf an effizienten numerischen Verfahren
• Beispiel: Berechnung der Determinante durch Rückführung auf
Matrixprodukte (Strassen-Algorithmus): Komplexität O(nlog2 7 )
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/82
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Laufzeit
• Komplexität wichtig für theoretische Untersuchungen
• Effektivität einer Implementierung auch durch andere Faktoren
beeinflußt (beispielsweise Speicherzugriffe)
• Maß für Geschwindigkeit: CPU-Zeit
(CPU = central processing unit)
• Reine Verarbeitungszeit
ohne Laden der Daten (Input-Phase)
und Speichern der Resultate (Output-Phase)
• Gesamte Ausführungszeit: Elapsed-Time
• In Matlab: CPU-Zeit mit tic und toc (früher: cputime)
Elapsed-Time mit etime
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/83
Allgemeines
Reelle Zahlen
Komplexe Zahlen
Matrizen und Vektoren
Reelle Funktionen
Fehleranalyse
Beispiel
Laufzeitmessung der Berechnung des Matrix-Vektor Produkts
n =
A =
T =
for
4000; step = 50;
rand (n , n ); v = rand (n ,1);
[ ]; sizeA = [ ];
k = 50: step : n
AA = A (1: k ,1: k ); vv = v (1: k );
tic ; b = AA * vv ; tt = toc ;
T = [T , tt ]; sizeA = [ sizeA , k ];
Quelle: A. Quarteroni, F. Saleri
end
plot ( sizeA , T , ’o ’ )
Prof. R. Leithner, E. Zander | Einführung in numerische Methoden für Ingenieure | 1/84
Herunterladen