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


von Kai S. (kai999)


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);

von Tom (Gast)


Lesenswert?

Math.log10(80)

von Oliver S. (oliverso)


Lesenswert?

Kai S. schrieb:
> Woran liegt es?

RTFM nicht beachtet...

Oliver
P.S. log10...

: Bearbeitet durch User
von Kai S. (kai999)


Lesenswert?

Oh hehe, danke :D

von Horst (Gast)


Lesenswert?

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

von Bernd (Gast)


Lesenswert?

Horst schrieb:

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

Und woher weißt du das?

von Rainer V. (rudi994)


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)

von Georg (Gast)


Lesenswert?

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

Seit wann lesen Programmierer Mathebücher?

Georg

von Der Andere (Gast)


Lesenswert?

Georg schrieb:
> Seit wann lesen Programmierer Mathebücher?

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

von Wolfgang (Gast)


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.

von Rainer V. (rudi994)


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.

von Wolfgang (Gast)


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?

von Rainer V. (rudi994)


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

von Elektrofan (Gast)


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      <        ;-)

von Yalu X. (yalu) (Moderator)


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.

von Wolfgang (Gast)


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.

von Hannes J. (Firma: _⌨_) (pnuebergang)


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.
>>

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.