0 Daumen
700 Aufrufe

Aufgabe:


Numerische Integration der Standardnormalverteilung


Problem/Ansatz:



Ich habe für ein Uniprojekt eine z-Tabelle zur Standardnormalverteilung mit Python repliziert. Das hat auch alles problemlos geklappt.

Nun möchte ich jedoch noch ermitteln wie man die Schrittweite h einer (frei wählbaren) numerischen Integrationsmethode bestimmen kann, sodass die genäherten Integralwerte auf mindestens 6 Nachkommastellen genau sind.

Ich habe dafür die Trapezmethode ausgewählt und das Integral der Dichtefunktion, also die gesamte Fläche unter der Standardnormalverteilungskurve mit den Grenzen (-4, 4) berechnet (welche ja nährungsweise 1 ist).

Nun weiß ich jedoch immer noch nicht wie ich bei der Ermittlung der Schrittweite h vorgehen muß, sodass die genäherten Integralwerte auf 6 Nachkommastellen genau sind. Ich gehe davon aus, dass dies mit der Fehlerabschätzung möglich sein müsste. Allerdings fehlt es mir vermutlich
am mathematischen Verständnis um von diesem Punkt an weiterzukommen.

Ich hoffe, dass ich mich verständlich ausgedrückt habe und mein Anliegen klar ist ;).

Hier ist noch der pastebin-Link für all diejenigen, die sich zusätzlich mit Python auskennen ;)

pastebin.com/KLrWBeGh


Vielen Dank im Voraus und Liebe Grüße,
Pimaster3.14

Avatar von

2 Antworten

+2 Daumen
 
Beste Antwort

Hallo :-)

Für reellwertige Funktionen (mindestens zweimal differentierbar!!!) \(f: \ [a,b]\to \R\) gibt es bei der Trapezregel folgende Fehlerabschätzung:

$$ |E^{(n)}(f)|\leq \frac{b-a}{12} \cdot h^2\cdot \max_{a\leq t\leq b} |f''(t)|. $$

Dabei beschreibt \(h\) die Schrittweite auf dem Intervall \([a,b]\).

Mehr dazu: https://de.wikipedia.org/wiki/Trapezregel#Fehlerabsch%C3%A4tzung_2


Betrachten wir also deine Funktion \(f: \ [-4,4]\to \R\) mit \(f(x)=\frac{1}{\sqrt{2\cdot \pi}}\cdot e^{-\frac{1}{2}\cdot x^2}\).

Die zweite Ableitung von \(f\) lautet nun: \(f''(x)=\frac{1}{\sqrt{2\cdot \pi}}\cdot (x^2-1)\cdot e^{-\frac{1}{2}\cdot x^2}\).

Mit Kurvendisskusion kommt man auf die Extrem-Kandidaten: \(x_1=-\sqrt{3},\quad x_2=0, \quad x_3=\sqrt{3}\) sowie die Randpunkte des Intervalls \(x_4=-4,\quad x_5=4\).

Folgender Vergleich der Abschätzungen:

1.) \(|f''(0)|=\left|\frac{1}{\sqrt{2\cdot \pi}}\cdot (0^2-1)\cdot e^{-\frac{1}{2}\cdot 0^2}\right |=\frac{1}{\sqrt{2\cdot \pi}}<\frac{1}{\sqrt{2\cdot 2}}=\frac{1}{2}=0.5\) (*)

2.) \(|f''(\sqrt{3})|=\frac{1}{\sqrt{2\cdot \pi}}\cdot (\sqrt{3}^2-1)\cdot e^{-\frac{\sqrt{3}^2}{2}}=\frac{1}{\sqrt{2\cdot \pi}}\cdot 2 \cdot e^{-\frac{3}{2}}\stackrel{(*)}{<}0.5\cdot 2\cdot e^{-\frac{3}{2}}\\=e^{-\frac{3}{2}}=\frac{1}{e^{\frac{3}{2}}}\leq \frac{1}{1+\frac{3}{2}}=0.4\)

3.) \(|f''(-\sqrt{3}|)<0.4\) (analog wie in 2.) )

4.) \(|f''(-4)|=\frac{1}{\sqrt{2\cdot \pi}}\cdot ((-4)^2-1)\cdot e^{-\frac{1}{2}\cdot (-4)^2}=\frac{1}{\sqrt{2\cdot \pi}}\cdot 15 \cdot e^{-8}\stackrel{(*)}{<} \frac{1}{2}\cdot 15 \cdot \frac{1}{e^8}\\<\frac{1}{2}\cdot 15\cdot \frac{1}{9}=\frac{5}{6}=0.8333....\)

5.) \(|f''(4)|<\frac{5}{6}=0.8333....\) (anaolg wie in 4.) )

