Deutsch
Quelltexte/ Codesnippets

Inverse Gauss-Funktion: Ab welchem Wert x treten maximal p % Fehler auf

 

p.specht

Die Gauss-Verteilung ist durch die bekannte Glockenkurve gegeben. Fragt man, wie wahrscheinlich ein Ereignis über einem bestimmten Grenzwert zu liegen kommt, dann kommt es auf die Fläche unter der Glocke ab diesem Grenzwert an.
Flächen unter Kurven werden mathematisch als Integralfunktion dargestellt. Integrale ergeben sich oft als weitere, relativ leicht zu ermittelnde Formeln - dummerweise gerade im Falle der Gaußglocke aber nicht!
Normalerweise müssen dann numerische Lösungsverfahren her (z.B. durch abschnittsweises Aufaddieren von Trapezflächen, in die man die Kurve zerhackt hat), um einen ungefähren Wert dieses Gauß-Integrals zu ermittelt. Das erscheint in der Praxis oft zu aufwendig, und man begnügt sich mit relativ einfach zu berechenden Näherungsformeln, die aber nur in einem eingeschränkten Wertebereich gelten.


Die umgekehrte Frage, nähmlich für eine vorgegebene Wahrscheinlichkeit (=Fläche) jenen vorgenannten Grenzwert zu ermitteln, kann dann duch Umstellung so einer Näherungsformel auf die andere Variable ermittelt werden. Das nachstehende Programm tut genau das. Man spricht dann von der "Inversen Gaussfunktion". Vorgegeben wird die Fläche (= Wahrscheinlichkeit), heraus kommt der gesuchte Grenzwert, von dem aus bis zum Wert "+Unendlich" diese Fläche der Gaussglocke abgeschnitten wird.
WindowTitle "Formel für die Inverse des Normalverteilungsintegrals"
' Quelle: https://jean-pierre.moreau.pagesperso-orange.fr/Basic/invnorm_bas.txt
' Transponiert nach XProfan 11.2a (D) Demo by P.Specht, Vienna/Austria
' No warranty whatsoever! Keine Gewähr, für garnix!
'****************************************************
'* Program to demonstrate inverse normal subroutine *
'* ------------------------------------------------ *
'* Reference: BASIC Scientific Subroutines, Vol. II *
'* By F.R. Ruckdeschel, BYTE/McGRAWW-HILL, 1981 [1].*
'* ------------------------------------------------ *
'* SAMPLE RUN:                                      *
'*                                                  *
'*  P(Z>X)     X                                    *
'* ----------------                                 *
'*  0.50    0.0000                                  *
'*  0.48    0.0500                                  *
'*  0.46    0.1002                                  *
'*  0.44    0.1507                                  *
'*  0.42    0.2015                                  *
'*  0.40    0.2529                                  *
'*  0.38    0.3050                                  *
'*  0.36    0.3580                                  *
'*  0.34    0.4120                                  *
'*  0.32    0.4673                                  *
'*  0.30    0.5240                                  *
'*  0.28    0.5825                                  *
'*  0.26    0.6430                                  *
'*  0.24    0.7060                                  *
'*  0.22    0.7719                                  *
'*  0.20    0.8414                                  *
'*  0.18    0.9152                                  *
'*  0.16    0.9944                                  *
'*  0.14    1.0804                                  *
'*  0.12    1.1751                                  *
'*  0.10    1.2817                                  *
'*  0.08    1.4053                                  *
'*  0.06    1.5551                                  *
'*  0.04    1.7511                                  *
'*  0.02    2.0542                                  *
'*                                                  *
'****************************************************
'DEFINT I-N
'DEFDBL A-H, O-Z
Declare i&,x!,y!,from!,to!,step!
CLS
PRINT
Print " Das Programm berechnet eine Näherung an das Integral der Gaussverteilung,"
Print " und zwar die Fläche zwischen x und +Inf (rechte Seite!). Dazu wird nach  "
Print " Abramowitz/Stegun ein Rationales Polynom benutzt. Vorgegeben wird y, das "
Print " zugehörige X dazu wird berechnet. "
Print " Für y innerhalb [0 ... 0,5] ist die Genauigkeit besser als 0.0005"
Print
PRINT " P(Z>X)     X  "
PRINT "----------------"
from!=0.5:to!=0:step! = -0.02
y!=from!
i&=1

Repeat

    S1000' Proc-Aufruf
    Case x!<0.000001:x!=0
    PRINT Format$(" 0.## ",y!),Tab(12),Format$("0.####",x!)
    CaseNot i& Mod 15: WaitInput
    inc i&
    y!=y!+step!

Until y!<to!

PRINT
WaitInput
END

Proc S1000

    '***********************************************
    '*   Inverse normal distribution subroutine    *
    '* ------------------------------------------- *
    '* This program calculates an approximation to *
    '* the integral of the normal distribution     *
    '* function from x to infinity (the tail).     *
    '* A rational polynomial is used. The input is *
    '* in y, with the result returned in x. The    *
    '* accuracy is better then 0.0005 in the range *
    '* 0 < y < 0.5.                                *
    '* ------------------------------------------- *
    '* Reference: Abramowitz and Stegun.           *
    '***********************************************
    'Define coefficients
    Declare c0!,c1!,c2!,d1!,d2!,d3!,z!
    c0! = 2.515517
    c1! = 0.802853
    c2! = 0.010328
    d1! = 1.432788
    d2! = 0.189269
    d3! = 0.001308
    Case y!=0:x!=1E13
    Case y!=0:Return
    z!=Sqrt(-1*Ln(Sqr(y!)))
    x! = 1+d1!*z!+d2!*Sqr(z!)+ d3!*z!*Sqr(z!)
    x! = (c0!+c1!*z!+c2!*Sqr(z!))/x!
    x! = z!-x!

EndProc

'End of file invnorm.prf
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
22.05.2021  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.331 Betrachtungen

Unbenanntvor 0 min.
p.specht20.11.2021
Uwe Lang20.11.2021
Manfred Barei19.11.2021
Wilfried Friebe17.11.2021
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

p.specht (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie