Intervallhalbierungsmethode

Neue Frage »

Simonko_ Auf diesen Beitrag antworten »
Intervallhalbierungsmethode
Ich hab im internet gesucht hab aber keine erklärung dazu gefunden die ich auch versteh.
ich hab 2 startwerte a und b. c ist dann (a+b)/2. wie gehts es jetzt weiter?
ich hoffe jemand kann mir helfen.
Cyrania Auf diesen Beitrag antworten »

Es läuft wohl auf Intervallschachtelung hinaus. Um verständlich erklären zu können, benötigt man aber noch etwas mehr Information.
n! Auf diesen Beitrag antworten »

das kommt ganz darauf an,was du machen willst.Ein einfaches Beispiel ist die Gleichung: . Jeder weiß, das eine der zwei Lösungen ist.

Setze a=0 und b=2

(a+b)/2

Die erste Halibierung liefert 1, aber 1² ist nicht 2. Das heißt du kannst für a nun die 1 nehmen als linke Grenze

Setze a=1 und b=2

(a+b)/2

liefert 1,5. Aber 1,5² ist bereits größer als 2. Daher wählst du für b nun 1.5 als rechte Grenze

a=1 und b=1,5

(a+b)/2

liefert 1,25. Und jetzt guckst du wieder ob das die Lösung sein kann. Dementsprechend führst du den Algorithmus fort
simonko_ Auf diesen Beitrag antworten »

hier
http://www.techfak.uni-bielefeld.de/~jst...pt/s5node4.html

ich versteh diese mathematische schreibweise nicht
Cyrania Auf diesen Beitrag antworten »

Ach das meinst du - es geht hier um eine recht simple Iteration zur numerischen Bestimmung von Lösungen.

Wichtigste Bedingung dabei ist, dass das Produkt der Funktionswerte zweier Intervallgrenzen negativ ist.
Die Funktion hätte also einen Wert oberhalb und einen Wert unterhalb der x-Achse.
Gesucht ist der x-Wert auf der x-Achse, für den dann ja der Funktionswert 0 ist.

Beispiel:

a=-0,5
f(a)=-1,75
b=3
f(b)=7
-1,75*7<0
c=(-0,5+3)/2=1,25
f(1,25)=-0,4375
Funktionswert negativ- ersetze a
a=c=1,25
b bleibt 3
c=2,125
f(2,125)=2,515625
Funktionswert positiv - ersetze b
a=1,25
b=2,515625


Du siehst, dass Intervall ist jetzt schon viel kleiner. Setzt man die ganze Sache numerisch fort, landet man bei einer Lösung dieser Gleichung, nämlich ..


(ich finde kein approx-Zeichen)
Tobias Auf diesen Beitrag antworten »

\approx



Hammer
 
 
sqrt(2) Auf diesen Beitrag antworten »

Zitat:
Original von Cyrania
(ich finde kein approx-Zeichen)

Einfach \approx.

Deine Schreibweise ist übrigens ungünstig, weil du a, b und c jeweils unterschiedliche Werte zuweist, aber den Namen der Variable nicht anders ist. Praktisch ist es zum Beispiel in Tabellenform:

Simonko_ Auf diesen Beitrag antworten »

do {
c=(a+b)/2;
if (g(c)<0)
a=c;
else
b=c;
} while (fabs(f(a)-h(b)) > EPS);

jetzt geht's. danke euch

Wink
Cyrania Auf diesen Beitrag antworten »

Danke für das approx



..wieder was gelernt!

In der numerischen Programmierung benutzt man diese "ungünstige" Schreibweise, weil man ständig neu definiert.


Zitat:
Original von Simonko_
do {
c=(a+b)/2;
if (g(c)*g(b)<0)
a=c;
else
b=c;
} while (fabs(f(a)-h(b)) > EPS);

jetzt geht's. danke euch

Wink



Kleine Änderung oben gefällig???

edit: Doppelpost zusammengefügt, bitte benutze die edit-Funktion! (MSS)
sqrt(2) Auf diesen Beitrag antworten »

Zitat:
Original von Cyrania
In der numerischen Programmierung benutzt man diese "ungünstige" Schreibweise, weil man ständig neu definiert.

Das ist mir klar, nur ist in der Mathematik ein Gleichheitszeichen eben ein Gleichheitszeichen... Außer Pascal, Modula, Oberon und Konsorten scheinen aber leider alle Programmiersprachen gerade dieses Gleichheitszeichen als Zuweisungsoperator zu verwenden.
madrolosh Auf diesen Beitrag antworten »

und was passiert wenn dann für f(a)>0 und f(b)>0 ist?
Neue Frage »
Antworten »



Verwandte Themen