{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 初等関数" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "四則演算は”+ー*・”.分数は," ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.75\n" ] } ], "source": [ "\n", "from sympy import *\n", "from IPython.display import display\n", "init_printing(use_latex='mathjax')\n", "\n", "print(3/4);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "であるが,Rational(有理数)というコマンドを使うと" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\frac{3}{4}$$" ], "text/plain": [ "3/4" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Rational(3/4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " と,分数のまま表示してくれる.\n", "\n", "sympyを使うと$x$を変数として,そのままの記号で使うことが可能となる.ちょっと変な記述だが," ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 2 \n", "3⋅a - 4⋅a + 3\n" ] } ], "source": [ "x = symbols('a')\n", "eq1 = 3*x**2 -4*x + 3\n", "pprint(eq1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "とすると変数名としてのxとそこに割り当てられた記号としての$a$の関係がわかるだろう.\n", "\n", "その他の関数もそのまま直感的な名前が使える." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "√2\n" ] } ], "source": [ "pprint(sqrt(2))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "log(a)\n" ] } ], "source": [ "pprint(log(x))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 2 2 \n", "sin (a) + cos (a)\n" ] } ], "source": [ "pprint(sin(x)**2+cos(x)**2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "値として取り出すのは,以下のふた通り." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.14159265358979\n", "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068\n" ] } ], "source": [ "print( pi.evalf() )\n", "print( N(pi, 100) )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ラジアンと角度(lost)\n", "\n", "mpmathをいれないと駄目? でも,mpmathの説明があまりまともにされてない.\n", "数値計算だよね.\n", "\n", "degreesとかradiansに関しては,sympyで用意されてないようだ." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$59.99999999999999$$" ], "text/plain": [ "59.99999999999999" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from math import *\n", "degrees(pi/3)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$1.0471975511965976$$" ], "text/plain": [ "1.0471975511965976" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "radians(60)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$0.5000000000000001$$" ], "text/plain": [ "0.5000000000000001" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cos(pi/3)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\frac{1}{2}$$" ], "text/plain": [ "1/2" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy import cos, pi\n", "\n", "cos(pi/3)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "π\n" ] } ], "source": [ "pprint(pi)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6004799503160661/18014398509481984\n" ] } ], "source": [ "print(Rational(1/3))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "SympyではRational, Real, Integerが数としてあるらしい.\n", "\n", "Pi/3などをrationalとしては扱えない.したがって,三角関数の変形ではミスることになるな.\n", "んーーーん.ちとしんどいかも." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%matplotlib inline\n", "\n", "from sympy import Symbol\n", "from sympy.plotting import plot\n", "from sympy import sin, sinc\n", "\n", "x=Symbol('x')\n", "plot(sinc(x))" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\infty i$$" ], "text/plain": [ "∞⋅ⅈ" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy import acos, oo, pi\n", "acos(oo)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\frac{\\pi}{2}$$" ], "text/plain": [ "π\n", "─\n", "2" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "acos(0)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "from sympy import *\n", "x = Symbol('x')\n", "p1 = plot(sinh(x), cosh(x), (x,-pi,pi),\n", " legend=True, show=False)\n", "p1[0].line_color = 'b'\n", "p1[1].line_color = 'r'\n", "p1.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# ユーザ定義関数\n", "## 簡単な定義\n", "単純にユーザが関数を定義するには下の通りすれば良い.その場合,入力はsubsを使う." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "my_func = 2*x - 3" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2⋅x - 3\n", "2⋅a - 3\n" ] } ], "source": [ "from sympy import *\n", "a, x = symbols('a x')\n", "pprint(my_func.subs({x:x}))\n", "pprint(my_func.subs({x:a}))\n" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sympy.plotting import plot\n", "p1 = plot(my_func, (x,-2,2),\n", " legend=True, show=False)\n", "p1[0].line_color = 'r'\n", "p1.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## もう少し一般的な定義\n", "Python 標準のdefを使うことも可能." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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LrgAgKysLA4fPkzDhg1PXrNt2zaaNGlClfwNVLdt3coljRsTaNtw/LjpfsvJ4fDBg/z5558E2DYZubk0P+88qFTJFKJKlUwL6MT/gYFmgoMHdtPp98X9vDU3lG/29evXf27bdsHDx2zbLu5fuWnVqlV53p3beGtu21b24qxatcru2LHjyffHjBljjxkz5rRrOnbsaK9atcq2bdvOycmxQ0ND7by8vGLvt1q1auUf1k30++J+3prbtss9e6E1SFOAxC+1bt2alJQUfvrpJ44dO8bMmTNJSEg47ZqEhASmT58OwJw5c7juuuuwPLDlI+KrNAYlfikwMJBJkybRqVMncnNz6d+/P9HR0QwfPhyXy0VCQgIDBgygd+/eREZGEhISwsyZM52OLeJX3FagBg4c6K4vVa68NTco+5l07dqVrl27nvax0aNHn3w7KCiI2bNnl+o+63jxuUr6fXE/b80N7smudVAi5cjte/GJ+IZC+841BiUiIh6pwgrUo48+StOmTYmJieGmm25i//79hV63aNEiLrnkEiIjI3n++ecrKk6JzZ49m+joaAICAop9JdyoUSMuvfRSYmNjcblcbkxYtJJm97THHOD3338nPj6eJk2aEB8fz759+wq9rlKlSsTGxhIbG1tgUoM7nekxPHr0KLfccguRkZHExcWRemKrIg9wpuzTpk0jLCzs5OM8depUB1IW1L9/f8LDw2lexCnAtm3z4IMPEhkZSUxMDBs2bHBzwsKdKffy5csJDg4++Xif2s3stF27dtG+fXuaNWtGdHQ0EyZMKHBNhT7uRU3vs8s4zfzzzz+3c3JybNu27ccee8x+7LHHClxz/Phxu3HjxvYPP/xgHz161I6JibG3bdtWli9bZtu3b7d37Nhht2vXzl63bl2R111wwQV2ZmamG5OdWUmye+Jjbtu2/eijj9pjx461bdu2x44dW+jvi23bdvXq1d0Zq1DFPYYnpt6+/vrr9qBBg2zbtu0PPvjA7tmzp2N5T1WSn/+7775r33fffQ4lLNr//vc/e/369XZ0dHSht3/66ad2586d7by8PHv16tV2mzZt3JywcGfKvWzZMvuGG25wc6qS2b17t71+/Xrbtm37wIEDdpMmTQr8vpTT4+7eaeYdO3YkMH+LlrZt25KWllbgmqSkJCIjI2ncuDFVqlShV69ezJs3r6IilUhUVBSXXHKJoxnOVkmye+JjDjBv3jz69u0LQN++ffnkk0+cDVSMkjyGp34/PXr0YMmSJdjFj/e6haf+/EvimmuuISQkpMjb582bR58+fbAsi7Zt27J//34yMjLcmLBwZ8rtyerVq0fLli0BqFmzJlFRUaSnp592TUU+7m4Zg3rnnXfo0qVLgY+f3G4mX0RERIFv3lNZlkXHjh1p1aoViYmJTscpMU99zPfs2UO9evUAqFu3Lnv27Cn0uuzsbFwuF23btnWsiJXkMTz1msDAQIKDg8nKynJrzsKU9Oc/d+5cYmJi6NGjB7t27XJnxLPmqb/bJbF69WpatGhBly5d2LZtm9NxCpWamsrGjRuJi4s77eMV+rgX1bQqyT/gS+CbQv793ynXPA18TP6Mwb99fg9g6inv9wYmlSVTOeZeDriKuY/6+f+HA5uBayo6d3lkd+oxP1N2YP/frt13hse9MZAKXOSO7CV9DIFF+f9/A0Sccs0PQB13Zz2bnz8QClTNf3sQsNTp3KdkawR8U8RtC4CrTnl/SXF/wx6UuxZQI//trkCK03kLyVgDWA90d+fjXqZ1ULZtX1/c7ZZl9QO6AR3s/OR/kw40OOX9iPyPVagz5S7hfaTn//+bZVkfA22Ar8p6vyX4umXN7shjDsVntyxrj2VZ9WzbzrAsqx7wWxH3ceJx/9GyrOXAZZgnf3cq8jG0/9pP7MQ1aZZlBQLBgPNNqBL8/G3bPjXnVOBFN+QqD479bpeFbdsHTnl7oWVZky3LqmPbdvlshFpGlmVVBuYC/7Zt+6NCLqmwx73Cuvgsy+oMPAYk2Lb9ZxGXrQOaWJZ1oWVZVYBewPyKylReLMuqbllWzRNvAx0xr5i9gac+5vOBvvlv9wUKDIxYllXbsqyq+W/XAa4Etrst4V9K8hie+v30wLRCnB+EKkH2/BcIJyQA37oxX1nMB/pYRlvgD9u2nR+EOgPLsupa+XtoWZbVBvO87AkvZsjP9TbwrW3brxZxWcU97hXYJNwJ7AI25f+bkv/x84GFp1zXFfge8yr4aQ9oyt4EpAFHgT3A53/Pjele2pz/b5sn5C5pdk98zPMzhWK6BlIwXYEh+R93kd8lBVwBbM1/3LcCAxzMW+AxBEZjXpABBAGz8/8OkoDGTj/Gpcg+Nv/3ejOwDGjqdOb8XB8AGUBO/u/5AGAwMDj/dgt4Pf/72orndO+dKff9pzzea4ArnM58SvarMBs2bDnlubyrux73M+0kISIi4gjtJCEiIh5JBUpERDySCpSIiHgkFSgREfFIKlAiIuKRVKBERMQjqUCJiIhHUoESKQeWZbW2LGuLZVlB+TuNbLMsq/ADgESkRLRQV6ScWJb1HGYHiXOANNu2xzocScSrqUCJlJP8ve3WAdmY7WpyHY4k4tXUxSdSfkIxxxLUxLSkRKQM1IISKSeWZc0HZgIXAvVs277f4UgiXq1M50GJiGFZVh8gx7bt/1iWVQlYZVnWdbZtL3U6m4i3UgtKREQ8ksagRETEI6lAiYiIR1KBEhERj6QCJSIiHkkFSkREPJIKlIiIeCQVKBER8UgqUCIi4pH+PxvfNsA2/ygaAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sympy import *\n", "x = symbols('x')\n", "\n", "def func(x):\n", " return x**2\n", "\n", "p1 = plot(func(x), (x,-2,2),\n", " legend=True, show=False)\n", "p1[0].line_color = 'r'\n", "p1.show()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\frac{x^{3}}{3}$" ], "text/plain": [ "x**3/3" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(func(x),x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## より厳密な定義\n", "\n", "より厳密に関数を定義するにはFunctionで定義する必要がある." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "f = Function('f')" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "d \n", "──(f(x))\n", "dx \n" ] } ], "source": [ "pprint(Derivative(f(x),x))" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "?Function" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "class my_func(Function):\n", " @classmethod\n", " def eval(cls, x):\n", " return 2*x**2-3*x+4\n", "\n", "plot(my_func(x))" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$4 x - 3$$" ], "text/plain": [ "4⋅x - 3" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(my_func(x),x)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot(diff(my_func(x),x),my_func(x))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "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.8.5" }, "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": { "base_numbering": 1, "nav_menu": { "height": "48px", "width": "252px" }, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": {}, "toc_section_display": "block", "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 2 }