{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# 積分\n", "\n", " プログラミングの基本的で重要なアプリケーションの1つは、積分と導関数です。微積分の講義で学んだように、線形、二次、多項式、三角関数などの関数は解析的に積分を行うことができますが、その一方で他の多くの関数については解析的に積分をすることできません。そのような時に利用するのが**数値積分**です。数値積分を利用すれば、ほとんどの場合に積分を実行することができます。\n", " " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 一般的な積分について\n", "\n", " 関数 $f(x)$ があり、$x$ に関する $x$ = a から $x$ = b までの積分を計算したいとします。これを $I(a, b)$ とします。\n", "\n", "$$ I(a,b) = \\int_a^b f(x)dx $$\n", "\n", " これは、a から b までの $f(x)$ の曲線の下の面積を計算することと同じです。" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ " 簡単な例から始めます。0 < $x$ < 3 上の $x^2$ で積分を試みます。\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAc0AAAEmCAYAAAAAxstcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAsBklEQVR4nO3deXwTZf4H8E+SNukd2tKTnkCh0ELpwX3sIgssIII3iiyCuuoPvHBVkHVdXLWysoqrgosiIqioXCJegFxyCBQKBUpbjkJb2tKD0pQeaZM8vz8qVaRASpPOZPJ5v17zqpnMpN856MdnZvI8KiGEABEREV2XWuoCiIiIHAVDk4iIyEoMTSIiIisxNImIiKzE0CQiIrISQ5OIiMhKDE0iIiIrMTSJiIis5CJ1AbZmsVhQWFgIb29vqFQqqcshIiIJCCFQVVWF0NBQqNW2ax8qLjQLCwsRHh4udRlERCQD+fn5CAsLs9nnKS40vb29ATTuKB8fH4mrISIiKRgMBoSHhzdlgq0oLjQvXZL18fFhaBIROTlb36bjg0BERERWYmgSERFZiaFJRERkJYYmERGRlRiaREREVmJoEhGR4ggh7PK5DE0iIlKcd7ectMvnMjSJiEhRluzMxXvbGJpERETXtPpAAeZ8nWm3z2doEhGRImzKPIdnVmYAACb2i7DL72BoEhGRw9tzqhzTPj0As0XgtqQOeG5krF1+D0OTiIgc2uGCSjywNA1GkwV/6haEf9/eE2q1fYaGZGgSEZHDOn6uCn/5cA8uGk3o39Ef79ybCBeN/aKNoUlERA4p/3wN7lu8BxU1DUgI0+P9ySlwc9XY9XcyNImIyOGUGOpw3+I9OGcwIibQCx9N6QMvnf1Hu2RoEhGRQ6morsd9i/fgTHkNwv3csfzBvvD11LbJ72ZoEhGRw6iqa8DkJXuRc+4iAr11+OSBfgjycWuz38/QJCIih1Bbb8YDH6Uho6ASfp5afPJgX0T4e7RpDQxNIiKSPaPJjIeX78fe0+fhrXPBx1P7ICbIu83rYGgSEZGsmcwWPPHZQWzPKYW7qwZLpvRGfAe9JLUwNImISLYsFoG/fXkI3x8thlajxv8mJSMlyk+yehiaREQkS0IIzF57BGsPFsJFrcK7E5MwpEuApDUxNImISHaEEPjX+mP4bG8e1Crgzbt7YXj3IKnLYmgSEZH8zNuQjQ935gIA5t7eE2MTQiWuqBFDk4iIZOXtH4/j3S2Ng0i/NC4Od6aES1zRrxiaREQkG4u2n8R/NuYAAGaP7oa/9I+StqDfkVVomkwm/P3vf0d0dDTc3d3RsWNHvPTSS7BYLFKXRkREdrZ012m8+m0WAOBvI7rgoSEdJa7oSvbv3bYF5s6di/feew9Lly5FXFwc0tLSMGXKFOj1ejzxxBNSl0dERHby2d48vLjuKABg+tDOmH5TjMQVNU9Wobl7926MGzcOY8aMAQBERUXhs88+Q1pamsSVERGRvXyRlo9Zqw8DAB4cFI2nR3SRuKKrk9Xl2UGDBuHHH39ETk7j9exDhw5hx44dGD16tMSVERGRPaxJL8BzqzIAAJP7R2L2mG5QqVQSV3V1smppPvfcc6isrERsbCw0Gg3MZjNeeeUV3HPPPVddx2g0wmg0Nr02GAxtUSoREbXS+oxCPP3FIQgB3Ns3Av+8JU7WgQnIrKX5+eefY/ny5fj0009x4MABLF26FPPmzcPSpUuvuk5qair0en3TFB4un0eTiYioed8fKcITKw7CIoA7k8Pw8rh42QcmAKiEEELqIi4JDw/HzJkzMW3atKZ5L7/8MpYvX46srKxm12mupRkeHo7Kykr4+PjYvWYiImqZH44WY9onB2CyCNya2AHz7kyARm3bwDQYDNDr9TbPAlldnq2pqYFafXnjV6PRXPMrJzqdDjqdzt6lERGRDWzKPIfpnzYG5i0JoXYJTHuSVWiOHTsWr7zyCiIiIhAXF4f09HS88cYbmDp1qtSlERFRK23JKsH/fXIADWaBm3uG4I27HCswAZldnq2qqsILL7yANWvWoKSkBKGhobjnnnvwj3/8A1qt1qrPsFeTnIiIbtzW7BL89eP9qDdbMLpHMP47IREuGvs9VmOvLJBVaNoCQ5OISF62Zpfgr8v2o95kwZ/jgvH2vYlwtWNgAvbLAlk9PUtERMry28AcGRfUJoFpT45bORERydrvA/Ode5McOjABhiYREdnBlt+3MO9x/MAEZPb0LBEROb7NWefwyLIDqDdbMKJ7Y2BqXRw/MAGGJhER2dCmzHN49JP9aDALjIoPxn/vcex7mL+nnC0hIiJJbfxNYI7uobzABNjSJCIiG/j+SBGmf5oOk0VgTM8QzL+7l+ICE2BoEhFRK63PKMQTKw7CbBEYmxCKN+9KsGvHBVJiaBIR0Q1bm34WM75oHK3ktsQOeN3B+pJtKWX+rwAREdndyv0FeOqLX4f3UnpgAmxpEhHRDfh0Tx5mrz0MIYB7+kTglfHxUCs8MAGGJhERtdBHO3Pxz68zAQB/6R+Jf46Nc4rABBiaRETUAou2n8Sr32YBAB4aHI3nR3eDSuUcgQkwNImIyEpv/3gc/9mYAwCYPrQznh7RxakCE2BoEhHRdQgh8PoP2Viw9SQA4OnhXfDYsBiJq5IGQ5OIiK5KCIE5X2fio12nAQDPj47FX4d0krYoCTE0iYioWWaLwN/XHsZne/MBAP8aH49J/SIlrkpaDE0iIrpCg9mCZ748hLUHC6FWAf++IwF3JIdJXZbkGJpERHQZo8mM6Z+mY2PmObioVZg/oRdu7hkqdVmywNAkIqImNfUmPLxsP346Xgatixrv3ZeEm2KDpC5LNhiaREQEADDUNWDqkn1IO1MBD60GH0xOwYBO7aUuS1YYmkREhLKLRkz+cC+OFhrg4+aCj6b2QVKEr9RlyQ5Dk4jIyRVeqMV9i/fgVGk12ntp8fHUvuge6iN1WbLE0CQicmKnSi9i0uK9OHuhFqF6Nyx/sC86BnhJXZZsMTSJiJzU0cJKTP5wL8ou1qNjgCeWP9AXoe3cpS5L1hiaREROaG/ueTzw0T5UGU3oHuKDjx/og/ZeOqnLkj2GJhGRk9mcdQ6PLj8Ao8mCPlF+eH9yCvTurlKX5RAYmkRETmRt+lk8/eUhmC0CN8UG4t17k+Cu1UhdlsNgaBIROYnfDh59a2IH/PuOnnDVqCWuyrEwNImIFE4IgTc25uDtzScAAPcPiMI/bu4Otdq5xsK0BYYmEZGCNY5UcgSf7c0D0DgW5vSbOjvd4NG2wtAkIlKougYznlxxEN8fLYZKBbw8Ph4T+zr30F6txdAkIlIgQ10DHlqahj2556HVqDF/Qi+M7hEidVkOj6FJRKQw5wx1mPzhXmQVV8FL54JFk5IxoDM7XrcFhiYRkYL8tlu89l46fDSlN+I76KUuSzEYmkRECnEw/wKmfrQP56vrEeXvgY+n9kWEv4fUZSmK7L6gc/bsWdx3333w9/eHh4cHevXqhf3790tdFhGRrG3OOod7Fv2M89X16NFBj5WPDmBg2oGsWpoVFRUYOHAghg4diu+++w6BgYE4efIk2rVrJ3VpRESytWJvHmavPQKzRWBIlwAsnJgET52s/rwrhqz26ty5cxEeHo4lS5Y0zYuKipKuICIiGRNC4L8/nsCbm3IAALcnheG123uwlx87ktWeXbduHVJSUnDnnXciMDAQiYmJeP/996+5jtFohMFguGwiIlI6k9mCWasPNwXmtKGdMO9Odotnb7Lau6dOncLChQsRExODH374AY888ggef/xxfPzxx1ddJzU1FXq9vmkKDw9vw4qJiNpetdGEBz9Ow4p9+VCrgH+Ni8MzI2PZy08bUAkhhNRFXKLVapGSkoJdu3Y1zXv88cexb98+7N69u9l1jEYjjEZj02uDwYDw8HBUVlbCx8fH7jUTEbWlkqo6TP1oH46cNcDNVY3/TkjEiLhgqcuSHYPBAL1eb/MskNU9zZCQEHTv3v2yed26dcOqVauuuo5Op4NOx4FTiUj5TpRcxP1L9qKgohZ+nlp8MDkFSRG+UpflVGQVmgMHDkR2dvZl83JychAZyb4Sici5/XyqHH/9OA2GOhMi/T2wdEofRLX3lLospyOr0HzqqacwYMAAvPrqq7jrrruwd+9eLFq0CIsWLZK6NCIiyXx18Cye+TID9WYLEiPa4YO/pMDfi1fYpCCre5oAsH79esyaNQvHjx9HdHQ0ZsyYgYceesjq9e11HZuIqK0JIbBg60m8/kPjFbhR8cF48+5ecHPVSFyZ/NkrC2QXmq3F0CQiJag3WTB7zWF8ub8AAPDgoGg8P7obB462klM8CEREREBlbQMeXb4fu06WQ60CXhwbh8kDoqQui8DQJCKSlfzzNZjy0T6cKLkIT60Gb9+biJtig6Qui37B0CQikon9Zyrw8LI0lF2sR7CPGxbfn4K4UA7rJScMTSIiGVh3qBB/+/IQ6k0WdA/xwYf390aw3k3qsuh3GJpERBL6fafrf+oWhLcm9OIoJTLFo0JEJJG6BjNmrT6MNelnAQAPDY7GzFHdoOETsrLF0CQikkBplREPL0vDgbwL0KhV+Ne4eNzbN0Lqsug6GJpERG3sWJEBDy5Nw9kLtfBxc8HC+5IxsHN7qcsiKzA0iYja0KbMc3hiRTqq682Ibu+JxZNT0DHAS+qyyEoMTSKiNiCEwP+2n8Lc77MgBDCgkz8WTExCOw+t1KVRCzA0iYjsrK7BjOdXH8bqXx74ubdvBObcEgdXjVriyqilGJpERHZUYqjDX5ftx8H8xgd+/jm2Oyb1j5K6LLpBDE0iIjs5lH8BDy/bj2JDHfTurlgwMYkP/Dg4hiYRkR2sSS/Ac6sOo95kQedAL3zwlxQOGq0ADE0iIhsyWwTmfp+FRdtPAQD+1C0Qb97dC95urhJXRrbA0CQispHKmgY8viId23JKAQDThnbC08O7cgxMBWFoEhHZQM65Kjz0cRrOlNfAzVWN1+9IwNiEUKnLIhtjaBIRtdL3R4rx9BcHUV1vRod27lj0l2QO6aVQDE0iohtktgjM35SDtzefAAD07+iPdycmwc+THRYoFUOTiOgGVNY04InP07E1u/H+5ZSBUZg9uhtc2GGBojE0iYhaKKvYgIeX7ceZ8hroXNR47fYeuDUxTOqyqA0wNImIWmDdoUI8tzIDtQ1mhPm64737khHfgfcvnUWLryPU1tbi7NmzV8w/evSoTQoiIpKjBrMFL32dicc/S0dtgxmDY9rj6+mDGJhOpkWhuXLlSnTp0gWjR49Gz549sWfPnqb3Jk2aZPPiiIjkoKSqDhPf34MPd+YCAP7vj53w0ZQ+8OUDP06nRZdnX375ZRw4cAABAQFIS0vD5MmTMXv2bNx7770QQtirRiIiyew7fR7TPjmAkiojvHQu+M9dCRgZFyx1WSSRFoVmQ0MDAgICAAApKSnYvn07brvtNpw4cQIqFXu8ICLlEEJg8Y5cpH6XBbNFICbQC/+blMwBo51ciy7PBgYGIiMjo+m1v78/Nm7ciGPHjl02n4jIkVXVNWDapwfw8jfHYLYI3JIQirXTBjIwCSrRguuqBQUFcHFxQXDwlZcmdu7ciYEDB9q0uBthMBig1+tRWVkJHx8fqcshIgeTVWzA/y0/gFNl1XDVqPDCzd0xqV8kr6Y5GHtlQYsuz4aFXfk9pKqqKnh7e8siMImIWuPLtHy88NUR1DVYEKp3w7sTk5AY4St1WSQjre66YvDgwSguLrZFLUREkqitN+PZlYfwzMoM1DVYMKRLANY/PpiBSVdodWimpKSgb9++yMrKumx+eno6Ro8e3dqPJyKyq5OlF3Hrgp34Iq0AahXw9PAu+Oj+3uw/lprV6tD84IMPMHXqVAwaNAg7duxATk4O7rrrLqSkpECn09miRiIiu/jq4Fnc8vYOZBVXob2XFssf6IvHhsVw/Eu6Kpt0o/fiiy9Cq9Vi+PDhMJvNGDlyJPbt24ekpCRbfDwRkU3VNZgx5+tMfLY3DwDQr6Mf3pqQiCAfN4krI7lrdWgWFRUhNTUVH3zwAbp3746srCxMmDCBgUlEsnSy9CKmf5qOY0UGqFTAYzfF4IlhMdCwdUlWaHVoduzYEbGxsfjyyy8xZswY/PDDD7jrrrtQUFCA5557zhY1EhHZxMr9BfjHV0dQU29Gey8t5t+diEEx7aUuixxIq0NzyZIlmDBhQtPrkSNHYsuWLbj55ptx5swZLFiwoLW/goioVaqNJrzw1RGsPtA42MSATv6Yf3cvBPJyLLVQqx8E+m1gXpKUlIRdu3Zh69atrfrs1NRUqFQqPPnkk636HCJyXkfOVmLs2zuw+sDZpqdjlz3Ql4FJN8Ru42lGRUVh586dN7z+vn37sGjRIvTs2dOGVRGRsxBCYMnO03jtuyzUmy0I9nHDWxN6oW9Hf6lLIwfW6pbmtfj63tgXgy9evIiJEyfi/fffv+HPICLnVX7RiAeWpuGl9ZmoN1swvHsQvntiMAOTWs2uoXmjpk2bhjFjxuBPf/rTdZc1Go0wGAyXTUTkvHYcL8Oot37C5qwSaF3UeGlcHBZNSubYl2QTdrs8e6NWrFiBAwcOYN++fVYtn5qaijlz5ti5KiKSu3qTBfM2ZGPR9lMAgM6BXvjvhER0D+XADWQ7smpp5ufn44knnsDy5cvh5mbdTfpZs2ahsrKyacrPz7dzlUQkNydLL+K2hTubAnNi3wh8PX0QA5NsrkVDg9nb2rVrceutt0Kj0TTNM5vNUKlUUKvVMBqNl73XHA4NRuQ8hBD4ZE8eXv4mE3UNFvh6uOK123tiZNyVwxeSc5HF0GD2NmzYMBw+fPiyeVOmTEFsbCyee+656wYmETmPsotGzFyVgU3HSgAAAzv74427erErPLIrWYWmt7c34uPjL5vn6ekJf3//K+YTkfPaklWCZ1YeQtnFemg1ajz7566YOjCaHa2T3ckqNImIrqWm3oRXvjmGT/Y0drTeNcgb8yf0QrcQ3oqhtiH70Gxtr0JEpAzpeRWY8cUh5JZVAwCmDozGs3/uCjdX3rahtiP70CQi51ZvsuCdzcfx7taTMFsEQvRumHdnAgZ2Zkfr1PYYmkQkW9nFVZjxxUEcLWzstGR8r1DMGRcPvburxJWRs2JoEpHsmC0CH/x0Cv/ZkIN6swXtPFzx8vh43NwzVOrSyMkxNIlIVnLLqvHMl4eQdqYCAHBTbCBeu60HRyUhWWBoEpEsWCwCS3efxtzvs1DXYIGnVoMXbu6Ou3uHQ6XiV0lIHhiaRCS5/PM1eGblIfx86jyAxkGi/31HT4T5ekhcGdHlGJpEJBmLReDj3acx9/ts1DaY4aHVYNbobpjYJ4IdFZAsMTSJSBKny6rx7KoM7M1tbF326+iHf9+egAh/ti5JvhiaRNSmzBaBJTtzMW9DNuoaLI2ty1GxmNg3kq1Lkj2GJhG1mZxzVXh2ZQYO5l8A0Hjvcu7tPRHux9YlOQaGJhHZXb3Jgve2ncTbm4+jwSzgrXPB82O6YQKfjCUHw9AkIrtKz6vAzFWHkX2uCgAwLDYQL98ajxC9u8SVEbUcQ5OI7KLaaMK8Ddn4aNdpCAH4eWrx4tjuuCUhlK1LclgMTSKyuS1ZJfj72iM4e6EWAHBbYgf8/ebu8PPUSlwZUeswNInIZkqq6jDn60x8k1EEAOjQzh2v3tYDf+gSIHFlRLbB0CSiVrNYBD7bl4fXvstCVZ0JGrUKUwdG4anhXeCh5Z8ZUg6ezUTUKseKDJi95jAO5F0AAPTooEfqbT0Q30EvbWFEdsDQJKIbUm004a0fj2PxjlyYLQKeWg2eHtEVkwdEQcNOCkihGJpE1CJCCPxw9Bxe+vooCivrAACj4oPx4tg4BOs5fBcpG0OTiKyWV16DF9cdwZbsUgBAmK87XhoXh5tigySujKhtMDSJ6LrqGsz437ZTeHfrCdSbLHDVqPDwkE6YNrQz3LUaqcsjajMMTSK6pk2Z5/DS+kzkna8BAAzq3B5zxsWhU4CXxJURtT2GJhE160x5NeZ8nYnNWSUAgGAfN8we0w039wxhjz7ktBiaRHSZaqMJC7aewPvbc1FvbrwUO3VQNB6/KQaeOv7JIOfGfwFEBKDxqdh1hwrx6rfHcM5gBAAMjmmPF8fGoXMgL8USAQxNIgKQUXABL32dibQzFQCAcD93vDCmO4Z3D+KlWKLfYGgSObGSqjq8/n02Vh4ogBCAm6sa04d2xoODO8LNlU/FEv0eQ5PICdU1mPHhzly8u/kEquvNAIDxvULx3KhYjnNJdA0MTSInIoTA1xlFmPtdVtOwXQnh7fDi2O5IivCVuDoi+WNoEjmJ/Wcq8PI3mUj/pWP1EL0bnhnZFeN7dYCafcUSWYWhSaRwZ8qr8e/vs/HN4cYxLt1dNXj0j53w0OCO7M2HqIUYmkQKVVFdj7c3n8Cyn0+jwSygUgF3Jofh6RFdEeTDjtWJbgRDk0hhauvNWLIrFwu3nkRVnQkAMKRLAGaNikW3EB+JqyNybAxNIoUwmS1YdaAAb248jmJD45Bd3UJ8MGtULIZ0CZC4OiJlYGgSObhL41vO25CNEyUXAQAd2rnjbyO7YFwCH/IhsiVZhWZqaipWr16NrKwsuLu7Y8CAAZg7dy66du0qdWlEsrTrZBnmfp+NQ/kXAADtPFwxfWhn3Ncvkp0TENmBrEJz27ZtmDZtGnr37g2TyYTZs2djxIgRyMzMhKenp9TlEclGel4F5m3Ixs4T5QAAD60GDwyKxkNDOsLHzVXi6oiUSyWEEFIXcTWlpaUIDAzEtm3bMGTIEKvWMRgM0Ov1qKyshI8PH3ogZTlWZMB/NuRg07FzAABXjQr39onA9JtiEOCtk7g6IvmwVxbIqqX5e5WVlQAAPz8/iSshktbxc1WY/+NxfJPR+F1LtQq4PSkMjw+LQbifh8TVETkP2YamEAIzZszAoEGDEB8ff9XljEYjjEZj02uDwdAW5RG1iVOlF/HWj8ex7lAhLl0TurlnCJ4a3gWdAjhcF1Fbk21oTp8+HRkZGdixY8c1l0tNTcWcOXPaqCqitnGy9CLe2XwCXx08C8svYfnnuGA8OTwGscG87UAkFVne03zsscewdu1abN++HdHR0ddctrmWZnh4OO9pkkNqLiyHxQbiqeFdEN9BL21xRA7EKe5pCiHw2GOPYc2aNdi6det1AxMAdDoddDo+AEGOLbu4Cu9sOYH1Gb9ehv1Tt0A8MawLeoQxLInkQlahOW3aNHz66af46quv4O3tjeLiYgCAXq+HuzvH+CPlOXK2Em9vPo4fjp5rmsewJJIvWV2eVama77lkyZIluP/++636DH7lhBzB3tzzeHfLCWzLKQUAqFTAqPhgTBvaGXGhDEui1nKay7NESiWEwNacUizYcgL7TlcAaPzqyNiEUEwf2hkxQd4SV0hE1yOr0CRSIpPZgvUZRXhv20lkFVcBALQaNe5ICcPDQzoi0p+9XRE5CoYmkZ1UG034Mi0f7/+Ui7MXagEAnloN7u0bgQcHd+SYlkQOiKFJZGMlVXVYuus0lv+ch8raBgBAey8tpgyMxn19I6H3YN+wRI6KoUlkI9nFVVi84xTWphei3mwBAET5e+CBwR1xZ3IYRx0hUgCGJlErWCwC246X4sMdufjpeFnT/KSIdvjrkE4Y3j0IGo5nSaQYDE2iG1BtNGH1gQJ8tOs0TpZWA2h8EvbP8cF4YFA0kiM5yACREjE0iVog/3wNPt59Giv25aOqzgQA8NK54O7e4bh/QBRHHCFSOIYm0XVYLAI/nSjDx7tOY3N2SVM3d1H+Hrh/QBRuTw6DNwd+JnIKDE2iq6isacCX+/PxyZ485JZVN80fHNMeUwZG4Y9dAqHm/Uoip8LQJPoNIQQyCiqx/OczWHeoEEZT41Ow3joX3JEShkn9ItGR41gSOS2GJhGAqroGfHWwEJ/tzcPRwl8HMo8N9sZ9/SIxPrEDvHT850Lk7PhXgJyWEAIH8y/g8335WHeoEDX1ZgCNXdyN6RmC+/pFICnC96oDCRCR82FoktM5X12PNeln8fm+POScu9g0v1OAJ+7tG4nbEjvA11MrYYVEJFcMTXIKJrMF24+XYuX+AmzKLGnqscfNVY3R8SG4u3c4+kT7sVVJRNfE0CRFyy6uwuoDBVidfhalVcam+fEdfHB37wjckhAKvTu/LkJE1mFokuKUXTRi3cFCrE4vwJGzvz7U4+epxfheHXBHchi6h3KAciJqOYYmKUK10YQNmcVYm16IHSfKYLY09kDgqlFhaNdA3JYUhptiA6F1UUtcKRE5MoYmOSyjyYztOWVYd6gQmzLPobbB3PReQng73JHUATf3DOVDPURkMwxNcigNZgt2nyzH+oxCfH+kGIZf+n8FGru1G9erA8YndkB0e08JqyQipWJokuyZzBbsPlWObzKK8MPRYlTUNDS9F+Sjw809QzE2IRQJYXo+/UpEdsXQJFkymszYeaIM3x0uxsZj53DhN0Hp76nFyPhg3JIQij5Rfuz/lYjaDEOTZKOqrgFbs0uxIfMctmSV4KLx10uvfp5a/Dk+GGN6hKBvtB9cNHygh4jaHkOTJFV4oRY/ZpVgU+Y57DpZhgazaHovyEeHP8cFY2R8MPpEMSiJSHoMTWpTZotARsEFbM4qwaZjJThWZLjs/U4BnhjePRgj4oLQK6wdL70SkawwNMnuKqrr8dOJMmzJKsG2nFKcr65vek+tApIifDGsWxCGdw9C50AOu0VE8sXQJJszmS04VHAB23LKsC2nFBkFFyB+veoKb50LBndpj2GxQRgaGwg/fo+SiBwEQ5NaTQiB3LJq7DhRhp+Ol+Hnk+Wo+s1DPADQNcgbf4wNwNCugUiO9IUr708SkQNiaNINKaiowe6T5dh9shy7Tpaj2FB32ft6d1cMimmPP8QEYEiXAATr3SSqlIjIdhiadF1CCOSdr8Ge3PPYc+o89uSWo6Ci9rJltBo1kiN9MSimPQbHtEdcqB4aPsRDRArD0KQrNJgtyCqqQtqZ80g7XYF9p8+j5DfDagGARq1Cjw56DOzsjwGd2iM50hdurhqJKiYiahsMTUJplREH8y8gPa8C+89UIKOg8rLOz4HG0UISwtqhb0c/9I32R3KkLzx1PH2IyLnwr56TqaprwJGzBhw5W4mDBRdwMO8Czl6ovWI5bzcXJEX4ok+0H1IifZEQ3o4tSSJyegxNBauorsfRQgOOFlbiaKEBRworcaq0+orlVCogJtALvcLbISnCF8mRvugU4MWOBYiIfoehqQD1Jgtyy6qRVWxAVnEVsooafxZV1jW7fId27ujRQY8eYXokhrdDjzA9vN1c27hqIiLHw9B0IHUNZpwsvYiTpdU4WXIRJ0ouIudcFXLLqmGyiGbXifT3QFyoD+JC9YgL9UGPDnr4e+nauHIiImVgaMpMXYMZBRU1OFPeOOWWVTdNhZW1l/Ws81veOhfEBHmhW4gPYkN80C3YG12CveHDFiQRkc3IMjQXLFiA119/HUVFRYiLi8P8+fMxePBgqcuyiZp6Ewov1KHwQi2KKmtRUHFpqkFBRS2KDXVXDUYAaOfhis4BXugU4IXOgV6ICfJC12BvBPu4cQBmIiI7k11ofv7553jyySexYMECDBw4EP/73/8watQoZGZmIiIiQurymmWxCBjqGlBeXY/yi/UorTKitKoOpReNKDEYUWyowzlDHc4ZjKisbbju53npXBDh54FIfw9Et/dEdHtPdAzwRJS/J/w8tQxHIiKJqIS4Vrum7fXt2xdJSUlYuHBh07xu3bph/PjxSE1Nve76BoMBer0elZWV8PHxue7yJrMFtQ1m1DVYUNdgRk29GdX1JlQbG6equl8nQ10DDLUNuFDbgMqaBlyorcf56gZU1NTDfJV7is3x1rkgpJ0bQvTuCPN1R5ivxy8/3RHh58FgJCJqpZZmgbVk1dKsr6/H/v37MXPmzMvmjxgxArt27Wp2HaPRCKPx195qDIbG8RnHvbMDGjdPWISAxSLQYBYwWwRMFgvqTRbUmxt/tiDrrstb5wJ/Ly0CvHWNk1fjzyAfNwTr3RDs44YgvRvvMxIROShZhWZZWRnMZjOCgoIumx8UFITi4uJm10lNTcWcOXOumH+ytBpqXcsS0d1VA3etBh5aDbx0LvD8ZfJ2c4GPmyt83Br/u52HFr4eWrTzcEU7D1f4e+rg6+kKnQu//E9EpGSyCs1Lfn9pUghx1cuVs2bNwowZM5peGwwGhIeHY/HkFHj7+EAFwEWjgkathotaBbVKBa2LGrpfJq2LGm6uGuhc1LwkSkRE1ySr0Gzfvj00Gs0VrcqSkpIrWp+X6HQ66HRXfu+wb0d/m17HJiIiktVIwFqtFsnJydi4ceNl8zdu3IgBAwZIVBUREVEjWbU0AWDGjBmYNGkSUlJS0L9/fyxatAh5eXl45JFHpC6NiIicnOxC8+6770Z5eTleeuklFBUVIT4+Ht9++y0iIyOlLo2IiJyc7L6n2Vr2+m4OERE5DntlgazuaRIREckZQ5OIiMhKDE0iIiIrye5BoNa6dIv2Und6RETkfC5lgK0f21FcaJaXlwMAwsPDJa6EiIikVl5eDr1eb7PPU1xo+vn5AQDy8vJsuqMcxaVuBPPz85326WHuA+4DZ99+gPugsrISERERTZlgK4oLTbW68TatXq93yhPlEh8fH6fefoD7AOA+cPbtB7gPLmWCzT7Ppp9GRESkYAxNIiIiKykuNHU6HV588cVmRz5xBs6+/QD3AcB94OzbD3Af2Gv7FdeNHhERkb0orqVJRERkLwxNIiIiKzE0iYiIrMTQJCIispJDhuaCBQsQHR0NNzc3JCcn46effrrm8tu2bUNycjLc3NzQsWNHvPfee21UqX20ZPu3bt0KlUp1xZSVldWGFdvO9u3bMXbsWISGhkKlUmHt2rXXXUdpx7+l+0Bp50Bqaip69+4Nb29vBAYGYvz48cjOzr7ueko6D25kHyjpPFi4cCF69uzZ1HFD//798d13311zHVsdf4cLzc8//xxPPvkkZs+ejfT0dAwePBijRo1CXl5es8vn5uZi9OjRGDx4MNLT0/H888/j8ccfx6pVq9q4ctto6fZfkp2djaKioqYpJiamjSq2rerqaiQkJOCdd96xanmlHX+g5fvgEqWcA9u2bcO0adPw888/Y+PGjTCZTBgxYgSqq6uvuo7SzoMb2QeXKOE8CAsLw2uvvYa0tDSkpaXhpptuwrhx43D06NFml7fp8RcOpk+fPuKRRx65bF5sbKyYOXNms8s/++yzIjY29rJ5Dz/8sOjXr5/darSnlm7/li1bBABRUVHRBtW1LQBizZo111xGacf/96zZB0o+B4QQoqSkRAAQ27Ztu+oySj8PrNkHSj8PfH19xQcffNDse7Y8/g7V0qyvr8f+/fsxYsSIy+aPGDECu3btanad3bt3X7H8yJEjkZaWhoaGBrvVag83sv2XJCYmIiQkBMOGDcOWLVvsWaasKOn4t5ZSz4HKykoAuGbH3Eo/D6zZB5co7Twwm81YsWIFqqur0b9//2aXseXxd6jQLCsrg9lsRlBQ0GXzg4KCUFxc3Ow6xcXFzS5vMplQVlZmt1rt4Ua2PyQkBIsWLcKqVauwevVqdO3aFcOGDcP27dvbomTJKen43yglnwNCCMyYMQODBg1CfHz8VZdT8nlg7T5Q2nlw+PBheHl5QafT4ZFHHsGaNWvQvXv3Zpe15fF3yFFOVCrVZa+FEFfMu97yzc13FC3Z/q5du6Jr165Nr/v374/8/HzMmzcPQ4YMsWudcqG0499SSj4Hpk+fjoyMDOzYseO6yyr1PLB2HyjtPOjatSsOHjyICxcuYNWqVZg8eTK2bdt21eC01fF3qJZm+/btodFormhVlZSUXPF/EZcEBwc3u7yLiwv8/f3tVqs93Mj2N6dfv344fvy4rcuTJSUdf1tSwjnw2GOPYd26ddiyZQvCwsKuuaxSz4OW7IPmOPJ5oNVq0blzZ6SkpCA1NRUJCQl46623ml3WlsffoUJTq9UiOTkZGzduvGz+xo0bMWDAgGbX6d+//xXLb9iwASkpKXB1dbVbrfZwI9vfnPT0dISEhNi6PFlS0vG3JUc+B4QQmD59OlavXo3NmzcjOjr6uuso7Ty4kX3QHEc+D35PCAGj0djsezY9/i1+dEhiK1asEK6urmLx4sUiMzNTPPnkk8LT01OcPn1aCCHEzJkzxaRJk5qWP3XqlPDw8BBPPfWUyMzMFIsXLxaurq5i5cqVUm1Cq7R0+998802xZs0akZOTI44cOSJmzpwpAIhVq1ZJtQmtUlVVJdLT00V6eroAIN544w2Rnp4uzpw5I4RQ/vEXouX7QGnnwKOPPir0er3YunWrKCoqappqamqallH6eXAj+0BJ58GsWbPE9u3bRW5ursjIyBDPP/+8UKvVYsOGDUII+x5/hwtNIYR49913RWRkpNBqtSIpKemyx6wnT54s/vCHP1y2/NatW0ViYqLQarUiKipKLFy4sI0rtq2WbP/cuXNFp06dhJubm/D19RWDBg0S33zzjQRV28alx+Z/P02ePFkI4RzHv6X7QGnnQHPbDkAsWbKkaRmlnwc3sg+UdB5MnTq16W9gQECAGDZsWFNgCmHf48+hwYiIiKzkUPc0iYiIpMTQJCIishJDk4iIyEoMTSIiIisxNImIiKzE0CQiIrISQ5OIiMhKDE0iIiIrMTSJiIisxNAkIiKyEkOTSCFKS0sRHByMV199tWnenj17oNVqsWHDBgkrI1IO9j1LpCDffvstxo8fj127diE2NhaJiYkYM2YM5s+fL3VpRIrA0CRSmGnTpmHTpk3o3bs3Dh06hH379sHNzU3qsogUgaFJpDC1tbWIj49Hfn4+0tLS0LNnT6lLIlIM3tMkUphTp06hsLAQFosFZ86ckbocIkVhS5NIQerr69GnTx/06tULsbGxeOONN3D48GEEBQVJXRqRIjA0iRTkmWeewcqVK3Ho0CF4eXlh6NCh8Pb2xvr166UujUgReHmWSCG2bt2K+fPnY9myZfDx8YFarcayZcuwY8cOLFy4UOryiBSBLU0iIiIrsaVJRERkJYYmERGRlRiaREREVmJoEhERWYmhSUREZCWGJhERkZUYmkRERFZiaBIREVmJoUlERGQlhiYREZGVGJpERERWYmgSERFZ6f8B4EUWnotXgZsAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline \n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "x = np.linspace(0,3,100)\n", "y = x*x\n", "\n", "plt.figure(figsize=(5,3))\n", "plt.plot(x,y)\n", "plt.xlabel('x')\n", "plt.ylabel('$x^2$')\n", "plt.xlim([0,3])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ " 数学的には、積分は曲線の下の面積を意味します" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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HntMu3fv1pYtW8441unr2tK5OnVd+/btq127dqmiokIJCQkaPXq0UlJSTllWgVhP211RXXTRRercufNJVxSlpaUnNfcJ3/3ud5sdf9ZZZ+nCCy/ssKxt1Zq5Nue6667Tl19+2d7xjHLqmrYXJ63pxIkTtXr1am3cuPGM75pz+rr6M9fmOGFdu3Tpoh/+8IcaOHCgYmNjddVVV+nvf/97s2MDtZ62K6ouXbpowIABSkpKarI/KSlJ119/fbPHDBo06KTx69at08CBA3X22Wd3WNa2as1cm5Oenq6ePXu2dzyjnLqm7cUJa2pZlh577DGtXLlSGzZsUJ8+fc54jFPXtTVzbY4T1vWbLMuSx+Np9s8Ctp7temtGO1m2bJl19tlnWwsWLLCysrKsyZMnW+edd5518OBBy7IsKyYmxnrooYcax+fm5lrnnnuu9cQTT1hZWVnWggULrLPPPtt67733TE2hxfyd62uvvWYlJiZaOTk51p49e6yYmBhLkpWQkGBqCi1SWVlppaenW+np6ZYka8aMGVZ6erqVn59vWVZwram/c3Xqmv7hD3+wIiMjreTkZOvw4cONW01NTeOYYFnX1szVies6ZcoUa9OmTVZeXp61e/du65lnnrE6depkrVu3zrIsc+tpy6KyLMt68803rYsvvtjq0qWL9dOf/rTJbaCjR4+2br755ibjk5OTrauvvtrq0qWLdckll1izZ88OcOLW82eu06ZNs37wgx9YXbt2tc4//3xr8ODB1gcffGAgtX9O3Kr7zW306NGWZQXXmvo7V6euaXNzlGQtXLiwcUywrGtr5urEdR07dmzjf4u+853vWNHR0Y0lZVnm1pP3UQEAbM1231EBAPB1FBUAwNYoKgCArVFUAABbo6gAALZGUQEAbI2iAgDYGkUFALA1igoAYGsUFQDA1igqAICt/R97f9ObFCBbYwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "y0 = np.zeros(100)\n", "\n", "plt.figure(figsize=(5,3))\n", "plt.fill_between(x, y0, y, where=y>=y0, facecolor='green')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ " このような面積をコンピュータを使って計算する方法を考えます。以下の2点について考えてみましょう。\n", "\n", "- 面積を近似的に見積もる方法\n", "\n", "- より正確に計算するには?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 長方形近似\n", "\n", " 面積を求める最も簡単な方法は次のとおりです。\n", "\n", "1. 領域を多数の長方形に分割\n", "\n", "2. それぞれの長方形の面積を計算\n", "\n", "3. それらを足し合わせる\n", "\n", " このような近似法を長方形近似といいます。長方形近似で面積を計算する関数Rectangleを下記のように定義します。\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "slideshow": { "slide_type": "subslide" }, "tags": [] }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "slideshow": { "slide_type": "subslide" }, "tags": [] }, "outputs": [], "source": [ "def Rectangle(start, end, parts):\n", " \"\"\"\n", " Rectrangle sum rule\n", " \n", " \"\"\"\n", "\n", " #define the function\n", " f = lambda x: x * x \n", " \n", " #define the X,Y points\n", " deltax = (end - start) / parts\n", " resultsx = np.linspace(start, end, parts)\n", " resultsy = f(resultsx)\n", " \n", " # To calculate the area\n", " area = np.empty([parts], float)\n", " for i in range(parts):\n", " area[i] = resultsy[i] * deltax\n", " return sum(area) " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ " startとendは積分の範囲、partsは分割数を指定します。" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "slideshow": { "slide_type": "subslide" }, "tags": [] }, "outputs": [], "source": [ "def Rectangle_plot(start, end, parts):\n", " #define the function\n", " f = lambda x: x * x \n", " \n", " #define the X,Y points\n", " deltax = (end - start) / parts\n", " resultsx = np.linspace(start, end, parts)\n", " resultsy = f(resultsx)\n", "\n", " x = np.linspace(start,end,100)\n", " y = x*x \n", " plt.plot(x, y, 'r')\n", " plt.xlim([start,end])\n", " plt.bar(resultsx+deltax/2, resultsy, deltax, edgecolor ='black')\n", " #plt.bar(resultsx, resultsy, deltax, edgecolor ='black')\n", " plt.show()\n", " #print(\"The Sum of the area is: \", sum(area))\n", " " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ " 0 ~ 3までの間を100個に分割して面積を求めるには以下のようにします。" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "slideshow": { "slide_type": "fragment" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "9.045454545454543" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Rectangle(0,3,100)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAGdCAYAAAAvwBgXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA6nUlEQVR4nO3deZyNdf/H8deZMYYwQ7ZJjdyV7XaXVLRRSrZMltxlGVvxu9FGVJJKimiTdqU9S0hIkq1UEhFZMoxlZsxiMJh95sycc67fHxdTk6E5nJnrLO/n43E9nLnONed8XF2Peve9Pt/vZTMMw0BERETEAkFWFyAiIiKBS0FERERELKMgIiIiIpZREBERERHLKIiIiIiIZRRERERExDIKIiIiImIZBRERERGxTIXy/kKXy0VKSgrVqlXDZrOV99eLiIjIWTAMg6ysLOrVq0dQkOfGMco9iKSkpBAZGVneXysiIiIekJiYyEUXXeSxzyv3IFKtWjXA/IuEhYWV99eLiIjIWcjMzCQyMrLov+OeUu5B5OTtmLCwMAURERERH+Pptgo1q4qIiIhlFERERETEMgoiIiIiYhkFEREREbGMgoiIiIhYRkFERERELKMgIiIiIpZREBERERHLKIiIiIiIZRRERERExDIKIiIiImIZBRERERGxjIKIiIiI/DOHo0w+VkFERERE/tkLL5TJxyqIiIiIyJmtXYvx0ktl8tEKIiIiInJ6GRnQvz82wyiTj1cQERERkdN78EGIj8ceEVEmH68gIiIiIiWbOxc++wyCgjjw5JNl8hUKIiIiInKqxEQYNsx8PW4cOZdfXiZfoyAiIiIixTmd0L8/pKdDq1bw1FNl9lUVyuyTRURExDe9/DL88APOypXZ9cQT2LdvZ/fu3WXyVTbDKKM22NPIzMwkPDycjIwMwsLCyvOrRURE5J/89hvGdddhczgYDHz4t7c9/d9vjYiIiIiIKTsb+vTB5nDwBbC4yygiatUHIDd2HZm/zPP4V6pHREREREwjR8KePRTUrcv/gJBa9QmNuIzQiMsIDqtTJl+pICIiIiKwYAF88AHYbMQ/+yzHy+lrFUREREQCXWIi/N//ma/HjCH7mmvK7asVRERERAKZ0wkDBsDx43DNNTBhQrl+vZpVRUREAtlLL8GaNeZU3XHjsO/YQUxMTLl9vYKIiIhIoPr1V4ynnsIGDMnL4+MePcq9BAURERGRQJSZWTRVdy6w5C9TdfP2byLjp5nlUoaCiIiISCC6/37Yvx/7BRcw9OBBKp+YqgtQeDSx3MpQs6qIiEigmTnT3IKCiJ84kQwLS1EQERERCST79sHw4ebr8ePJufJKS8tREBEREQkUhYXQt6+5lHubNjBunNUVqUdEREQkYDz9NPz6K45q1YgZM4bCrVvLdapuSRREREREAsGqVRgvvIAN6JWVxZdRUVZXBCiIiIiI+L/Dh6F/f2yGwbvAD1GjiagZCZTvVN2SqEdERETEn7lcMHAgpKaSd+mlPAyE1IwseqpuhfC6lpanICIiIuLPXn0Vvv0WKlUi7vnnybO6nr9REBEREfFXmzbB2LHm61dfJf+yy6ytpwQKIiIiIv4oKwv69DGn7PbsCUOHWl1RidSsKiIi4m8MA+67D/buxR4Rwa4HHsC5ZYvlU3VLoiAiIiLibz75BGbOxAHcmprKultusbqi01IQERER8ScxMeYD7YCngd1eNFW3JOoRERER8Rd5edCrF+TmknnttUzBu6bqlkRBRERExF+MGgXbt0OdOsQ/+yyG1fWUgm7NiIiI+IP582H6dLDZzP6QmjWtrqhUNCIiIiLi6+LiYMgQ8/Xjj0P79tbW4wa3g4jT6WTy5Mk0adKE8847jwsvvJA+ffqwb9++sqhPREREzqSgAHr3hsxMsps3Z3P37mzevNkrp+qWxO1bM08//TTz589n0qRJtGzZktjYWF577TXat2/Pvn37sNlsZVGniIiIlGTsWPj1V44BV27dSuK111pdkVvcDiJffvkl9913H3fddRcADRo0oE6dOrRo0YKDBw9Sr149jxcpIiIiJViyBKZOBeAeINfLp+qWxO1bMzVr1mTWrFn8+uuvOBwO9uzZw+uvv87111/PBRdcUBY1ioiIyN8dOGA+VRc41LcvX+H9U3VL4nYQmTJlCrGxsVx77bVUrlyZRo0akZiYyKpVq0q8LWO328nMzCy2iYiIyDkoLDT7Qo4fh5YtSXnoIasrOmtuB5GmTZvy5JNPMnPmTH7//XeWL19Obm4u7du3p7Cw8JTjJ0+eTHh4eNEWGRnpkcJFREQC1pNPwi+/QHg4zJ2LERJidUVnza0gkp+fT7t27WjRogXR0dE0a9aMDh068PXXX7N9+3Y+/vjjU35n7NixZGRkFG2JiYmeql1ERCTwfPMNvPii+frDD+Ff/7K2nnPkVrPqunXr2Lp1K9dff32x/TVq1KBx48Zs27btlN8JDQ0lNDT03KoUERERSEyEAQMAONyrF0kNGoAPTdUtiVtBxOFwABATE8M111xTtD8/P5+4uLiimTQiIiLiYSf7Qo4eZbPNxvVz51Iwd67VVZ0zt4LIDTfcwKWXXsqAAQOYNm0al19+OSkpKUyYMAGXy0Xv3r3Lqk4REZHANm4crFuHs0oV7srJoVrUaEJ8bKpuSdzqEalatSrfffcdrVu3ZtiwYVxyySV069aNkJAQfvzxR+rXr19WdYqIiASur7+Gl14CIGH8ePbjm1N1S+L2gmb169fnvffeK4taRERE5O8SEor6QnjoIdLbtbO2Hg/TQ+9ERES8VUEB9OplrhfSqlXRqIg/cXtERERERMrJmDGwYQOOatXY9dRTFOzY4dMzZEqiICIiIuKNvvwSpk0D4M6sLJbccYe19ZQRBRERERFvs3cv3HMPAC8B63zwYXalpR4RERERb5KXB3fdBZmZZF95JU/gPzNkSqIgIiIi4k0eegh+/x1q1yZu8mQcVtdTxnRrRkRExFt8+im8/z7YbDB7NoXnn291RWVOIyIiIiLeYMcOGDbMfP3MM3DbbZaWU140IiIiImK1rCz4738hL4/M665j7+23+/zD7EpLQURERMRKhgGDB8Pu3SRj48r160lr2dLqqsqNgoiIiIiVXn8d5s/HCA7mv04nhh9P1S2JekRERESssm4dPPIIAEmjRrEe/56qWxIFERERESscPmyuF+JwQO/eHOnVy+qKLKEgIiIiUt6cTujbF1JSoEkTmDHDnLIbgNQjIiIiUt7Gj4fVq3FWrszu554jPzY2IGbIlERBREREpDwtWQKTJgEQnZfH3LvusrggaymIiIiIlJe9e6F/fwBeB1YF2AyZkqhHREREpDzk5kLPnpCRQXbz5jxC4M2QKYmCiIiISFkzDHP59m3boE4d4qZModDqmryEbs2IiIiUtenT4bPPIDgY5s6lMCzM6oq8hkZEREREytL69TBihPl6yhRo29bScryNRkRERETKyslFywoLOd6uHXG33BIwD7MrLQURERGRsuBwwN13Q1ISu202Wq5eTdY111hdlddREBERESkLY8bADz/gPO88uufmUlFTdUukHhERERFPmzsXpk4FIGHC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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Rectangle_plot(0,3,100)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "0 ~ 3までの間を20個に分割して面積を求めます。" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "slideshow": { "slide_type": "fragment" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "9.236842105263156" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Rectangle(0,3,20)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Rectangle_plot(0,3,20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " どちらが正確な値をだしているでしょうか。" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Rectangle(0,3,100)\n", "Rectangle_plot(0,3,100)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 台形公式\n", "\n", " 長方形近似は比較的簡単に計算することができますが、かなり大雑把な計算です。\n", " \n", " より良い方法は、長方形ではなく台形を使用することです。この方法は単純ですが、多くの場合十分な結果が得られます。\n", " \n", " 台形近似で面積を計算する関数Trapezoidを下記のように定義します。" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "slideshow": { "slide_type": "subslide" }, "tags": [] }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "slideshow": { "slide_type": "subslide" }, "tags": [] }, "outputs": [], "source": [ "def Trapezoid(start, end, parts):\n", " \"\"\"\n", " Trapezoid sum rule\n", " \n", " \"\"\"\n", " #define the function\n", " f = lambda x: x * x \n", " \n", " #define the X, Y points \n", " deltax = (end - start) / parts\n", " resultsx = np.linspace(start, end, parts+1)\n", " resultsy = f(resultsx)\n", "\n", " # To calculate the area\n", " area = np.empty([parts], float)\n", " for i in range(parts):\n", " area[i] = (resultsy[i]+resultsy[i+1]) * deltax/2\n", " return sum(area)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "slideshow": { "slide_type": "subslide" }, "tags": [] }, "outputs": [], "source": [ "def Trapezoid_plot(start, end, parts):\n", " #define the function\n", " f = lambda x: x * x \n", "\n", " #define the X, Y points \n", " deltax = (end - start) / parts\n", " resultsx = np.linspace(start, end, parts+1)\n", " resultsy = f(resultsx)\n", "\n", " x = np.linspace(start,end,100)\n", " y = f(x) \n", " plt.plot(x, y, 'r')\n", " plt.xlim([start,end])\n", "\n", " y2 = np.array([0,0])\n", " for i in range(parts):\n", " x0 = resultsx[i:i+2]\n", " y1 = resultsy[i:i+2]\n", " plt.fill_between(x0, y1, y2, where=y1>=y2, facecolor='blue')\n", " linex, liney = [resultsx[i+1], resultsx[i+1]], [0, resultsy[i+1]]\n", " plt.plot(linex, liney, color='black', linewidth=2.0) \n", "\n", " plt.show()\n", " #print(\"The Sum of the area is: \", sum(area))\n", " " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "0 ~ 3までの間を5個に分割して面積を求めます。" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "9.045" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Trapezoid(0,3,5)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "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SpUqf/oc98uMZWVbZsT9MmNBEJCQkJDhzyK2T2ZuruzhDR06NChatGjQr1+/YPHixUGXLl2CY445Jli1alUQBEHQrVu3oFWrVunrr1ixIihZsmTwwAMPBIsXLw769esXFC1aNPjkk08iGStPyuy2fPXVV4NRo0YFS5cuDRYtWhR069YtAIIRI0aE9SvkCrt37w7mz58fzJ8/PwCCV155JZg/f36wevXqIAjcJzMjs9vSfTJj9957bxATExNMnTo12LhxY/qyd+/e9HXcL49MVral+2XGHn300WD69OnBypUrgwULFgSPPfZYUKhQoWDixIlBEGTfPhnREhIEQfD2228Hp556alCsWLHgkksuOeBUqdatWwfXXHPNAetPnTo1uPjii4NixYoFp512WtCrV69IR8qzMrMte/ToEZxxxhlB8eLFg+OOOy646qqrgnHjxoWQOnf57XS8/11at24dBIH7ZGZkdlu6T2Yso20IBP37909fx/3yyGRlW7pfZuzOO+9M/7458cQTg7p166YXkCDIvn0yKgh+nUkiSZKUg7x3jCRJCoUlRJIkhcISIkmSQmEJkSRJobCESJKkUFhCJElSKCwhkiQpFJYQSZIUCkuIJEkKhSVEkiSFwhIiSZJCYQmRJEmh+H+2dGG1GlF2egAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Trapezoid_plot(0,3,5)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "0 ~ 3までの間を10個に分割して面積を求めます。" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "9.045" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Trapezoid(0,3,10)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Trapezoid_plot(0,3,10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " 台形近似の高い精度を確認することができます。" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## シンプソンの公式\n", "\n", " 台形公式は単純で、これまで見てきたように数行のコードしか必要としません。高い精度が必要とされない計算には適しています。\n", " \n", " より高い精度が必要な場合にはどうしたら良いでしょうか。**計算に使用するステップ数 N を増やす**ことで精度を上げることができます。\n", " \n", " ただし場合によっては、**計算が遅くなる**ことがあります。積分を高い精度を維持しながらすばやく答えを得ることができるでしょうか。" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ " 積分する関数を、曲線で近似するとより良い結果が得られることがあります。**シンプソンの公式**は、二次曲線を使用してこれを行います。二次方程式を完全に指定するには、**直線のように 2 点だけでなく、3 点が必要です。**\n", "\n", " 被積分関数が $f(x)$ で示され、隣接する点の間隔が $h$ で、$x$ = −$h$、0、および +$h$ に 3 つの点があるとします。 これらの点を通る 2 次 $Ax^2 + Bx + C$ を当てはめると、定義により次のようになります。\n", "\n", "$$f(-h) = Ah^2 - Bh + C$$\n", "\n", "$$f(0) = C$$ \n", "\n", "$$f(h) = Ah^2 + Bh + C$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ " これらの方程式を解くと、\n", "\n", "$$ A = \\frac{1}{h^2}[\\frac{f(-h)}{2} - f(0) + \\frac{f(h)}{2}]$$\n", "\n", "$$ B=\\frac{1}{2h}[f(h)-f(-h)] $$ \n", "\n", "$$ C = f(0)$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ " −$h$ から +$h$ までの $f(x)$ の曲線の下の面積は、二次方程式の下の面積によって近似的に与えられます。\n", "\n", "$$ \\int^h_{-h} (Ax^2 + Bx + C) dx = \\frac{2}{3}Ah^3 + 2Ch = \\frac{1}{3}h[f(-h)+4f(0)+f(h)]$$\n", "\n", " これが**シンプソンの公式**です。これにより、関数の隣接する 2 つのスライスの下の領域の近似値が得られます。\n", " \n", " 面積の式は、ちょうど台形規則と同様に、$h$ と等間隔の点での関数の値のみを含みます。したがって、シンプソンの公式を使用する場合に、二次方程式の詳細について心配する必要はありません。**数値をこの式に代入するだけ**で答えを得ることができます。" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ " シンプソンの公式を適用するには、まず積分領域を分割します。続いてこの公式を使用して連続する分割領域の面積を計算し、すべての領域の面積を加算して全面積を得ます。\n", "\n", " 幅 $h$ のスライスで $x$ = a から $x$ = b までを統合する場合、最初の領域の 3 つの点は、$x = a、a + h、a + 2h$です。\n", " \n", " 2 番目の領域は$a + 2h、a + 3h、a + 4h$ になります。\n", " \n", " 積分全体の近似値は次のように与えられます。\n", "\n", "$$ \n", "\\begin{aligned}\n", "I(a,b) \\approx & \\frac{1}{3}h[f(a)+4f(a+h)+f(a+2h)] \\\\\n", " & + \\frac{1}{3}h[f(a+2h)+4f(a+3h)+f(a+4h)] \\\\\n", " & +...\\\\\n", " & +...\\\\\n", " & + \\frac{1}{3}h[f(a+(N-2)h)+4f(a+(N-1)h)+f(b)] \n", "\\end{aligned}\n", "$$\n", "\n", "see more details in: https://en.wikipedia.org/wiki/Simpson%27s_rule" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 課題1:シンプソンの公式\n", "\n", " 以下のコードを、シンプソン公式の関数を定義して完成させてください。" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "def Simpson(start, end, parts, plot=1):\n", " \"\"\"\n", " Simpson sum rule\n", " \n", " \"\"\"\n", " #define the function\n", " f = lambda x: x**4 - 2*x + 1 \n", " \n", " #define the X, Y points \n", " deltax = (end - start) / parts\n", " resultsx = np.linspace(start, end, parts+1)\n", " resultsy = f(resultsx)\n", "\n", " #-----------------------------------------------------\n", " #define the Simpson points and calculate the area here\n", " #-----------------------------------------------------\n", " area = []\n", "\n", " #By default, we also output the plot.\n", " if plot==1:\n", " x = np.linspace(start,end,100)\n", " y = f(x) \n", " plt.plot(x, y, 'r')\n", " \n", " #-----------------------------------------------------\n", " #draw the curves based on Simpson points here\n", " #----------------------------------------------------- \n", " \n", " plt.xlim([start,end])\n", " plt.ylim([min(y),max(y)])\n", " plt.show()\n", " \n", " return sum(area)\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 課題2:積分計算\n", "\n", " 長方形近似、台形近似、シンプソンの公式を使用して、次の積分を計算してください。\n", "\n", "$$\\int_0^3 (x^2-x+1 dx)$$\n", "\n", "$$\\int_0^3 (x^4-x+1 dx)$$\n", "\n", "$$\\int_0^3 \\text{exp}(-x^2) dx$$\n", "\n", " シンプソンの公式を使う場合、いくつのサンプリングポイントが必要になるか考えてみましょう?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 発展:高次へのさらなる展開 \n", " これまで見てきたように、台形公式は被積分関数 $f(x)$ を直線で近似することに基づいていますが、シンプソンの公式は二次方程式を使用しています。高次の多項式を使用し、$f(x)$ を3次や4次などでフィッティングすることにより、高次の (より正確な) 積分公式を作成できます。\n", "\n", "台形公式とシンプソンの公式の一般的な形式は次のとおりです。\n", "\n", "$$\\int_a^b f(x)dx \\approx \\sum_{k=1}^{N}w_kf(k)$$\n", "\n", "ここで、$x_k$ は被積分関数を計算するサンプル ポイントの位置であり、$w_k$ は重みのセットです。\n", "\n", "- 台形公式では、最初と最後の重みは 1/2 で、他はすべて 1 です。\n", "\n", "\n", "- シンプソンの公式では、最初と最後のスライスの重みは1/3で、他のスライスの重みは4/3と2/3の間で交互になります。\n", "\n", "\n", "\n", "\n", "\n", "\n", "|次数| 近似法 | 係数 |\n", "|-----|:-------------:|--------------------------------------------------:|\n", "|0 | 長方形 | 1,1,........1,1|\n", "|1 | 直線 |1/2,1,1,.....1,1/2|\n", "|2 | 二次曲線 |1/3, 4/3, 2/3, ..,4/3,1/3|\n", "|3 | 三次曲線 |...................|" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 発展:ガウス求積法\n", "\n", " ここまでサンプルポイントは等間隔であると仮定しており、これにより比較的簡単にプログラムを作成することができます。一方で、点の間隔が不均一な積分法を導出することもできます。場合によっては、少数の点数で非常に正確な答えを出すこともできます。これには **Gaussian Quadrature** と呼ばれるよく知られた方法があります。\n", "\n", "Gaussian Quadrature を数学の基礎から紹介する wiki ページ。\n", "https://ja.wikipedia.org/wiki/ガウス求積" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "subslide" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "8.666666666666684\n" ] } ], "source": [ "from numpy import ones,copy,cos,tan,pi,linspace\n", "\n", "def gaussxw(N):\n", "\n", " # Initial approximation to roots of the Legendre polynomial\n", " a = linspace(3,4*N-1,N)/(4*N+2)\n", " x = cos(pi*a+1/(8*N*N*tan(a)))\n", "\n", " # Find roots using Newton's method\n", " epsilon = 1e-15\n", " delta = 1.0\n", " while delta>epsilon:\n", " p0 = ones(N,float)\n", " p1 = copy(x)\n", " for k in range(1,N):\n", " p0,p1 = p1,((2*k+1)*x*p1-k*p0)/(k+1)\n", " dp = (N+1)*(p0-x*p1)/(1-x*x)\n", " dx = p1/dp\n", " x -= dx\n", " delta = max(abs(dx))\n", "\n", " # Calculate the weights\n", " w = 2*(N+1)*(N+1)/(N*N*(1-x*x)*dp*dp)\n", "\n", " return x,w\n", "\n", "\n", "def f(x):\n", " return x**5 - 2*x + 1\n", "\n", "N = 3\n", "a,b = 0.0, 2.0\n", "\n", "# Calculate the sample points and weights, then map them\n", "# to the required integration domain\n", "x,w = gaussxw(N)\n", "xp = 0.5*(b-a)*x + 0.5*(b+a)\n", "wp = 0.5*(b-a)*w\n", "\n", "# Perform the integration\n", "s = 0.0\n", "for k in range(N):\n", " s += wp[k]*f(xp[k])\n", "print(s)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### scipy の組み込み関数\n", "\n", "https://docs.scipy.org/doc/scipy/reference/integrate.html#module-scipy.integrate\n", "\n", "```python\n", "from scipy import integrate\n", "f = lambda x: x * x \n", "integrate.quad(f, 1, 3) \n", "```" ] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python [conda env:base] *", "language": "python", "name": "conda-base-py" }, "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.12" } }, "nbformat": 4, "nbformat_minor": 4 }