Algorithmische Mathematik I
Wintersemester 2017/18 Prof. Dr. Ira Neitzel AR. Dr. Tino Ullrich
Ubungsblatt 6. ¨ Abgabe am 20.11.2017 vor der Vorlesung.
Aufgabe 1. (Konvergenzordnung)
Aus der Vorlesung kennen Sie die Definition der Konvergenzordnung: Sei (x
n)
n∈Neine kovergente Folge reeller Zahlen mit x
n−−−→
n→∞
x
∗.
• Existiert eine Konstante 0 < c < 1 mit
|x
n+1− x
∗| ≤ c|x
n− x
∗| , n > n
0, so hat die Folge mindestens Konvergenzordnung 1.
• Gilt |x
n+1− x
∗| ≤ c
n|x
n− x
∗| mit c
n→ 0 f¨ ur n → ∞, so spricht man von superlinearer Konvergenz.
• Sei p > 1. Existiert eine Konstante c > 0, so dass
|x
n+1− x
∗| ≤ c|x
n− x
∗|
p, so hat die Folge mindestens Konvergenzordnung p.
Geben Sie f¨ ur diese Folgen die Konvergenzordnung an.
a. x
n:= (1 + ε)
−nmit festem ε > 0 , b. x
n:= 2
−2n/2,
c. x
n:= 1/n
2,
d. x
n+1:= ϕ(x
n) mit x
0= 1/3 und ϕ(x) = x/ ln(1/x) , e. x
n+1:= 2 + (x
n− 1)
1/(2xn−4)(x
n− 2)
2mit x
0= 5/2 .
(6 Punkte) Aufgabe 2. (Konvergenz des Bisektionsverfahrens)
Gegeben sei eine stetige Funktion f : [a, b] → R mit f (a)f (b) < 0, die eine eindeutige Nullstelle x
?∈ (a, b) besitzt. Zeigen Sie, dass die k-te Iterierte x
(k)des Bisektionsver- fahrens der Absch¨ atzung
|x
(k)− x
?| < 1
2
k(b − a)
gen¨ ugt. Mit welcher Konvergenzordnung (siehe Aufgabe 1) konvergiert die Folge der Intervalll¨ angen gegen 0 ? Was kann man ¨ uber die Konvergenzordnung der Folge x
(k)aussagen?
(6 Punkte) Aufgabe 3. (Asymptotische Laufzeitnotationen)
1
Zur Geschwindigkeits- und Speicherverbrauchsanalyse bei Algorithmen verwendet man die Notationen (g : N → (0, ∞))
O(g(n)) := {f : N → (0, ∞) : ∃c > 0 und ∃n
0∈ N mit f (n) ≤ c · g(n) ∀n ≥ n
0}, o(g(n)) := {f : N → (0, ∞) : ∀c > 0 ∃n
0∈ N mit f (n) ≤ c · g(n) ∀n ≥ n
0} .
Die Funktion f (n) kann beispielsweise die Anzahl der Rechenschritte eines Programms in Abh¨ angigkeit der Eingabegr¨ oße n angeben.
a. Definieren Sie O(g(n) und o(g(n)) ¨ uber die Folge (f(n)/g(n))
n∈N. b. Beweisen oder wiederlegen Sie die folgenden Aussagen:
• n
6∈ O(2
n) ,
• 42n
3+ 13n
2+ 2n + 500 ∈ O(n
3) ,
• 42n
3+ 13n
2+ 2n + 500 ∈ o(n
2) .
c. Sortieren Sie die folgenden Funktionen bez¨ uglich ihrer “Gr¨ oßenordnung”, d.h. ge- ben Sie eine Reihenfolge g
1, . . . , g
kan mit g
i∈ O(g
i+1). Geben Sie dabei an, wenn mehrere g
idieselbe Gr¨ oßenordnung haben.
( √
2)
log2(n), n
2, 3
2
n, n
3, 2
n, log
22(n), 2
log2(n), √ n,
10
4, e
n, n log
2(n), n!, 2
(2n)Bemerkung: Aufgabenteil c) dient dazu ein Gef¨ uhl f¨ ur Komplexit¨ aten zu erhalten. Die Einordnung der letzten beiden Terme n!, 2
(2n)darf ohne Begr¨ undung angegeben werden und diese beiden Terme z¨ ahlen nicht in die Bewertung. Zudem darf in der gesamten Aufgabe vorausgesetzt werden, dass z.B. 1/n
koder n
k/e
neine Nullfolge ist.
(8 Punkte) Programmieraufgabe 1. (Elementare Vektoroperationen)
Implementieren Sie f¨ ur die nachfolgenden Aufgaben in C/C++ geeignete Funktionen der Form
void PROGNAME(var1,var2,...) z.B.
v o i d P R O G N A M E ( d o u b l e * res , d o u b l e * x , int n ) {
// P r o g r a m m - C o d e der Routine ,
// z . B . B e r e c h n u n g des k o m p o n e n t e n w e i s e n V o r z e i c h e n s // e i n e s V e k t o r s x der L a e n g e n .
int i ;
for ( i =0 ; i < n ; ++ i ) { if ( x [ i ] <0)
res [ i ] = -1;
e l s e
res [ i ] = 1;
} }
Gegeben seien Vektoren x, y, z ∈ R
nsowie die reelle Zahl α ∈ R . Implementieren Sie
2
a. das komponentenweise Maximum VDMAX(z,x,y,n)
z
i= max{x
i, y
i} f¨ ur i = 1, . . . , n, b. die komponentenweisen Addition PLUS(z,x,y,n)
z
i= x
i+ y
if¨ ur i = 1, . . . , n, c. die komponentenweise Multiplikation MULTVEKTOR(z,x,y,n)
z
i= x
i· y
if¨ ur i = 1, . . . , n,
d. die Multiplikation MULTZAHL(z,x,α,n) des Vektors x mit der Zahl α z
i= αx
if¨ ur i = 1, . . . , n,
e. das euklidischen Skalarprodukt SCALPR(β,x,y,n) mit dem Ergebnis β ∈ R β =
n
X
i=1
x
iy
i,
f. die komponentenweise Division DIVVEKTOR(z,x,y,n) z
i=
( x
i/y
i, falls y
i6= 0,
0, falls y
i= 0 f¨ ur i = 1, . . . , n, g. die euklidische Norm (L¨ ange) eines Vektors NORM(`,x,n)
` = X
ni=1