{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#  「関数のグラフを描く」のレポート課題の解答例\n",
    "\n",
    "## 演習2.3\n",
    "\n",
    "任意に指定された区間$[a,b]$における$f(x)$のグラフを描画するPythonの関数draw_f(a,b)を作成してください。\n",
    "\n",
    "### Step 1. \n",
    "まず、関数 $f(x)=\\sqrt{x}+1$のコードを用意します。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import math\n",
    "def my_f(x):\n",
    "    return math.sqrt(x)+1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "定義した関数を使ってみます。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.0"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_f(4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Step 2.\n",
    "\n",
    "指定された区間$[a,b]$におけるグラフを描くために、$[a,b]$の分割を考え、x_listを作成します。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1.0, 1.09, 1.18, 1.27, 1.3599999999999999, 1.45, 1.54, 1.63, 1.72, 1.81, 1.9, 1.99, 2.08, 2.17, 2.26, 2.3499999999999996, 2.44, 2.5300000000000002, 2.62, 2.71, 2.8, 2.8899999999999997, 2.98, 3.07, 3.16, 3.25, 3.34, 3.4299999999999997, 3.52, 3.61, 3.6999999999999997, 3.79, 3.88, 3.9699999999999998, 4.0600000000000005, 4.15, 4.24, 4.33, 4.42, 4.51, 4.6, 4.6899999999999995, 4.779999999999999, 4.869999999999999, 4.96, 5.05, 5.14, 5.2299999999999995, 5.32, 5.41, 5.5, 5.59, 5.68, 5.77, 5.859999999999999, 5.95, 6.04, 6.13, 6.22, 6.31, 6.3999999999999995, 6.49, 6.58, 6.67, 6.76, 6.85, 6.9399999999999995, 7.029999999999999, 7.12, 7.21, 7.3, 7.39, 7.4799999999999995, 7.569999999999999, 7.66, 7.75, 7.84, 7.93, 8.02, 8.11, 8.2, 8.29, 8.379999999999999, 8.469999999999999, 8.559999999999999, 8.649999999999999, 8.739999999999998, 8.83, 8.92, 9.01, 9.1, 9.19, 9.28, 9.37, 9.459999999999999, 9.549999999999999, 9.64, 9.73, 9.82, 9.91, 10.0]\n"
     ]
    }
   ],
   "source": [
    "#関数の引数は不定なので、コードを準備するために、具体的な値で試さないとコードを書きにくいです。\n",
    "#とりあえず、a=1,b=10とします。実際の計算では、aとbの値は引数の値をとります。\n",
    "\n",
    "a=1\n",
    "b=10\n",
    "\n",
    "h=(b-a)/100; #区間[a,b]の100分割を考えます。\n",
    "\n",
    "n_list=range(0,101)\n",
    "x_list=[]\n",
    "for n in n_list:\n",
    "    x_list.append(a+n*h)\n",
    "    \n",
    "print(x_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Step 3.\n",
    "\n",
    "グラフの描画に必要となるy_listを作成します。それから、x_listとy_listを使ってグラフを描画してみます。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#y_listを作成します。\n",
    "y_list=[]\n",
    "for x in x_list:\n",
    "    y=my_f(x)\n",
    "    y_list.append(y)\n",
    "\n",
    "#x_list,y_listのグラフを描画します。\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.plot(x_list,y_list,'b-')\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Step 4.\n",
    "\n",
    "上記のコードを関数draw_f(a,b)にまとめます。特に、a, bは引数から値を取るので、関数の中でa, bの具体的な値を設定する必要はないです。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import math\n",
    "\n",
    "def my_f(x):\n",
    "    return math.sqrt(x)+1\n",
    "\n",
    "def draw_f(a,b):\n",
    "    #x_listを作成します。\n",
    "    h=(b-a)/100; #区間[a,b]の100分割を考えます。\n",
    "\n",
    "    n_list=range(0,101)\n",
    "    x_list=[]\n",
    "    for n in n_list:\n",
    "        x_list.append(a+n*h)\n",
    "\n",
    "    #y_listを作成します。\n",
    "    y_list=[]\n",
    "    for x in x_list:\n",
    "        y=my_f(x)\n",
    "        y_list.append(y)\n",
    "\n",
    "    #x_list,y_listのグラフを描画します。\n",
    "    plt.plot(x_list,y_list,'b-')\n",
    "    plt.grid()\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "任意のa, bの値で試してみます。例えば、a=1, b=100。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw_f(1,100)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 演習３"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import math\n",
    "\n",
    "def Taylor(x,n):%n自\n",
    "    y = 0\n",
    "    for k in range(0,n+1):\n",
    "        y = y + x**k/math.factorial(k)\n",
    "    return y\n",
    "    \n",
    "def draw_Taylor(n):\n",
    "    h=0.01\n",
    "    x_list=[]\n",
    "    k_list=range(0,201)\n",
    "    for k in k_list:\n",
    "        x_list.append(k*h)\n",
    "        \n",
    "    y_list=[] \n",
    "    exp_list = []\n",
    "    for x in x_list:\n",
    "        exp_list.append(math.exp(x))\n",
    "        y = Taylor(x,n)\n",
    "        y_list.append(y)\n",
    "    \n",
    "    plt.plot(x_list,y_list,'b-', label=\"Taylor expansion up to degree %d\"%n)\n",
    "    plt.plot(x_list,exp_list,'r-', label=\"Exponent function\")\n",
    "    plt.grid()\n",
    "    plt.legend()\n",
    "    plt.show()\n",
    "    \n",
    "draw_Taylor(4)"
   ]
  }
 ],
 "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"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
