mikrocontroller.net

Forum: PC-Programmierung Java Probleme mit log(x) und ln(x)


Autor: Kai Seufert (kai999)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Problem in Java. Ich möchte den Logarithmus berechnen. 
Allerdings liefert es mir das falsche Ergebnis aus. Statt log(x) 
berechnet er ln(x). Woran liegt es? Was muss ich ändern?

Eingabe:
erg = 10*Math.log(80);

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Math.log10(80)

Autor: Oliver S. (oliverso)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Kai S. schrieb:
> Woran liegt es?

RTFM nicht beachtet...

Oliver
P.S. log10...

: Bearbeitet durch User
Autor: Kai Seufert (kai999)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh hehe, danke :D

Autor: Horst (Gast)
Datum:

Bewertung
4 lesenswert
nicht lesenswert
Außerdem weiß jeder Ingenieur, dass log10(x) = ln(x)/ln(10) ist

Autor: Bernd (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Horst schrieb:

> Außerdem weiß jeder Ingenieur, dass log10(x) = ln(x)/ln(10) ist

Und woher weißt du das?

Autor: Rainer V. (rudi994)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Bernd schrieb:
> woher weißt du das?

Millionen von Mathe-Büchern können nicht lügen :)
log_n(x)= ln(x)/ln(n)= log10(x)/log10(n)= log_n(x)/log_n(n)

Autor: Georg (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Rainer V. schrieb:
> Millionen von Mathe-Büchern können nicht lügen :)

Seit wann lesen Programmierer Mathebücher?

Georg

Autor: Der Andere (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Georg schrieb:
> Seit wann lesen Programmierer Mathebücher?

Programmierer schon immer, nur "Progger" meinen sowas sei überflüssig.

Autor: Wolfgang (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Georg schrieb:
> Seit wann lesen Programmierer Mathebücher?

Mit ein bisschen mathematischem Grundverständnis über die Eigenschaften 
des Logarithmus kann man sich das Nachlesen in Mathebücher sogar sparen 
und es selber ausrechnen.

Autor: Rainer V. (rudi994)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wolfgang schrieb:
> mathematischem Grundverständnis... sich das Nachlesen in Mathebücher
> sogar sparen und es selber ausrechnen.

Wie war das noch mit der Henne und dem Ei? Das Problem des TE lag auch 
sicher mehr darin, daß er log() und ln() vom Taschenrechner oder aus der 
Schule kennt, aber in manchen Programmiersprachen log() anstatt ln() 
verwendet wird.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rainer V. schrieb:
> Das Problem des TE lag auch sicher mehr darin, daß er log() und ln()
> vom Taschenrechner oder aus der Schule kennt ...

Wie die Funktionen der Log-Familie in der Schule, auf dem Taschenrechner 
oder in irgendeiner Programmiersprache oder sonstwo genannt werden, ist 
nun mal nicht vernünftig einheitlich geregelt. Im Zweifelsfall sollte 
man die Funktion einfach auf eine bekannte Zahl loslassen.

Gute Kandidaten sind 10.0, 2.718 und vielleicht noch 2.0

Wo siehst du da ein Henne-Ei-Problem?

Autor: Rainer V. (rudi994)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Henne-Ei-Problem als Frage formuliert: Wie soll jemand Grundlagen zu 
Mathematik erfahren, ohne jemals Mathe-Bücher gelesen oder Unterricht 
gehabt zu haben, und wie soll jemand ohne Grundlagen mit Logarithmen 
rechnen? Immerhin geht es da nicht um das Abzählen von bis zu 10 Fingern 
(das könnte ja noch jeder Trottel) - LG

Autor: Elektrofan (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
> Wie die Funktionen ... ist
> nun mal nicht vernünftig einheitlich geregelt. Im Zweifelsfall sollte
> man die Funktion einfach auf eine bekannte Zahl loslassen.

> Gute Kandidaten sind 10.0, 2.718 und vielleicht noch 2.0

Dann gib mal in einer deutschen Excel-Version in eine Zelle ein:
 >   =log10(2,718)     <

In meinem LibreOffice steht dann drin:
 >   3,4342494524      <        ;-)

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Elektrofan schrieb:
> Dann gib mal in einer deutschen Excel-Version in eine Zelle ein:
>  >   =log10(2,718)     <
>
> In meinem LibreOffice steht dann drin:
>  >   3,4342494524      <        ;-)

Das hängt in beiden Fällen von den länderspezifischen Einstellungen ab.
Ist als Dezimaltrennzeichen das Komma (',') eingestellt, sollte in
beiden Fällen 0,434249... herauskommen, ansonsten eben 3,434249..., also
3 (= log10(1000)) mehr.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Elektrofan schrieb:
>> Gute Kandidaten sind 10.0, 2.718 und vielleicht noch 2.0
>
> Dann gib mal in einer deutschen Excel-Version in eine Zelle ein:
>  >   =log10(2,718)     <
>
> In meinem LibreOffice steht dann drin:
>  >   3,4342494524      <        ;-)

Was kann LibreOffice Calc dafür, wenn du nicht 2.718 eingibst, sondern 
eine 10^3 größere Zahl.

Autor: Hannes Jaeger (pnuebergang)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rainer V. schrieb:
> Wie war das noch mit der Henne und dem Ei? Das Problem des TE lag auch
> sicher mehr darin, daß er log() und ln() vom Taschenrechner oder aus der
> Schule kennt, aber in manchen Programmiersprachen log() anstatt ln()
> verwendet wird.

Nein, sein Problem lag darin, dass er nicht die 10 Sekunden aufgewendet 
hat mal in die Dokumentation zu sehen. Den Cursor auf dem Statement 
positionieren, eine Sekunde warten bis der Tooltip für log aufpoppt und 
einfach mal lesen was da steht:

>> double java.lang.Math.log(double a)
>>
>> log
>>
>> public static double log(double a)
>>
>> Returns the natural logarithm (base e) of a double value.
>>

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.