{"cells":[{"cell_type":"markdown","metadata":{},"source":["
\n","\n","
\n","数値計算試験問題\n","
\n","
\n","
\n","2021/12/17 実施\n","
\n","2022/12/16 予行演習実施\n","
\n","cc by Shigeto R. Nishitani 2021-2 \n","
\n","\n","2022/12/16 予行演習:以下の問いに答えよ.答案はpdfとipynb形式でLUNAのd12へ全員が個別に提出せよ.pdfは2pageを一枚に集約して作成すること.\n"]},{"cell_type":"markdown","metadata":{},"source":["# 1 簡単な行列計算(25点)\n","次のデータにフィットした二次関数を求める.\n","``` python\n","import numpy as np\n","\n","xdata = np.array([1,2,3,4])\n","ydata = np.array([1,2,5,11])\n","```\n","\n","最小二乗法の正規方程式(normal equations)から求められるデザイン行列$A$は,\n","$$\n","A=\\left( \\begin {array}{ccc} 1. & 1. & 1.\\\\\n"," 1. & 2. & 4. \\\\\n"," 1. & 3. & 9. \\\\\n"," 1. & 4. & 16.\n","\\end {array} \\right)\n","$$\n","となる.$A^TA$の逆行列から\n","\n","$$\n","a = (A^TA)^{-1} A^T y\n","$$\n","により最適パラメータ$a$を求め,データと同時に plot せよ."]},{"cell_type":"markdown","metadata":{},"source":["# 2 ニュートンの差分商補間(25点)\n","\n","2を底とする対数関数($\\log[2](x)$)の$x=2$における値$F(2.0)$をニュートンの差分商補間を用いて求める.\n","ニュートンの内挿公式は,\n","$$\n","\\begin{array}{rc}\n","F (x )&=F (x _{0})+\n","(x -x _{0})f _{1}\\lfloor x_0,x_1\\rfloor+\n","(x -x _{0})(x -x _{1})\n","f _{2}\\lfloor x_0,x_1,x_2\\rfloor + \\\\\n","& \\cdots + \\prod_{i=0}^{n-1} (x-x_i) \\, \n","f_n \\lfloor x_0,x_1,\\cdots,x_n \\rfloor\n","\\end{array}\n","$$\n","である.ここで$f_i \\lfloor\\, \\rfloor$ は次のような関数を意味していて,\n","$$\n","\\begin{array}{rc}\n","f _{1}\\lfloor x_0,x_1\\rfloor &=& \\frac{y_1-y_0}{x_1-x_0} \\\\\n","f _{2}\\lfloor x_0,x_1,x_2\\rfloor &=& \\frac{f _{1}\\lfloor x_1,x_2\\rfloor-\n","f _{1}\\lfloor x_0,x_1\\rfloor}{x_2-x_0} \\\\\n","\\vdots & \\\\\n","f _{n}\\lfloor x_0,x_1,\\cdots,x_n\\rfloor &=& \\frac{f_{n-1}\\lfloor x_1,x_2\\cdots,x_{n}\\rfloor-\n","f _{n-1}\\lfloor x_0,x_1,\\cdots,x_{n-1}\\rfloor}{x_n-x_0} \n","\\end{array}\n","$$\n","差分商と呼ばれる.$x_k=1.4, 1.8, 2.2, 2.6$をそれぞれ選ぶと,差分商補間のそれぞれの項は以下の通りとなる.\n","\n","$$\n","\\begin{array}{ccl|lll}\n","\\hline\n","k & x_k & y_k=F_0( x_k) &f_1\\lfloor x_k,x_{k+1}\\rfloor & f_2\\lfloor x_k,x_{k+1},x_{k+2}\\rfloor & f_3\\lfloor x_k,x_{k+1},x_{k+2},x_{k+3}\\rfloor \\\\\n","\\hline\n","0 & 1.4 & 0.4854268272 & & &\\\\\n","& & & 0.906425198 & &\\\\ \n","1 & 1.8 & 0.8479969066 & & [ XXX ] &\\\\\n","& & & 0.723766544 & & 0.0639712067 \\\\\n","2 & 2.2 & 1.137503524 & & -0.1515578700 &\\\\ \n","& & & 0.602520248 & &\\\\ \n","3 & 2.6 & 1.378511623 & & &\\\\ \n","\\hline\n","\\end{array}\n","$$\n","それぞれの項は,例えば,\n","\n","$$\n","f_1\\lfloor x_0,x_1 \\rfloor =\\frac{0.8479969066 - 0.4854268272}{1.8-1.4}=0.906425198\n","$$\n","で求められる.ニュートンの差分商の一次多項式の値はx=2.0で\n","\n","\\begin{align}\n","F(x)&=F_0(1.4)+(x-x_0)f_1\\lfloor x_0,x_1\\rfloor \\\\\n","& =0.4854268272+(2.0-1.4)\\times0.906425198\\\\\n","& =1.029281946\n","\\end{align}\n","となる.\n","\n","## (1) 差分商補間の表中の開いている箇所[ XXX ]を埋めよ.\n","## (2) ニュートンの二次多項式\n","\n","$$\n","F (x )=F (x _{0})+(x -x _{0})f _{1}\\lfloor x_0,x_1\\rfloor+(x -x _{0})(x -x _{1})\n","f _{2}\\lfloor x_0,x_1,x_2\\rfloor\n","$$\n","の値を求めよ.\n","## (3) ニュートンの三次多項式の値を求めよ.\n","(E.クライツィグ著「数値解析」(培風館,2003), p.31, 例4改)"]},{"cell_type":"markdown","metadata":{},"source":["# 3 数値積分(25点)\n","$$\n","\\int_1^2 \\frac{1}{x} dx = \\log2\n","$$\n","の近似値をシンプソンの公式で求めよ.区間を2,4,8,16等分して片対数プロットで収束の様子を示せ.\n","ただし$\\log_{e}(2)=0.6931471805599453$である.\n","\n","「大学教養数学」,児玉鹿三,技研社 1963, p.172."]},{"attachments":{"image-3.png":{"image/png":"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"}},"cell_type":"markdown","metadata":{},"source":["# 4 スムースな静止(25点)\n","\n","バネと質点(mass)の運動において,地面から摩擦力(friction)が速度(velocity)に比例して働いているとする.\n","以下のコードに「速度に比例する時間に依存しない一定の摩擦項」を加えると,質点が減衰(damping)する様子が図の通り再現される.\n","1. friction=0.1でこの図を作成せよ.\n","1. さらに,質点が原点を超えることなくできるだけ早く減衰するにはfrictionはどの程度の値が最適か.\n","小数点以下一桁程度で答えよ(厳密に導かなくていいよ).\n","1. 摩擦力と質点の振る舞いを定性的に解説せよ.\n","\n","これは,ロボットアームなどの静止をダンパー制御するときの振る舞いとなる.\n","\n","![image-3.png](attachment:image-3.png)\n","\n","``` python\n","import matplotlib.pyplot as plt\n","\n","def my_plot(xx, vv, tt):\n"," plt.plot(tt, xx, color = 'b', linestyle='--',label=\"x-position\")\n"," plt.plot(tt, vv, color = 'r', label=\"mass velocity\")\n"," plt.legend()\n"," plt.xlabel('time')\n"," plt.ylabel('position and velocity')\n"," plt.grid()\n"," plt.show()\n","def euler3(x0,v0):\n"," v1 = v0 +(- k * x0 ) * dt\n"," x1 = x0 + v0 * dt\n"," return [x1, v1]\n","\n","friction = 0.1\n","t, dt, k=0.0, 0.01, 0.1\n","tt,xx,vv=[0.0],[1.0],[0.0]\n","for i in range(0,6000):\n"," t += dt\n"," x, v = euler3(xx[-1],vv[-1])\n"," tt.append(t)\n"," xx.append(x)\n"," vv.append(v)\n","\n","my_plot(xx, vv, tt)\n","```"]}],"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"},"toc":{"base_numbering":1,"nav_menu":{},"number_sections":true,"sideBar":true,"skip_h1_title":false,"title_cell":"Table of Contents","title_sidebar":"Contents","toc_cell":false,"toc_position":{},"toc_section_display":true,"toc_window_display":true},"vscode":{"interpreter":{"hash":"f3f87633aac09da3bda522f97956bee375b5501d1579e6458804e567301cb62a"}}},"nbformat":4,"nbformat_minor":4}