Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Fehler bei der standartisierten Normalverteilung
softwarefreak
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

Fehler bei der standartisierten Normalverteilung

beantworten | zitieren | melden

Hallo,
an dieser Rechnung stimmt irgendwas nicht. Er liefert ein falsches Ergebnis:

Standartisierte Normalverteilung

lblResult.Text = (1.0 / Math.Sqrt(2 * Math.PI) * Math.Exp(Math.Log(-1.0 / 2.0 * Math.Pow(u,2)))).ToString("f3");


Vielen Dank.
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Hallo softwarefreak,

dass Addition, Subtraktion, Multiplikation, Division und Co im Framework falsch implementiert sind bezweifle ich.

Das ist schon der zweite Beitrag, der heisst "geht nicht, macht mal".

Beim ersten Mal wurdest du schon auf den Thread hingewiesen, der das eigentlich klarstellen sollte.

Zu deinem Problem: Einfach mal den Debugger anschmeissen. Dann weisst du wos hängt.

Mach dir Teilrechnungen, brech die Gleichung auf und debuggen. Ich bin mir sicher du kommst drauf.

Gruss

Coffeebean
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Coffeebean am .
private Nachricht | Beiträge des Benutzers
softwarefreak
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

beantworten | zitieren | melden

Ich probier schon seit Sunden rum aber ich finde den Fehler nicht.
private Nachricht | Beiträge des Benutzers
EifelYeti
myCSharp.de - Member

Avatar #avatar-3408.jpeg


Dabei seit:
Beiträge: 66
Herkunft: Eifel

beantworten | zitieren | melden

Bitte besonders Punkt 5 beachten:
[Hinweis] Wie poste ich richtig?
Zitat
Wenn ihr keine Fehler- oder Exceptionmeldung bekommt, beschreibt das Fehlverhalten möglichst genau. Mit "funktioniert nicht" alleine ist uns leider nicht geholfen; genausowenig mit "verstehe ich nicht". Bitte schreibt genau, was ihr probiert habt; was ihr nicht versteht und stellt konkrete Fragen. Wenn etwas nicht funktioniert, beschreibt sowohl den IST- als auch den SOLL-Zustand.
Rekursion
(lat. , die) siehe Rekursion
private Nachricht | Beiträge des Benutzers
softwarefreak
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

beantworten | zitieren | melden

Hallo,
ich habe einen Breakpoint gesetzt und bin alles Schritt für Schritt durchgegangen. Mir ist nichts aufgefallen. Dann habe ich die Rechnung in 3 Teile unterteilt. Habe den Fehler aber nicht gefunden.
private Nachricht | Beiträge des Benutzers
CoLo
myCSharp.de - Member



Dabei seit:
Beiträge: 232

beantworten | zitieren | melden

Hallo softwarefreak,

bei der Standardnormalverteilung gibt es eine Dichte- und eine Verteilungsfunktion.
Wikipedia: Standardnormalverteilung

Hier die Dichtefunktion:


        private static double DichteStandardnormalverteilung(double o, double x, double u)
        {
            //Dichtefunktion der Standardnormalverteilung
            //Formel:
            //
            //                                  2
            //                      1  ( x-u   )
            //           1        - -  ( ----- )
            // f(x) = --------- e   2  (  o    )
            //            ___
            //         o /2pi
            //

            double ergebnis
                = (1d / (o * Math.Sqrt(2d * Math.PI))) * Math.Exp
                (
                    -0.5d * Math.Pow(((x - u) / o), 2d)
                )
            ;
            return ergebnis;
        }

Falls Dich auch die Verteilungsfunktion interessiert, sie verwendet die Erf Funktion:
johndcook:Erf
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Hallo softwarefreak,
Zitat von softwarefreak
Hallo,
ich habe einen Breakpoint gesetzt und bin alles Schritt für Schritt durchgegangen. Mir ist nichts aufgefallen. Dann habe ich die Rechnung in 3 Teile unterteilt. Habe den Fehler aber nicht gefunden.

Dann zerteile es in mehr Teile und überprüfe jeden Teilbereich. Irgendwo wird der Fehler schon liegen ;)

Gruss

Coffeebean
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4136

beantworten | zitieren | melden

Hinweis:


Math.Exp(Math.Log(...))
ist ziemlich sinnfrei...

Vergleich einfach mal deinen Code mit Normalverteilung
private Nachricht | Beiträge des Benutzers

Moderationshinweis von herbivore (10.06.2013 - 16:39:07):

Du hast leider die Chance nicht genutzt, um wenigstens anzugeben, wie der IST- vom SOLL-Wert abweicht, obwohl dir schon extra [Hinweis] Wie poste ich richtig? Punkt 5 vorgelesen wurde. Es ist schon schlimm genug, wenn wir dir die Informationen aus der Nase ziehen müssen, aber wenn du selbst dann nicht damit herausrückst, dann können wir auch nicht helfen.