Daraus folgt also: \(\max\limits_{-4\leq t\leq 4} |f''(t)|<\frac{5}{6}\).

Eingesetzt in die Fehlerabschätzung macht man jetzt folgende Fehlerbetrachtung:

$$ |E^{(n)}(f)|\leq \frac{b-a}{12} \cdot h^2\cdot \max_{a\leq t\leq b} |f''(t)|=\frac{2}{3} \cdot h^2\cdot \max_{a\leq t\leq b} |f''(t)|<\frac{2}{3} \cdot h^2\cdot \frac{5}{6}=\frac{5}{9}\cdot h^2 \stackrel{!}{<}10^{-6} $$

Betrachte nun:

$$ \frac{5}{9}\cdot h^2 < 10^{-6} \Leftrightarrow h^2<\frac{9}{5}\cdot 10^{-6} \Rightarrow h<\frac{3}{\sqrt{5}}\cdot 10^{-3}. $$

Wegen \(1=\frac{3}{3}=\frac{3}{\sqrt{9}}<\frac{3}{\sqrt{5}}<\frac{3}{\sqrt{4}}=1.5\) wähle also \(h=10^{-3}=0.001\) als Schrittweite.

Bei dieser Schrittweite musst du auf dem Intervall im schlimmsten Fall 8000 Iterationen durchführen.

Ich gehe mal bei deinen Berechnungen vom IEEE754-Standard aus, mit double precision. Du hast also 15 signifikante Nachkommastellen. Bei jedem float (entsteht durch Zwischenrechnungen) hast du also einen Fehler von weniger als \(10^{-15}\). Bei Zwischenrechnungen kommt man also auf etwa \(8000\cdot 10^{-15}<10^4\cdot 10^{-15}=10^{-11}\) Abweichung. Diese ist aber vernachlässigbar, denn $$10^{-11}+|E^{(n)}(f)|<10^{-11}+\frac{5}{9}\cdot h^2=10^{-11}+\frac{5}{9}\cdot 10^{-6}<10^{-6}. $$

Avatar von 15 k

Herzlichen Dank für die schnellen und äußerst ausführlichen Erklärungen :).

Soweit auch alles sehr verständlich und nachvollziehbar für mich. Mir ist jedoch insofern ein kleiner Fauxpaß unterlaufen, als dass die Intervallgrenzen laut Aufgabenstellung nicht [-4,4], sondern [-~, 4,] lauten sollen, wobei die Schlangenlinie unendlich bedeuten soll .

Dann handelt es sich um ein Uneigentliches Integral. Kann man dann grds. genauso vorgehen?

Du kannst doch als bekannt verwenden, dass das Integral von minus unendlich bis 0 den Wert 0,5 annimmt.

Ich habe inzwischen noch mal alles handschriftlich aufgeschrieben. Dabei sind noch folgende Verständnisfragen enstanden:

A)  Wie kommst du auf 3 Extremawerte? Nach meinen Berechnungen ist f'(x) = 0 nur für x = 0 erfüllt, wie erhält man noch - ✓3 und ✓3?

B) Wie kommst du bei 1.) hinter dem kleiner Zeichen auf den Wert 2 für Pi bzw.

  1/✓2 * 2 = 1/2 ?

C ) Bei 2.) verstehe ich nicht wie man von <  1/2 * 15* (1/e^8)  zu < 1/2 * 15* 1/9 kommt?


Falls mir dies noch jemand beantworten könnte wäre ich unendlich dankbar :).

LG Pi(mp)master314

A) Ich habe mit \(f''\) die Kurvendisskusion durchgeführt. Du musst also \(f'''\) und \(f''''\) noch bestimmen, da hier ab der zweiten Ableitung als Ausgangsfunktion gearbeitet wird.

B) Es gilt doch sicherlich \(\pi>3>2\).

C) Nutze folgende Abschätzung aus:\(e^x\geq 1+x\) für alle \(x\in \R\).

0 Daumen

Auch wenn das Trapezverfahren sicher die bessere Näherungsmethode ist, kommst du für deine Zwecke mit Ober- und Untersummen auf sehr einfache Art weiter.Wenn die Differenz aus Ober- und Untersumme kleiner als 0,0000005 ist, hast du die gewünschte Genauigkeit mit Sicherheit erreicht.

Avatar von 55 k 🚀

Vielen Lieben Dank für die zügige Antwort. Dieses Verfahren kenne ich natürlich auch.

Allerdings habe ich bei deinem geschilderten Vorgehen dann immer noch nicht die notwendige Schrittweite h ermittelt bzw. ich müsste dennoch eine explizite Fehlerabschätzung durchführen, oder?

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community