{"cells":[{"cell_type":"markdown","metadata":{},"source":["<br />\n","\n","<div style=\"text-align: center;\">\n","<font size=\"7\">数値計算試験問題</font>\n","</div>\n","<br />\n","<div style=\"text-align: right;\">\n","<font size=\"4\">2026/07/15 実施</font>\n","<br />\n","<font size=\"4\">cc by Shigeto R. Nishitani 2026</font>\n","</div>\n","\n","pick_works_from_ans ex26_ans.ipynb -1 '9 12 15' ''"]},{"cell_type":"markdown","metadata":{},"source":["# 問１：線形代数，行列の４空間（25点）\n","\n","次の行列$A \\in \\mathbb{R}^{4 \\times 5}$を以下の通り定義する．\n","\\begin{equation*}\n","  A = \\left(\\begin{array}{ccccc}\n","    1 & 0 & 0 & 1 & 1\n","    \\\\\n","    1 & 1 & 1 & 1 & 0\n","    \\\\\n","    0 & 1 & 1 & 0 & -1\n","    \\\\\n","    0 & 0 & 1 & 1 & -1\n","  \\end{array}\\right)\n","\\end{equation*}\n","この行列 $A$ が定義する線形写像を \n","$f: \\mathbb{R}^5 \\to \\mathbb{R}^4$（$f(\\boldsymbol{x}) = A\\boldsymbol{x}$）とする．\n","以下の問いに答えよ．\n","\n","**設問：**\n","1. **行空間と列空間** : \n","    行列 $A$ の行空間 ${\\rm R}(A)$ および列空間 ${\\rm C}(A)$ の基底をそれぞれ求めよ．\n","\n","1. **像と核**: 写像 $f$ の像 $\\text{Im}(f)$ および核 $\\text{Ker}(f)$ の次元と基底を求めよ．\n","\n","1. **直交補空間の検証（行空間と核）**: $\\mathbb{R}^5$ において，核 $\\text{Ker}(f)$ と行空間 ${\\rm R}(A)$ が互いに直交補空間であることを，それぞれの基底を用いた内積計算により示せ．\n","\n","1. **直交補空間の検証（像と左核）** : 転置行列 $A^{\\rm T}$ が定義する線形写像 $f^{\\rm T}: \\mathbb{R}^4 \\to \\mathbb{R}^5$ (随伴写像と呼ばれる)を考える．このとき，その核 $\\text{Ker}(f^{\\rm T})$（左核と呼ばれる）が，写像 $f$ の像 $\\text{Im}(f)$ の直交補空間であることを示せ．\n","1. **基本4空間による全体空間の分割（次元定理）** : 上記の設問を参考にして，行列の基本4空間（行空間 ${\\rm R}(A)$，列空間 ${\\rm C}(A)$，核 ${\\rm Ker}(A)$，\n","    左核 ${\\rm Ker}(A^T)$）の包含関係と，それぞれの次元の間の関係を，図１を参考にまとめて説明せよ．\n","\n","\n","\n","<figure style=\"text-align: center;\">\n","  <img src=\"https://ist.ksc.kwansei.ac.jp/~nishitani/Lectures/2026/num_recipe/files/draw_four_spaces.010m.png\" width=\"600\">\n","    <figcaption style=\"font-weight: bold; margin-bottom: 8px; text-align: center;\">図1：行列の基本４空間のイメージ図．</figcaption>\n","</figure>\n"]},{"cell_type":"markdown","metadata":{},"source":["# 問２：数値積分，梁の変位（25点）\n","\n","長さ $L=6$ [m] の梁全体に，\n","一定の荷重 $w=3$ [kN/m] （等分布荷重）がかかっている状況を考える．\n","\n","このとき，梁の各位置 $x$ における「曲げモーメント」$M(x)$ は，\n","力学の平衡条件より以下の二次関数として導かれる．\n","\n","$$M(x) = \\frac{w}{2}(Lx - x^2)$$\n","\n","この梁の「端点における傾き（たわみ角）」$\\theta(L)$ は，以下の積分値として定義される．\n","\n","\n","$$\\theta(L) = \\int_0^L \\frac{M(x)}{EI} dx$$\n","\n","\n","ここで，$E$ は材料の定数，$I$ は断面形状の定数であり，\n","簡単のため $\\frac{1}{EI} = 1$ として計算を行う．\n","この積分値 $\\theta(L)$ は，\n","梁の端点 $x=L$ における接線の傾き（数学的な $dy/dx$）に相当する物理量である．\n","なお，この積分の理論的な真値は，\n","解析的に計算すると \n","$\\theta(L) = \\frac{w}{2EI} \\left[ \\frac{Lx^2}{2} - \\frac{x^3}{3} \\right]_0^L =  \\frac{wL^3}{12} = 54$ \n","となる．\n","\n","\n","**設問：**\n","1. 区間 $[0, L]$ を $N$ 等分し，刻み幅 $h=L/N$ を用いて，中点公式および台形公式により $\\theta(L)$ を近似計算するプログラムを作成せよ．\n","1. $N=10, 20, 40, 80, 160$ の各ケースについて，プログラムによる計算値と真値（$54$）との絶対誤差を求めよ．\n","1. 得られた誤差を両対数グラフ（Log-Log Plot）にプロットせよ．中点公式と台形公式の誤差の大きさを比較し，なぜ中点公式の方が台形公式よりも誤差が小さくなるのかについて，積分の幾何学的な性質（曲線の凸性や誤差の打ち消し効果）の観点から考察せよ．\n","\n","\n","\n","<figure style=\"text-align: center;\">\n","  <img src=\"https://assets.st-note.com/production/uploads/images/184176632/picture_pc_0f5f746066898dd08894f05290213584.png?width=2000&height=2000&fit=bounds&quality=85\" width=\"400\">\n","  <figcaption style=\"font-weight: bold; margin-bottom: 8px; text-align: center;\">図2：梁の模式図，  出典：<a href=\"https://note.com/fine_kenchiku/n/n8aa377bf83e2\">１００日でわかる二級建築士，構造５４日目，くじらAI研究所｜建築</a></figcaption>\n","</figure>\n","\n","**補足:**\n","\n","現実のH型鋼(H-300×150×6.5×9)では，全体の荷重は1.8t分，ヤング率 $E$: $205$ [GPa] $= 2.05 \\times 10^8$ [kN/m$^2$]，\n","断面二次モーメント $I$: $6.5 \\times 10^{-5}$ [m$^4$]とすると\n","曲げ剛性 $EI$: $E \\times I \\approx 13,325$ [kN$\\cdot$m$^2$]となり，\n","端点のたわみ角は，\n","$$\\theta(L) = \\frac{wL^3}{24EI} = \\frac{3 \\times 6^3}{24 \\times 13,325} \\approx 0.00202 \\text{ [rad]}(\\approx 0.116 \\text{ 度})$$"]},{"cell_type":"markdown","metadata":{},"source":["# 問３：常微分方程式，ロボットアームの振動制御（25点）\n","\n","\n","機械の制御は，常微分方程式を解くという意味で電気回路のRLCシミュレーションと等価です．\n","\n","RLC直列回路における電荷 $Q$ の時間変化は，キルヒホッフの法則より以下の微分方程式で記述されます．\n","\n","\n","$$L \\frac{d^2Q}{dt^2} + R \\frac{dQ}{dt} + \\frac{1}{C_{cap}}Q = V(t)$$\n","\n","\n","（ここで $C_{cap}$ は静電容量を表す，テキストでは各項の順序が違うので注意）\n","\n","この電気的な挙動は，機械系の振動（ロボットアームの関節など）と数学的に全く同じ形をしています．物理量は以下のように対応します．\n","\n","\n","\n","<table>\n","<figcaption style=\"font-weight: bold; margin-bottom: 8px; text-align: center;\">表1：電気系と機械系の物理的対応関係</figcaption>  <thead>\n","    <tr>\n","      <th style=\"text-align: left;\">電気系 (RLC回路)</th>\n","      <th style=\"text-align: left;\">機械系 (ロボットアーム)</th>\n","      <th style=\"text-align: left;\">物理的な意味</th>\n","      <th style=\"text-align: left;\">記憶のkey</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <td>電圧 $V$</td>\n","      <td>駆動トルク $\\tau$</td>\n","      <td>システムを動かす外力</td>\n","      <td>入力</td>\n","    </tr>\n","    <tr>\n","      <td>インダクタンス $L$</td>\n","      <td>慣性モーメント $M$</td>\n","      <td>動きを維持する性質</td>\n","      <td>慣性</td>\n","    </tr>\n","    <tr>\n","      <td>抵抗 $R$</td>\n","      <td>減衰係数 $C$</td>\n","      <td>動きを妨げる性質</td>\n","      <td>エネルギーの散逸</td>\n","    </tr>\n","    <tr>\n","      <td>静電容量の逆数 $1/C_{cap}$</td>\n","      <td>回転剛性 $K$</td>\n","      <td>位置へ戻ろうとする性質</td>\n","      <td>復元力</td>\n","    </tr>\n","    <tr>\n","      <td>電荷 $Q$</td>\n","      <td>回転角度 $\\theta$</td>\n","      <td>システムの状態量</td>\n","      <td>位置・変位</td>\n","    </tr>\n","    <tr>\n","      <td>電流 $I = \\frac{dQ}{dt}$</td>\n","      <td>角速度 $\\omega = \\frac{d\\theta}{dt}$</td>\n","      <td>状態量の時間変化率</td>\n","      <td>速度</td>\n","    </tr>\n","  </tbody>\n","</table>\n","\n","この対応関係に基づき，ロボットアームの関節挙動をバネ・マス・ダンパ系（二次遅れ系）としてモデル化します．\n","関節の回転角度 $\\theta$ は，駆動トルク $\\tau$ に対して以下の二次微分方程式で記述されます．\n","\n","$$M \\frac{d^2\\theta}{dt^2} + C \\frac{d\\theta}{dt} + K\\theta = \\tau$$\n","\n","ここで，$M=1.0$，$K=10.0$ とし，$C$ は関節の減衰係数を表します．\n","\n","**設問：**\n","\n","1. 授業で扱ったRLC回路の数値解法と同様の考え方（状態変数 $\\omega = \\frac{d\\theta}{dt}$ の導入）を用い，トルク $\\tau=10$ を与えた際の角度 $\\theta(t)$ を計算するプログラムを作成せよ．\n","1. 減衰係数 $C$ を $0.5$（不足減衰）とした場合と，$10.0$（過減衰）とした場合の二通りについて計算し，結果を一つのグラフにプロットせよ．グラフから「振動的な挙動」と「単調な収束挙動」の違いを観察せよ．\n","1. 振動が消失する境界となる「臨界減衰」の $C$ の数値を適当に変えて，小数点以下0桁で求めよ．$M$ と $K$ を用いて理論的に導出しても良い． $C=0.5, 10$ と比較して定性的な特徴を記せ．\n"]},{"cell_type":"markdown","metadata":{},"source":["# 問４：MCMC，正方形の詰め込み問題（25点）\n","\n","本問では，マルコフ連鎖モンテカルロ（MCMC）法の一種であるsimulated anneaing法(模擬焼き鈍し法)を用いて，\n","レイアウト最適化を考えます．\n","\n","問題を具体化するため，8cm×8cmの正方形領域内に，与えられた8個の正方形（面積の合計が60）\n","```\n","　 sizes = np.array([4.0, 4.0, 3.0, 3.0, 2.0, 2.0, 1.0, 1.0])\n","```\n","を配置するとします．\n","\n","**設問：**\n","1. 配置された各正方形の重なり面積を「エネルギー（コスト関数）」として定義し，\n","simulated anneaing法(模擬焼き鈍し法)を用いて重なりが最小になるような配置を探索するプログラムを作成せよ．\n","2. 実行結果として「初期配置」「エネルギー推移」「最適化後の配置」の3点を可視化せよ．\n","\n","図３にランダムな初期配置とエネルギー低下の様子，\n","そしてこのシミュレーションでの最適配置を示しています．\n","この図に示した通り，パラメータの設定によっては，\n","間違った最適配置となる場合がありますが，\n","それでも答案として認めます．\n","また，あまりややこしい試行プロセスを作成する必要はありません．\n","SAの良さは実装のしやすさによる，開発時間の短縮にありますので．\n","\n","<figure>\n","  <img src=\"https://ist.ksc.kwansei.ac.jp/~nishitani/Lectures/2026/num_recipe/files/r10_0999_15000.png\" width=\"600\">\n","<figcaption style=\"font-weight: bold; margin-bottom: 8px; text-align: center;\">図3：ランダムな初期配置，エネルギー低下の様子と，このシミュレーションでの最適配置.</figcaption>\n","</figure>"]}],"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}},"nbformat":4,"nbformat_minor":4}