"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Monte Carlo Integration"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Monte Carlo Simulationen kommen in unterschiedlichen Bereichen der numerischen Mathematik und Physik vor. In dieser Aufgabe werden Sie die Monte Carlo Integration benutzen, um $\\pi$ zu approximieren. \n",
"\n",
"Um die Funktionsweise zu verstehen, schauen Sie sich den Kreis in dem Quadrat an. Wenn Sie zufällige, gleichverteilte Punkte generieren, die immer innerhalb des Quadrates liegen, dann ist das Verhältnis von den Punkten, die innerhalb des Kreises liegen, zu allen generierten Punkte eine Näherung für das Verhältnis vom Flächeninhalt des Kreises zum Flächeninhalt des Quadrats. Da Sie dieses Verhältnis auch analytisch berechnen können, können Sie die numerische Lösung mit der analytischen gleichsetzen und nach $\\pi$ auflösen, um eine Nährung für $\\pi$ zu erhalten."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"tags": [
"remove_input"
]
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"plt.figure(figsize=(5,5))\n",
"\n",
"square_x = [-1, -1, 1, 1, -1]\n",
"square_y = [1, -1, -1, 1, 1]\n",
"circle = plt.Circle((0, 0), 1, color='y')\n",
"\n",
"ax = plt.gca()\n",
"\n",
"ax.add_artist(circle)\n",
"\n",
"plt.plot(square_x, square_y)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Aufgabenstellung"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Aufgabenteil A\n",
"\n",
"Schreiben Sie eine Funktion, die $\\pi$ durch die Monte Carlo Integration annährt. Sie können sich an folgenden Schritten orientieren:\n",
"1. Es soll die Anzahl der zu generierenden Punkte (N) als Parameter an die Funktion übergeben werden\n",
"1. Generieren Sie zwei Zufalszahlen (x- und y-Wert) im Intervall [-1,1]\n",
"1. Überprüfen Sie, ob der generierte Punkt innerhalb des Einheitskreises liegt\n",
"1. Wenn ja, erhöhen Sie einen Zähler um 1\n",
"1. Wiederholen Sie die Schritte 2.-4. N-mal\n",
"1. Approximieren Sie aus dem Verhältnis Zähler/N $\\pi$\n",
"1. Geben Sie $\\pi$ zurück\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Aufgabenteil B\n",
"\n",
"Plotten Sie die absolute Differenz zwischen Ihrem approximierten $\\pi$ und numpy.pi doppelt logarithmisch für alle Zehnerpotenzen zwischen 10 und 100.000. Was sagt ihnen der Graph? Fühern Sie das Programm ein paarmal aus. Wieso verändert sich der Graph? "
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": [
"loesung",
"hide-cell"
]
},
"source": [
"## Lösungsvorschlag"
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": [
"loesung",
"hide-cell"
]
},
"source": [
"### Aufgabenteil A"
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": [
"loesung",
"hide-cell"
]
},
"source": [
"Berechnung von Pi:\n",
"\n",
"$$ \\frac{\\text{# Treffer}}{\\text{# Versuche}} \\approx \\frac{\\pi r^2}{2^2}\n",
"\\Rightarrow \\pi \\approx 4 \\frac{\\text{# Treffer}}{\\text{# Versuche}}$$\n",
"\n",
"Die Funktion:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"tags": [
"loesung",
"hide-cell"
]
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"def pi_func(N):\n",
" kreis_zaehler = 0\n",
" for i in range(N):\n",
" point = np.random.random(2)*2 - 1\n",
" if point[0]**2 + point[1]**2 < 1:\n",
" kreis_zaehler += 1\n",
" return 4 * kreis_zaehler/N"
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": [
"loesung",
"hide-cell"
]
},
"source": [
"### Aufgabenteil B"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"tags": [
"loesung",
"hide-cell"
]
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"pi = []\n",
"pi_diff = []\n",
"x = [10, 100, 1000, 10000, 100000]\n",
"\n",
"for i in x:\n",
" pi.append(pi_func(i))\n",
" pi_diff.append(np.abs(pi[-1] - np.pi))\n",
" \n",
"\n",
"plt.figure(figsize=(5,5))\n",
"\n",
"plt.title('Approximation von Pi')\n",
"plt.xlabel('Anzahl der Zufallspunkte')\n",
"plt.ylabel('Genauigkeit')\n",
"\n",
"plt.loglog(x, pi_diff)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": [
"loesung",
"hide-cell"
]
},
"source": [
"Jeder Punkt ist die Differenz zwischen dem genährten $\\pi$ aus einem Zufallsexperiment und $\\pi$. Ein neuer Programmdurchlauf führt zu einem neuen Zufallsexperiment mit einem potenziell anderen Ergebnis."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Tags",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}