{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "# Table of Contents\n", "

1  準備
2  bisection法
3  newton法
4  plot
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "
\n", "\n", "
\n", "fsolveの課題\n", "
\n", "
\n", "
\n", "file:/Users/bob/Github/TeamNishitani/jupyter_num_calc/fsolve\n", "
\n", "https://github.com/daddygongon/jupyter_num_calc/tree/master/notebooks_python\n", "
\n", " 18/9/28 60001 西谷滋人 \n", "
\n", "\n", "関数\n", "$ \\exp(-x)= x^2$\n", "の解を二分法(bisection)とNewton法で求めて,収束性を比較する" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 準備\n", "\n", "関数のdefと微分,plotで確かめておく.\n", "plotには,matplotlib.pyplotを使う.また,\n", "数値計算に向いたlibraryのnumpyを入れておく.\n", "数式処理での微分のためにsympyを入れておく.\n", "\n", "関数の微分は以下の通りにできる" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-2*x - exp(-x)\n" ] } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "from sympy import *\n", "\n", "x = symbols('x')\n", "\n", "\n", "def func(x):\n", " return exp(-x)-x**2\n", "\n", "def df(x):\n", " return diff(func(x), x)\n", "\n", "print(df(x))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "plotのdataはnumpyで用意する.\n", "その際に,exp関数としてnumpyのexp関数を使わないとエラーがでるので,def内ではnp.expと明示している.\n", "関数によっては解の範囲x0,x1を変更しなければならない." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def func(x):\n", " return np.exp(-x)-x**2\n", "def df(x):\n", " return -2*x - np.exp(-x)\n", "\n", "x0=0.0\n", "x1=1.0\n", "x = np.linspace(x0, x1, 101)\n", "y = func(x)\n", "plt.plot(x, y, color = 'k')\n", "plt.plot([x0,x1],[0,0])\n", "plt.grid()\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "pythonが用意している標準的な解法によって解(x0)をえておく.\n", "fsolveはarray構造を返すので,値として取り出すために[0]を指定している." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.70346742249839178" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from scipy.optimize import fsolve\n", "x0 = fsolve(func, 0.0)[0]\n", "x0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# bisection法\n", "\n", "二分法(bisection)での解.\n", "list_bisecというarrayを用意しておき,それに値を追加(append)していく." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " x1 x2 f1 f2\n", " +0.0000000000 +1.0000000000 +1.0000000000 -0.6321205588\n", " +0.5000000000 +1.0000000000 +0.3565306597 -0.6321205588\n", " +0.5000000000 +0.7500000000 +0.3565306597 -0.0901334473\n", " +0.6250000000 +0.7500000000 +0.1446364285 -0.0901334473\n", " +0.6875000000 +0.7500000000 +0.0301753280 -0.0901334473\n", " +0.6875000000 +0.7187500000 +0.0301753280 -0.0292404858\n", " +0.7031250000 +0.7187500000 +0.0006511313 -0.0292404858\n", " +0.7031250000 +0.7109375000 +0.0006511313 -0.0142486319\n", " +0.7031250000 +0.7070312500 +0.0006511313 -0.0067872536\n", " +0.7031250000 +0.7050781250 +0.0006511313 -0.0030651888\n", " +0.7031250000 +0.7041015625 +0.0006511313 -0.0012063109\n", " +0.7031250000 +0.7036132812 +0.0006511313 -0.0002774104\n", " +0.7033691406 +0.7036132812 +0.0001869053 -0.0002774104\n", " +0.7033691406 +0.7034912109 +0.0001869053 -0.0000452413\n", " +0.7034301758 +0.7034912109 +0.0000708348 -0.0000452413\n", " +0.7034606934 +0.7034912109 +0.0000127975 -0.0000452413\n", " +0.7034606934 +0.7034759521 +0.0000127975 -0.0000162218\n", " +0.7034606934 +0.7034683228 +0.0000127975 -0.0000017121\n", " +0.7034645081 +0.7034683228 +0.0000055427 -0.0000017121\n", " +0.7034664154 +0.7034683228 +0.0000019153 -0.0000017121\n", " +0.7034673691 +0.7034683228 +0.0000001016 -0.0000017121\n", "\n" ] } ], "source": [ "x1, x2 = 0.0, 1.0\n", "f1, f2 = func(x1), func(x2)\n", "print('%+15s %+15s %+15s %+15s' % ('x1','x2','f1','f2'))\n", "print('%+15.10f %+15.10f %+15.10f %+15.10f' % (x1,x2,f1,f2))\n", "\n", "list_bisec = [[0],[abs(x1-x0)]]\n", "for i in range(0, 20):\n", " x = (x1 + x2)/2\n", " f = func(x)\n", " if (f*f1>=0.0):\n", " x1, f1 = x, f\n", " list_bisec[0].append(i)\n", " list_bisec[1].append(abs(x1-x0))\n", " else:\n", " x2, f2 = x, f\n", " list_bisec[0].append(i)\n", " list_bisec[1].append(abs(x2-x0))\n", "\n", " print('%+15.10f %+15.10f %+15.10f %+15.10f' % (x1,x2,f1,f2))\n", "\n", "list_bisec\n", "print()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# newton法\n", "\n", "list_newtonに追加していく." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.0000000000 -0.6321205588285576659757226\n", "0.7330436052454454287641283 -0.0569084480040253914978621\n", "0.7038077863241329890087172 -0.0006473915387465445370196\n", "0.7034674683317975185659066 -0.0000000871660306156485376\n", "0.7034674224983924473164620 -0.0000000000000014988010832\n", "\n" ] } ], "source": [ "x1 = 1.0\n", "f1 = func(x1)\n", "list_newton = [[0],[x1]]\n", "print('%-15.10f %+24.25f' % (x1,f1))\n", "for i in range(0, 4):\n", " x1 = x1 - f1 / df(x1)\n", " f1 =func(x1)\n", " print('%-24.25f %+24.25f' % (x1,f1))\n", " list_newton[0].append(i)\n", " list_newton[1].append(abs(x1-x0))\n", "\n", "list_newton\n", "print()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# plot\n", "bisection法とnewton法による収束性をplotする.\n", "plt.yscale('log')でy軸を対数目盛りにすると見やすい." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "X = list_bisec[0]\n", "Y = list_bisec[1]\n", "plt.plot(X, Y)\n", "\n", "X = list_newton[0]\n", "Y = list_newton[1]\n", "plt.plot(X, Y)\n", "\n", "plt.yscale(\"log\") # y軸を対数目盛に\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Newton法の方が圧倒的に速く正しい解に収束している." ] } ], "metadata": { "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.1" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "colors": { "hover_highlight": "#DAA520", "navigate_num": "#000000", "navigate_text": "#333333", "running_highlight": "#FF0000", "selected_highlight": "#FFD700", "sidebar_border": "#EEEEEE", "wrapper_background": "#FFFFFF" }, "moveMenuLeft": true, "nav_menu": { "height": "13px", "width": "253px" }, "navigate_menu": true, "number_sections": true, "sideBar": true, "threshold": 4, "toc_cell": true, "toc_section_display": "block", "toc_window_display": true, "widenNotebook": false } }, "nbformat": 4, "nbformat_minor": 2 }