Start · Sprachen · PHP · Referenz · stats_dens_weibull

stats_dens_weibull

Funktion

Berechnet den Wert der Wahrscheinlichkeitsdichtefunktion (PDF) der Weibull-Verteilung für den Wert <code>x</code> mit Formparameter <code>a</code> und Skalenparameter <code>b</code>.

Kategorie: math

Signatur

stats_dens_weibull(float $x, float $a, float $b): float

Beschreibung

Die Funktion stats_dens_weibull() gehört zur PECL-Erweiterung stats und berechnet die Wahrscheinlichkeitsdichte der Weibull-Verteilung. Diese Verteilung wird in der Zuverlässigkeitstheorie, der Lebensdaueranalyse und der Risikomodellierung eingesetzt, um die Zeit bis zum Auftreten eines Ereignisses (z. B. Maschinenfehler) zu modellieren.

Die Dichtefunktion der Weibull-Verteilung ist definiert als:
f(x; a, b) = (a / b) * (x / b)^(a - 1) * exp(-(x / b)^a) für x >= 0, wobei a > 0 der Formparameter und b > 0 der Skalenparameter ist. Für x < 0 gilt f(x) = 0.

Der Formparameter a bestimmt die Form der Verteilung: Werte kleiner als 1 deuten auf eine abnehmende Ausfallrate hin, der Wert 1 entspricht der Exponentialverteilung, und Werte größer als 1 beschreiben eine zunehmende Ausfallrate. Der Skalenparameter b streckt oder staucht die Verteilung entlang der x-Achse.

Die Funktion ist nur verfügbar, wenn die stats-Erweiterung installiert und geladen ist (z. B. via PECL). Sie eignet sich für statistische Berechnungen in wissenschaftlichen und ingenieurwissenschaftlichen Anwendungen.

Parameter

Name Typ Default Beschreibung
$x Pflicht float Der Wert, an dem die Dichtefunktion ausgewertet wird. Für x < 0 ist die Dichte 0.
$a Pflicht float Formparameter der Weibull-Verteilung. Muss größer als 0 sein. Bestimmt die Form der Verteilungskurve.
$b Pflicht float Skalenparameter der Weibull-Verteilung. Muss größer als 0 sein. Streckt oder staucht die Verteilung entlang der x-Achse.

Rückgabewert

Typ
float
Beschreibung
Gibt den Wert der Wahrscheinlichkeitsdichtefunktion der Weibull-Verteilung an der Stelle x zurück. Für x < 0 wird 0.0 zurückgegeben.

Beispiele

Einfache Berechnung der Weibull-Dichte

<?php
// Voraussetzung: PECL-Erweiterung 'stats' ist installiert
// Formparameter a = 2.0, Skalenparameter b = 1.5
$x = 1.0;
$a = 2.0;
$b = 1.5;

$dichte = stats_dens_weibull($x, $a, $b);
echo "Weibull-Dichte bei x={$x}: " . $dichte . PHP_EOL;

// Vergleich: Für x < 0 sollte die Dichte 0 sein
$dichteNegativ = stats_dens_weibull(-1.0, $a, $b);
echo "Weibull-Dichte bei x=-1.0: " . $dichteNegativ . PHP_EOL;
Weibull-Dichte bei x=1.0: 0.55048461840918 Weibull-Dichte bei x=-1.0: 0

Wertetabelle der Weibull-Dichte für verschiedene x-Werte

<?php
// Dichtefunktion für a=1.5 (aufsteigende Ausfallrate), b=2.0
$a = 1.5;
$b = 2.0;

echo sprintf("%-8s %-20s\n", "x", "f(x; a=1.5, b=2.0)");
echo str_repeat('-', 30) . PHP_EOL;

foreach ([0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0] as $x) {
    $dichte = stats_dens_weibull($x, $a, $b);
    echo sprintf("%-8.1f %-20.8f\n", $x, $dichte);
}
x f(x; a=1.5, b=2.0) ------------------------------ 0.0 0.00000000 0.5 0.17014832 1.0 0.30170847 1.5 0.34998723 2.0 0.30326533 2.5 0.20289290 3.0 0.10714480

// Wichtig · Fallstricke

Voraussetzung: Die Funktion stats_dens_weibull() ist nicht im PHP-Kern enthalten, sondern Teil der PECL-Erweiterung stats. Sie muss separat installiert werden (pecl install stats) und in der php.ini aktiviert sein (extension=stats.so).

Ungültige Parameter (z. B. a <= 0 oder b <= 0) können zu undefiniertem Verhalten, Warnungen oder falschen Ergebnissen führen. Eine Validierung der Eingaben vor dem Aufruf ist daher empfehlenswert.

Für a = 1 entspricht die Weibull-Verteilung exakt der Exponentialverteilung mit Rate 1/b. In diesem Fall kann alternativ stats_dens_exponential() verwendet werden.