{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# メモ\n", "IPython を起動するとき -pylab をつけるといろいろ自動で import してくれるようだ.\n", "ただどのライブラリを使っているかわからなくなるのであまりやらない方がいい." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# イントロ" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAEACAYAAABWLgY0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEi5JREFUeJzt3W2MpeVdx/HvDxcVimWsmlVB3C2BKC90S5MtODV7TGvD\nsnF5g6E+hMiLuqHVNsZsbNwmOyaOMSFqS4hZN9VGFBvUlEoyrbFGTpoSpZVlW1tAUXYt0rrR0NNH\nXtD074tzFobjPJxz5syeMxffTzKZ++F/7vufaze/ueY6c8+kqpAktemiWTcgSdo+hrwkNcyQl6SG\nGfKS1DBDXpIaZshLUsNGCvkkv5bks0k+k+S+JN++Rs3dSZ5KcjrJvum3Kkka16Yhn+QHgV8Frq+q\nHwN2AW8dqjkIXF1V1wBHgBPb0KskaUyjLtd8G/CqJLuAS4EvDJ2/BbgXoKoeAS5PsntqXUqSJrJp\nyFfVF4DfAz4PPAv0qurvh8quAJ5Ztf/s4JgkaYZGWa5ZoD9T/2HgB4HLkvz8djcmSdq6XSPUvBl4\nuqqeA0jyIeAngL9YVfMs8EOr9q8cHHuZJP6iHEmaQFVlkteNsib/eeCGJN+ZJMCbgCeGah4EbgdI\ncgP9JZ1z6zQ69x/Hjx+feQ/2aZ87tUf7nOLHl75Evf3tk2T7i0ZZk/8k8NfAY8CnB4dPJjmS5JcH\nNR8BziT5d+CPgK11JUmvdL0eHDsGy8tbuswoyzVU1W8BvzV0+I+Gan5lS51Ikl7y8MP9gF9Y2NJl\nRgr5V5pOpzPrFkZin9O1E/rcCT2CfU7FoUNTuUyqLtx7oUnqQt5PklqQhNrGN14lSTuUIS9JDTPk\nJalhhrwkNcyQl6SGGfKS1DBDXpIaZshLUsMMeUlqmCEvSQ0z5CWpYYa8JDXMkJekhhnyktQwQ16S\nGmbIS1LDDHlJatimIZ/k2iSPJTk1+PzlJO8cqjmQpDeoOZXkPdvXsiRpVJv+jdeq+jfgdQBJLgL+\nC3hgjdKPV9Xh6bYnSdqKcZdr3gz8R1U9s8a5if7+oCRp+4wb8rcBH1zn3I1JTidZSXLdFvuSJE1B\nqmq0wuRi4AvAdVX1P0PnLgO+VVXfSHIQeF9VXbvGNWrU+0mS+pJQVROtlmy6Jr/KQeDR4YAHqKqv\nrdr+aJI/TPKaqnpuuHZpaenF7U6nQ6fTGathSWpdt9ul2+1O5VrjzOQ/CPxtVf3pGud2V9W5wfZ+\n4C+ras8adc7kJWlM2z6TT3Ip/Tddf3nVsSNAVdVJ4NYkdwIvAM/TX7uXJM3YyDP5qdzMmbwkjW0r\nM3mfeJWkhhnyktQwQ16SGmbIS1LDDHlJapghL0kNM+QlqWGGvCQ1zJCXpIYZ8pLUMENekhpmyEtS\nwwx5SWqYIS9JDTPkJalhhrwkNcyQl6SGGfKS1DBDXpIatmnIJ7k2yWNJTg0+fznJO9eouzvJU0lO\nJ9m3Pe1KksaxachX1b9V1euq6nrg9cDXgQdW1yQ5CFxdVdcAR4AT29GspDm2sgK93suP9Xr945qZ\ncZdr3gz8R1U9M3T8FuBegKp6BLg8ye4p9Cdpp1hchGPHXgr6Xq+/v7g4275e4cYN+duAD65x/Apg\ndfA/Ozgm6ZViYQGWl/vBfvZs//Pycv+4ZmbXqIVJLgYOA+/eyg2XlpZe3O50OnQ6na1cTtI8WViA\no0dh7144c8aAn1C326Xb7U7lWqmq0QqTw8Dbq+qmNc6dAB6qqvsH+08CB6rq3FBdjXo/STvQ+SWa\no0fhrrucyU9JEqoqk7x2nOWan2PtpRqAB4HbB83cAPSGA15S484H/PIy7Nnz0tLN8JuxuqBGmskn\nuRT4T+C1VfXVwbEjQFXVycH+PcBN9H/65o6qOrXGdZzJS61aWem/ybp65t7rwcMPw6FDs+urAVuZ\nyY+8XDMNhrwkje9CLddIknYYQ16SGmbIS1LDDHlJapghL0kNM+QlqWGGvCQ1zJCXpIYZ8pLUMENe\nkhpmyEtSwwx5SWqYIS9JDTPkJalhhrwkNcyQl6SGGfKS1DBDXpIaZshLUsNGCvkklyf5qyRPJPlc\nkjcMnT+QpJfk1ODjPdvTriRpHLtGrHsf8JGq+tkku4BL16j5eFUdnl5rkqSt2jTkk7wa+Mmq+iWA\nqvom8JW1SqfbmiRpq0ZZrtkL/G+SDwyWYk4muWSNuhuTnE6ykuS6KfcpSZrAKMs1u4DrgXdU1T8n\neS/wbuD4qppHgauq6htJDgIfBq5d62JLS0svbnc6HTqdzmSdS1Kjut0u3W53KtdKVW1ckOwG/rGq\nXjvYfyPwG1X1Mxu85gzw+qp6buh4bXY/SdLLJaGqJloS33S5pqrOAc8kOT8zfxPw+FADu1dt76f/\nxeNlAS9JuvBG/emadwL3JbkYeBq4I8kRoKrqJHBrkjuBF4Dngdu2pVtJ0lg2Xa6Z6s1crpGksW3r\nco0kaecy5CWpYYa8JDXMkJekhhnyktQwQ16SGmbIS1LDDHlJapghL0kNM+QlqWGGvCQ1zJCXpIYZ\n8pLUMENekhpmyEtSwwx5SWqYIS9JDTPkJalhhrwkNWykkE9yeZK/SvJEks8lecMaNXcneSrJ6ST7\npt+qJGlco87k3wd8pKp+FPhx4InVJ5McBK6uqmuAI8CJqXYpbZeVFej1Xn6s1+sflxqwacgneTXw\nk1X1AYCq+mZVfWWo7Bbg3sH5R4DLk+yedrPS1C0uwrFjLwV9r9ffX1ycbV/SlIwyk98L/G+SDyQ5\nleRkkkuGaq4Anlm1/+zgmDTfFhZgebkf7GfP9j8vL/ePSw3YNWLN9cA7quqfk7wXeDdwfJIbLi0t\nvbjd6XTodDqTXEaanoUFOHoU9u6FM2cMeM1ct9ul2+1O5Vqpqo0L+ssu/1hVrx3svxH4jar6mVU1\nJ4CHqur+wf6TwIGqOjd0rdrsftIFd36J5uhRuOsuZ/KaO0moqkzy2k2XawZB/UySaweH3gQ8PlT2\nIHD7oJkbgN5wwEtz6XzALy/Dnj0vLd0Mvxkr7VCbzuQBkvw48H7gYuBp4A7grUBV1clBzT3ATcDX\ngTuq6tQa13Emr/mystJ/k3X1zL3Xg4cfhkOHZteXtMpWZvIjhfy0GPKSNL5tXa6RJO1chrwkNcyQ\nl6SGGfKS1DBDXpIaZshLUsMMeUlqmCEvSQ0z5CWpYYa8JDXMkJekhhnyktQwQ16SGmbIS1LDDHlJ\napghL0kNM+QlqWGGvCQ1zJCXpIbtGqUoyVngy8C3gBeqav/Q+QPA39D/I98AH6qq355in5KkCYwU\n8vTDvVNVX9qg5uNVdXgKPUmSpmTU5ZqMUDvRXxKXJG2fUUO+gI8l+VSSt61Tc2OS00lWklw3pf4k\nSVsw6nLNYlV9Mcn30Q/7J6rqE6vOPwpcVVXfSHIQ+DBw7VoXWlpaenG70+nQ6XQmalySWtXtdul2\nu1O5VqpqvBckx4GvVtXvb1BzBnh9VT03dLzGvZ8kvdIloaomWhLfdLkmyaVJLhtsvwp4C/DZoZrd\nq7b30//i8bKAlyRdeKMs1+wGHkhSg/r7qurvkhwBqqpOArcmuRN4AXgeuG3bOpYkjWzs5Zot3czl\nGkka27Yu10iSdi5DXpIaZshLUsMMeUlqmCEvSQ0z5CWpYYa8JDXMkJekhhnyktQwQ16SGmbIS1LD\nDHlJapghL0kNM+QlqWGGvCQ1zJCXpIYZ8pLUMENekhpmyEtSw0YK+SRnk3w6yWNJPrlOzd1Jnkpy\nOsm+6bYpSZrEqDP5bwGdqnpdVe0fPpnkIHB1VV0DHAFOTLFHrbayAr3ey4/1ev3jkjRk1JDPJrW3\nAPcCVNUjwOVJdm+xN61lcRGOHXsp6Hu9/v7i4mz7kjSXRg35Aj6W5FNJ3rbG+SuAZ1btPzs4pmlb\nWIDl5X6wnz3b/7y83D8uSUN2jVi3WFVfTPJ99MP+iar6xCQ3XFpaenG70+nQ6XQmucwr28ICHD0K\ne/fCmTMGvNSYbrdLt9udyrVSVeO9IDkOfLWqfn/VsRPAQ1V1/2D/SeBAVZ0bem2Nez+t4fwSzdGj\ncNddzuSlxiWhqjLJazddrklyaZLLBtuvAt4CfHao7EHg9kHNDUBvOOA1JecDfnkZ9ux5aelm+M1Y\nSWKEmXySvcAD9NfldwH3VdXvJjkCVFWdHNTdA9wEfB24o6pOrXEtZ/JbtbLSf5N19cy914OHH4ZD\nh2bXl6Rts5WZ/NjLNVthyEvS+LZ1uUaStHMZ8pLUMENekhpmyEtSwwx5SWqYIS9JDTPkJalhhrwk\nNcyQl6SGGfKS1DBDXpIaZshLUsMMeUlqmCEvSQ0z5CWpYYa8JDXMkJekhhnyktSwkUM+yUVJTiV5\ncI1zB5L0BudPJXnPdNuUJE1i1xi17wIeB169zvmPV9XhrbckSZqWkWbySa4Ebgbev1HZVDqSJE3N\nqMs1fwAcBWqDmhuTnE6ykuS6rbcmSdqqTUM+ySHgXFWdpj9bX2vG/ihwVVXtA+4BPjzVLiVJExll\nTX4ROJzkZuAS4LuS3FtVt58vqKqvrdr+aJI/TPKaqnpu+GJLS0svbnc6HTqdzhbal6T2dLtdut3u\nVK6Vqo1WYIaKkwPArw+/wZpkd1WdG2zvB/6yqvas8foa536SJEhCVU30vuc4P10zfNMjQFXVSeDW\nJHcCLwDPA7dNel1J0vSMNZPf8s2cyUvS2LYyk/eJV0lqmCEvSQ0z5CWpYYa8JDXMkJekhhnyktQw\nQ16SGmbIS1LDDHlJapghL0kNM+QlqWGGvCQ1zJCXpIYZ8pLUMENekhpmyEtSwwx5SWqYIS9JDTPk\nJalhI4d8kouSnEry4Drn707yVJLTSfZNr0VJ0qTGmcm/C3h8rRNJDgJXV9U1wBHgxBR6m5lutzvr\nFkZin9O1E/rcCT2Cfc6TkUI+yZXAzcD71ym5BbgXoKoeAS5PsnvdC/Z6sLIyXqcX0E75h7fP6doJ\nfe6EHsE+58moM/k/AI4Ctc75K4BnVu0/Ozj2//V6cOwYLC6O2qMkaUKbhnySQ8C5qjoNZPAxuWPH\nYHkZFha2dBlJ0uZStd7kfFCQ/A7wi8A3gUuA7wI+VFW3r6o5ATxUVfcP9p8EDlTVuaFrbXwzSdKa\nqmqiCfamIf+y4uQA8OtVdXjo+M3AO6rqUJIbgPdW1Q2TNCRJmp5dk74wyRGgqupkVX0kyc1J/h34\nOnDH1DqUJE1srJm8JGlnmfoTr0n+OMm5JJ/ZoGbmD05t1meSA0l6gwfATiV5z4XucdDHlUn+Icnn\nkvxLkneuUzfTMR2lz1mPaZLvSPJIkscGPR5fp27WY7lpn7Mey6FedsSDkhv1OS/jmeRskk8P/u0/\nuU7NeONZVVP9AN4I7AM+s875g8DKYPsNwD9Nu4cp9XkAeHAWvQ318f3AvsH2ZcC/Aj8yb2M6Yp8z\nH1Pg0sHnbwP+Cdg/b2M5Yp8zH8tVvfwa8Odr9TMv4zlCn3MxnsDTwHdvcH7s8Zz6TL6qPgF8aYOS\n8R6c2iYj9Alb/XHRKaiq/67+j69SVV8DnuD/P4Mw8zEdsU+Y8ZhW1TcGm99B/z2p4fXKmY/l4N6b\n9Qlz8P9z6g9KbpMR+oQ5GE/6PWyUy2OP5yx+QdnoD07N3o2Db4lWklw362aS7KH/3ccjQ6fmakw3\n6BNmPKaDb9kfA/4b+FhVfWqoZC7GcoQ+YT7+f07vQcnttVmfMB/jWcDHknwqydvWOD/2ePpbKNf3\nKHBVVe0D7gE+PMtmklwG/DXwrsFMeS5t0ufMx7SqvlVVrwOuBN4wD1+81zJCnzMfy6k/KLlNRuxz\n5uM5sFhV19P/ruMdSd641QvOIuSfBX5o1f6Vg2Nzpaq+dv5b5qr6KHBxktfMopcku+gH559V1d+s\nUTIXY7pZn/M0plX1FeAh4KahU3Mxluet1+ecjOUicDjJ08AHgZ9Kcu9QzTyM56Z9zsl4UlVfHHz+\nH+ABYP9QydjjuV0hv9FX9QeB2wEGD071aujJ2Ato3T5Xr3Ml2U//x02fu1CNDfkT4PGqet865+dl\nTDfsc9ZjmuR7k1w+2L4E+GngyaGymY/lKH3OeiwBquo3q+qqqnot8FbgH2rVk/ADMx/PUfqch/FM\ncungO2GSvAp4C/DZobKxx3Pih6E2aPQvgA7wPUk+DxwHvp05e3Bqsz6BW5PcCbwAPA/cNqM+F4Ff\nAP5lsEZbwG8CP8wcjekofTL7Mf0B4E+TXER/gnP/YOzm7cG+Tftk9mO5rjkczzXN4XjuBh5I/9e/\n7ALuq6q/2+p4+jCUJDXMN14lqWGGvCQ1zJCXpIYZ8pLUMENekhpmyEtSwwx5SWqYIS9JDfs/cqsA\nzFChZTYAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "from pylab import *\n", "\n", "x = array([1,2,3,4,5])\n", "y = x+3\n", "plot(x,y,'rx')\n", "show()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "# 0-10 で 100 等分\n", "time = linspace(0.0, 10.0, 100)\n", "\n", "# これで配列が作れてしまう\n", "# numpy\n", "height = exp(- time / 3.0) * sin(time * 3)\n", "figure()\n", "\n", "plot(time, height, 'm-^')\n", "plot(time, 0.3*sin(time*3), 'g-')\n", "\n", "# 凡例, loc は表示場所指定\n", "legend(['damped', 'constant amplitude'], loc='upper right')\n", "\n", "xlabel('Time (s)')\n", "show()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-0.28624535, 0.81040892, -0.08550186])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = matrix([ [-13,2,4], [2,-11,6], [4,6,-15] ])\n", "B = array([5,-10,5])\n", "linalg.solve(A,B)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 三角関数のグラフをまとめて書いてみる" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from pylab import *\n", "def plottrig(f):\n", " xvalues = linspace(-pi, pi, 100)\n", " plot(xvalues, f(xvalues))\n", " xlim(-pi, pi)\n", " ylim(-2, 2)\n", " \n", "trigfunctions = (sin, cos, tan)\n", "\n", "for function in trigfunctions:\n", " plottrig(function)\n", "\n", "show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 投射に関する数値計算" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 二分法 (bisection method)" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEACAYAAACznAEdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt4VfWV//H3QppQKVVSBVsoTDUdCTq2QhIp1Z9pbcdo\nO2NbZ1q8EEjAJL9psdNalfanvySgHbU+U9t6RenFpMglAcVAW+2jsbU/gQTlMhVU1KICBgEvgBCS\nnPX741x6EpNwOTvJTvJ5PU8ez2WfvTf7OWZlfdf3u7a5OyIiIoN6+wRERCQcFBBERARQQBARkRgF\nBBERARQQREQkRgFBRESAgAKCmeWb2WYze9HMru9iuxwzazazbwRxXBERCU7KAcHMBgF3AhcCZwCX\nmdm4Tra7BfhDqscUEZHgBZEh5AIvuftWd28GFgKXdLDdLKAa2BnAMUVEJGBBBIRRwOtJz9+IvZZg\nZp8Avubu9wAWwDFFRCRgPVVUvgNIri0oKIiIhMzgAPaxDRiT9Hx07LVk2cBCMzPgJOAiM2t29+Xt\nd2Zmaq4kInKU3D3lP7SDyBDqgUwzG2tmacAUoM0venc/NfbzKaJ1hP/oKBgkba+fAH7Kysp6/Rz6\n04+up65nWH+CknKG4O6tZvYd4DGiAWa+u28ys5Lo2z6v/UdSPaaIiAQviCEj3P33wOntXruvk22L\ngjimiIgESyuV+7G8vLzePoV+RdczWLqe4WNBjj8Fwcw8bOckIhJmZoaHpKgsIiL9gAKCiIgACggi\nIhKjgCAiIoACgoiIxCggiIgIoIAgIiIxCggiIgIoIIiISIwCgoiIAAoIIiISo4AgIiKAAoKIiMQo\nIIiICKCAICIiMQoIIiICKCCIiEiMAoKISB8W5B0mFRBERPqwFTUrAtuXAoKISB/l7iy9fWlg+xsc\n2J5ERKRHuDs//uGPOeMfzyCrISuw/QaSIZhZvpltNrMXzez6Dt7/VzNbb2bPmdkaM/t8EMcVERmI\nVlSvYN0d67iv+D6yW7MD22/KAcHMBgF3AhcCZwCXmdm4dpv90d0/4+5nAzOAB1I9rojIQOLu3Dz7\nZva9sI+qmVVkN2VzXuQ8DAvsGEEMGeUCL7n7VgAzWwhcAmyOb+Du7ydt/xEgEsBxRUQGjNpFtay/\nYz3X3HEN2ZFstrCFnexk0/hN8HwwxwhiyGgU8HrS8zdir7VhZl8zs03Ao0BRAMcVEem34hmBu/P2\nn9+msrCS0qZSNh+3mYnNE5nCFGb5LD407EOBHbPHisru/jDwsJmdC9wEfLmzbcvLyxOP8/LyyMvL\n6+7TExEJlRU1K9h410YeaHiA9559j1zPpYEG8t/PZz3rWcc6ALav3R7YMS3VRQ1mNgkod/f82PPZ\ngLv7rV185mUgx933dPCeB7nQQkSkr4jPHpp982ymj5tO0ZYi5p08jyFjh1DQUMAiFnGAAzQOa+T0\ns08Hi37mF3/6Be6ecjEhiIBwHPACcAGwA1gDXObum5K2Oc3dX449ngA84u6f7GR/CggiMiDVVtdS\nOb2Skz92MmNeH0Ou57IgbQGZlkluU25iu4bjG8h6MIuvXPoVAMwskICQ8pCRu7ea2XeAx4jWJOa7\n+yYzK4m+7fOAS82sADgEHAC+mepxRUT6unhG8KP/+hGRpggPfe8hSvaXUNFcwaV+KQB2yHhi2BNs\nO2cb8QlF7s7Bpw8mAkJQUs4QgqYMQUQGitrqWqqKqvjGD77B9vu20/xmMx5xWmnlc3wusV37jKC9\noDIEta4QEelB8dlDkUiEmltqKNlbwpK5S1g7dC3ZkWxe4RU2s5lbht3Csv+1jGXnL+O17Nd47unn\nuv3c1LpCRKQHrahZwca7NzJ73Wyy1mZhGMMHDSfztUwMYwpTAGhobSDr6s6zgu6gDEFEpJslZwXV\nc6sp3lvMM48/Qw45QKxOkPZEIiPoyawgmWoIIiLdLF4rGDVuFCPrRwIcdZ2gK6ohiIiEVPIqY3dn\n8Q2LKd5bTP2z9eSQ06t1gq4oQxARCVg8I5hy2xR2/HIHexv2ggebFSRThiAiEiLJdYKlP1lKyd4S\nqr5dxdM7nibHw5sVJNMsIxGRAMRnD9346o2Mqx+HYWQcl0HmW70/e+hIKUMQETlG7dcUFO8t5k+L\n/0SOx2YPNYdj9tCRUg1BROQYxWsFY84Zw0l/PAnovjpBV1RDEBHpYe1nD1VXxNYUPPFMqGcPHSll\nCCIiRyieEVx+5+U0Lmjk7T+8DfROVpAsNN1ORUT6s3hH0h/++IcsvT06e+juorsZ/LHBFFOcuEfB\nU8OeanOPgu7oRtrdFBBERLoQnz1UtqMsMXto+KDhZL7bd2YPHSnVEEREkrSvE9TcGp09VPdgHTmR\nvjl76EiphiAikiReJ5j6y6m88+d32PbzbUDv1wm6ohqCiEjA3D1RJ7i38F6IQCml/apO0BUFBBEZ\n8OKF4zPHn0nWs9F7FJxw4AQyB/e/OkFXFBBEZMBbUb2C9Xes5y8tf+Ha1msBsFbjieN75l7GYaEa\ngogMSPGsYNblsyg+t5iz955Ni7Xwef98Ypsw1Qm6ElQNQQFBRAak5b9ZTlVxFcMHDefTkU+z5dAW\ndtpOhmYNJePkDCAaNEZMGMENP72hl8+2ayoqi4gcheQFZo1VjVRdVUVpcykVQyuYcnAK2WTj7lQO\nq+SOJ+/ALOXfr32OMgQRGRBqq2upnF7JeaPPI3IoQvOOZloPtoZ6OumRClVzOzPLN7PNZvaimV3f\nwfuXm9n62M/TZvZPQRxXRKQr8UVmTbuaWPDtBZTuL2VV0yrWjVjHhIMT+nwzuqClnCGY2SDgReAC\nYDtQD0xx981J20wCNrn7u2aWD5S7+6RO9qcMQUQCUbu4lgenPchwG05mcyY5LTksSFtApmWS25Sb\n2K4vZgXJwlRDyAVecvetAGa2ELgESAQEd1+VtP0qYFQAxxUR+YB4reA//vU/qCyqpPRgKRUfrmBK\nS3QtgR0ynhg2sKaTHqkgMoRLgQvdvTj2/Eog192v7mT7HwD/GN++g/eVIYjIMXv4gYdZ8L8XkJGW\nQWZrJpGmSL+oE3QlTBnCETOzLwCFwLldbVdeXp54nJeXR15eXreel4j0XfGMYHbFbLbduY0F1y+g\ntLWUivQKvtX0rX7ZdqKuro66urrA9xtEhjCJaE0gP/Z8NuDufmu77c4CaoB8d3+5i/0pQxCRI1Zb\nXUvltEomnziZwSMGc/CFg7Qe6B+zh45UmGYZ1QOZZjbWzNKAKcDy5A3MbAzRYDC1q2AgInIk4rOH\n9m/Zz2+Lf0vp+6U0DG1gbfpaJhzQ7KFjFcg6hNjMoZ8RDTDz3f0WMyshminMM7P7gW8AW4mWcZrd\nPbeTfSlDEJE24sNCP/qvH2FmPFr1KJUzKhlu0VXG2c3Z/XL20JEKVQ3B3X8PnN7utfuSHl8FXBXE\nsURk4InftWxl9komHppI5YxKSg+VUnF8BVOaNHsoKFqpLCKhlNxqYubkmUxdPZX7PnIfn/vY52hu\nbCZysP/PHjpSocoQRESCFs8KKvZWkLU2eo+CCU0TeOpDTzHr4Kx+OXuotylDEJHQaJMVfG4mV665\nkjLKmMMcDGM1q2kd1MrkyOTEZwZqVpBM7a9FpN+J38/41C+fyonLTgRvey/jhSzssy2qu5MCgoj0\necmzhwAKzy6kYH0BZVbGHJ+TGBZqHNbYZlhooAeA9hQQRKTPi2cEl995OTuX7GRP7R4AFYuPkorK\nItInJdcJlt6+lJK9JdxddDeDMwZTTLGKxb1IAUFEelR89tCNr97IuDXjMIzhg4aT+V4mhjGF6LqC\nhtYGsq5WVtCTArlBjohIZ+JtJtwdd6fm5hqK9xbzp8V/IsdzALBm44m0JxJtJtRqoneohiAi3Spe\nJ7jirit4a+lb7Hp4F6A6QZBUQxCR0Oq0TnCi6gRhpoAgIoHrsE5gw8ncqzpBmKmGICKBiNcKIpGI\n6gR9lGoIIhKI2upaqgqr+MTpn+CUtacAqhP0lDDdIEdEBqDk2UOtza0sunYRxfuKaVjfQA45uklN\nH6QMQUSOSXz20Nev/jo7frODQ9sPQURZQW9QhiAiPS65TlA9t5qSvSVU/6SaZ49/lpyIsoK+TrOM\nROSIrahZwca7NnLN765h/Ibx0dlDDCdzq2YP9QfKEESkS/GsoPn9ZhZ+fyHF+4pZ+/xacojNHjqk\n2UP9hWoIItKl2iW1VBZUkjE4g1PfPxWPuOoEIaMagoh0i+TZQ+88/Q6VhZWUHCzh+ZbnyY5kq07Q\njylDEJE2aqtrqZxeSd6ZeRzYcoDIvgiRJt3QPsyUIYhIYOJZQdOuJhbMWkDp/lKefuNpNp66kYlN\nE5UVDBCBZAhmlg/cQTTAzHf3W9u9fzrwK2AC8CN3/+8u9qUMQaSbJd+60sx49KFHqSysjM4Yas0k\npyWHBWkLyLRMcptyE59TVhBOoel2amaDgDuBC4DtQL2ZPeLum5M22w3MAr6W6vFEJHXx5nMrs1eS\n3ZpNZWElpU2lVHy4gilN0amjdsh4YtgTbDtnG8R+1agjaf+WcoZgZpOAMne/KPZ8NuDts4TYe2XA\nXmUIIj0vuSX1zMkzmbp6KvcOvZfJJ02m+c1m1Qn6sNBkCMAo4PWk528AuZ1sKyK9JJ4VlL1VRlZD\nFoYxsXkiT6U9xaymWbpHgYRzpXJ5eXnicV5eHnl5eb12LiJ9WXJWUHNLtCV12S/LmMOc6PuHnOyX\ns7XKuI+pq6ujrq4u8P0GNWRU7u75secaMhIJiXgDutFnjWbEX0YAbZvPLWQhO20nQ7OGknFyBhAN\nIiMmjOCGn97Qa+ctRydMQ0b1QKaZjQV2AFOAy7rYPuWTFpGOJc8e8lZn0fWLKN5bTPmqciqo+MCw\nULqlM9pHKwAIEOy005/x92mnt5hZCdFMYZ6ZjQQagGFABNgHjHf3fR3sSxmCyDFKbkn9ZuWbNL3R\npJbUA0BQGYJWKov0ccl1gqLPFDHtf6Zxd9rdDBk7hKKXihJZQeOwxjbFYmUF/UeYhoxEpBetqFnB\nhjs38L1Hvsf4zUktqV9TS2o5OmpdIdLHJDefO7TrEAtmLaBkfwnPvfycWlJLSjRkJNIHJBeLV9Ss\noKqoivx/yWf38t1EDkbwFrWkHsg0ZCQygMQXldWeXcviHy6mZG8J9/3uPoacNoRp66dpUZkEQgFB\nJKSSi8VLb19Kyd4S5k6dS35rPobx0f0fJXOz6gQSHAUEkZCKZwU3br2RcfXjAEhvSSfHk+oEaj4n\nAVINQSQkkusEAIWfLaRgQwFlRFtN1FMPQC5qRy1tqYYg0s/EM4JHPvUIjQsbGb9hPA00cDEXYxiv\n8AoHOMBqW83xWceTcXKGMgIJlDIEkV6UXCeYkTuDgrUF3DXoLtJPSWfm9plaVCZHRBmCSD8Qzwqu\ne/o6stZGW1JnDM4gc7eKxdLztDBNpIfFF5a1NLWw6Npo87k1q9ZoUZn0Og0ZifSw2iW1VBZUkpGe\nwal7T8UjWlQmqQlqyEgZgkg3i2cEkUiEXSt3UTm9kpKDJTzf9DzZkWxe4RU2s5lbht2SyAqUEUhv\nUIYg0g3at5qonFbJeWPPo+XdFlp2t+j+xRIoFZVFQixeLK45uYaam2oofb+U+QfnkzY6janbp6rV\nhISSAoJIANovKqu5uSbaauK6uVx8XHQdwfHbjidzu2YPSXgpIIgEIJ4RLD9tOTuX7CRrXRYA6Z7O\nxOaJgFpNSPiphiByjDpbVJY2Mo2rdlylVhPSY1RDEOll8azg2j9f23ZR2Z5MtZqQPkkZgshRiGcF\n1914HYXjCyl6rYjy48qpaK3AMB7iIbYO25ooFMc/o1YT0p2CyhAUEES6kFwsNjMeXfQoldMqyRic\nwWkHTtOiMgkFDRmJ9ID4sNDKiSuZcGAClcWVlDaVUjGogm9FvqXpo9KvKEMQaSe5WDxz8kymrp7K\nPUPu4dwx53Jo6yEtKpPQCVWGYGb5wB1EW2HMd/dbO9jm58BFwH5guruvC+LYIkGLZwU3vHgD4+rH\nYRjZkWzqvI5ZTbOUFUi/lXKGYGaDgBeBC4DtQD0wxd03J21zEfAdd/+KmZ0D/MzdJ3WyP2UI0uOS\ns4LCMwuZtmkaZVbGHJ+DYaxmNa2DWpkcmZz4jLICCYswZQi5wEvuvhXAzBYClwCbk7a5BHgQwN1X\nm9kJZjbS3RsDOL5IylbUrGDDLzYw67ezOGPbGdE7lXl0hTHAq7zKTt/JpvGbyDg5A1BWIP1PEAFh\nFPB60vM3IGklTsfbbIu9poAgvSJ59tB7De9RNbOKkvdLqGit4N/83z4wLJRu6Yz20Zo+Kv1aKGcZ\nlZeXJx7n5eWRl5fXa+ci/Uf7DqQb7tzAvU/cy/tb3if7QDYNNJDflK9eQxJ6dXV11NXVBb7fIGoI\nk4Byd8+PPZ8NeHJh2czuBZ5090Wx55uB8zsaMlINQbpLbXUtVUVV/HvFv1N9UzXFe4p54JMPkHZK\nGgX1Bbp/sfRZYaoh1AOZZjYW2AFMAS5rt81y4NvAolgAeUf1A+lu7TuQVt9UHe1A+oO/dyAd2jiU\nzJ3qQCoCAQQEd281s+8Aj/H3aaebzKwk+rbPc/eVZnaxmW0hOu20MNXjihxOfProw2MeZueSnYxf\nPx5QB1KRzmhhmvQrbTqQTpxBwbpoB9L0j6czc9tMdSCVfilMQ0YiveoDxeK7NnDN764ha0NSB9Jd\n6kAqcjgKCNLnxYeGHvnUIywuW0zJvhLKN5VTQQXQdlgo3dJJJ50T/AQVi0Xa0ZCR9Dnti8VF2UUU\nPFvAHJvDxYMvxpvVgVQGFg0ZyYCVuF1l5nLeWvYWWc9Gb1c5hCFkN2er15DIMVKGIH1Cm2JxzgwK\nno3drnJEGle9qdtVysCmDEEGlBU1K9h410Z+8PgPyHo2qVj8torFIkFRQJBQSq4TNL3ZxIJZCyje\nV0z5BhWLRbqLhowkNNpPH60qrOLL53+Zt598Gz/keIuKxSId0ZCR9DuJ6aOn/n366LyGeQw5fQgF\nzxWoWCzSzRQQpFclF4trflxDyd4S5pTOSfQaGvb2MDLfUa8hkZ6ggCC9KrGy+PfXkLU+afpoSzag\nXkMiPUk1BOlRyXWCg1sPMuOcGczcOZPyD5VT0Vyh6aMixyCoGoICgnS79sXiyumVfGnSl3h31bvR\nYnHSyuKFLOQAB9hn+9pMH9XMIZHOqagsfUa8WLx01FKq51RTur+U+zfdT/q4dArWfrBYnG6aPirS\nGxQQpFskF4ur58ZuTPPduVw0+CIM4yO7PkLmbhWLRcJEAUECkTwsZGaJexb/59L/ZPxLsRvTkE52\ns4rFImGlgCCBiA8LrcxZybljzuW3V/2Wkv0lVGyt4Ot8nXrq+YJ/AYv99r+My5QRiISMispyzJKH\nhWZOnsnU1VO574T7yBmUg+93IociKhaL9ADNMpJeV1tdS1VRFafln8YJNSeQG8llzYfWsGrsKmZt\nmZUoFjcOa2yzslhBQCRYCgjS45LrBO7O9PHTmf7CdMqsjDk+B8NYzWpaB7UyOTI58TmtIxDpXpp2\nKj2i/RqCjXdvZGHrQt6qfoszt55JAw1c7BcnagOv8io7fSebxm8i4+SMxD5ULBYJP2UI0qX4sNAV\n91/B4v+zmKKXi7jn+HsYMnoIhS8WalhIJASUIUi3SS4WL/3J0ugagivnkh/JxzBObDmRzK1aQyDS\n36QUEMxsOLAIGAv8Dfimu7/bwXbzga8Cje5+VirHlO4XHxq6btV1jFszDoD01nRyPAfQGgKR/iql\nISMzuxXY7e63mdn1wHB3n93BducC+4AHDxcQNGTU85LrBM1vN1P4mUJmvDGD8uPKqWhVwzmRsAvF\nLCMz2wyc7+6NZnYKUOfu4zrZdizwqAJCOHR0d7J//tI/s+fxPfhBx1vVcE6krwhLDWGEuzcCuPub\nZjYi1ROSnhEfFlo2ZhnVFdXRu5P9v3kM+fQQCtap4ZzIQHTYgGBmjwMjk18CHOjot0Igf9qXl5cn\nHufl5ZGXlxfEbge8jhrOzfnOHC4eHLs72TvDyHxXxWKRsKurq6Ouri7w/aY6ZLQJyEsaMnrS3bM6\n2VZDRj2sfcO52upaKqdVMvLjIxn98mhyyOE2u43r/DoM4yEeYuuwrYnpo/F9KCsQCbewDBktB6YD\ntwLTgEe62NZI/JqRnpBoOJe9kkkfnUTVjCpK3i+h4nU1nBORD0o1Q8gAFgOfBLYSnXb6jpl9HLjf\n3b8a224BkAd8DGgEytz9V53sUxlCCjpqOHfv0HuZdOIkWne1EmlSwzmR/iYUs4y6gwJCauIri8dM\nGsNJfzyJXM9lTVqs4dxLajgn0h8pIAjQtk7QsreFwn8qpOi1osQaAjWcE+n/wlJDkF7wgYZzd23k\n1y/9mt2P7eYzBz5DAw1c1HqRGs6JyFFRQOiDEmsIRi+LTh/dV8K8P88jPTOdaeumdbiGYLSP1rCQ\niHRJAaGPaLOGoCK2huDqpDUE7w4j8z2tIRCRY6eAEFIfuGl99Qo2/GIDVz90NeNfi960fghDdNN6\nEQmMAkJIxYeFVkxYQXZrNpUzK6NrCBoruJRLtYZARAKnWUYh0mYNwaSZTK2fyj3p93DeP5xH09+a\ntIZARDqkaaf9QEetJaoKqxh15ihGrhpJLrnUp9fzzJhntIZARDqlaaf9QKK1RM5K8s7KY8G3F1C8\nr5jyhnIqqAAg0hQh++VsFYtFpNspQ+hhHbWWmJcxjwlNE+AQePPf70MAsJCF7LSdDM0a2mYNgbIC\nEYnTkFEf8oGb0RRV8akvforhjw4nN5LLmsGx1hIva1hIRI6ehoz6kPjQUO1ZtSy+YTHFe4spW17G\nHJ8DgLc42a9qWEhEepcyhG6QnBEAFOUUUbC2gLmD5nIRF+ERDQuJSHCUIYTMB/oL3b2Rhz/5MLse\n3UXW2ug9g9I9nWzPVmsJEQklZQgBibedvvKXV7KkfAnT/zqduwfdTdopaczcPpN66gHIJTfxGXUc\nFZEgKEMIgeQZQ0tvX0rJ3hJuuvImLmy6EMMYPng4mbuj/YVe4RUOcIDVtrrNQjK1lhCRsFBASEF8\naOj6Ndczbs04ANIOpZFDDtC2v1C6pZNOOif4CRoaEpFQ0pDRUUiuEzRta2JG7gxm7JiRuBmNhoVE\npDdoHUIPaV8srpxeyQUTL+C9hvfwQ463uPoLiUivUg2hh8SHhRb6Qh655xFK95fywCsPkJaVRsHa\ngg5nDGlYSET6IgWEdpIzgtb9rSy6dlG0WPyzm7iI6G0ph+4cSuZbuhmNiPQvCgh0co/iF37Nnj/u\n4az3zwKixeKJPhHQzWhEpH8asDWEjvoLXfqjS1l6+1KKdxczb8Q80j8RvUexisUiEmahqCGY2XBg\nETAW+BvwTXd/t902o4EHgZFABLjf3X+eynGDkOgvdHYtS25cQsneEubeMJeLB8XuUfzOMDLf1RoC\nERk4Uh0ymg380d1vM7PrgR/GXkvWAnzf3deZ2UeAtWb2mLtvTvHYR6V9f6GaW2uiQeCKueR7PgDp\nkXQmtn5wWEhrCERkIEg1IFwCnB97/BugjnYBwd3fBN6MPd5nZpuAUUC3B4SO+gstG72MPSv3kNUQ\n6y8USSfHc3SPYhEZ8FINCCPcvRGiv/jNbERXG5vZPwCfBVaneNwjkrhR/cQVLPm/0WGhu78b6y/E\nzDZBQMNCIjLQHTYgmNnjRMf/Ey8BDnQ0btJpNTg2XFQNfNfd93V1zPLy8sTjvLw88vLyDnea0YO3\nGxZaelusv9AVN3Fhy5H1F9KwkIiEXV1dHXV1dYHvN6VZRrHhnzx3bzSzU4An3T2rg+0GA7XA79z9\nZ4fZ51HNMupottCU26ew5/d72LVsFznkcJvdxnV+HYbxEA+xddjWxN3I4vtQEBCRvioUrSvM7FZg\nj7vfGisqD3f39kVlzOxBYJe7f/8I9nlUASHRdnr+lSypiLadvmvQXaSdnMZVjVdpyqiI9HtBBYRB\nKX7+VuDLZvYCcAFwS+zkPm5mtbHHnweuAL5oZs+Z2bNmlp/KQd2dm2ffTCQSYelPosNCP536U854\n/gwMI2NwBp9957OJYaG/8ld+Yb9g/vj5LDt/Ga9lv8ZzTz+X4j9dRKR/Samo7O57gC918PoO4Kux\nx38BjkvxOIlhITNLrCa+9qlr27addrWdFhE5Vn1ipXJ8WGjqr6Zy7qhzKf1qKVftvoryweVUtKjt\ntIgMbKGoIXSHeEBIvhvZzM/NZOqaqdw79F7O+fA5RN6NEGmOqO20iAj9PCBEIpHojKHCKkadOYqR\nq0aSSy5r0tawaswqZm2ZlWg73TisMTFjSEFARAaifh0QFs1dxLI7lrUZFjKM1aymdVArkyOTE9tr\naEhEBrp+HRC+MPgLXGwXtxkWAljIQnbaToZmDSXj5AxAWYGISCi6nXaX9NZ0JvrEDu9GNtpHKwCI\niHSDUAaEeH8h3Y1MRKTnhDIg/JW/qsmciEgPC2VAOPH8E7WQTESkh4WyqBy2cxIRCbOw9DISEZF+\nQgFBREQABQQREYlRQBAREUABQUREYhQQREQEUEAQEZEYBQQREQEUEEREJEYBQUREAAUEERGJUUAQ\nEREgxYBgZsPN7DEze8HM/mBmJ3SwTbqZrTaz58xso5mVpXJMERHpHqlmCLOBP7r76cATwA/bb+Du\nTcAX3P1s4LPARWaWm+Jx5QjU1dX19in0K7qewdL1DJ9UA8IlwG9ij38DfK2jjdz9/djDdKL3YFB/\n6x6g/+GCpesZLF3P8Ek1IIxw90YAd38TGNHRRmY2yMyeA94EHnf3+hSPKyIiATvsHdPM7HFgZPJL\nRP/C7+hWZh3+5e/uEeBsM/so8LCZjXf354/hfEVEpJukdMc0M9sE5Ll7o5mdAjzp7lmH+cyNwH53\n/+9O3tdwkojIUQrijmmp3lN5OTAduBWYBjzSfgMzOwlodvd3zezDwJeBWzrbYRD/KBEROXqpZggZ\nwGLgk8BW4Jvu/o6ZfRy4392/amb/RLTgPCj2s8jdb0791EVEJEgpBQQREek/emylspnNN7NGM9vQ\nxTZ5sQXftLjlAAAC90lEQVRs/2NmTya9nm9mm83sRTO7vmfOOLxSvJZ/M7P1sffW9MwZh9vhrqeZ\n/SB2vZ6NLa5sMbMTY+/pu9lOitdT388kR3AtP2pmy81sXexaTk967+i/m+7eIz/AuUQXpm3o5P0T\ngL8Co2LPT4r9dxCwBRgLfAhYB4zrqfMO48+xXsvY41eA4b39bwjTz+GuZ7ttv0p0Maa+mwFfz9hz\nfT+P4loSXQz8X7HHJwG7idaGj+m72WMZgrs/DbzdxSaXAzXuvi22/a7Y67nAS+6+1d2bgYVEF8QN\nWClcS4hOG1YPqyRHcD2TXQY8FHus72YHUrieoO9nG0dwLR0YFns8DNjt7i0c43czTBf+H4EMM3vS\nzOrNbGrs9VHA60nbvRF7TTrX2bWE6Bfo8djrV/XS+fVJsVly+UBN7CV9N1PQwfUEfT+P1p3AeDPb\nDqwHvht7/Zi+m6lOOw3SYGAC8EVgKPCMmT3Tu6fUZ3V4Ld19C/B5d99hZicT/R9vU+yvEDm8fwGe\ndvd3evtE+omOrqe+n0fnQuA5d/+imZ1G9Jqddaw7C1OG8AbwB3c/6O67gT8BnwG2AWOSthsde006\n19m1xN13xP77FrCMaGopR2YKbYc39N1MTfvrqe/n0SsElgK4+8vAq8A4jvG72dMBwWI/HXkEONfM\njjOz44FzgE1APZBpZmPNLI3ol2h5j5xtuB31tTSz483sIwBmNhT4Z+B/euRsw6+r60mstfv5tF18\nqe9m5476eur72amuruVW4EsAZjaS6HDxKxzjd7PHhozMbAGQB3zMzF4DyoA0wN19nrtvNrM/ABuA\nVmCex/odmdl3gMeIBrD57r6pp847jI71WprZp4BlsfYgg4HfuvtjvfOvCI/DXc/YZl8jmnUdiH/O\n3Vv13fygY72eRHum6fuZ5Aiu5U3Ar5OmpV7n7ntinz3q76YWpomICBCuGoKIiPQiBQQREQEUEERE\nJEYBQUREAAUEERGJUUAQERFAAUFERGIUEEREBID/D6VoH8lHniGyAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "from pylab import *\n", "\n", "# 0-10 で 100 等分\n", "time = linspace(1.6, 1.8, 100)\n", "\n", "# これで配列が作れてしまう\n", "height = exp(time) * log(time) - time**2\n", "figure()\n", "\n", "plot(time, height, 'm-^')" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "半角カンマで区切った 2 数を入力: 1,2\n", "f(x) = 0 at x = 1.6946001 +/- 1e-06\n", "-2.1972592820773684e-06\n", "4.980442214197467e-07\n", "-4.892557384117424e-06\n" ] } ], "source": [ "from math import *\n", "tolerance = 1.0e-6\n", "\n", "def f(x):\n", " f = exp(x) * log(x) - x**2\n", " return f\n", "\n", "lst = input('半角カンマで区切った 2 数を入力: ').split(\",\")\n", "a, b = map(float, lst)\n", "\n", "dx = abs(b - a)\n", "\n", "while dx > tolerance:\n", " x = (a + b) / 2.0\n", " if (f(a) * f(x)) < 0:\n", " b = x\n", " else:\n", " a = x\n", " \n", " dx = abs(b-a)\n", " \n", "print('f(x) = 0 at x = {:.8} +/- {:.8}'.format(x, tolerance))\n", "print(f(x))\n", "print(f(x + tolerance))\n", "print(f(x - tolerance))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 一般的な二分法関数を作ってみた" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.5707970758089531\n", "-7.49014056495e-07\n" ] } ], "source": [ "def root_bisection(f, a, b, tolerance = 1.0e-6):\n", " dx = abs(b-a)\n", " while dx > tolerance:\n", " x = (a + b) / 2.0\n", " if (f(a) + f(x)) < 0:\n", " b = x\n", " else:\n", " a = x\n", " dx = abs(b - a)\n", " \n", " return x\n", "\n", "# ちょっとした確認\n", "theta0 = root_bisection(cos, 0, pi)\n", "print(theta0)\n", "print(cos(theta0))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Newton 法" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def root_newton(f, df, guess, tolerance = 1.0e-6):\n", " dx = 2 * tolerance\n", " while dx > tolerance:\n", " x1 = x - f(x) / df(x)\n", " dx = abs(x - x1)\n", " x =x1\n", "\n", " return x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ライブラリ\n", "\n", "scipy に bisect(), newton() などのメソッドがある。" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.141592653589793 0.0\n" ] } ], "source": [ "import numpy as np\n", "#import scipy as sp\n", "from scipy.optimize import brentq\n", "\n", "# sin x = 0 となる 2 と 4 の間の数を求める\n", "x = brentq(np.sin, 2, 4)\n", "print(x, x - np.pi)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 数値積分" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 単純な方法: $n$ 等分での区分求積法" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.99983550389\n" ] } ], "source": [ "import numpy as np\n", "\n", "def int_simple(fn, a, b, N): \n", " I = 0 # 積分の値\n", " dx = (b - a) / float(N) # ステップサイズ\n", " # numpy のメソッドで高速化できないだろうか?\n", " for j in np.arange(N):\n", " x = a + dx * j\n", " I = I + fn(x) * dx\n", "\n", " return I\n", "\n", "# 簡単なテスト\n", "print(int_simple(np.sin, 0, np.pi, 100)) # 厳密な値は 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 関数とその値を逐一取るのではなく関数値のリストを渡す" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.99983550389\n" ] } ], "source": [ "import numpy as np\n", "\n", "def int_simple1(f, dx):\n", " return dx * sum(f)\n", "\n", "# 分割数\n", "N = 100\n", "a = 0.0\n", "b = np.pi\n", "dx = (b - a) / float(N)\n", "\n", "# リスト内包表記\n", "x = np.arange(a, b, dx)\n", "function_values = np.sin(x)\n", "simple_integral = int_simple1(function_values, dx)\n", "print(simple_integral) # 厳密な値は 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 台形法 (trapezoid method)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.99983550389\n" ] } ], "source": [ "import numpy as np\n", "\n", "def int_trapezoid(f, dx):\n", " # 最初と最後は 1/2 だけ足したいので全部足した後に 1/2 引く\n", " \n", " return dx * (f.sum - (f[0] + f[f.size]) / 2)\n", "\n", "# 分割数\n", "N = 100\n", "a = 0.0\n", "b = np.pi\n", "dx = (b - a) / float(N)\n", "\n", "# リスト内包表記\n", "x = np.arange(a, b, dx)\n", "function_values = np.sin(x)\n", "simple_integral = int_simple1(function_values, dx)\n", "print(simple_integral) # 厳密な値は 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## シンプソン法 (Simpson's method)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def int_simpson(f, dx):\n", " # 点の数\n", " N = len(f)\n", " # 積分の初期値\n", " integral = 0.0\n", " \n", " for i in range(1, N-1, 2):\n", " integral = integral+ f[i-1] + 4.0 * f[i] + f[i+1]\n", " \n", " # 刻み幅をかけて 3 で割る\n", " integral = integral * dx / 3.0\n", " \n", " # 点の数が偶数なら最後の点を別途足す\n", " if (N % 2) == 0:\n", " integral = integral + dx * (5.0 * f[-1] + 8.0 * f[-2] - f[-3]) / 12.0\n", " \n", " return integral" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 数値微分" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "普通に計算するよりテイラー展開を使った計算から次のようにやった方が刻みの 2 次のオーダーにできる。\n", "\\begin{align}\n", " f_i^{'}\n", " =\n", " \\frac{f_{i+1} - f_{i-1}}{\\Delta x}.\n", "\\end{align}\n", "$i \\pm 2$ 番目を使えば $(\\Delta x)^4$ のオーダーで計算できる。\n", "\n", "scipy にも微分計算用のメソッドがある: `scipy.misc.derivative()`。\n", "これは関数の値の列ではなく関数自体を与える必要がある。" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-0.999996670633\n" ] } ], "source": [ "#from scipy.misc import derivative\n", "#from scipy import misc\n", "import numpy as np\n", "import scipy as sp\n", "\n", "# dx は刻み幅, order は何点使うか (テイラー展開の何次までを使うかにあたる部分)\n", "a = sp.misc.derivative(np.sin, np.pi, dx = 0.1, order=5)\n", "print(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Numpy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 行列" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "普通に行列を表示\n", "[[1 2]\n", " [3 4]]\n", "スカラー倍\n", "[[ 3 6]\n", " [ 9 12]]\n", "行列の和\n", "[[ 6 8]\n", " [10 12]]\n", "行列の積\n", "[[ 5 12]\n", " [21 32]]\n" ] } ], "source": [ "import numpy as np\n", "\n", "# 行列を定義\n", "a = np.array([[1,2], [3,4]])\n", "b = np.array([[5,6], [7,8]])\n", "\n", "print(\"普通に行列を表示\")\n", "print(a)\n", "\n", "print(\"スカラー倍\")\n", "print (3 * a)\n", "\n", "print(\"行列の和\")\n", "print(a + b)\n", "\n", "print(\"行列の積\")\n", "print(a * b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 行列の雑多な操作\n", "Numpy は Fortran で書かれた線型代数パッケージ LINPACK を使っていて恐ろしく速い。" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "転置\n", "[[1 3]\n", " [2 4]]\n", "逆行列\n", "[[-2. 1. ]\n", " [ 1.5 -0.5]]\n", "行列式\n", "-2.0\n", "固有値\n", "(array([-0.37228132, 5.37228132]), array([[-0.82456484, -0.41597356],\n", " [ 0.56576746, -0.90937671]]))\n" ] } ], "source": [ "print(\"転置\")\n", "print(np.transpose(a))\n", "\n", "print(\"逆行列\")\n", "print(np.linalg.inv(a))\n", "\n", "print(\"行列式\")\n", "print(np.linalg.det(a))\n", "\n", "print(\"固有値\")\n", "print(np.linalg.eig(a))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## 全ての要素に対する処理\n", "高速なので意識して使うこと。" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0. 0.5 0.58778525 0.70710678 0.8660254 1. ]\n" ] } ], "source": [ "import numpy as np\n", "# 書き方に注意: 引数にはリストを渡す\n", "x = np.array([0, np.pi / 6, np.pi / 5, np.pi / 4, np.pi / 3, np.pi / 2])\n", "print(np.sin(x))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 連立一次方程式を解く\n", "\\begin{align}\n", " w + 3x - 5y + 2z &= 0, \\\\\n", " 4x - 2y +z &= 6, \\\\\n", " 2w - x + 3y -z &= 5, \\\\\n", " w + x + y + z &= 10.\n", "\\end{align}" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 1. 2. 3. 4.]\n" ] } ], "source": [ "import numpy as np\n", "# 係数行列\n", "A = np.array([[1, 3, -5, 2],\n", " [0, 4, -2, 1],\n", " [2, -1, 3, -1],\n", " [1, 1, 1, 1]])\n", "# 定数項\n", "b = np.array([0, 6, 5, 10])\n", "\n", "# 解\n", "x = np.linalg.solve(A, b)\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 特別なメソッド\n", "役に立つからよく出てくる。" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0. 0.25 0.5 0.75]\n", "[ 0. 0.25 0.5 0.75 1. ]\n", "[ 1.25892541 1.58489319 1.99526231 2.51188643 3.16227766\n", " 3.98107171 5.01187234 6.30957344 7.94328235 10. ]\n", "[[0 0 0 0]\n", " [0 0 0 0]\n", " [0 0 0 0]]\n", "[[ 0. 0. 0. 0. 0.]\n", " [ 0. 0. 0. 0. 0.]\n", " [ 0. 0. 0. 0. 0.]\n", " [ 0. 0. 0. 0. 0.]]\n", "[[ 1. 1. 1. 1.]\n", " [ 1. 1. 1. 1.]]\n" ] } ], "source": [ "import numpy as np\n", "\n", "# Array Range\n", "# Python 本体の range と違って整数幅でなくてもいい\n", "a = np.arange(0, 1, 0.25)\n", "print(a)\n", "\n", "# Linearly spaced array\n", "# 最後の引数は分割の個数\n", "b = np.linspace(0, 1, 5)\n", "print(b)\n", "\n", "# Logrithmic scaled array\n", "# 0.1 ** 10 から 1 ** 10 まで最大で 50 刻む。num を指定すると 50 までの刻み数が変わる\n", "c = np.logspace(0.1, 1, 10)\n", "print(c)\n", "\n", "# 適当なサイズの零行列を作る\n", "d = np.zeros([3,4], int)\n", "e = np.zeros([4,5], float)\n", "print(d)\n", "print(e)\n", "\n", "# 適当なサイズの 1 で埋まった行列を作る\n", "f = np.ones([2,4])\n", "print(f)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Scipy\n", "\n", "微分積分含めた科学技術計算用ライブラリ。\n", "ターミナルで `pydoc scipy.integrate.simps` と打てばマニュアルが出る。\n", "\n", "- `scipy.integrate.simps` シンプソン法.\n", "- `scipy.integrate.quad` ガウス求積." ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(2.0, 2.220446049250313e-14)\n" ] } ], "source": [ "import numpy as np\n", "import scipy as sp\n", "import scipy.integrate\n", "\n", "sin_int = sp.integrate.quad(np.sin, 0, np.pi) # sin を 0 から pi まで積分\n", "print(sin_int) # 返り値は積分の値と推定誤差のタプル" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 無限遠までの積分\n", "`numpy.inf` を使う。" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "inf\n", "(1.0000000000000002, 5.842606742906004e-11)\n" ] } ], "source": [ "import numpy as np\n", "import scipy as sp\n", "import scipy.integrate\n", "\n", "print(np.inf)\n", "\n", "int_val = sp.integrate.quad(lambda x: np.exp(-x), 0, np.inf)\n", "print(int_val)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# MatPlotLib\n", "\n", "次の本は参考になるとのこと。\n", "\n", "- Shai Vaingast. Beginning Python Visualization: Crafting Visual Transformation Scripts. Apress, 2009.\n", "\n", "プロットの線のタイプ。\n", "\n", "- '-' 実線\n", "- '==' ダッシュ\n", "- ':' ドットの線\n", "- '-. ダッシュとドットの線\n", "\n", "データを表す点の形指定。\n", "\n", "- 'o' 円\n", "- 'ˆ' 上向き三角\n", "- 's' 正方形\n", "- '+' プラス\n", "- 'x' バツ\n", "- 'D' ダイアモンド\n", "\n", "プロットの色指定。\n", "\n", "- 'b': blue\n", "- 'c': cyan\n", "- 'g': green\n", "- 'k': black\n", "- 'm': magenta\n", "- 'r': red\n", "- 'w': white\n", "- 'y': yellow" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\nCcIYY0xA/w/Ubj677dmv3wAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "x = np.arange(- np.pi, np.pi, np.pi /100)\n", "\n", "# numpy の array なので np.sin(x) とするだけで一気に値を叩き込める\n", "plt.plot(x, np.sin(x), 'b-', label='sine')\n", "plt.plot(x, np.cos(x), 'g--', label='cosine')\n", "\n", "plt.xlabel('x value')\n", "plt.ylabel('trig function value')\n", "plt.xlim(- np.pi, np.pi)\n", "plt.ylim(-1.5, 1.5)\n", "plt.legend(loc='upper left')\n", "\n", "# 次の文でグラフを画像として保存できる: 形式は ps, jpg, png, pdf\n", "# plt.savefig('filename')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 極座標" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "from mpl_toolkits.axes_grid.axislines import SubplotZero\n", "from matplotlib.ticker import MultipleLocator, FuncFormatter\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "plt.ion()\n", "\n", "fig = plt.figure(1)\n", "ax = SubplotZero(fig, 111)\n", "fig.add_subplot(ax)\n", "\n", "for dir in ax.axis:\n", " ax.axis[dir].set_visible(dir.endswith(\"zero\"))\n", "\n", "ax.set_xlim(-.35,.4)\n", "ax.set_ylim(-.25,.45)\n", "ax.set_aspect('equal')\n", "\n", "tick_format = lambda x, i: '' if x == 0.0 else '%.1f' % x\n", "for a in [ax.xaxis, ax.yaxis]:\n", " a.set_minor_locator(MultipleLocator(0.02))\n", " a.set_major_formatter(FuncFormatter(tick_format))\n", "\n", "theta = np.arange(2*np.pi/3, 6*np.pi, 0.01)\n", "r = 1 / theta\n", "\n", "ax.plot(r*np.cos(theta), r*np.sin(theta), lw=2)\n", "\n", "plt.show()\n", "#raw_input()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# 常微分方程式\n", "まずは垂直投げ上げから。\n", "2階の微分方程式を解析力学のハミルトン形式よろしく1階に落とす。\n", "\\begin{align}\n", " \\ddot{x} = -g.\n", "\\end{align}\n", "$v = \\dot{x}$ とすると\n", "\\begin{align}\n", " v &= x, \\\\\n", " \\dot{v} &= -g.\n", "\\end{align}\n", "$y = (x, v)$ とすれば $\\dot{y} = (v, -g)$ と書ける。\n", "これを差分形式にすると\n", "\\begin{align}\n", " y_{i+1}\n", " =\n", " y_{i} + \\dot{y} \\Delta t.\n", "\\end{align}" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "def free_fall(state , time):\n", " \"\"\"時間変数 time は使っていないが今後の一般と合わせるために入れてある\"\"\"\n", " g0 = state[1]\n", " g1 = -9.8\n", " return np.array([g0, g1])\n", "\n", "def euler(y, t, dt, derivs):\n", " \"\"\"オイラー法で計算\"\"\"\n", " y_next = y + derivs(y, t) * dt\n", " return y_next\n", "\n", "\"\"\"F = -mg - kx の系を考える\"\"\"\n", "N = 1000 # ステップ数\n", "xo = 0.0 # 初期値\n", "vo = 0.0 # 初期値\n", "tau = 20.0 # 全時間を秒で指定\n", "dt = tau / float(N - 1) # 時間のステップ\n", "k = 3.5 # ばね定数\n", "m = 0.2 # 質量\n", "gravity = 9.8 # 重力定数\n", "\n", "# 時間の配列を一気に作る\n", "time = np.linspace(0, tau, N)\n", "\n", "# 結果を保持する変数\n", "y = np.zeros ([N,2]) #=> [[0, 0], [0,0], ..., [0, 0]]\n", "\n", "# 初期条件をセット\n", "y[0, 0] = xo\n", "y[0, 1] = vo\n", "\n", "def SHO(state, time):\n", " g0 = state[1]\n", " g1 = -k/m * state[0] - gravity\n", " return np.array([g0, g1])\n", "\n", "# オイラー法での計算: 微分する関数は SHO()\n", "for j in range(N - 1):\n", " y[j+1] = euler(y[j], time[j], dt, SHO)\n", "\n", "# データセット\n", "xdata = [y[j,0] for j in range(N)]\n", "vdata = [y[j,1] for j in range(N)]\n", "\n", "plt.plot(time, xdata)\n", "plt.plot(time, vdata)\n", "plt.xlabel (\"time\")\n", "plt.ylabel(\"position, velocity\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## オイラー法の問題\n", "オイラー法では常に解の曲率を過小評価する。\n", "結果として全ての振動運動でオイラー解のエネルギーは時間とともに増大する。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## オイラー-クロマー法\n", "\n", "非振動系にも使えるか、すぐにはわからない。\n", "\n", "## ルンゲ-クッタ法" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# coding: utf-8\n", "def rk2(y, time, dt, derivs):\n", " k0 = dt * derivs(y, time)\n", " k1 = dt * derivs(y * k0, time + dt)\n", " y_next = y + 0.5 * (k0 + k1)\n", " return y_next" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 摩擦つきの振動子" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "N = 1000\n", "xo = 0.2\n", "vo = 0.0\n", "tau = 10.0\n", "dt = tau / float(N - 1)\n", "k = 30.0\n", "m = 0.25\n", "gravity = 9.8\n", "mu = 0.15\n", "\n", "# 時間の配列\n", "time = np.linspace(0, tau, N)\n", "\n", "# 初期化\n", "y = np.zeros([N,2])\n", "\n", "# 初期状態\n", "y[0 ,0] = xo\n", "y[0, 1] = vo\n", "\n", "def SpringMass(state, time):\n", " g0 = state[1]\n", " if g0 > 0:\n", " g1 = - k/m * state[0] - gravity * mu\n", " else:\n", " g1 = - k/m * state[0] + gravity * mu\n", "\n", " return np.array([g0, g1])\n", "\n", "for j in range(N-1):\n", " y[j+1] = rk2(y[j], time[j], dt, SpringMass)\n", "# y[j+1] = rk2(y[j], time[j], dt, SpringMass)\n", "# y[j+1] = euler(y[j], time[j], dt, SHO)\n", "\n", "plt.plot(time, y[:, 0], 'b-', label='position')\n", "plt.xlabel ('time')\n", "plt.ylabel('position')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ローレンツ方程式\n", "\\begin{align}\n", " \\frac{dx}{dt} &= -px + py, \\\\\n", " \\frac{dy}{dt} &= -xz + rx - y, \\\\\n", " \\frac{dz}{dt} &= xy - bz.\n", "\\end{align}" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "import numpy as np\n", "from scipy.integrate import odeint\n", "import matplotlib.pyplot as plt\n", "from mpl_toolkits.mplot3d import Axes3D\n", "\n", "\n", "def func(v, t, p, r, b):\n", " return [-p*v[0]+p*v[1], -v[0]*v[2]+r*v[0]-v[1], v[0]*v[1]-b*v[2]]\n", "\n", "p = 10\n", "r = 28\n", "b = 8/3\n", "v0 = [0.1, 0.1, 0.1]\n", "t = np.arange(0, 100, 0.01)\n", "\n", "# ソルバー\n", "v = odeint(func, v0, t, args=(p, r, b))\n", "\n", "fig = plt.figure()\n", "ax = fig.gca(projection='3d')\n", "ax.plot(v[:, 0], v[:, 1], v[:, 2])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Scipy\n", "odeint() という常微分方程式のソルバーがある。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ばね振り子\n", "運動方程式は次の通り。\n", "ラグランジアンから出すのが楽かもしれない。\n", "\\begin{align}\n", " \\ddot{L}\n", " &=\n", " (L_{o} + L) \\dot{\\theta}^2 - \\frac{k}{m} L + \\cos \\theta, \\\\\n", " \\ddot{\\theta}\n", " &=\n", " - \\frac{1}{L_{o} + L} (g \\sin \\theta + 2 \\dot{L} \\dot{\\theta}).\n", "\\end{align}" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/phasetr/.pyenv/versions/anaconda3-4.1.0/lib/python3.5/site-packages/scipy/integrate/odepack.py:218: ODEintWarning: Excess work done on this call (perhaps wrong Dfun type). Run with full_output = 1 to get quantitative information.\n", " warnings.warn(warning_msg, ODEintWarning)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# エラーあり: どうすればいいだろう?\n", "%matplotlib inline\n", "# coding: utf-8\n", "from pylab import *\n", "from scipy.integrate import odeint\n", "\n", "# ステップ数\n", "N = 1000\n", "\n", "# 計算結果の初期化\n", "y = zeros([4])\n", "\n", "L0 = 1.0 # 伸びていないばねの長さ\n", "L = 1.0 # ばねの初期長さ\n", "v0 = 0.0 # 初期測度\n", "theta0 = 0.3 # 初期角度をラジアンで\n", "omega0 = 0.0 # 初期角速度\n", "\n", "# 初期状態をセット\n", "y[0] = L\n", "y[1] = v0\n", "y[2] = theta0\n", "y[3] = omega0\n", "\n", "# 時間をセット\n", "time = linspace(0, 25, N)\n", "\n", "k = 3.5 # ばね定数\n", "m = 0.2 # 質量\n", "gravity = 9.8 # 重力\n", "\n", "def spring_pendulum(y, time):\n", " g0 = y[1]\n", " # L の微分方程式\n", " g1 = (L0 + y[0]) * y[3] * y[3] - (k / m) * y[0] + gravity * cos(y[2])\n", " g2 = y[3]\n", " # theta の微分方程式\n", " g3 = (gravity * sin(y[2]) + 2.0 * y[1] * y[3]) / (L0 + y[0])\n", " return array([g0, g1, g2, g3])\n", "\n", "# 計算結果\n", "answer = odeint(spring_pendulum, y, time, full_output = 1)\n", "xdata = (L0 + answer[0][:, 0]) * sin(answer[0][:, 2])\n", "ydata = - (L0 + answer[0][:, 0]) * cos(answer[0][:, 2])\n", "#print(ydata)\n", "#print(answer[2])\n", "#print(type(answer))\n", "#print(answer)\n", "\n", "# グラフを描く\n", "plot(xdata, ydata, 'r-')\n", "xlabel(\"Horizontal position\")\n", "ylabel(\"Vertical position\")\n", "show()\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## odeint のサンプル" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nMsaJ3cwsY/4DvvksCpnoq8sAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"\n", "参考 http://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.odeint.html\n", "解きたい方程式: theta''(t) + b*theta'(t) + c*sin(theta(t)) = 0\n", "正規形に変換:\n", "theta'(t) = omega(t)\n", "omega'(t) = -b*omega(t) - c*sin(theta(t))\n", "\"\"\"\n", "\n", "%matplotlib inline\n", "\n", "import numpy as np\n", "from scipy.integrate import odeint\n", "import matplotlib.pyplot as plt\n", "\n", "def pend(y, t, b, c):\n", " theta, omega = y\n", " dydt = [omega, -b*omega - c*np.sin(theta)]\n", " return dydt\n", "\n", "b = 0.25\n", "c = 5.0\n", "# 初期値\n", "y0 = [np.pi - 0.1, 0.0]\n", "# 時間設定\n", "t = np.linspace(0, 10, 101)\n", "# ソルバー\n", "sol = odeint(pend, y0, t, args=(b, c))\n", "\n", "plt.plot(t, sol[:, 0], 'b', label='theta(t)')\n", "plt.plot(t, sol[:, 1], 'g', label='omega(t)')\n", "# loc は location: 最適な位置を設定してくれる\n", "plt.legend(loc='best')\n", "plt.xlabel('t')\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nGBOU/wd2LXgUyEqEvgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nzTVs2PCUZaWmprJ79+5TYtm0aROpqamc4f1CVRVVpVGjRgA899xz/PWvf+XCCy+kevXqPPjgg9xy\nyy1Fsh2MczztONdNuY7ODTozsutIv8PxxY03wqZNcPnlkJAAtWr5HZHJTqlLFn5KSEjg6aef5ptv\nvsk8qAPUq1ePvXv3cujQISpVqgS4A3leZ/O5CXyMamJiImXLlqVmzZps2rQpc3rDhg0pX748e/bs\nybZ3VO3atXnttdcA+Pbbb7n88svp3r07zZo1K3Bc5qRjJ44xcNpAYsvG8lLfl0p1D7VRo+DIEZcw\n5s2DGjX8jshkZW0WxWT79u0MHjyYF154gXbt2p3yXoMGDbj44osZNWoUx44dY9myZbz55psMGzas\nwOubMGECq1at4vDhw4wePZoBAwZkHowyqovq1q1Lz549eeCBB0hJSUFVWb9+PV9//TUA06ZNY+vW\nrQBUrVqVqKgooqJslykKR08c5bop1xEt0bx//fvERNl529ix0KcPdO8O9sj48GO//GLyxhtvsHPn\nTkaMGHHKdRZxcXHcfffdTJo0iQ0bNlCvXj2uu+46Hn/8cXr06BH08gPPSkWEYcOGMXz4cOrVq8fx\n48f517/+le287777LsePH+fss8+mevXqDBgwgKSkJAB++OEHLrroIuLi4rj22mt58cUXadKkSeE3\nRim378g+rpx4JRXKVGDy9ZMpG13W75DCggg884x7dneXLvDLL35HZAKVugZuExq27YOzbu86rpx4\nJX1b9uW5K54jOira75DC0uTJcO+9rmvtwIF+RxM57EaCJ6fbAcsntu3z9smqT7hzxp2MjR/L78//\nvd/hhL2ffoIBA6BvX3juOShf3u+ISj67kaAxYexw6mHumXkP98++n49v+NgSRZA6doTFi91zvNu3\nh//9z++ISjdLFsaE0Ge/fUbbV9qy7+g+lty1hM4NO/sdUolStaq7nfnTT7vqqDvugO3b/Y6qdLJk\nYUwIrNy1kt9N/h33z76fV696lff6v0fV8lX9DqvE6t8fli93yaNtWxg9Grw72JhiYsnCmCL0257f\nGPbRMLq/052L6l/EL3/4hSuaX+F3WBGhWjXXdrF4MSQmQrNm7rneiYl+R1Y6WLIwppDS0tP47LfP\n6PNeH7q+1ZWW1Vuy9r61jOw6kvIx1ipb1Jo0gXfecY9pjY6Gc8+FXr1g4kQ4fNjv6CJXRPWGatKk\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# http://scipy.github.io/old-wiki/pages/Cookbook/Zombie_Apocalypse_ODEINT#CA-9ec8aa31707fce65386b95c319541ababd1e1a2d_27\n", "# zombie apocalypse modeling\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.integrate import odeint\n", "plt.ion()\n", "\n", "P = 0 # birth rate\n", "d = 0.0001 # natural death percent (per day)\n", "B = 0.0095 # transmission percent (per day)\n", "G = 0.0001 # resurect percent (per day)\n", "A = 0.0001 # destroy percent (per day)\n", "\n", "# solve the system dy/dt = f(y, t)\n", "def f(y, t):\n", " Si = y[0]\n", " Zi = y[1]\n", " Ri = y[2]\n", " # the model equations (see Munz et al. 2009)\n", " f0 = P - B*Si*Zi - d*Si\n", " f1 = B*Si*Zi + G*Ri - A*Si*Zi\n", " f2 = d*Si + A*Si*Zi - G*Ri\n", " return [f0, f1, f2]\n", "\n", "# initial conditions\n", "S0 = 500. # initial population\n", "Z0 = 0 # initial zombie population\n", "R0 = 0 # initial death population\n", "y0 = [S0, Z0, R0] # initial condition vector\n", "t = np.linspace(0, 5., 1000) # time grid\n", "\n", "# solve the DEs\n", "soln = odeint(f, y0, t)\n", "S = soln[:, 0]\n", "Z = soln[:, 1]\n", "R = soln[:, 2]\n", "\n", "# plot results\n", "plt.figure()\n", "plt.plot(t, S, label='Living')\n", "plt.plot(t, Z, label='Zombies')\n", "plt.xlabel('Days from outbreak')\n", "plt.ylabel('Population')\n", "plt.title('Zombie Apocalypse - No Init. Dead Pop.; No New Births.')\n", "plt.legend(loc=0)\n", "plt.show()\n", "\n", "# change the initial conditions\n", "R0 = 0.01*S0 # 1% of initial pop is dead\n", "y0 = [S0, Z0, R0]\n", "\n", "# solve the DEs\n", "soln = odeint(f, y0, t)\n", "S = soln[:, 0]\n", "Z = soln[:, 1]\n", "R = soln[:, 2]\n", "\n", "plt.figure()\n", "plt.plot(t, S, label='Living')\n", "plt.plot(t, Z, label='Zombies')\n", "plt.xlabel('Days from outbreak')\n", "plt.ylabel('Population')\n", "plt.title('Zombie Apocalypse - 1% Init. Pop. is Dead; No New Births.')\n", "plt.legend(loc=0)\n", "plt.show()\n", "\n", "# change the initial conditions\n", "R0 = 0.01*S0 # 1% of initial pop is dead\n", "P = 10 # 10 new births daily\n", "y0 = [S0, Z0, R0]\n", "\n", "# solve the DEs\n", "soln = odeint(f, y0, t)\n", "S = soln[:, 0]\n", "Z = soln[:, 1]\n", "R = soln[:, 2]\n", "\n", "plt.figure()\n", "plt.plot(t, S, label='Living')\n", "plt.plot(t, Z, label='Zombies')\n", "plt.xlabel('Days from outbreak')\n", "plt.ylabel('Population')\n", "plt.title('Zombie Apocalypse - 1% Init. Pop. is Dead; 10 Daily Births')\n", "plt.legend(loc=0)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 常微分方程式\n", "一階の微分方程式\n", "\\begin{align}\n", " \\frac{dx(t)}{dt} = -a x\n", "\\end{align}\n", "を解く.一般解は初期条件を $x(0)=x_0$ として\n", "\\begin{align}\n", " x(t) = x_0 e^{-at}.\n", "\\end{align}" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# http://japanichaos.appspot.com/ODEwithScipy.html\n", "%matplotlib inline\n", "from scipy.integrate import odeint\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "def diff_op(x, time, a):\n", " return -a*x\n", "\n", "# 初期条件\n", "x0 = 2.0\n", "# 係数\n", "a = 2.0\n", "\n", "# 時間設定\n", "time = np.linspace(0,4,40)\n", "\n", "# 解く\n", "traject = odeint(diff_op, x0 ,time, args=(a,))\n", "\n", "plt.plot(time, traject, '-k', linewidth=3)\n", "plt.xlabel('t', fontsize=24)\n", "plt.ylabel('x', fontsize=24,rotation='horizontal')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 強制振動\n", "参考: \n", "\n", "物理の問題として次の 2 階の常微分方程式\n", "\\begin{align}\n", " \\frac{d^2 x}{dt^2} + \\gamma \\frac{dx}{dt} + \\omega^2 x\n", " =\n", " \\varepsilon f (t)\n", "\\end{align}\n", "はよく出てくる.\n", "odeint で解くときは正規形の 1 階の微分方程式に変形する.\n", "\\begin{align}\n", " \\begin{split}\n", " \\dot{x}\n", " &=\n", " p \\\\\n", " \\dot{p}\n", " &= -\\gamma \\dot{x} - \\omega^2 x + \\epsilon f (t).\n", " \\end{split}\n", "\\end{align}\n", "今回外力として強制振動 $f (t) = \\cos (\\omega_2 t)$ を考える.\n", "\n", "うまくいかなかったのでコードは省略." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Poincare plot" ] } ], "metadata": { "anaconda-cloud": {}, "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.6.3" } }, "nbformat": 4, "nbformat_minor": 1 }