home *** CD-ROM | disk | FTP | other *** search
- {***************************************************************************}
- {* VERTEIL.INC *}
- {* Verteilungsfunktionen der Standardverteilungen *}
- {***************************************************************************}
- FUNCTION verteil (v_fkt: Verteilungstyp; p: Parametervector; x: REAL): REAL;
-
- CONST a1 = 0.31938153;
- a2 =-0.356563782;
- a3 = 1.781477937;
- a4 =-1.821255978;
- a5 = 1.330274429;
-
- VAR I : INTEGER; signum : BOOLEAN;
- t, dummy1, dummy2, dummy3, dummy4 : REAL;
- p_vec : Parametervector;
-
- BEGIN
- CASE v_fkt OF
- ber : BEGIN
- IF x < 0.0 THEN verteil := 0.0
- ELSE IF x >= 1 THEN verteil := 1.0
- ELSE verteil := 1.0-p[1];
- END;
- poi : BEGIN
- dummy1 := 0.0; p_vec[1] := p[1];
- FOR I := 0 TO Trunc(x) DO dummy1 := dummy1+dichte(poi,p_vec,I);
- verteil := dummy1;
- END;
- expo : BEGIN
- IF x < 0.0 THEN verteil:=0.0
- ELSE verteil := 1.0-Exp(-p[1]*x);
- END;
- bin : BEGIN
- IF x < 0.0 THEN verteil := 0.0
- ELSE IF x >= p[1] THEN verteil:=1.0
- ELSE BEGIN
- dummy1 := 0.0;
- p_vec[1] := p[1]; p_vec[2] := p[2];
- FOR I := 0 TO Trunc(x) DO
- dummy1 := dummy1+dichte(bin,p_vec,I);
- verteil := dummy1;
- END;
- END;
- hyp : BEGIN
- dummy1 := 0.0;
- IF ((p[3]+p[2]-p[1]) > dummy1) THEN dummy1 := p[3]+p[2]-p[1];
- dummy2 := p[3];
- IF p[2] < p[3] THEN dummy2 := p[2];
- IF x >= dummy2 THEN verteil := 1.0
- ELSE IF x < dummy1 THEN verteil := 0.0
- ELSE
- BEGIN
- dummy3 := 0.0;
- p_vec[1] := p[1]; p_vec[2] := p[2]; p_vec[3] := p[3];
- FOR I := 0 TO Trunc(x) DO
- dummy3 := dummy3+dichte(hyp,p_vec,I);
- verteil := dummy3;
- END;
- END;
- sta : BEGIN
- t := 1.0/(1.0+x*0.2316419);
- IF x < 0.0 THEN
- BEGIN signum := TRUE; dummy1 := -1.0*x; END
- ELSE
- BEGIN signum := FALSE; dummy1 := x; END;
- dummy2 := a1*t+a2*t*t+a3*t*t*t+a4*t*t*t*t+a5*t*t*t*t*t;
- dummy3 := Exp(-x*x/2.0)/Sqrt(2.0*Pi);
- dummy1 := 1.0-dummy3*dummy2;
- IF NOT signum THEN verteil := dummy1
- ELSE verteil := 1.0-dummy1;
- END;
- nor : verteil := verteil(sta,p_vec,(x-p[1])/p[2]);
- END;
- END;
- {---------------------------------------------------------------------------}
- { Ende VERTEIL.INC }