4. GRÖSSENORDNUNGEN VON FUNKTIONEN (Landau-Notation) Die O-Notation (groß- O“ Notation): ” Wir betrachten zwei Funktionen f (x), g(x) mit x > 0 und Werten in den reellen Zahlen. Wir schreiben f (x) = O(g(x)) für x → ∞ falls f (x) für große Werte von x von der Größenordnung her g(x) nicht übersteigt. f wächst nicht schneller (bzw. fällt nicht langsamer) als g“. ” Mathematisch ausgedrückt: Es gibt für die beiden Funktionen eine Konstante c > 0, so dass |f (x)| ≤ c · |g(x)| gilt, wenn x nur ausreichend groß ist. Dahinter steckt die Überlegung, dass durch Multiplikation mit einer Konstanten c > 0 eine Funktion in ihrer Größenordnung unverändert bleibt. Beispiel: Es gilt 2x + 1 = O(x) für x → ∞, da 2x + 1 ≤ 3x für x ≥ 1. Obige Bedingung ist mit c = 3 für x ≥ 1 erfüllt. Beispiele: Größenordnungen für x → ∞. 1. 2x3 + 3x2 = O(x3) (betrachte c = 5 und x ≥ 1). Regel: Bei Potenzen dominieren für x → ∞ die Terme mit den höchsten Exponenten. x3 +x 2. x4−2 = O(x−1) (betrachte c = 4 und x ≥ 2). 3. xm = O(exp(x)) für jede natürliche Zahl m (betrachte c = m! und x ≥ 0). P∞ m Denn: x /m! ≤ n=0 xn/n! = exp(x). 4. ln x = O(x1/m) für jede natürliche Zahl m. Ersetze im letzten Beispiel x durch ln x und ziehe die m-te Wurzel. 5. Ein wichtiger Spezialfall: f (x) = O(1) bedeutet, dass f (x) für große x beschränkt bleibt, dass also |f (x)| ≤ c für ein c > 0, falls x ausreichend groß ist. (Hier steht 1 für die Funktion g, die den festen Wert 1 hat.) 6. z.B.: x+1 x = O(1), sin(x) = O(1) Eine wichtige Rechenregel: f1(x) = O(g(x)) , f2(x) = O(g(x)) ⇒ f1(x) + f2(x) = O(g(x)) Denn aus |f1(x)| ≤ c1|g(x)| und |f2(x)| ≤ c2|g(x)| folgt |f1(x) + f2(x)| ≤ (c1 + c2)|g(x)|. Beispiele. x + 2 exp(x) = O(exp(x)), x + ln x = O(x) für x → ∞. Wir haben gesehen: x = O(exp(x)) und ln x = O(x). Das gibt aber noch ungenaue Vorstellungen: exp(x) x ln x 2,78 1 0 2, 2 · 104 10 2,3 5 · 1011 20 3,0 5 · 1021 50 3,9 2, 7 · 1043 100 4,6 1, 4 · 10217 500 6,2 Die Geschwindigkeit des Wachstums von exp(x), x und ln x ist höchst unterschiedlich! Um Größenordnungen noch genauer zu unterscheiden, eine weitere Definition: Die o-Notation (klein- o“ Notation): ” Für zwei Funktionen f (x), g(x), x > 0, schreiben wir f (x) = o(g(x)) für x → ∞ falls g(x) für große Werte von x von kleinerer Größenordnung ist als f (x). f entfernt sich weniger schnell von 0, oder geht schneller gegen ” 0 als g“, kurz f ist klein im Vergleich zu g“ ” Mathematisch ausgedrückt: Gleichgültig, wie man die Konstante c > 0 wählt, die Ungleichung |f (x)| ≤ c · |g(x)| ist erfüllt, falls x nur ausreichend groß ist. Beispiel: √ x = o(x) für x → ∞ Für jedes c > 0 ist cx schließlich größer als √ x. Wir schreiben auch f (x) →0 g(x) für f (x) = o(g(x)) Also: Während bei f (x) = O(g(x)) die Ungleichung |f (x)| ≤ c · |g(x)| nur für ein c > 0 erfüllt zu sein braucht (das beliebig groß gewählt werden darf), muss man bei f (x) = o(g(x)) die Ungleichung für alle c > 0 (die dann beliebig klein sein können) in Betracht ziehen. Und in der Sprache der Quantoren: f (x) = O(g(x)) ⇔ ∃c > 0 ∃x0 ≥ 0 ∀x ≥ x0 : |f (x)| ≤ c · |g(x)| f (x) = o(g(x)) ⇔ ∀c > 0 ∃x0 ≥ 0 ∀x ≥ x0 : |f (x)| ≤ c · |g(x)| Beispiele: Größenordnungen für x → ∞ 1. xp = o(xq ) für p < q, denn dann gilt xp/xq = xp−q → 0. 2. xp = o(exp(x)) für alle reellen Zahlen p, wegen xp = o(xq ) und xq = O(exp(x)) für p < q. 3. ln x = o(xq ) für alle reellen Zahlen q, wegen ln x = O(xp) und xp = o(xq ) für p < q. 4. Ein wichtiger Spezialfall: f (x) = o(1) bedeutet f (x) → 0, dass also |f (x)| mit wachsendem x kleiner und kleiner wird. 1 = o(1), ln x = o(1). 5. z.B.: 1 = o(1), x ln x x Dieselben Schreibweisen werden benutzt nicht nur für x → ∞, sondern auch für x → x0, also bei Annäherung an eine reelle Zahl x0. Wir schreiben f (x) = o(g(x)) für x → x0 , f (x) falls → 0 für x → x0 g(x) Beispiele von Größenordnungen für x → 0: 1. xp = o(xq ) für p > q denn dann gilt xp/xq = xp−q → 0. Merke: Für x → 0 dominieren Potenzen mit kleinerem Exponenten (anders als für s → ∞, wo sich die größeren Exponenten durchsetzen). 2. exp(x) = 1 + o(1), denn exp(x) − 1 = exp(x) − exp(0) → 0 für x → 0. 3. exp(x) = 1 + x + o(x) Dies folgt aus P n /n! = 1 + x + x2 + x3 + · · · = 1 + x + 0(x2 ). exp(x) = ∞ x n=0 2 6 Graphisch: o(x) x