Umgang mit Logarithmen

UncleBob

Mitglied
Ich bin etwas konfus wie ich logarithmen in C++ einsetzen muss. Liegt zum einen wohl auch daran das ich nicht genau weiss was ein Logarithmus ist und wie sie einzusetzen sind.

Ich habe jetzt aber eine Formel in der das Statement 2.5Log(T^4) vorkommt. Ich habe es mit 2.5 * log(pow(T, 4) als auch mit 2.5 * log10(pow(T, 4) versucht, aber die herauskommenden Resultate sind kompletter Müll. Nach der Regel "Müll rein, Müll raus" verwende ich also entweder die Funktionen nicht richtig oder interpretiere das Statement falsch. Wie müsste ich die Formel in C++ eingeben dass das richtige dabei herauskommt?
 
Hi UncleBob,

keine Ahnung was du für ein Ergebnis erwartest aber das letzt genannte müsste den Erfolf liefern.

C++:
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int T;
    std::cout << "Zahl: ";
    std::cin >> T;
    float retVal = 2.5 * log10(pow(T, 4));
    std::cout << "Ergebnis: " << retVal;
    return 0;
}

Bei mir rechnet mein Gehilfe richtig ;)
 
Hmmm, interessant... In dem fall habe ich wohl die anwendung der Formel als ganzes falsch interpretiert, denn sie gibt definitiv nicht das zurück was ich erwarte. Aber jetzt weiss ich wenigstens dass es nicht am Synthax liegt. Vielen dank!
 
Hallo,

beim Logarithmus ist auch immer wichtig, welche Basis man verwendet. Der Logarithmus von a zur Basis b ist die Lösung der Gleichung b^x = a. Bei log gilt b = e = 2,7182818... und bei log10 ist b = 10.

Das pow kann man sich im Übrigen sparen, wenn man die Logarithmengesetze anwendet. Es gilt nämlich 2.5Log(T^4) = 2.5*4*Log(T) = 10Log(T).

Grüße,
Matthias
 
Zurück