Einführung
In diesem Lab lernen Sie, wie man die kumulative Verteilungsfunktion (CDF) in C berechnet. Das Lab umfasst zwei Hauptphasen: das Lesen der Verteilungsparameter und des x-Wertes und anschließend die Berechnung der CDF, indem die Wahrscheinlichkeiten von minus Unendlich bis zum gegebenen x-Wert unter Verwendung der Standardnormalverteilung summiert werden. Das Lab bietet die vollständige Codeimplementierung und führt Sie Schritt für Schritt durch den Prozess, um Ihnen ein fundiertes Verständnis der CDF-Berechnung in C zu vermitteln.
Verteilungsparameter und x-Wert einlesen
In diesem Schritt lernen Sie, wie Sie die Verteilungsparameter und den x-Wert zum Berechnen der kumulativen Verteilungsfunktion (CDF) in C einlesen.
Erstellen Sie zunächst eine neue C-Datei zur Implementierung der CDF-Berechnung:
cd ~/project
nano cdf_calculator.c
Fügen Sie nun den folgenden Code zum Einlesen der Verteilungsparameter hinzu:
#include <stdio.h>
#include <stdlib.h>
int main() {
// Verteilungsparameter
double mean, std_dev;
double x_value;
// Benutzer nach Verteilungsparametern fragen
printf("Geben Sie den Mittelwert (μ) ein: ");
scanf("%lf", &mean);
printf("Geben Sie die Standardabweichung (σ) ein: ");
scanf("%lf", &std_dev);
// Benutzer nach x-Wert fragen
printf("Geben Sie den x-Wert zum Berechnen der CDF ein: ");
scanf("%lf", &x_value);
// Eingelesene Parameter zur Überprüfung ausgeben
printf("\nEingelesene Parameter:\n");
printf("Mittelwert (μ): %.2f\n", mean);
printf("Standardabweichung (σ): %.2f\n", std_dev);
printf("X-Wert: %.2f\n", x_value);
return 0;
}
Kompilieren und ausführen:
gcc cdf_calculator.c -o cdf_calculator
./cdf_calculator
Beispielausgabe:
Geben Sie den Mittelwert (μ) ein: 5.0
Geben Sie die Standardabweichung (σ) ein: 2.0
Geben Sie den x-Wert zum Berechnen der CDF ein: 3.5
Eingelesene Parameter:
Mittelwert (μ): 5.00
Standardabweichung (σ): 2.00
X-Wert: 3.50
Wahrscheinlichkeiten von -∞ bis x summieren
In diesem Schritt lernen Sie, wie Sie die kumulative Verteilungsfunktion (CDF) berechnen, indem Sie die Wahrscheinlichkeiten von minus Unendlich bis zu einem gegebenen x-Wert unter Verwendung der Standardnormalverteilung summieren.
Ändern wir das vorherige C-Programm, um die CDF-Berechnung zu implementieren:
cd ~/project
nano cdf_calculator.c
Ersetzen Sie den vorherigen Code durch die folgende Implementierung:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
// Näherungsfunktion für die Standardnormal-CDF (Abramowitz und Stegun)
double standard_normal_cdf(double x) {
const double a1 = 0.254829592;
const double a2 = -0.284496736;
const double a3 = 1.421413741;
const double a4 = -1.453152027;
const double a5 = 1.061405429;
const double p = 0.3275911;
// Negative Werte behandeln
int sign = (x < 0) ? -1 : 1;
x = fabs(x);
// Näherungsformel
double t = 1.0 / (1.0 + p * x);
double y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * exp(-x * x);
return 0.5 * (1.0 + sign * y);
}
// CDF für die Normalverteilung berechnen
double normal_cdf(double x, double mean, double std_dev) {
// Z-Score Berechnung
double z_score = (x - mean) / std_dev;
return standard_normal_cdf(z_score);
}
int main() {
// Verteilungsparameter
double mean, std_dev;
double x_value;
// Benutzer nach Verteilungsparametern fragen
printf("Geben Sie den Mittelwert (μ) ein: ");
scanf("%lf", &mean);
printf("Geben Sie die Standardabweichung (σ) ein: ");
scanf("%lf", &std_dev);
// Benutzer nach x-Wert fragen
printf("Geben Sie den x-Wert zum Berechnen der CDF ein: ");
scanf("%lf", &x_value);
// CDF berechnen und ausgeben
double cdf_value = normal_cdf(x_value, mean, std_dev);
printf("\nErgebnisse der CDF-Berechnung:\n");
printf("Mittelwert (μ): %.2f\n", mean);
printf("Standardabweichung (σ): %.2f\n", std_dev);
printf("X-Wert: %.2f\n", x_value);
printf("CDF P(X ≤ x): %.4f\n", cdf_value);
return 0;
}
Kompilieren Sie das Programm mit der Mathematikbibliothek:
gcc cdf_calculator.c -o cdf_calculator -lm
Führen Sie das Programm aus und testen Sie es mit Beispielwerten:
./cdf_calculator
Beispielausgabe:
Geben Sie den Mittelwert (μ) ein: 5.0
Geben Sie die Standardabweichung (σ) ein: 2.0
Geben Sie den x-Wert zum Berechnen der CDF ein: 3.5
Ergebnisse der CDF-Berechnung:
Mittelwert (μ): 5.00
Standardabweichung (σ): 2.00
X-Wert: 3.50
CDF P(X ≤ x): 0.2525
Ausgabe des CDF-Wertes
In diesem Schritt lernen Sie, wie Sie das CDF-Berechnungsprogramm verbessern, indem Sie detailliertere Ausgaben und Interpretationen der Ergebnisse der kumulativen Verteilungsfunktion (CDF) hinzufügen.
Ändern wir das vorherige C-Programm, um die Ausgabe zu verbessern und einige interpretative Kommentare hinzuzufügen:
cd ~/project
nano cdf_calculator.c
Aktualisieren Sie die Funktion main(), um detailliertere Ausgaben einzuschließen:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
// Die vorherigen Funktionen standard_normal_cdf und normal_cdf bleiben gleich
int main() {
// Verteilungsparameter
double mean, std_dev;
double x_value;
// Benutzer nach Verteilungsparametern fragen
printf("Kumulative Verteilungsfunktion (CDF) Rechner\n");
printf("-----------------------------------------------\n");
printf("Geben Sie den Mittelwert (μ) ein: ");
scanf("%lf", &mean);
printf("Geben Sie die Standardabweichung (σ) ein: ");
scanf("%lf", &std_dev);
// Benutzer nach x-Wert fragen
printf("Geben Sie den x-Wert zum Berechnen der CDF ein: ");
scanf("%lf", &x_value);
// CDF berechnen und ausgeben
double cdf_value = normal_cdf(x_value, mean, std_dev);
// Detaillierte Ausgabe mit Interpretation
printf("\n--- Ergebnisse der CDF-Berechnung ---\n");
printf("Mittelwert (μ): %.2f\n", mean);
printf("Standardabweichung (σ): %.2f\n", std_dev);
printf("X-Wert: %.2f\n", x_value);
printf("CDF P(X ≤ x): %.4f (%.2f%%)\n",
cdf_value, cdf_value * 100);
// Interpretation des CDF-Wertes
printf("\nInterpretation:\n");
if (cdf_value < 0.5) {
printf("Der Wert liegt unterhalb der Mittelverteilung.\n");
} else if (cdf_value > 0.5) {
printf("Der Wert liegt oberhalb der Mittelverteilung.\n");
} else {
printf("Der Wert liegt im Mittel der Verteilung.\n");
}
// Erklärung der Wahrscheinlichkeit
printf("Wahrscheinlichkeit, einen Wert kleiner oder gleich %.2f zu beobachten: %.2f%%\n",
x_value, cdf_value * 100);
return 0;
}
Kompilieren Sie das Programm:
gcc cdf_calculator.c -o cdf_calculator -lm
Führen Sie das Programm mit Beispielwerten aus:
./cdf_calculator
Beispielausgabe:
Kumulative Verteilungsfunktion (CDF) Rechner
-----------------------------------------------
Geben Sie den Mittelwert (μ) ein: 5.0
Geben Sie die Standardabweichung (σ) ein: 2.0
Geben Sie den x-Wert zum Berechnen der CDF ein: 3.5
--- Ergebnisse der CDF-Berechnung ---
Mittelwert (μ): 5.00
Standardabweichung (σ): 2.00
X-Wert: 3.50
CDF P(X ≤ x): 0.2525 (25.25%)
Interpretation:
Der Wert liegt unterhalb der Mittelverteilung.
Wahrscheinlichkeit, einen Wert kleiner oder gleich 3.50 zu beobachten: 25.25%
Zusammenfassung
In diesem Labor haben Sie gelernt, wie man Verteilungsparameter (Mittelwert und Standardabweichung) und einen x-Wert liest, um die kumulative Verteilungsfunktion (CDF) in C zu berechnen. Sie haben dann die CDF-Berechnung implementiert, indem Sie Wahrscheinlichkeiten von minus Unendlich bis zum gegebenen x-Wert unter Verwendung der Näherungsfunktion für die Standardnormalverteilung summiert haben. Schließlich haben Sie den CDF-Wert für die angegebenen Eingabeparameter ausgegeben.
Die wichtigsten Lernpunkte dieses Labors sind die Schritte zur Berechnung der CDF, einschließlich des Lesens der erforderlichen Eingabedaten und der Anwendung der Näherungsformel für die Standardnormal-CDF, um den gewünschten CDF-Wert zu berechnen.



