{ "cells": [ { "cell_type": "markdown", "id": "c12e30ea", "metadata": {}, "source": [ "# Numerická integrace" ] }, { "cell_type": "markdown", "id": "d6464ffc", "metadata": {}, "source": [ "Naimportujeme si knihovny potřebné pro následující příklady:" ] }, { "cell_type": "code", "execution_count": 1, "id": "9479552b", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import scipy.integrate as integrate" ] }, { "cell_type": "markdown", "id": "e361df73", "metadata": {}, "source": [ "## Klasické kvadraturní vzorce\n", "- Máme ekvidistantní body $x_{i}$ a vypočteme $f_{i}(x_{i})$\n", "- V 1D aproximujeme integrál pomocí obdélníků/lichoběžníků\n", "- Přesnost je dána šířkou obdélníku\n", "\n", "### Newton–Cotesovy vzorce\n", "1. Obdélníkové pravidlo\n", "$$\n", "\\int_{x_{1}}^{x_{2}}f(x)\\,dx\\approx (x_{2}-x_{1})f\\left( \\dfrac{x_{1}+x_{2}}{2} \\right)\n", "$$\n", "\n", "2. Lichoběžníkové pravidlo\n", "$$\n", "\\int_{x_{1}}^{x_{2}}f(x)\\,dx\\approx (x_{2}-x_{1})\\dfrac{f(x_{1})+f(x_{2})}{2}\n", "$$\n", "\n", "3. Simpsonovo pravidlo\n", " - [Odvození](http://kfe.fjfi.cvut.cz/~vachal/edu/nme/cviceni/07_numint/DOCS/odvozeni_integrace_Lagrange.pdf)\n", "$$\n", "\\int_{x_{1}}^{x_{3}}f(x)\\,dx\\approx (x_{2}-x_{1})\\dfrac{f(x_{1})+4f(x_{2})+f(x_{3})}{3}\n", "$$\n" ] }, { "cell_type": "markdown", "id": "bd57fad7", "metadata": {}, "source": [ "
Cvičení 09.01: Pomocí obdélníkové, lichoběžníkové a Simpsonovy metody numericky vypočtěte integrál $\\int_{1}^{5} \\sin(x)\\,dx$.
" ] }, { "cell_type": "code", "execution_count": 2, "id": "8617f468", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Obdelnikova metoda: 0\n", "Lichobeznikova metoda: 0\n", "Simpsonovo pravidlo: 0\n" ] } ], "source": [ "# kod\n", "\n", "pocet_kroku = 100\n", "a = 1\n", "b = 5\n", "\n", "def f(x):\n", " return np.sin(x)\n", "\n", "r = (b-a)/pocet_kroku # velikost kroku\n", "\n", "# obdelnikova metoa\n", "S_obdelnik = 0\n", "for i in range(pocet_kroku):\n", " bod = a + i*r\n", " # DOPLNTE\n", " S_obdelnik = 0\n", "print('Obdelnikova metoda: ',S_obdelnik)\n", "\n", "# lichobeznikova metoda\n", "S_lichobeznik = 0\n", "for i in range(pocet_kroku):\n", " bod = a + i*r \n", " # DOPLNTE\n", " S_lichobeznik = 0\n", "print('Lichobeznikova metoda: ',S_lichobeznik)\n", "\n", "# Simpsonovo pravidlo\n", "S_simpson = 0\n", "pocet_kroku_simpson = int(np.round(pocet_kroku/2))\n", "for i in range(pocet_kroku_simpson):\n", " bod = a + 2*i*r\n", " # DOPLNTE\n", " S_simpson = 0\n", "print('Simpsonovo pravidlo: ',S_simpson)" ] }, { "cell_type": "markdown", "id": "61aed8b5", "metadata": {}, "source": [ "## Gaussovy kvadratury" ] }, { "cell_type": "markdown", "id": "2eb47caf", "metadata": {}, "source": [ "- Výpočet integrálu při neekvidistantním rozdělení bodů $x_{i}$ s různými váhami $w_{i}$\n", "- Chceme spočítat integrál s minimálním počtem vyčíslení $f(x)$\n", "- Volíme optimální polohu bodů $x_{i}$ a příslušné váhy $w_{i}$\n", "- $n$ bodů dává přesný výsledek pro polynomy řádu $\\leq 2n-1$\n", "- Dvojnásobná přesnost oproti integraci s ekvidistantním rozdělením\n", "- Pro polohu bodů a příslušné váhy používáme tyto polynomy:\n", " - Legenderovy na intervalu $(-1,1)$\n", " - Čebyševovy na intervalu $(-1,1)$\n", " - Laguerrovy na intervalu $(0,+\\infty)$\n", " - Hermiteovy na intervalu $(-\\infty,+\\infty)$\n", "- Funkci $f(x)$ interpolujeme daným typem polynomu, nalezneme $w_{i}$ a $x_{i}$ \n", "- Následně lze integrál numericky vypočítat předpisem:\n", "$$\n", "\\int_{-1}^{1}f(x)dx\\approx \\sum_{i=1}^{n}w_{i}f(x_{i})\n", "$$\n", "- Pokud integrujeme přes interval $\\langle a,b\\rangle$, získáme předpis:\n", "$$\n", "\\int_{a}^{b}f(x)dx\\approx \\sum_{i=1}^{n}\\tilde{w}_{i}f(\\tilde{x}_{i}),\n", "$$\n", "kde\n", "$$\n", "\\tilde{w}_{i} = w_{i}\\dfrac{b-a}{2}\n", "$$\n", "$$\n", "\\tilde{x}_{i} = \\dfrac{(b-a)x_{i}+a+b}{2}\n", "$$" ] }, { "cell_type": "markdown", "id": "779dbadf", "metadata": {}, "source": [ "
Cvičení 09.02: Metodou Gaussovy kvadratury numericky vypočtěte integrál $\\int_{0}^{\\pi} \\sin(x)\\exp[\\cos(x)]\\,dx$.
" ] }, { "cell_type": "code", "execution_count": 3, "id": "7ad34c64", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Nas vypocet: 0\n", "Kontrola: 2.350402387287603\n" ] } ], "source": [ "# kod\n", "\n", "# v kazdem radku je bod a prislusna vaha vypoctena z interpolace Legenderovym polynomem\n", "vahy = np.array([\n", "[ -0.987992518, 0.03075324221],\n", "[-0.9372733924, 0.07036604699],\n", "[-0.8482065834, 0.1071592202],\n", "[-0.7244177314, 0.139570678],\n", "[-0.5709721726, 0.1662692057],\n", "[-0.3941513471 ,0.1861609998],\n", "[-0.201194094 ,0.1984314853],\n", "[0.0, 0.201194094],\n", "[0.201194094, 0.1984314853],\n", "[0.3941513471, 0.1861609998],\n", "[0.5709721726, 0.1662692057],\n", "[0.7244177314, 0.139570678],\n", "[0.8482065834, 0.1071592202],\n", "[0.9372733924, 0.07036604699],\n", "[0.987992518, 0.03075324221 ]\n", "])\n", "\n", "def f(x):\n", " return np.sin(x)*np.exp(np.cos(x))\n", "\n", "# integracni meze\n", "a = 0\n", "b = np.pi\n", "\n", "integral = 0\n", "\n", "m = vahy.shape[0] # pocet bodu\n", "\n", "for i in range(m):\n", " # prvek vahy[i,0] vrati i-ty bod, prvek vahy[i,1] vrati i-tou vahu\n", " # body jsou preskalovane z (-1,1) na (a,b)\n", " # DOPLNTE\n", " #\n", " # DOPLNTE\n", " integral = 0 \n", "\n", "print('Nas vypocet: ',integral)\n", "\n", "kontrola = integrate.quad(f, a, b)[0]\n", "print('Kontrola: ', kontrola)\n" ] }, { "cell_type": "markdown", "id": "04b8afa0", "metadata": {}, "source": [ "## Rombergova metoda\n", "- Algoritmus na zpřesnění výpočtu integrálu\n", "- Pro zadanou přesnost integrace sníží počet bodů, ve kterých musíme počítat funkční hodnotu\n", "- [Teorie](http://kfe.fjfi.cvut.cz/~vachal/edu/nme/cviceni/07_numint/DOCS/teorie_Rombergova_metoda.pdf)" ] }, { "cell_type": "markdown", "id": "4dcaf7cc", "metadata": {}, "source": [ "
Cvičení 09.03: Zpřesněte numerický výpočet integrálu $\\int_{0}^{\\pi} \\sin(x)\\exp[\\cos(x)]\\,dx$ Rombergovou metodou.
" ] }, { "cell_type": "code", "execution_count": 11, "id": "af947a1a", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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3O64gwYNMsHBwcYYY6Kjo40ks2LFikzLOGLECNOiRQu7dceOHTOSTHR0tDEm7W//xhtvZHmeOdGpUyfz7LPPWsuZ5Z3dMtWsWfOGx/vqq6+Mj4+PtRwSEmIaNmyYadrsvNeQfder77Jbr9LDDgAAAADg8LbEnMnQs+5qRlJsfJK2xJzJk+Nf22vN399fcXFxt5SPn5+fChcurPvvv99uXXq++/btU1JSkpo3b26NSVekSBHNnj1bhw4dssu3Tp06WR4zLi5Ox48f12OPPXbdsvXv318///yz1q9fr9KlS1vr69Wrp6pVq2r27NmSpDlz5qhs2bJq3Lhxlnl16NBBCxcu1KVLlyRJc+fO1UsvvSRnZ2dJUps2bVSgQAEtWrRIUtrjus2aNVNgYKBdPg0aNLD+7+3trcqVK2v//v2SpP3796thw4Z26Rs2bKiDBw8qJSVFUVFRcnZ2VpMmTTIt4/bt27V69Wq7axsUFCRJGa7v9YwdO9Yuj6NHj2Z735stU2Z/79WrV6t58+YqVaqUPDw89Morr+j06dO6cOGCpH962GUmJ+813B5MOgEAAAAAcHhx57MO1t1MupwqWLCg3bLNZrPGaHNySusLY4yxtqc/tnm9fGw223XzTf936dKlKlWqlF06FxcXu2V3d/csy+7m5pbltqs1b95c8+fPtx5dvVr37t01ZcoUDR06VBEREerSpYvdo6vXat26tVJTU7V06VLVrVtX69ev14cffmhtL1SokF5++WVFRESoXbt2mjdvniZMmJCtcqYf1xiToQxX/w1udN6pqalq3bq13n333Qzb/P39s1UWSXr11VftHlktWbJktve92TJd+/c+cuSInnzySb366qsaM2aMvL29FRkZqW7dulnvxetdj5y813B75GsPu/DwcNWtW1ceHh7y9fVVmzZtFB0dfd190p+h9/HxkZubm4KCgvTRRx9lmX7BggWy2WzWwI7pkpOTNXz4cJUrV05ubm66//77NXr0aLtBMY0xCgsLU8mSJeXm5qamTZtq7969t3TOAIDbh3YGAIC7h6+Ha66my0333XefpLQx0dJdPQHFzQoODpaLi4uOHj2qChUq2L1yMpaah4eHAgMDtXLlyuume+aZZzRv3jx1795dCxYssNvWsWNHHT16VJMmTdLevXvVqVOn6+bl5uamdu3aae7cuZo/f74qVaqk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5zY4OFizZs2y6w24YcMGOTk5Wb14M6ufNmzYoICAAL355pvWuiNHjtzSOQOOhlliAQAAcqheOW/5e7kqq9/+bZL8vVxVr1zOAye3ys3NTfXr19e4ceO0b98+rVu3zhr8/FZ4eHho4MCB6t+/v2bNmqVDhw5p586dmjp1qmbNmpWjvMLCwjR+/HhNmjRJBw8e1I4dOzR58uQM6dq2bas5c+aoS5cudjOEFitWTO3atdOgQYPUokULlS5d+obH7NChg5YuXaoZM2aoY8eOGbZXqVJF9evX15AhQxQSEpJpD7DRo0dr5cqV2rNnjzp37qzixYtbM63++9//1sqVKzVmzBgdOHBAs2bN0pQpUzRw4EBJaTMldurUSV27dtXixYsVExOjNWvWWDfWffr00ZkzZxQSEqItW7bo999/1/Lly9W1a1frRjUwMFCbN2/W4cOHderUqQwz396KzPLOTpkyU758eSUnJ2vy5Mn6/fffNWfOHH388cd2aYYNG6atW7eqd+/e2rVrl3799VdNnz5dp06dytX3GpCbjh07pgEDBig6Olrz58/X5MmT9cYbb1x3nyFDhujnn39Wnz59FBUVpYMHD2rJkiXq27evJOn777/XpEmTFBUVpSNHjmj27NlKTU3N9NHSzGTn83YzevfurWPHjqlv37769ddf9e2332rkyJEaMGCAnJycVKRIEXXr1k2DBg2yqxfTg4bZ1aFDB7m6uqpTp07as2ePVq9erb59++rll1+2HocNDAzUrl27FB0drVOnTunKlSuqUKGCjh49qgULFujQoUOaNGmSFi1adMvnDTgSAnYAAAA55Oxk08jWwZKUIWiXvjyydbCcnbJ+nCcvzZgxQ1euXFGdOnX0xhtv6O23386VfMeMGaO33npL4eHhqlKlilq2bKnvvvtO5cqVy1E+nTp10oQJEzRt2jRVrVpVTz/9tA4ePJhp2ueee06zZs3Syy+/rG+++cZa361bN12+fFldu3bN1jEfffRReXt7Kzo6Wu3bt880zY3yHDdunN544w09+OCDio2N1ZIlS1SoUCFJab1ovvrqKy1YsEDVqlXTW2+9pdGjR1szxEpps+M+99xz6t27t4KCgtSjRw9duHBBUtqjqxs2bFBKSopatmypatWq6Y033pCXl5d1Azxw4EA5OzsrODhY9913n44ePZqtc8+OzPLOTpky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0tZ/8a+0dLko/Tv5ta+mTZtK+qfnz+LFi1WpUiW5urqqefPmOnbsmJVH+nfoGTNm6P7775eLi4uMMYqPj1fPnj3l6+srT09PPfroo/rll1+s/X755Rc1a9ZMHh4e8vT01IMPPmh9100/7rJly1SlShUVKVJErVq1Umys/f1LRESEqlSpIldXVwUFBWnatGkZzu2bb75Rs2bNVLhwYdWoUUM///yzleZGPZsaNGigoUOH2q07efKkChYsqNWrV2v06NGqXr16hv0efPBBvfXWW5L++T47atQo61r06tVLly9fttJfunRJr7/+unx9feXq6qpGjRpp69atdnnu3btXTz31lDw9PeXh4aFHHnlEhw4dyrIOT783OHfunJVHVFRUtr6fe3h4qESJEgoMDFT37t31wAMPaPny5db2s2fP6pVXXlGxYsVUuHBhPfHEEzp48GCG6/r999+rcuXKKly4sJ577jlduHBBs2bNUmBgoIoVK6a+ffsqJSXF7tjnz59X+/btVaRIEZUsWVKTJ0+2236j91VW78dff/1VjRo1kqurq4KDg/XTTz/leOiKmz2vy5cva/DgwSpVqpTc3d310EMP2d3zdunSRfHx8dbfL/07yI2uc3qZypYtq8KFC6tt27Y6ffp0hnJPnz5d5cuXV6FChVS5cmXNmTPH2pad+/I8YZBn4uPjjSQTHx+f30W5q128eNHs27fPXLx48abz+GH3cRM45HsTcM0r8P+/fth9PBdL/I8mTZoYT09PExYWZg4cOGBmzZplbDabWb58uTHGmJiYGCPJ7Ny509rn7NmzRpJZvXq1McaY1atXG0mmfv36JjIy0uzYscNUqFDBNGnSxLRo0cLs2LHDrFu3zvj4+Jhx48ZZ+fznP/8xQUFB5scffzSHDh0yERERxsXFxaxZs8Yu3wceeMAsX77c/Pbbb+bUqVNm5MiRpkaNGlY+06ZNM66urmbChAkmOjrabNmyxXz00UfWdklm0aJFJjU11bz++uumbNmy5sCBA8YYY3r06GGefPJJu2vStm1b88orr2R6vU6fPm0KFSpkfvrpJ2vdmTNnTKFChcyyZcuMMcY0b97c9O7d226/WrVqmbfeesvuvKpUqWKWL19udu3aZZ5++mkTGBhoLl++bIwxZtu2bcbJycmMHj3aREdHm4iICOPm5mYiIiKsPF944QVTpkwZ880335hDhw6Zn376ySxYsMAYY8zx48dN8eLFzbBhw8z+/fvNjh07TPPmzU2zZs2MMcacO3fONGjQwPTo0cPExsaa2NhYk5ycnOk5Z0enTp3Ms88+e928b1QmY9Lej0WKFDGDBg0yv/76q9m/f78xxpiPPvrIrFq1yvz+++9m5cqVpnLlyua1116z9tu5c6dxcXExr732momKijJ79uwxkydPNidPnjTG3Pi9dq3rfaapV+1xPW7Nte+1C5euZGgHbtfrwqUr2S53+mf1jTfeML/++qv54osvTOHChc2nn35qpQkICDCenp7m/fffNwcPHjQHDx40u3btMkWKFDEfffSROXDggNmwYYOpVauW6dy5szHGmK1btxpnZ2czb948c/jwYbNjxw4zceJEu+Ner80y5sb1RWYkmdKlS5t58+aZgwcPmtdff90UKVLEnD592hhjzB9//GEKFy5sevfubfbv328WLVpkihcvbkaOHGnl8dprr5nSpUvb1evp1+jqa+Lt7W2mTp1qDh48aMLDw42Tk5NV1124cMGULFnStGvXzuzevdusXLnSlCtXznTq1MkYY8z58+fNCy+8YFq1amXVr5cuXTLGGDNmzBizYcMGExMTY5YsWWL8/PzMu+++m+2/KW4v2pmcyc1rcsvf28/9YcyEB4wZ6Zn277lj/3/9sWvW/3HLZb1acnKy9bmPjY01O3fuND4+PmbEiBHGGGMiIiJMwYIFTZ06dczGjRvNtm3bTL169czDDz9s5TFy5Ejj7u5uWrZsaXbs2GF++eUXk5qaaho2bGhat25ttm7dag4cOGD+/e9/Gx8fH6sOrFq1qunYsaPZv3+/OXDggPnqq69MVFSU3XEff/xxs3XrVrN9+3ZTpUoV0759e+u4n376qfH39zcLFy40v//+u1m4cKHx9vY2M2fONMb8c78RFBRkvv/+exMdHW2ee+45ExAQYK5cuWIdx8vLK8vrM3nyZFO2bFmTmppqt65UqVImJSXFHDt2zDg5OZktW7ZY23/55Rdjs9nMoUOHjDFp32eLFCliXnzxRbNnzx7z/fffm/vuu8/85z//sfZ5/fXXTcmSJc3//vc/s3fvXtOpUydTrFgxu/bC29vbtGvXzmzdutVER0ebGTNmmF9//TXLOjz93uDs2bPWcXbu3GkkmZiYmCzPOSAgwLrnSU1NNatXrzZu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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# kod\n", "def f(x):\n", " return np.sin(x)*np.exp(np.cos(x))\n", "\n", "# slozene lichobeznikove pravidlo\n", "def lichobeznik(funkce,odkud,kam,krok):\n", " xArr = np.arange(odkud, kam, krok)\n", " integral = 0 \n", " for x in xArr:\n", " # secteme vsechny funkcni hodnoty\n", " integral = integral + funkce(x)\n", " # a odecteme poloviny kraju\n", " #integral = integral-0.5*funkce(xArr(1)) - 0.5*funkce(xArr(size(xArr,2)));\n", " integral = integral - 0.5 * funkce(xArr[0]) - 0.5 * funkce(xArr[xArr.size-1])\n", " return integral * krok \n", "\n", "\n", "integ = np.zeros((4,1))\n", "h0 = 0.1\n", "for i in range(4):\n", " h = h0/(2**(i))\n", " integ[i,0] = lichobeznik(f,0,np.pi,h)\n", "\n", "# presna hodnota:\n", "v = (np.exp(1)-np.exp(-1))\n", "presna_hodnota = v*np.ones((4,1))\n", "#\n", "\n", "fig, ax = plt.subplots(1,3,figsize=(15,5))\n", "\n", "ax[0].scatter([0,1,2,3],integ,label='numericky vypocet - iterace')\n", "ax[0].plot(presna_hodnota,label='presna hodnota')\n", "ax[0].set_xlabel('iterace')\n", "ax[0].set_ylabel('vysledek')\n", "ax[0].legend()\n", "\n", "# zpresneni Romberg. metodou\n", "r1=4/3*integ[1,0]-1/3*integ[0,0]\n", "ax[1].scatter([0,1,2,3],integ,label='numericky vypocet - iterace')\n", "ax[1].plot(presna_hodnota,label='presna hodnota')\n", "ax[1].scatter(1,r1, marker=\"x\",label='zpresneni Romberg. metodou')\n", "ax[1].set_xlabel('iterace')\n", "ax[1].legend()\n", "\n", "# dalsi zpresneni Romberg. metodou\n", "r2 = 64/45 * integ[2,0] - 20/45 * integ[1,0] + 1/45*integ[0,0]\n", "ax[2].scatter([0,1,2,3],integ,label='numericky vypocet - iterace')\n", "ax[2].plot(presna_hodnota,label='presna hodnota')\n", "ax[2].scatter(1,r1, marker=\"x\",label='zpresneni vypoctu Romberg. metodou')\n", "ax[2].scatter(2,r2, marker=\"x\",color='C8',label='dalsi zpresneni Romberg. metodou')\n", "ax[2].set_xlabel('iterace')\n", "ax[2].legend()" ] }, { "cell_type": "markdown", "id": "55be0a35", "metadata": {}, "source": [ "## Vícedimenzionální integrály\n", "- $N$ dimenzí\n", "- Počet bodů, ve kterých vyčíslujeme funkční hodnotu roste s $N$-tou mocninou\n", " - Např. 30 bodů v jedné dimenzi, ve třech dimenzích počítáme funkci ve $30^{3}=27000$ bodech\n", "- Metody\n", " - 1. Snížení dimenze pomocí symetrie\n", " - 2. Posloupnost opakovaných jednodimenzionálních integrací\n", " - 3. Monte-Carlo\n" ] }, { "cell_type": "markdown", "id": "eb43031b", "metadata": {}, "source": [ "### Metoda Monte-Carlo\n", "- Integrační oblast $V$ uzavřeme do co nejmenší oblasti se známým objemem $\\tilde{V}$, ve které lze snadno generovat náhodné body\n", "- Vygenerujeme $N$ náhodných bodů ve $\\tilde{V}$ a vypočteme integrál\n", "$$\n", "\\int f(\\vec{x})dV\\approx\\dfrac{\\tilde{V}}{N}\\sum_{i=1}^{N}\\tilde{f}(\\vec{x}_{i}),\n", "$$\n", "kde $\\tilde{f}(\\vec{x}) = f(\\vec{x})$, pokud $\\vec{x}\\in V$. Jinak $\\tilde{f}(\\vec{x}) = 0$.\n", "\n", "\n" ] }, { "cell_type": "markdown", "id": "ec2eb77f", "metadata": {}, "source": [ "
Cvičení 09.04: Metodou Monte-Carlo určete velikost konstanty $\\pi$.
" ] }, { "cell_type": "code", "execution_count": 4, "id": "cf28c98c", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Vypoctena hodnota pi = 0.0\n" ] }, { "data": { "image/png": "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j3/UM888o/79+ysiIsK9xQEAANQyzIwBAABq0KCBcnNzJUmbN2/WvffeK0ny8fHRhQsX3FkaAABArcPMGAAAoIEDB2rs2LHq3bu3Dh48qAceeECStH//frVr1869xQEAANQyzIwBAABatGiRQkND9euvv2rdunXy8/OTJKWkpOjxxx93c3UAAAC1i8UwDMPdRVxLXl6ebDab7Ha7fH193V0OANQ6HGcBZ/wmAACAq1w5f2BmDAAAULt27TRz5kwdP37c3aUAAADUeoQxAABAL7/8sv7+978rKChIAwcO1EcffaSCggJ3lwUAAFArEcYAAAC9+OKLSklJUUpKirp3766YmBgFBgZq3Lhx+v77791dHgAAQK1CGAMAABx69uypd955RydPntT06dP1wQcf6LbbblPPnj21fPly1YBbzQEAANzweLQ1AABwuHjxojZs2KAVK1YoKSlJt99+u8aMGaNTp05p2rRp+uc//6kPP/zQ3WUCAADUaIQxAABA33//vVasWKE1a9bIw8NDI0eO1Ntvv62uXbs6+kRGRurOO+90Y5UAAAC1A2EMAADQbbfdpoEDB2rJkiUaOnSovLy8SvXp3r27HnvsMTdUBwAAULsQxgAAAI0cOVJPPvmk7rnnHlksljL71K9fXytWrDC5MgAAgNqHG/gCAACdOXNGDz74oFq1aqWXX35ZaWlp7i4JAACg1iKMAQAA+vvf/66srCxNnz5dKSkpCg4OVvfu3fXWW2/p6NGj7i4PAACgViGMAQAAkqRGjRrpmWee0TfffKNjx45p9OjR+p//+R917NjR3aUBAADUKoQxAADAycWLF7Vnzx7t2rVLR48eVUBAgLtLAgAAqFUIYwAAgCTp66+/1tNPP62AgACNGjVKDRs21Geffabjx4+7uzQAAIBahacpAQAAtWrVSrm5uRo0aJDee+89DRkyRD4+Pu4uCwAAoFaq1MyYxYsXKygoSD4+PgoODta2bdsqNO7bb7+Vp6enevXqVZnVAgCAavLaa6/p1KlT+vTTT/WnP/2JIAYAAKAauRzGrF27VrGxsZo2bZpSU1MVHh6uwYMHKyMjo9xxdrtdUVFRuueeeypdLAAAqB7PPPOMGjdu7O4yAAAAbgouhzHz5s3TmDFjNHbsWHXr1k3z589X69attWTJknLHPfvssxoxYoRCQ0MrXSwAAAAAAEBN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7/z582WxWKqrfAAAgErzdHcBAADg5pOenq5NmzZp586d6tevnyTp/fffV2hoqH788Ud16dKl1BjDMDR//nxNmzZNw4YNkyT99a9/VUBAgD788EM9++yzjr4//PCD5s2bp927dyswMNCcjQIAAKggZsYAAADTJScny2azOYIYSbr99ttls9m0Y8eOMsccOXJEWVlZioyMdLRZrVYNGDDAacz58+f1+OOPa+HChWrevHmF6ikoKFBeXp7TCwAAoLoQxgAAANNlZWWpWbNmpdqbNWumrKysq46RpICAAKf2gIAApzFxcXEKCwvTH/7whwrXk5CQ4Lh3jc1mU+vWrSs8FgAAwFWEMQAAoMrMmDFDFoul3NeePXskqcz7uRiGcc37vFz5+b+P2bhxo7766ivNnz/fpbqnTJkiu93ueB0/ftyl8QAAAK7gnjEAAKDKjBs3To899li5fdq1a6e9e/fql19+KfXZr7/+WmrmS4mSS46ysrKc7gOTnZ3tGPPVV1/p0KFDatSokdPYRx55ROHh4frmm2/KXLbVapXVai23bgAAgKpCGAMAAKqMv7+//P39r9kvNDRUdrtd3333nfr27StJ2rVrl+x2u8LCwsocExQUpObNmyspKUm9e/eWJBUWFmrLli2aNWuWJGny5MkaO3as07hbbrlFb7/9toYMGXI9mwYAAFBlCGMAAIDpunXrpvvuu09PP/203nvvPUnSM888owcffNDpSUpdu3ZVQkKCHn74YVksFsXGxuqtt95Sp06d1KlTJ7311luqV6+eRowYIeny7Jmybtrbpk0bBQUFmbNxAAAA10AYAwAA3GL16tWKiYlxPB3poYce0sKFC536/Pjjj7Lb7Y73EydO1IULF/T888/rzJkz6tevnzZv3qyGDRuaWjsAAMD1sBiGYbi7iGvJy8uTzWaT3W6Xr6+vu8sBgFqH4yzgjN8EAABwlSvnDzxNCQAAAAAAwESEMQAAAAAAACYijAEAAAAAADARYQwAAAAAAICJCGMAAAAAAABMRBgDAAAAAABgIsIYAAAAAAAAExHGAAAAAAAAmIgwBgAAAAAAwESEMQAAAAAAACYijAEAAAAAADARYQwAAAAAAICJCGMAAAAAAABMRBgDAAAAAABgIsIYAAAAAAAAExHGAAAAAAAAmIgwBgAAAAAAwESEMQAAAAAAACYijAEAAAAAADARYQwAAAAAAICJCGMAAAAAAABMRBgDAAAAAABgIsIYAAAAAAAAExHGAAAAAAAAmIgwBgAAAAAAwESEMQAAAAAAACYijAEAAAAAADARYQwAAAAAAICJCGMAAAAAAABMRBgDAAAAAABgIsIYAAAAAAAAExHGAAAAAAAAmIgwBgAAAAAAwESEMQAAAAAAACYijAEAAAAAADARYQwAAAAAAICJKhXGLF68WEFBQfLx8VFwcLC2bdtWbv8tW7YoODhYPj4+at++vd59991KFQsAAAAAAFDTuRzGrF27VrGxsZo2bZpSU1MVHh6uwYMHKyMjo8z+R44c0f3336/w8HClpqZq6tSpiomJ0bp16667eAAAAAAAgJrGYhiG4cqAfv36qU+fPlqyZImjrVu3bho6dKgSEhJK9Z80aZI2btyo9PR0R1t0dLR++OEHJScnV2ideXl5stlsstvt8vX1daVcAEAFcJwFnPGbAAAArnLl/MGlmTGFhYVKSUlRZGSkU3tkZKR27NhR5pjk5ORS/QcNGqQ9e/bo4sWLrqweAAAAAACgxvN0pXNOTo6KiooUEBDg1B4QEKCsrKwyx2RlZZXZ/9KlS8rJyVFgYGCpMQUFBSooKHC8t9vtki6nTACAqldyfHVxsiRQa5X8Fjj3AAAAFeXKObVLYUwJi8Xi9N4wjFJt1+pfVnuJhIQEvf7666XaW7du7WqpAAAX5ObmymazubsMwO3y8/Mlce4BAABcl5+ff81zapfCGH9/f3l4eJSaBZOdnV1q9kuJ5s2bl9nf09NTfn5+ZY6ZMmWK4uPjHe9/++03tW3bVhkZGfwj4f+Xl5en1q1b6/jx41zL/v9jn5SN/VIa+6Q0u92uNm3aqEmTJu4uBbghtGjRQsePH1fDhg3L/Q9OlcVxqObgu6o5+K5qBr6nmoPvynWGYSg/P18tWrS4Zl+Xwhhvb28FBwcrKSlJDz/8sKM9KSlJf/jDH8ocExoaqs8++8ypbfPmzQoJCZGXl1eZY6xWq6xWa6l2m83GH4Ir+Pr6sk+uwD4pG/ulNPZJaXXquPyQPaBWqlOnjlq1alXt6+E4VHPwXdUcfFc1A99TzcF35ZqKTiBx+aw7Pj5eH3zwgZYvX6709HTFxcUpIyND0dHRki7PaomKinL0j46O1rFjxxQfH6/09HQtX75cy5Yt0/jx411dNQAAAAAAQI3n8j1jhg8frtzcXM2cOVOZmZnq0aOHEhMT1bZtW0lSZmamMjIyHP2DgoKUmJiouLg4LVq0SC1atNCCBQv0yCOPVN1WAAAAAAAA1BCVuoHv888/r+eff77Mz1auXFmqbcCAAfr+++8rsypJly9bmj59epmXLt2s2CelsU/Kxn4pjX1SGvsEMBe/uZqD76rm4LuqGfieag6+q+plMXiOKQAAAAAAgGm4UyMAAAAAAICJCGMAAAAAAABMRBgDAAAAAABgIsIYAAAAAAAAE90wYczixYsVFBQkHx8fBQcHa9u2beX237Jli4KDg+Xj46P27dvr3XffNalS87iyT9avX6+BAweqadOm8vX1VWhoqL744gsTqzWHq39OSnz77bfy9PRUr169qrdAN3F1vxQUFGjatGlq27atrFarOnTooOXLl5tUrTlc3SerV69Wz549Va9ePQUGBmr06NHKzc01qdrqt3XrVg0ZMkQtWrSQxWLRp59+es0xN8NxFnCHyv5dBvMkJCTotttuU8OGDdWsWTMNHTpUP/74o7vLQgUkJCTIYrEoNjbW3aWgDCdPntSTTz4pPz8/1atXT7169VJKSoq7y8IVLl26pFdeeUVBQUGqW7eu2rdvr5kzZ6q4uNjdpdUqN0QYs3btWsXGxmratGlKTU1VeHi4Bg8erIyMjDL7HzlyRPfff7/Cw8OVmpqqqVOnKiYmRuvWrTO58urj6j7ZunWrBg4cqMTERKWkpOiuu+7SkCFDlJqaanLl1cfVfVLCbrcrKipK99xzj0mVmqsy++XRRx/Vl19+qWXLlunHH3/UmjVr1LVrVxOrrl6u7pPt27crKipKY8aM0f79+/Xxxx9r9+7dGjt2rMmVV59z586pZ8+eWrhwYYX63wzHWcAdKvt3Gcy1ZcsWvfDCC9q5c6eSkpJ06dIlRUZG6ty5c+4uDeXYvXu3li5dqltvvdXdpaAMZ86cUf/+/eXl5aV//OMfOnDggObOnatGjRq5uzRcYdasWXr33Xe1cOFCpaena/bs2ZozZ47+8pe/uLu02sW4AfTt29eIjo52auvatasxefLkMvtPnDjR6Nq1q1Pbs88+a9x+++3VVqPZXN0nZenevbvx+uuvV3VpblPZfTJ8+HDjlVdeMaZPn2707NmzGit0D1f3yz/+8Q/DZrMZubm5ZpTnFq7ukzlz5hjt27d3aluwYIHRqlWraqvRnSQZGzZsKLfPzXCcBdyhKv5+h/mys7MNScaWLVvcXQquIj8/3+jUqZORlJRkDBgwwHjppZfcXRKuMGnSJOOOO+5wdxmogAceeMD4z//8T6e2YcOGGU8++aSbKqqd3D4zprCwUCkpKYqMjHRqj4yM1I4dO8ock5ycXKr/oEGDtGfPHl28eLHaajVLZfbJlYqLi5Wfn68mTZpUR4mmq+w+WbFihQ4dOqTp06dXd4luUZn9snHjRoWEhGj27Nlq2bKlOnfurPHjx+vChQtmlFztKrNPwsLCdOLECSUmJsowDP3yyy/65JNP9MADD5hR8g2pth9nAXeoir/f4R52u12Sas15VW30wgsv6IEHHtC9997r7lJwFSXnoH/605/UrFkz9e7dW++//767y0IZ7rjjDn355Zc6ePCgJOmHH37Q9u3bdf/997u5strF090F5OTkqKioSAEBAU7tAQEBysrKKnNMVlZWmf0vXbqknJwcBQYGVlu9ZqjMPrnS3Llzde7cOT366KPVUaLpKrNPfvrpJ02ePFnbtm2Tp6fb/6hXi8rsl8OHD2v79u3y8fHRhg0blJOTo+eff16nT5+uFfeNqcw+CQsL0+rVqzV8+HD9/vvvunTpkh566KGbeipmbT/OAu5QFX+/w3yGYSg+Pl533HGHevTo4e5yUIaPPvpI33//vXbv3u3uUlCOw4cPa8mSJYqPj9fUqVP13XffKSYmRlarVVFRUe4uD/9m0qRJstvt6tq1qzw8PFRUVKQ///nPevzxx91dWq1yw/wL1WKxOL03DKNU27X6l9Vek7m6T0qsWbNGM2bM0N///nc1a9asuspzi4ruk6KiIo0YMUKvv/66OnfubFZ5buPKn5Xi4mJZLBatXr1aNptNkjRv3jz98Y9/1KJFi1S3bt1qr9cMruyTAwcOKCYmRq+99poGDRqkzMxMTZgwQdHR0Vq2bJkZ5d6QbobjLOAOlf37He4xbtw47d27V9u3b3d3KSjD8ePH9dJLL2nz5s3y8fFxdzkoR3FxsUJCQvTWW29Jknr37q39+/dryZIlhDE3mLVr1+pvf/ubPvzwQ/3Hf/yH0tLSFBsbqxYtWmjUqFHuLq/WcHsY4+/vLw8Pj1L/RSg7O7vUfzkq0bx58zL7e3p6ys/Pr9pqNUtl9kmJtWvXasyYMfr4449r1TRNV/dJfn6+9uzZo9TUVI0bN07S5b8ADMOQp6enNm/erLvvvtuU2qtTZf6sBAYGqmXLlo4gRpK6desmwzB04sQJderUqVprrm6V2ScJCQnq37+/JkyYIEm69dZbVb9+fYWHh+vNN9+8KWeB1PbjLOAO1/P3O9zjxRdf1MaNG7V161a1atXK3eWgDCkpKcrOzlZwcLCjraioSFu3btXChQtVUFAgDw8PN1aIEoGBgerevbtTW7du3Xg4wA1owoQJmjx5sh577DFJ0i233KJjx44pISGBMKYKuf2eMd7e3goODlZSUpJTe1JSksLCwsocExoaWqr/5s2bFRISIi8vr2qr1SyV2SfS5RkxTz31lD788MNad68LV/eJr6+v9u3bp7S0NMcrOjpaXbp0UVpamvr162dW6dWqMn9W+vfvr1OnTuns2bOOtoMHD6pOnTq14kSzMvvk/PnzqlPH+XBYcuJWMhvkZlPbj7OAO1T273eYzzAMjRs3TuvXr9dXX32loKAgd5eEq7jnnntKnfOFhIToiSeeUFpaGkHMDaR///6lHhF/8OBBtW3b1k0V4Wqudm7Mo62rmDvuGnyljz76yPDy8jKWLVtmHDhwwIiNjTXq169vHD161DAMw5g8ebIxcuRIR//Dhw8b9erVM+Li4owDBw4Yy5YtM7y8vIxPPvnEXZtQ5VzdJx9++KHh6elpLFq0yMjMzHS8fvvtN3dtQpVzdZ9cqbY+TcnV/ZKfn2+0atXK+OMf/2js37/f2LJli9GpUydj7Nix7tqEKufqPlmxYoXh6elpLF682Dh06JCxfft2IyQkxOjbt6+7NqHK5efnG6mpqUZqaqohyZg3b56RmppqHDt2zDCMm/M4C7jDtY5PuDE899xzhs1mM7755hun86rz58+7uzRUAE9TujF99913hqenp/HnP//Z+Omnn4zVq1cb9erVM/72t7+5uzRcYdSoUUbLli2N//f//p9x5MgRY/369Ya/v78xceJEd5dWq9wQYYxhGMaiRYuMtm3bGt7e3kafPn2cHh04atQoY8CAAU79v/nmG6N3796Gt7e30a5dO2PJkiUmV1z9XNknAwYMMCSVeo0aNcr8wquRq39O/l1tDWMMw/X9kp6ebtx7771G3bp1jVatWhnx8fG17gTT1X2yYMECo3v37kbdunWNwMBA44knnjBOnDhhctXV5+uvvy73GHGzHmcBdyjv+IQbQ1nHS0nGihUr3F0aKoAw5sb12WefGT169DCsVqvRtWtXY+nSpe4uCWXIy8szXnrpJaNNmzaGj4+P0b59e2PatGlGQUGBu0urVSyGcZPOwQcAAAAAAHADt98zBgAAAAAA4GZCGAMAAAAAAGAiwhgAAAAAAAATEcYAAAAAAACYiDAGAAAAAADARIQxAAAAAAAAJiKMAQAAAAAAMBFhDAAAAIBaJyIiQrGxse4uAwDKZDEMw3B3EQAAAABQlU6fPi0vLy81bNhQ7dq1U2xsLOEMgBuGp7sLAAAAAICq1qRJkypfZmFhoby9vat8uQBuPlymBAAAAKDWKblMKSIiQseOHVNcXJwsFossFoujz44dO3TnnXeqbt26at26tWJiYnTu3DnH5+3atdObb76pp556SjabTU8//bQkadKkSercubPq1aun9u3b69VXX9XFixed1r9x40aFhITIx8dH/v7+GjZsmOOzwsJCTZw4US1btlT9+vXVr18/ffPNN9W7QwDcUAhjAAAAANRa69evV6tWrTRz5kxlZmYqMzNTkrRv3z4NGjRIw4YN0969e7V27Vpt375d48aNcxo/Z84c9ejRQykpKXr11VclSQ0bNtTKlSt14MABvfPOO3r//ff19ttvO8Z8/vnnGjZsmB544AGlpqbqyy+/VEhIiOPz0aNH69tvv9VHH32kvXv36k9/+pPuu+8+/fTTTybsEQA3Au4ZAwAAAKDWiYiIUK9evTR//vwy7xkTFRWlunXr6r333nO0bd++XQMGDNC5c+fk4+Ojdu3aqXfv3tqwYUO565ozZ47Wrl2rPXv2SJLCwsLUvn17/e1vfyvV99ChQ+rUqZNOnDihFi1aONrvvfde9e3bV2+99dZ1bjmAmoB7xgAAAAC46aSkpOjnn3/W6tWrHW2GYai4uFhHjhxRt27dJMlpRkuJTz75RPPnz9fPP/+ss2fP6tKlS/L19XV8npaW5rik6Urff/+9DMNQ586dndoLCgrk5+dXFZsGoAYgjAEAAABw0ykuLtazzz6rmJiYUp+1adPG8f/r16/v9NnOnTv12GOP6fXXX9egQYNks9n00Ucfae7cuY4+devWLXe9Hh4eSklJkYeHh9NnDRo0qOzmAKhhCGMAAAAA1Gre3t4qKipyauvTp4/279+vjh07urSsb7/9Vm3bttW0adMcbceOHXPqc+utt+rLL7/U6NGjS43v3bu3ioqKlJ2drfDwcJfWDaD24Aa+AAAAAGq1du3aaevWrTp58qRycnIkXX4iUnJysl544QWlpaXpp59+0saNG/Xiiy+Wu6yOHTsqIyNDH330kQ4dOqQFCxaUuqfM9OnTtWbNGk2fPl3p6enat2+fZs+eLUnq3LmznnjiCUVFRWn9+vU6cuSIdu/erVmzZikxMbF6dgCAGw5hDAAAAIBabebMmTp69Kg6dOigpk2bSro8e2XLli366aefFB4ert69e+vVV19VYGBgucv6wx/+oLi4OI0bN069evXSjh07HE9ZKhEREaGPP/5YGzduVK9evXT33Xdr165djs9XrFihqKgovfzyy+rSpYseeugh7dq1S61bt676jQdwQ+JpSgAAAAAAACZiZgwAAAAAAICJCGMAAAAAAABMRBgDAAAAAABgIsIYAAAAAAAAExHGAAAAAAAAmIgwBgAAAAAAwESEMQAAAAAAACYijAEAAAAAADARYQwAAAAAAICJCGMAAAAAAABMRBgDAAAAAABgIsIYAAAAAAAAE/1/XqY4iW9/tbEAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# kod\n", "\n", "kapek = 0 # pocet kapek\n", "vkruhu = 0 # pocet kapek v kruhu\n", "npi = 0 # odhad pi\n", "steps = 10 # pocet kroku\n", "plotPi = np.zeros((steps,1))\n", "\n", "fig, ax = plt.subplots(1,2,figsize=(15,4.5))\n", "\n", "for i in range(steps): \n", " kapek = kapek+1\n", " x = np.random.rand(1,2) # dve nahodna cisla x[0,0] a x[0,1]\n", " # jsou uvnitr kruhu se stredem (0.5,0.5) a polomerem 0.5?\n", " # DOPLNTE\n", " #\n", " # DOPLNTE\n", " npi = 4 * vkruhu / kapek\n", " plotPi[i] = npi \n", "\n", "ax[0].set_aspect('equal')\n", "ax[0].set_xlim((0,1))\n", "ax[0].set_ylim((0,1))\n", "\n", "ax[1].plot(plotPi,linewidth=2,label=r'numericky vypocet hodnoty $\\pi$')\n", "ax[1].set_ylabel('vysledek')\n", "ax[1].set_xlabel('iterace')\n", "ax[1].legend()\n", "\n", "print('Vypoctena hodnota pi = ',npi)\n" ] }, { "cell_type": "markdown", "id": "95a6df08", "metadata": {}, "source": [ "
Cvičení 09.05: Numericky vypočítejte integrál $\\int_{0}^{1}\\int_{0}^{1}(x+y) dx dy$. Vykreslete výslednou hodnotu, absolutní chybu a odhad přesnosti metody v závislosti na počtu kroků.
" ] }, { "cell_type": "code", "execution_count": 5, "id": "10dcd617", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Numericka integrace = 0.0\n", "Kontrola = 1\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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cePGac+ePfr333+tw1iio6OtvQ5atGiRYciLJP3zzz86fvy4+vXrp6efftpafu3aNXl7e2f7HBzZ3Llzrc95wIABKleunLZs2aLOnTtrwIABJkdnPnqiAbnn5OSkZcuWafDgwapXr55uu+02zZgxQ61bt85Qd/LkyXrjjTe0e/du3Xrrrfr888+tv/NcXV01cuRIHT16VB4eHmrRooWWLVsmSSpZsqTWrl2rIUOGqFGjRipZsqS6du2a7f9PR44cqSNHjuiBBx6Qt7e3Jk6cmKEn2tSpUxUWFqZ58+apSpUqOnr0aL48k9atW+vTTz/VxIkTNXnyZHl5eally5a5Ps9jjz2moUOHqmfPnnJ3d8/w/osvvqjIyEiNHz9enp6emjp1qjp27ChJCgoK0rRp0/TGG29o5MiRatmypcLDw5nrHMiGXUm03bt327yOjIxUUlKSbrvtNknSwYMH5ezsrODg4PyPEABgqgqebjfFdbObN8TJKWX2gvRD0bKa6yP9eSwWS7bnTfvz66+/zrBCdVqvrDTpJzq+nj3zokhS+/bttXTpUq1du1aPP/64tfzHH3+0rvDVsWNHa8+sqVOn2nXe9K6/f0nZzvGSnJwsPz8/69xy6ZUpUybDudJkNizw+md08eJFdejQQR06dNCHH36oChUqKDo6Wh07drTOoZPds0uLe968ebrrrrts3mMKiqw5OTlZ/85IUrdu3awrvyFjTzQA9mnXrp32799vU5b+d0H16tWtrx977LFMzzF69Ohs5+GuX79+hi9o0kubyzONl5eXli9fblN2fS/lzp07q3PnzjZl48aNs5l7VUpZ5TL9SpeZ/V68XpcuXbLs4ZtZsi6z1bHPnj2rK1euqF+/fnad43qhoaEKDQ21KevVq1eOxwGOyq4k2saNG63706ZNk6enpxYvXmztynr27Fk9+eSTatGiRcFECQAwTW6GVBZVaUvUx8TEWHuIZdYQza06derIzc1N0dHRNkM3c8vT09M6XOSee+7Jst6DDz6ozp07q2fPnnJ2dlaPHj0kpQzVqFatmkaNGmWte+zYsTzHkxVXV9cM88I0bNhQp06dkouLi6pXr57pcbfddpt++uknm0b5zp07c7ze77//rtOnT2vy5Mny9/fP9Lg77rhDixcv1tWrVzMkPH19fVWlShUdOXLEJumInJ09e1bz58/XgQMH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P9p5uV6d8/XXX9fs2bMlSdu3b9e7776r6dOn66uvvlJoaKhWrVqV515xAIAiqHTFYnPdUqVK2bxOTk7Ws88+q8GDB2eoW7VqVbm6umrXrl36/vvvtW7dOr366qsaN26cfv75Z+tKhddPImuxWJScnCxJOnbsmO677z4NGDBAEydOVLly5bRlyxb169cvx/nBsjuvYRiyWCw27xupwyMsFovNUImc5PY66etl5ccff1SPHj00fvx4dezYUd7e3lq2bJldwz9gvkOHDmnFihWqWbOm2aEUSennRGM4J4qKEEmnTLhuJUk7c1H/8OHDGjNmjH788UedPn3a+vsmOjpa9erVk5RxoTo/Pz+bycLtOUd6Tz/9tBo1aqQTJ06oSpUqWrhwofr27Zvt77HrHThwQAkJCWrbtm2WdVauXKm///5bW7ZsUePGjW8ohsOHD+vq1atq1qyZtaxEiRJq3LixDhw4YK2TmJioJk2aWOuUK1dOt912m825bvR52nudzNx9990299ikSRNNnTpVSUlJcnZ2liSFhIRY39+/f7+uXLmi9u3b25wnMTHROv96gwYN1LZtW9WvX18dO3ZUhw4d9Oijj6ps2bJ23XNOzzYsLCzH8+dV+ricnZ3l4+Oj+vXrW8t8fX0lyRqrPc8jMzndo72faX783cnMgQMH9Ndff6ldu3bWspCQEP3888/av3+/evTokelxkZGR1nnPunTpoi5duighIUGRkZEqV66cqlevfkNx2SvXSbTjx49bG1WrV6/Wo48+qmeeeUbNmjVT69at8zs+AIDZnt1kdgR2+fHHHzO8rlWrlrWRlpmGDRtq37592SYLXFxc1K5dO7Vr105jx45VmTJltGHDhhznepBS5nS4du2apk6dal1l6JNPPrHzjrJWp04drVy50ibJtW3bNnl6eqpKlSoqW7asSpQooR9//FFVq1aVJJ09e1YHDx5Uq1atcnWdxYsX6+LFi9YEZNocFrVr15Ykubq6Kikpyea4rVu3qlq1ajarNx47duyG7hmF56677tKff/5JEi0L6edEY2EBFBWnJJ0wOwg7dO7cWf7+/po3b54qV66s5ORk1atXz2ZC+ey+3LH3HOndeeedatCggZYsWaKOHTtq7969+vLLL3MVt4eHR451goKCtGvXLi1cuFCNGjWySTTkNob0X4xdX55WZu8XZjf6PHPzxVxepP+CMy2ur7/+WlWqVLGp5+aW8hWGs7OzIiIitG3bNq1bt07vvPOORo0apR07diggIEBSzl8QppWll/Zs7Tl/XmUWV/qytJjSYrXneWQmp3u09zPNj787mfniiy/Uvn17m79XDz74oD7//HP5+/vL3d090+N2796tnj17SkqZY87V1VVr167Vrl27CnWRS7sWFkivdOnSOnPmjCRp3bp11uyhu7u7Ll++nL/RAQBgp+PHjyssLEx//PGHli5dqnfeeUdDhgzJ9pgRI0Zo+/bteuGFF7Rnzx4dOnRIX3zxhQYNGiRJ+uqrrzRjxgzt2bNHx44d05IlS5ScnGzXt6+SdOutt+ratWt65513dOTIEX3wwQd67733bvhen3/+eR0/flyDBg3S77//rs8//1xjx45VWFiYnJycVLp0afXr108vvfSS1q9fr99++019+/bNcrnwrDz++ONyd3dXnz599Ntvv2njxo0aNGiQevXqZf22tHr16vr111/1xx9/6PTp07p69apq1qyp6OhoLVu2TIcPH9aMGTP02Wef3fB9o+D8+uuv1m3QoEF68cUXtWjRIkVGRtq89+uvv5odqulYWABFUSVJVUzYKuUixjNnzujAgQMaPXq02rZtq8DAQJ09ezZX95nXc/Tv318LFy7UggUL1K5dO/n7+1vfy+zLoOvVqlVLHh4eWr9+fZZ1br31Vm3cuFGff/65tR1hbwzXq1mzplxdXbVlyxZr2dWrV7Vz504FBgZa66R9YZYm7Qsze9nzPG/kOrn9grNOnTpyc3NTdHS0atasabOlf14Wi0XNmjXT+PHjtXv3brm6utrdzrDn2eZ0fnt+ZvKDvc/j+nhyusfcfKa5+bm11+eff64HH3zQpqxFixZat26dvLy8Mj3myJEjOnfunLUnmouLizp37qyVK1cW7qICykNPtPbt26t///668847dfDgQd1///2SpH379hVa9zkAAK7Xu3dvXb58WY0bN5azs7MGDRqkZ555Jttj7rjjDm3atEmjRo1SixYtZBiGbr31VnXv3l2SVKZMGa1atUrjxo3TlStXVKtWLS1dulR169a1K6agoCBNmzZNb7zxhkaOHKmWLVsqPDw821WN7FGlShWtWbNGL730kho0aKBy5cqpX79+Gj16tLXOm2++qQsXLujBBx+Up6enXnzxRcXFxeXqOiVL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efNms0O66YWHh6tRo0by9PRUxYoV9fDDD+uPP/6wqWMYhsaNG6fKlSvLw8NDrVu31r59+2zqJCQkaNCgQSpfvrxKlSqlBx98UH/99Vdh3kqxEB4eLovFoqFDh1rLeP4F78SJE3riiSfk4+OjkiVLKigoSJGRkdb3+QwKzrVr1zR69GgFBATIw8NDNWrU0IQJE5ScnGytw/PPPz/88IM6d+6sypUry2KxaPXq1Tbv59ezPnv2rHr16iVvb295e3urV69eOnfuXAHfHW52tPPyH+28ooV2njlo55mHdl7hKhbtPAP5ZtmyZUaJEiWMefPmGfv37zeGDBlilCpVyjh27JjZod3UOnbsaCxcuND47bffjD179hj333+/UbVqVePChQvWOpMnTzY8PT2NlStXGnv37jW6d+9u+Pn5GfHx8dY6AwYMMKpUqWJEREQYu3btMu655x6jQYMGxrVr18y4rZvSTz/9ZFSvXt244447jCFDhljLef4F699//zWqVatm9O3b19ixY4cRFRVlfPfdd8aff/5prcNnUHAmTZpk+Pj4GF999ZURFRVlfPrpp0bp0qWN6dOnW+vw/PPPmjVrjFGjRhkrV640JBmfffaZzfv59azvvfdeo169esa2bduMbdu2GfXq1TMeeOCBwrpN3IRo5xUM2nlFB+08c9DOMxftvMJVHNp5JNHyUePGjY0BAwbYlN1+++3Gyy+/bFJExVNsbKwhydi0aZNhGIaRnJxsVKpUyZg8ebK1zpUrVwxvb2/jvffeMwzDMM6dO2eUKFHCWLZsmbXOiRMnDCcnJ+Pbb78t3Bu4SZ0/f96oVauWERERYbRq1crauOL5F7wRI0YYzZs3z/J9PoOCdf/99xtPPfWUTVmXLl2MJ554wjAMnn9Bur5xlV/Pev/+/YYk48cff7TW2b59uyHJ+P333wv4rnCzop1XOGjnmYN2nnlo55mLdp55btZ2HsM580liYqIiIyPVoUMHm/IOHTpo27ZtJkVVPMXFxUmSypUrJ0mKiorSqVOnbJ69m5ubWrVqZX32kZGRunr1qk2dypUrq169enw+dnrhhRd0//33q127djblPP+C98UXXygkJET/93//p4oVK+rOO+/UvHnzrO/zGRSs5s2ba/369Tp48KAk6ZdfftGWLVt03333SeL5F6b8etbbt2+Xt7e37rrrLmudu+++W97e3nweyBTtvMJDO88ctPPMQzvPXLTzio6bpZ3ncsNngCTp9OnTSkpKkq+vr025r6+vTp06ZVJUxY9hGAoLC1Pz5s1Vr149SbI+38ye/bFjx6x1XF1dVbZs2Qx1+HxytmzZMu3atUs///xzhvd4/gXvyJEjmj17tsLCwvTKK6/op59+0uDBg+Xm5qbevXvzGRSwESNGKC4uTrfffrucnZ2VlJSk1157TY899pgk/g4Upvx61qdOnVLFihUznL9ixYp8HsgU7bzCQTvPHLTzzEU7z1y084qOm6WdRxItn1ksFpvXhmFkKEPeDRw4UL/++qu2bNmS4b28PHs+n5wdP35cQ4YM0bp16+Tu7p5lPZ5/wUlOTlZISIhef/11SdKdd96pffv2afbs2erdu7e1Hp9BwVi+fLk+/PBDffzxx6pbt6727NmjoUOHqnLlyurTp4+1Hs+/8OTHs86sPp8HckI7r2DRzit8tPPMRzvPXLTzip6i3s5jOGc+KV++vJydnTNkNmNjYzNkUpE3gwYN0hdffKGNGzfqlltusZZXqlRJkrJ99pUqVVJiYqLOnj2bZR1kLjIyUrGxsQoODpaLi4tcXFy0adMmzZgxQy4uLtbnx/MvOH5+fqpTp45NWWBgoKKjoyXxd6CgvfTSS3r55ZfVo0cP1a9fX7169VJoaKjCw8Ml8fwLU34960qVKunvv//OcP5//vmHzwOZop1X8GjnmYN2nvlo55mLdl7RcbO080ii5RNXV1cFBwcrIiLCpjwiIkJNmzY1KariwTAMDRw4UKtWrdKGDRsUEBBg835AQIAqVapk8+wTExO1adMm67MPDg5WiRIlbOrExMTot99+4/PJQdu2bbV3717t2bPHuoWEhOjxxx/Xnj17VKNGDZ5/AWvWrJn++OMPm7KDBw+qWrVqkvg7UNAuXbokJyfbX5fOzs7Wpc95/oUnv551kyZNFBcXp59++slaZ8eOHYqLi+PzQKZo5xUc2nnmop1nPtp55qKdV3TcNO28G16aAFZpS5/Pnz/f2L9/vzF06FCjVKlSxtGjR80O7ab23HPPGd7e3sb3339vxMTEWLdLly5Z60yePNnw9vY2Vq1aZezdu9d47LHHMl0K95ZbbjG+++47Y9euXUabNm1YdjiP0q/aZBg8/4L2008/GS4uLsZrr71mHDp0yPjoo4+MkiVLGh9++KG1Dp9BwenTp49RpUoV69Lnq1atMsqXL28MHz7cWofnn3/Onz9v7N6929i9e7chyZg2bZqxe/du49ixY4Zh5N+zvvfee4077rjD2L59u7F9+3ajfv36+bb0OYon2nkFg3Ze0UM7r3DRzjMX7bzCVRzaeSTR8tnMmTONatWqGa6urkbDhg2ty3Mj7yRlui1cuNBaJzk52Rg7dqxRqVIlw83NzWjZsqWxd+9em/NcvnzZGDhwoFGuXDnDw8PDeOCBB4zo6OhCvpvi4frGFc+/4H355ZdGvXr1DDc3N+P222835s6da/M+n0HBiY+PN4YMGWJUrVrVcHd3N2rUqGGMGjXKSEhIsNbh+eefjRs3Zvpvfp8+fQzDyL9nfebMGePxxx83PD09DU9PT+Pxxx83zp49W0h3iZsV7bz8Rzuv6KGdV/ho55mHdl7hKg7tPIthGMaN92cDAAAAAAAAii/mRAMAAAAAAAByQBINAAAAAAAAyAFJNAAAAAAAACAHJNEAAAAAAACAHJBEAwAAAAAAAHJAEg0AAAAAAADIAUk0AAAAAAAAIAck0QAAAAAAAIAckEQDAAAAAAAAckASDYBDa926tYYOHXrTnBcAAAD2oZ0HIL+RRANQLBXXxk3Lli1lsVi0dOlSm/JZs2apYsWKJkUFAABQeGjnATALSTQAyIXExETTrm0Yhvbs2SM/Pz+tXLnS5r1du3apYcOGJkUGAABw86OdByAnJNEA5LvWrVtr4MCBGjhwoMqUKSMfHx+NHj1ahmFIkhISEjR48GBVrFhR7u7uat68uX7++WebcyQnJ+uNN95QzZo15ebmpqpVq+q1116TlNLImDJlimrUqCEPDw81aNBAK1assB7bt29fbdq0SW+//bYsFossFouOHj1qV+zffvutvL29tWTJEpt7CQsLU/ny5dW+fXu77yG781avXl3Tp0+3qRMUFKRx48ZleY5Dhw7p/PnzGj16tL755htdunTJ+l5kZKSCg4PtukcAAIC8op2X83lp5wHFF0k0AAVi8eLFcnFx0Y4dOzRjxgy99dZbev/99yVJw4cP18qVK7V48WLt2rVLNWvWVMeOHfXvv/9ajx85cqTeeOMNjRkzRvv379fHH38sX19fSdLo0aO1cOFCzZ49W/v27VNoaKieeOIJbdq0SZL09ttvq0mTJnr66acVExOjmJgY+fv75xjzsmXL1K1bNy1ZskS9e/fOcC9bt27VnDlz7L6HnM6bW5GRkXJ3d1f//v3l5eWlb775RlJKQ2/fvn18QwkAAAoF7bycz5tbtPOAm4QBAPmsVatWRmBgoJGcnGwtGzFihBEYGGhcuHDBKFGihPHRRx9Z30tMTDQqV65sTJkyxTAMw4iPjzfc3NyMefPmZTj3hQsXDHd3d2Pbtm025f369TMee+wxmxiGDBliV6xDhgwxZs6caXh7exsbNmzI8H5QUFCGGHK6h5zOW61aNeOtt96yKWvQoIExduzYLGMdNmyY0bhxY8MwDOO5554zevToYRiGYfz000+GJCMqKirH+wUAALgRtPNo5wGOzMXsJB6A4unuu++WxWKxvm7SpImmTp2qP//8U1evXlWzZs2s75UoUUKNGzfWgQMHJEkHDhxQQkKC2rZtm+G8+/fv15UrV6zd7dMkJibqzjvvzFOsK1eu1N9//60tW7aocePGGd4PCQmxeX348OEc78Ge8+ZWZGSk9VvILl26qEuXLkpISFBkZKTKlSun6tWr3/A1AAAAckI7j3Ye4KhIogEwRfqGl5Qy/0VamYeHR5bHJScnS5K+/vprValSxeY9Nze3PMUSFBSkXbt2aeHChWrUqFGG2EqVKpUh1pzuIafzOjk5Wc+T5urVq9nGuXv3bvXs2VNSyhwerq6uWrt2rXbt2pXnhiUAAEB+o51HOw8orpgTDUCB+PHHHzO8rlWrlmrWrClXV1dt2bLF+t7Vq1e1c+dOBQYGSpJq1aolDw8PrV+/PsN569SpIzc3N0VHR6tmzZo2W/r5MFxdXZWUlGRXrLfeeqs2btyozz//XIMGDcqxvj33kNN5K1SooJiYGOvr+Ph4RUVFZXnNI0eO6Ny5c9ZvKF1cXNS5c2etXLmSyWYBAEChop1HOw9wVPREA1Agjh8/rrCwMD377LPatWuX3nnnHU2dOlWlSpXSc889p5deeknlypVT1apVNWXKFF26dEn9+vWTJLm7u2vEiBEaPny4XF1d1axZM/3zzz/at2+f+vXrp2HDhik0NFTJyclq3ry54uPjtW3bNpUuXVp9+vSRlLIq0o4dO3T06FGVLl1a5cqVk5NT1t8b1K5dWxs3blTr1q3l4uKSYUWl9Oy5h5zO26ZNGy1atEidO3dW2bJlNWbMGDk7O2d5zcjISLm6uqpevXrWsq5du6pXr166dOmShg8fntNHAgAAkC9o52V/Xtp5QPFFEg1Agejdu7cuX76sxo0by9nZWYMGDdIzzzwjSZo8ebKSk5PVq1cvnT9/XiEhIVq7dq3Kli1rPX7MmDFycXHRq6++qpMnT8rPz08DBgyQJE2cOFEVK1ZUeHi4jhw5ojJlyqhhw4Z65ZVXrMcPGzZMffr0UZ06dXT58mVFRUXlOJfEbbfdpg0bNqh169ZydnbW1KlTs6xrzz1kd96RI0fqyJEjeuCBB+Tt7a2JEydm+w3lrl27VK9ePbm6ulrL2rdvr6SkJCUmJrJiEwAAKDS087I/L+08oPiyGNcP1gaAG9S6dWsFBQVl+y0fAAAAbj608wA4MuZEAwAAAAAAAHJAEg0AAAAAAADIAcM5AQAAAAAAgBzQEw0AAAAAAADIAUk0AAAAAAAAIAck0QAAAAAAAIAckEQDAAAAAAAAckASDQAAAAAAAMgBSTQAAAAAAAAgByTRAAAAAAAAgByQRAMAAAAAAAByQBINAAAAAAAAyAFJNAAAAAAAACAHJNEAAAAAAACAHPw/npD9P2v7BRYAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# kod\n", "def f(x,y):\n", " return x+y\n", "\n", "kroku = 1000\n", "vysledky = np.zeros((kroku,1)) # vysledky\n", "uspech = 0 # pocet uspesnych pokusu\n", "suma = 0\n", "\n", "for i in range(kroku):\n", " # DOPLNTE\n", " vysledky[i,0] = 0 \n", "integral = suma / kroku\n", "\n", "\n", "spravny_vysledek = 1\n", "print('Numericka integrace = ',integral)\n", "print('Kontrola = ',spravny_vysledek)\n", "\n", "spravny_vysledek = spravny_vysledek*np.ones((kroku,1))\n", "\n", "# absolutni chyba\n", "abs_chyba = np.abs(vysledky-spravny_vysledek)\n", "# presnost vypoctu metodou Monte-Carlo je ~ 1/sqrt(N)\n", "odhad_presnosti = np.linspace(1,kroku+1,num=kroku)**(-1/2)\n", "\n", "\n", "fig, ax = plt.subplots(1,2,figsize=(15,5))\n", "ax[0].plot(vysledky[:,0],linewidth=2,label='numericka integrace')\n", "ax[0].plot(spravny_vysledek*np.ones((kroku,1)),linewidth=2,label='presna hodnota')\n", "ax[0].set_xlabel(r'pocet kroku $N$')\n", "ax[0].set_ylabel('vysledek')\n", "ax[0].legend()\n", "\n", "ax[1].plot(abs_chyba,linewidth=2,color='C4',label='absolutni chyba')\n", "ax[1].plot(odhad_presnosti,linewidth=2,color='cyan',label=r'analyticky odhad presnosti metody $1/\\sqrt{N}$')\n", "ax[1].set_xlabel(r'pocet kroku $N$')\n", "ax[1].set_ylabel('chyba')\n", "#ax[1].set_xscale('log')\n", "#ax[1].set_yscale('log')\n", "ax[1].legend()\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.13" } }, "nbformat": 4, "nbformat_minor": 5 }