In vielen mathematischen Aufgaben benötigen Sie Funktionen, um Potenzen, Wurzeln oder Logarithmen zu berechnen. Gambas stellt Ihnen für diese Zwecke diverse Funktionen zur Verfügung.
Da der Umgang mit Potenzen, Wurzeln und Logarithmen nicht zu den täglichen Übungen zählt, werden drei grundlegende Betrachtungen der Beschreibung der entsprechenden Gambas-Funktionen vorangestellt:
Hinter der mathematischen Operation 'Logarithmieren' verbirgt sich nichts anderes als die 'Exponentensuche' für eine vorgegebene Zahl (Potenzwert) und gegebener Basis. Bei logarithmus = log10(1000) wird der Exponent gesucht, für den 10exponent = 1000 ist. Der gesuchte Exponent ist 3, denn 10³ = 1000. Das musste einmal gesagt werden, bevor Sie wie wild drauf los logarithmieren … .
Funktion | Beschreibung |
---|---|
potenzwert = Exp (exponent AS Float ) AS Float | Berechnet den Potenzwert p zur Basis e mit dem Exponenten 'exponent' (p=eexponent). Der Exponent muss kleiner als 709.779999 sein, um Überlauffehler zu vermeiden. Die Zahl e ist die Eulersche Zahl. |
potenzwert = Expm ( exponent AS Float ) AS Float | Berechnet den Potenzwert p zur Basis e mit dem Exponenten 'exponent' für sehr kleine Exponenten. Es gilt: Expm(x) = Exp(x) - 1. |
potenzwert = Exp2 (exponent AS Float) AS Float | Berechnet den Potenzwert p zur Basis 2 mit dem Exponenten 'exponent' (p = 2exponent). |
potenzwert = Exp10 (exponent AS Float) AS Float | Berechnet den Potenzwert p zur Basis 10 mit dem Exponenten 'exponent' (p = 10exponent). |
Tabelle 9.6.2.1: Operation: Potenzieren
Funktion | Beschreibung |
---|---|
2root = Sqr ( number AS Float ) AS Float | Berechnet die 2. Wurzel einer Zahl. Die reelle Zahl 'number' darf nicht negativ sein (number ≥ 0). |
3root = Cbr ( number AS Float ) AS Float | Berechnet die Kubikwurzel einer Zahl. Die reelle Zahl 'number' kann 0 (Null), negativ oder positiv sein. |
Tabelle 9.6.2.1: Operation: Radizieren
Funktion | Beschreibung |
---|---|
exponent = Log (numerus AS Float) As Float | Berechnet den natürlichen Logarithmus einer Zahl (numerus) zur Basis e (Eulersche Zahl) mit logarithmus = ln(numerus). Das Symbol 'ln' steht hier für logaritmus naturalis. Die Zahl (numerus) muss größer als Null sein. Gesucht ist der Exponent, für den eexponent = numerus gilt. |
exponent = Logp ( numerus AS Float ) AS Float | Berechnet den Logarithmus zur Basis e für sehr kleine Werte des Numerus. Es gilt: Logp(x) = Log(1 + x). |
exponent = Log2 ( numerus AS Float ) AS Float | Berechnet den Logarithmus einer Zahl (numerus) zur Basis 2. Die Zahl muss größer als Null sein. Gesucht ist der Exponent, für den 2exponent = numerus gilt. |
exponent = Log10 ( number AS Float ) AS Float | Berechnet den Logarithmus einer Zahl (numerus) zur Basis 10. Die Zahl muss größer als Null sein. Gesucht ist der Exponent, für den 10exponent = numerus gilt. |
Tabelle 9.6.4.1: Operation: Logarithmieren
Hinweise:
Die Berechnung der 5. Wurzel aus der reellen Zahl 83 erfordert zum Beispiel den Einsatz einiger der o.a. Funktionen, was sich auch im u.a. Quelltext-Ausschnitt widerspiegelt:
w = (83)^0.2 ln(w) = 0.5 * ln(83) = 0,88376812155932 w = e^ln(w) = e^0,88376812155932 = 2,42000140696596
Die Probe wird ähnlich ausgeführt:
p = (2,42000140696596)^5 ln(p) = 5 * ln(2,42000140696596) = 4,4188406077966 p = e^(5 * ln(2,42000140696596))
Public Sub btn5Root83_Click() Dim w As Float Print "ln(w) = "; 0.2 * Log(83) w = Exp(0.2 * Log(83)) Print "w = "; Exp(0.2 * Log(83)) Print "Probe 1 (trivial) = "; w * w * w * w * w Print "ln(p) = "; 5 * Log(Exp(0.2 * Log(83))) Print "Potenzwert = "; Exp(5 * Log(Exp(0.2 * Log(83)))) End
Ausgabe in der Konsole der IDE:
ln(w) = 0,88376812155932 w = 2,42000140696596 Probe 1 (trivial) = 83,0000000000001 ln(p) = 4,4188406077966 Potenzwert = 83
Die Berechnung des Potenzwerts a^b für a > 0 und beliebige b (a,b ∈ ℝ) funktioniert über den folgenden Ansatz problemlos: a^b = Exp(b*Log(a)) und liefert 100 in der nächsten Berechnung:
a = Cbr(100) ' 3. Wurzel aus 100 b = 3 Print Exp(b * Log(a))
Für a = Cbr(100) und b = 6 ergibt sich der Näherungswert 9999,99999999999 ≈ 10000.