{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " 線形代数(Linear Algebra IV)固有値 \n", "
\n", "
\n", " cc by Shigeto R. Nishitani, 2018-03-18 \n", "
\n", "\n", "* file: /Users/bob/python/doing_math_with_python/linear_algebra/LA-I.ipynb" ] }, { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "# Table of Contents\n", "

1  固有値
1.1  固有値・固有ベクトル
1.2  固有空間
2  一般固有空間
3  
4  python code
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 固有値\n", "\n", "## 固有値・固有ベクトル\n", "\n", "$A=[a_ij]$を$n$次正方行列とする.\n", "$$\n", "A \\boldsymbol{x} = \\lambda \\boldsymbol{x}, \\, \\boldsymbol{x}\\ne 0\n", "$$\n", "をみたす$n$次元列ベクトル$\\boldsymbol{x}$が存在するような$\\lambda$を$A$の**固有値**, $\\boldsymbol{x}$を$\\lambda$に対する(関する,属する)**固有ベクトル**という.\n", "\n", "* **固有多項式,固有方程式**\n", "$n$次多項式\n", "$$\n", "\\phi(t) =\\left| A- tE \\right|\n", "=\\left| \n", "\\begin{array}{cccc}\n", "a_{11}-t & a_{12} & \\cdots & a_{1n} \\\\\n", "a_{21} & a_{22}-t & \\cdots & a_{2n} \\\\\n", "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", "a_{n1} & a_{n2} & \\cdots & a_{nn}-t \\\\\n", "\\end{array}\n", "\\right|\n", "$$\n", "を$A$の**固有多項式**,$\\phi(t)=0$を**固有方程式**という.\n", "* **固有値**は固有方程式の根である.\n", "* 各固有値$\\lambda_i$に対する**固有ベクトル**は同次連立一次方程式$(A-\\lambda_i E)\\boldsymbol{x}=\\boldsymbol{0}$の非自明解を求めればよい." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 固有空間\n", "$V=\\{\\boldsymbol{x}; A\\boldsymbol{x} = \\lambda\\boldsymbol{x} \\}$を固有値$\\lambda$に対する**固有空間**という.\n", "\n", "* 同次連立一次方程式$(A - \\lambda\\boldsymbol{x} ) = \\boldsymbol{0}\\}$の解空間で,$\\lambda$に\n", "対する固有ベクトル全体に零ベクトル$\\boldsymbol{0}$を付け加えて得られるベクトル空間である.\n", "\n", "* 幾何的重複度,代数的重複度\n", "\n", "# 一般固有空間\n", "* 標数,ケーリーハミルトンの定理\n", "\n", "* 冪0行列の対角化\n", "* ジョルダンの標準形\n", "* 指数行列" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 紙\n", "\n", "![LA-IV](./figs/LinearAlgebra-IV.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# python code" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "array([ 4., 1.])\n", "array([[ 0.707, -0.447],\n", " [ 0.707, 0.894]])\n", "array([ 0.707, 0.707])\n", "array([-0.447, 0.894])\n" ] } ], "source": [ "import numpy as np\n", "from pprint import pprint\n", "import scipy.linalg as linalg\n", "\n", "np.set_printoptions(precision=3, suppress=True)\n", "\n", "a = np.array([[3,1], [2,2]])\n", "# a = np.array([[2,1], [1,2]])\n", "\n", "l,P = np.linalg.eig(a)\n", "pprint(l)\n", "pprint(P)\n", "\n", "v0 = P[:,0]\n", "v1 = P[:,1]\n", "pprint(v0)\n", "pprint(v1)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "div = 32\n", "for i in range(0,div):\n", " theta = 2*np.pi/div*i\n", " x = np.sin(theta)\n", " y = np.cos(theta)\n", " # print('%10.5f-%10.5f' % (x,y))\n", " plt.plot(x,y,'o',color='r')\n", " p0 = np.array([x,y])\n", " p1 = np.dot(a,p0)\n", " plt.plot(p1[0],p1[1],'o',color='b')\n", " plt.plot([x, p1[0]], [y,p1[1]], color='k', linestyle='-', linewidth=1)\n", "\n", "x_m = 7\n", "y_m = 5\n", "plt.hlines(0, -x_m, x_m, color='k', linestyle='-', linewidth=1)\n", "plt.vlines(0, -y_m, y_m, color='k', linestyle='-', linewidth=1)\n", "\n", "t=x_m\n", "plt.plot([-t*v0[0],t*v0[0]], [-t*v0[1],t*v0[1]], color='g', linestyle='-', linewidth=2)\n", "t=y_m\n", "plt.plot([-t*v1[0],t*v1[0]], [-t*v1[1],t*v1[1]], color='g', linestyle='-', linewidth=2)\n", "\n", "\n", "plt.axes().set_aspect('equal', 'datalim')\n", "plt.show()" ] }, { "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.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": "12px", "width": "252px" }, "navigate_menu": true, "number_sections": true, "sideBar": true, "threshold": 4, "toc_cell": true, "toc_section_display": "block", "toc_window_display": false, "widenNotebook": false } }, "nbformat": 4, "nbformat_minor": 2 }