ComputerMathematik

Einen Logarithmus durch Bisektion berechnen

Wie man einen Logarithmus berechnet, weiß eigentlich jeder: ganz einfach: man nimmt einfach die „log“ Taste des Taschenrechners :D. Aber wie kann man das ohne Rechner machen? Nämlich schriftlich oder wenigstens ohne die „log“ Taste? Nun dazu gibt es das mathematische Verfahren der Bisektion, durch die man Schritt für Schritt immer näher an den richtigen Wert kommt.

Nun Bisektion ist eigentlich nichts weiter als zielgerichtetes Probieren.

Zuerst hat man eine Gleichung der Form: Logarithmus = logBasisNumerus.

Aber in dieser Form kann man ja nicht viel damit anfangen, deshalb stellen wir sie so um: Numerus = BasisLogarithmus.

Nun kann man sich eine Funktion denken, die so aussieht: f = y =  Basisx. Wir suchen also den x-Wert zu einem y-Wert.

x

In meinem Beispiel suchen wir 3 = 2x.

Nun können wir schon ablesen, dass unser gesuchter x-Wert zwischen 1 und 2 liegen muss. Also stecken wir uns einen Bereich zwischen 1 und 2 ab und teilen ihn in der Mitte.

Als nächstes überprüfen wir in welchem der beiden Abschnitte nun unser Logarithmus liegt. Also ob 21 ≤ y ≤  21,5 oder 21,5  ≤ y ≤ 22.

Natürlich liegt unser Logarithmus im 2. Abschnitt, also präzisieren wir nun unseren vermuteten Raum, indem der Logarithmus liegt, auf 1,5 und 2. Diesen halbieren wir wieder und nun geht es von vorne los. Je öfter man es macht, desto genauer wird es.

In der Schule benutzen wir den Casio Classpad 330. Für diesen Rechner kann man mit Basic kleine Programme schreiben. Das sieht in diesem Falle dann so aus:

SetDecimal
ClrText
Local basis
Local numerus
Local logarithmus
Local abschnittmax
5⇒abschnittmax
Local abschnittmin
-5⇒abschnittmin
Input basis ,"Basis"
Input numerus ,"Numerus"

While basis^abschnittmin ≥ numerus or basis^abschnittmax ≤ numerus

abschnittmin*10⇒abschnittmin
abschnittmax*10⇒abschnittmax
WhileEnd
Local maxdurchlauf
50⇒maxdurchlauf
Local aktuelldurchlauf
0⇒aktuelldurchlauf
While aktuelldurchlauf≤maxdurchlauf
If basis^abschnittmin ≤ numerus and basis^((abbschnittmin + abschnittmax) /2) ≥ numerus
Then
(abschnittmin + abschnittmax) /2 ⇒ abschnittmax
ElseIf basis^abschnittmax ≥ numerus and basis^((abschnittmax + abschnittmin) /2) ≤ numerus
Then
(abschnittmax + abschnittmin) /2 ⇒ abschnittmin
Else
Print "Fehler"
IfEnd
aktuelldurchlauf + 1 ⇒ aktuelldurchlauf
Print aktuelldurchlauf
Print abschnittmin
Print abschnittmax
If abschnittmax-abschnittmin ≤ 0.0000001
Then
Break
IfEnd
WhileEnd
(abschnittmin + abschnittmax) /2 ⇒ logarithmus
Print "Ergebnis:"
Print logarithmus

Den Graphen habe ich auf http://rechneronline.de/funktionsgraphen/ erstellt.

5 Gedanken zu “Einen Logarithmus durch Bisektion berechnen

  1. Ragnar

    Hi ich habe das Widget „Last Update“ Version 2.1 installiert.
    Ich bekomme aber keine Meldung wenn ich eine Seite oder Beitrag geändert habe. Folgendes habe ich nach Installation und Aktivierung gemacht.
    1. Widget in den Slide gezogen.
    2. Seite, Beitrag und Datum aktiviert
    3. Seite geändert und mit „significante Update“ aktualisiert.

    Aber in meinem Slide steht nur die Überschrift.
    Woran kann das liegen?

    • Martin

      Hallo Ragnar,

      es tut mir Leid, aber dafür kann ich kleider keine Ferndiagnose stellen. Ein Link zum Blog wäre hilfreich.

      Nutze in Zukunft doch auch bitte das Support Forum von WordPress

      Viele Grüße,
      Martin

  2. MartinK

    Hallo Martin,
    sehr schön, dass du dich mit diesem numerischen Verfahren beschäftigst. Es lässt sich noch für zahlreiche andere Aufgabenstellungen verwenden.
    In Thüringen verlangt der neue Lehrplan die Behandlung des Newton-Verfahrens in Klasse 11. Das wäre sicher auch mal was für dich. Hier eine Einführung im Netz für Schüler:
    http://www.numerik.mathematik.uni-mainz.de/didaktikseminar/Gruppe4/
    In eine andere Richtung müsstest du arbeiten, wenn du dir vornehmen würdest, den Logarithmus nur durch Addition und Multiplikation zu berechnen (als die Grundoperationen eines Computers). In deiner Bisektion steckt ja immerhin die wiederholte Berechnung einer Exponentialfunktion, was für einen Computer auch nicht ganz simpel ist. Zu diesem Thema fand ich auf die Schnelle das hier:
    http://www.mathematik.ch/anwendungenmath/logarithmen/

    Viel Freud weiterhin mit Blog und Mathe und und und …

    Martin

    • Martin

      Hallo anderer Martin :D,

      lustig und schön, dass du diese Seite gefunden hast.
      Das Newtonverfahren ist natürlich auch total interessant und wird vermutlich das Thema meiner Komplexen Leistung. Mal sehen. Genaueres weis ich noch nicht, ich hab ja aber auch noch ein bisschen Zeit.

      Gruß Martin

  3. Simone

    Liebster Martin,
    ich hab versucht die Rithmen der Logas zu durchsteigen. Ich glaub, ich kann einen großen Teil davon verstehen. Aber besser ist es, du erklärst es mir noch mal auf Papier.
    Mama

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.