Praktische Informatik I WS 2006/07
Ubungsblatt 4 ¨
Abgabe: 27.11.2006
Aufgabe 1: Links oder Rechts? (40%)
Schreibt eine Prozedur binaereSuche, die ein vom kleinsten zum gr¨ oßten Element sortiertes Array von Integer-Zahlen sowie eine zu suchende Integer-Zahl ¨ ubergeben bekommt. Die Prozedur soll das Array nach der Zahl durchsuchen und auf dem Bild- schirm ausgeben, ob die Zahl im Array enthalten ist oder nicht, sowie gegebenenfalls den Index, unter dem die Zahl im Array zu finden ist. Beim Durchsuchen soll das Prinzip der bin¨ aren Suche angewendet werden. Dabei wird die zu suchende Zahl zun¨ achst mit einem in etwa in der Mitte liegenden Element des Arrays verglichen.
Je nachdem, ob die zu suchende Zahl kleiner oder gr¨ oßer als dieses Element ist, wird dann auf die gleiche Weise f¨ ur den Teil des Arrays, der links bzw. rechts des Vergleichselements liegt, verfahren. Somit halbiert sich bei jedem Schritt die Zahl der betrachteten Elemente des Arrays.
Eure Implementierung soll das Problem iterativ l¨ osen - nicht mittels Rekursion.
Aufgabe 2: Wo ist die Null? (60%)
Beschreibung des Verfahrens Fast bei jeder Kurvendiskussion st¨ osst man auf das Problem, Nullstellen zu bestimmen, also L¨ osungen der Gleichung f (x) = 0 f¨ ur eine gegebene Funktion f zu suchen. Das Newton-Verfahren ist eine Methode f¨ ur die numerische L¨ osung von Gleichungen dieses Typs.
Vorgegeben ist eine stetige, differenzierbare Funktion f (x), die mindestens eine Null- stelle hat und ein Startwert x
0, der nah genug an der Nullstelle liegt.
Der Ber¨ uhrpunkt der Kurventangente an der Stelle x = x
0hat die Koordinaten (x, f (x)) und die Steigung von f in diesem Punkt betr¨ agt f
0(x). Der Schnittpunkt x
1dieser Tangente mit der x-Achse stellt eine erste N¨ aherung f¨ ur die Nullstelle dar und berechnet sich durch
x
1= x
0− f (x
0) f
0(x
0) .
Durch Wiederholung dieser Konstruktion erh¨ alt man eine Folge (hoffentlich) besser werdender N¨ aherungen mit der allgemeinen Formel:
x
n+1= x
n− f (x
n) f
0(x
n) . Aufgabenstellung
Schreibt ein Programm, dass mit Hilfe des Newton-Verfahrens die n¨ aherungsweise Nullstellen der folgenden Gleichungen berechnen kann:
1. f (x) = sin(x) + x − 1 (Startwert x
0= 3)
PI 1, WS 2006/07
f(x)
x0
x2 x1=x0−f(x0)/f ’(x0)