Exponential-Funktion (und Faktultät)

Zunächst wird die kleine Hilfsfunktion der Fakultät eingeführt. Auf eine validierung des Gültigkeitsbereichs der Argumente wird zwecks kompakter Darstellung verzichtet.

Die Fakultät [...] ist in der Mathematik eine Funktion, die einer natürlichen Zahl das Produkt aller natürlichen Zahlen (ohne Null) kleiner und gleich dieser Zahl zuordnet. Sie wird durch ein dem Argument nachgestelltes Ausrufezeichen („!“) abgekürzt.

function factorial($x) {
    return $x == 0 ? 1 : $x * factorial($x-1);
}

Da sich die Exponentialfunktion als unendliche Reihe darstellen lässt $\exp(x) = \sum_{n = 0}^\infty \frac{x^n}{n!}$, lassen sich rekursiv einfach die Summe der ersten Glieder bilder. Wenige Iterationen reichen schon um die Präzision eines float zu übersteigen.

function e($x, $i = 17) {
    return $i == 0 ? 1 : $x ** $i / factorial($i) + e($x, $i-1);
}

Sinus und Kosinus

Auch die Reihenentwicklung von Sinus $\sin (x) = \sum_{n=0}^{\infty} (-1)^{n}{\frac{x^{2n+1}}{(2n+1)!}}$

und Kosinus $\cos(x)=\sum _{n=0}^{\infty } (-1)^{n}{\frac {x^{2n}}{(2n)!}}$ lassen sich einfach als Rekursion darstellen.

function _sin($x, $i = 15) {
    return $i === 0 ? $x : ((-1) ** $i * ($x ** (2 * $i + 1)) / 
        factorial(2 * $i + 1)) + _sin($x, $i - 1);
}

function _cos($x, $i = 15) {
    return $i === 0 ? 1 : ((-1) ** $i * ($x ** (2 * $i)) / 
        factorial(2 * $i)) + _cos($x, $i - 1);
}

Twitter