{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " 線形代数(Linear algebra) \n", "
\n", "
\n", " cc by Shigeto R. Nishitani, 2017-10-31 \n", "
\n", "* file: /Users/bob/python/doing_math_with_python/linear_algebra.ipynb" ] }, { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# sympy\n", "\n", "* [sympy tutorial](http://docs.sympy.org/latest/tutorial/index.html)\n", "* [module references](http://docs.sympy.org/latest/modules/matrices/matrices.html) LUdecompositionの記述あり." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 行列,ベクトルの生成" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 直接的に" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAYAAAA3v0BtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADfElEQVRoBe2a0VHcMBCGDyYFHKSDowMCHVw6yE06gA6SydPdK+kAUkHm6AA6IKQDKCGhhPyfY2l0siTbF9uRGe+MTvJa3t1fu1rJ8h2s1+v5LECbzeYlwM6KJRuDth/KykeV3165ysr6uDFbz25wbA/kqSc1LoX6Pv7sOO4Iw4UsXeGpV0dvmiLSKJyqL+5+p/Yg8016FtL3ubTxTPUvrsX/WfKCVRKUHmYiflNBGEJRMgiVgK5VvzcK1WauP8JTiU6XZPjpwReVlcqlhH03wgeqAYBeS7IDrxElREyUkqCiTw1zYyk1TwLip208NBc/GjU5g8L4Zxkfm78+WDvUyTlle/2HhsCsImpJWDPdjyaLnD1VwSQgACLsTEas9IExKlCylwRxK3BfMT5GowElINcCwRyLhaXFOApQAsL251i1XbMsgkAje1AC8kF2n7geUntBCeApWFmDkuEkhnPVfmIAKLucILVJ6W9LCceqY2tHUMk+zNITJIZ7tZlPLi3FiyaLWlB62GxJWOGhrXjPqu9U3xScfn7uJJYQYz75FF2j6NgEVG228TV2ca0BO9lXTtZzagLljMDkKWcwsm5OnsraPY5xk6ecwci6OXkqa/c4xjXZJi3U3xxVcdjB9ZW2MdFzN0d+p03pZNfOEbmxJyg/CUoPA4ITUStEbbb9bGY5D7wNSu2PyeY6uZlFdd2cYod8UQKhP2Q89OXv5TC/suFTU011oBgV3p3s+5OE23ZTJf/aTzoJux07UjLrwg+vHLkCHK/5L25ut67bH6V3ZxqkFNR5audZCV6KUZxxq93nC6LVKz2EXasBTHrKSJZg3A+gcxVC8odK7yS9ZFo+UvCm3ZiaggJIkXWkgOzH55Qhsh/p2z90qQXXKvyQJiWkcSYtZxVzeH2QZJN5W4WdsSMJSoJPKaazU5vwIyQ7J+kk7Phc0yrsjCF14ceX+5mEH6kMmcoBxXmfOcky9jLAHGTC5wg6GJp1oADCuZsP6KzUYhbi8rKbSvqQW5EtPn8pwJ7kCVcdqMpISCCJgrnEJPbBit0roZeSpCQoGX2jwmmoO2EJjeSH5KTGPW6W+tELYQ/h96A6eEqbBIUEPRgMBe4NRbLBbqib6Dxs0mlsfSZQY/HY5KmxeMpkP1bpnfyv66HXoNZj5tssAQUGE36sQ+4fGXlnGgOxXlXs/gOxnBT3nKzIJgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}1 & 2\\\\3 & 4\\end{matrix}\\right]$" ], "text/plain": [ "⎡1 2⎤\n", "⎢ ⎥\n", "⎣3 4⎦" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy import *\n", "\n", "#init_session()\n", "#init_printing(use_unicode=True)\n", "init_printing()\n", "list_a = [1,2]\n", "list_b = [3,4]\n", "A=Matrix([list_a, list_b])\n", "A" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAzCAYAAACNHMgNAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACZklEQVRYCe2Y200cQRBFF4sAECFABljOADIwOAKzGWD5a/fPggyACBBkABkYNgPIAEwIPmfoGXqb6e5ZI39YnpJq+1m3um4/Z9dms9nGpEfm8/lzT3W2iv69OB+wuEN/JXqcRco3XCYYYl6uEcE9mSkjuMnbrt4C3iFW+0bwV2V0UKX336dovRZj2EAuOeUT+hXdQr+gyk/6XL1k3/4OoegYgBNVMPQc3aX8jdTdW9yUxQgAceQxgMfHZ9QolE00bm8q45+iAzre4uQhMvhIfkFdc06R7kdtvdkiRQAsEqsDyhdJXbFYdBBb4myXspx3E0rdhhr3S/NZioKhJ6ST7EE4RZ/Jx5R9p+xkZ6UUgSNWn4KzpxiFOttcVUXJRoCVoz5DBZoA6JF+jZ5S9A7RcUeXffok6wBjV4q0dBIAq6CdAZkSRXG/P86PDqrUjRSNFFUZqHYYV9F/QFH2PjB2zn/vW58u2+gdZS+gRkLbOWnxZVFbRd65Priu0fT94wvDN1JRsg4A3sGyvXP3yC/dyZStq34VZR1g/ICT9np0tN7FsXhXG1lRsg4A906ekArkXMT8G51174oA+0acxO65GOp06hspffmF5tckG8Frl+apHj+2bBrEvx2HOFgCD5QN4l8H6/5UxKeh691l+oi6J5Qq/3aqOgDYye42U3DknCxFJlifFCkSDPWZ2Ah5V447+8dLTf236ABzd2r8PeDn0xmO2v1R9VCjSP43ATwilftT8oO4bz0XHawy0hYwTWsUpf1XLrcRbDFaJ7ATyq6ewZLaY9jgtRF4kMV/SqVH8xBHfm69wfgNRCy39E7IMhAAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}x\\\\y\\end{matrix}\\right]$" ], "text/plain": [ "⎡x⎤\n", "⎢ ⎥\n", "⎣y⎦" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x,y = symbols('x,y')\n", "v1=Matrix([x,y])\n", "v1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ゼロ行列,単位行列" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFUAAAAzCAYAAADmWEQdAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC30lEQVR4Ae2c/01cMQzHS8UAiG5wjNAyQRmhsAEwAn/e/Us3oCvABu0GqGxQNuDHCHxdxSjKOU7exZGw5CdFSfz84vPnnLz3coa99Xp98Ek4NpvNqyAOUUYAjER2n6HzF+WlKNfZtdGsE7gtuBHH2z1E6j80LkH9T/3aONNDAAwvoHdKkRqHMYH9nvHwDfBy8AT9I5RryB57rh3V8Wi7Galwitbce9RXKD/RvkL5jfZqFFjreq+2VahwitaIA9R3DABteiqg/g3LZtSebatQAesU5UGAdg/ZCRwXHykE/V1Ebm23oJ6AxrNAhNdTOj/rcGu7CrUzCg9nEPVuuwoVsBiY9mY1a/q7tq1B7QnCLz1Kk3Q+rG0NqrSWMh+OJHpunXG4tl2FinWNp700xVnGNyxTsN5tV6EmSrQfsBKIcaTO3C9wa7sFlXZhvglQv0L2kEWUoDIscmtbhQpov4DmGfUPRoQ2Tf0zlHOWzag92+7ZUKGopA2UY9R0Y6L6O/rSmxZOmR4ubTehAh7dsC5NUXUO5tW2Ov07fQ+1gkBALYBYdAOqBcVijIBaALHoBlQLisUYAbUAYtENqBYUizECagHEohtQLSgWYwTUAohFt/maSkbwuhjJFAuSSJqRCqCRTLEwiUSFCqCRTJHWA7CgjaWuJBIVKgZxm9CQWOxaDfndguo2oWFXmum6Ib+rUBHu/OOe9vn4typNZ/E577arUEGCgdFaUjt6wNeu1eSubWtQNaf53IdNaOAPOKlW/daguk5oGIA57HcVanqEoM8mTXGWRTKF8O1VoSZdtwkNgq9LREN+t6C6TWhYQlDQHfJbhYolIJIpEvH0mNeVRNKzoeIyoUGIvqWinf1uQk03rEimWPCVqNN/wTihmhEIqBkMq2ZAtSKZjRNQMxhWzYBqRTIbh+/+q/Qc9n4q3fXf+9HYJlAyg8b/13eOVPo70/wfKfAPfdsjhSQnQG9eW9zeAKoTjbmzd+YrAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}0 & 0 & 0\\\\0 & 0 & 0\\end{matrix}\\right]$" ], "text/plain": [ "⎡0 0 0⎤\n", "⎢ ⎥\n", "⎣0 0 0⎦" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "zeros(2,3)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFUAAAAzCAYAAADmWEQdAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACCElEQVR4Ae3c0U3DMBAG4BYxAIINOgIwAit0BdiA1+SVEYARMgKswAgwAjAC/6U9FEWuz77YkSz9liIHO7bx10sqt1a3XdddbAKp7/vfQDGLJgIwCtqd4ZoPHD+z42nSlqenBYaZmzgOW0TqJ04eoP5+ui1rUgRgeI/r9hKpTIUFzlP7w6twjWsl3G9wvurztrWxo6iYjDyIX3F847jFscOxSmp5bAtVInIvipjkIzKJ1lUSxmt2bD5TK4QIUYlaQaBCl4xUolYQqNAlI5WoFQQqdMlIJWoFgQpd5kTq1XH8ywr/h9VlU2NHl6kyUywX5UMUSXeHbDOg7Avnb8hfjmVVslbHTkEd1/5V1IxOgdrk2Dm3v0HAahUgqkoUzIlaEFO7IqpKFMyJWhBTuyKqShTMiVoQU7siqkoUzIlaEFO7IqpKFMzNZaqOhSUjN1MkbiKJogKSmykcm0gs1GY3NOgd5skRTIvmzWeqR91oQ1QDyFNNVI+a0YaoBpCnmqgeNaMNUQ0gTzVRPWpGG6IaQJ5qonrUjDY5qE1taDDmnVOdPe/oMlVGxpKNmykOL0HyJpIU1CY3NOSEYuhaBJN73jm3f2hslgUEiBpAWVpE1KWCgfZEDaAsLSLqUsFAe3333+HdTr46+U/4Wz79ZooIzM1w6WiokfqMgukPKfBHFCKYk6r5jyiMbn+R4bLoBrpMEQAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}1 & 1 & 1\\\\1 & 1 & 1\\end{matrix}\\right]$" ], "text/plain": [ "⎡1 1 1⎤\n", "⎢ ⎥\n", "⎣1 1 1⎦" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ones(2,3)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFgAAABLCAYAAAD010ABAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEkklEQVR4Ae2d/00VQRDHwfi3IZpYAHYAWoHQgdiBWgb8Z7ADtQIDHWgHBjrAAkwkxAr8fuEGj3Xfu+Fm583dczY59vbn7Hxu3+zd7iRsHh4e7mxsbJzhqoXTo6Ojg1pB5t0QAJ8L3G3XeKBs82Gv4APuWbkffvQTeV8lcFzJ3UfeK+b3AX8E8QRaobUsC8w+leXIY9Y/gMt61TQa06Sc4NrF/VW1kkMmZMlM+YXun+E6Rt5KJoRFdn8GL8QCAVso/IzrEtdzXFWbg3yXAPlcI94jPqWAbjxniPdxuUJG/ybZDzREIOQK1wGud6j/RdOmVR3IfIu+thBfw2W/uOcvh+mPTHuFFrJVgL0UUPbLt5jzSt3vyNsDBP66vIJZ9hwA74EeTVMZxDSw3CuYZU8asHJ2Pvag20r2pAEDnMBb9rbiZSKayJ46YM3kfKKp5FRnUPbUAddsr7CSGcb3Yo/QRPakAcMOimmomQHJk8WuKeRWsicNuCP2DfF2hZ7MYJZ7BbPsOQDmZzm/Hsuwi4zz3kwry1ukzbLHABbDLjOohSIL+wBAbqZcIr7ePGFF3NM8vMb1hmmv0EK2ai+CCkAYnyaDvNifII/272s3kOtCpz+crdzceYGYixrjl0jXvvBQ1DSYZN8HMD8bQwJAcrHjPsjKg1X2GBOxciXnLDABOz+9BJyAnQk4d58zOAE7E3DuPmdwAnYm4Nx9zuAE7EzAuXv1pzLHgc/GMOePTv4OYu6JzMbpRQ0YcE0OGAQ0JkAud85m6/SissFQMtL5Y9ZOLyrAmEFmB4wxs3cCbcx6awFzD7h2CCjnYSxfx2DWexBwZwOH4K3kdGNoEC3LW+k9CBiDFnjc9F4UuBCtW2iitwawBpyc02nqrlOdQb01gGu2VyDJU/Zy/hA5EXETvQn4UTd6ie8oA1skpqFmBiRPFrs7beecMOr9VHQn4N9dQmIp68dmB4x+ZzO6H6v3T9FRYyJY1+yAIQJnFpv1VgHGzyXM+aN4ILKoiO0vitsmW+it3ovA0E0OGBbVoehsnV7UgDujH+X8MVunF5WJsMy+/71tAnaeAQk4ATsTcO4+Z3ACdibg3H3O4ATsTMC5+5zBCdiZgHP36k9ljgOfy2GOJ5GyO913EN/b6UUNGAqGOJ50yoXIhs48UDA5vahsMARFOp5EyjY7vagA4ymaHTA4E0eGSNkjh/y3mRbwHprUDgHlLI7lXiFStlmnQcCdHRoS5HLCECl7SGFt+SBgdCTw5HS51recLtfKLHmRsi3jvm2rAXxbecmNnJUtqeJWFCl7UCkN4JrtlY5lhnk5nkTKFh1N8SBg2EExDTUzIHmy2JkGUzaOlF2OZWx6EHDX8VgHjLHj6reLlN0fx6h7LWCzA8ao0d00ipRtGPZNUxVg/FTDHE8iZRd0ZTGVdacorifVexFoHuZ4EikbD9jk9KIG3C04UY4nXGijZJucXlQmoj75M1dDIAFrKBnqJGADPE3TBKyhZKiTgA3wNE37bxEXeFMo2+Q/KimJFGkwW/iPSliVgLmPsOgVyGWPgYLXKMhBcFWlP/gz38bXcncWAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}1 & 0 & 0\\\\0 & 1 & 0\\\\0 & 0 & 1\\end{matrix}\\right]$" ], "text/plain": [ "⎡1 0 0⎤\n", "⎢ ⎥\n", "⎢0 1 0⎥\n", "⎢ ⎥\n", "⎣0 0 1⎦" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eye(3)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}1 & 0 & 0\\\\0 & 2 & 0\\\\0 & 0 & 3\\end{matrix}\\right]$" ], "text/plain": [ "⎡1 0 0⎤\n", "⎢ ⎥\n", "⎢0 2 0⎥\n", "⎢ ⎥\n", "⎣0 0 3⎦" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diag(1,2,3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 行列要素のとりだし,追加" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAkAAAAPCAYAAAA2yOUNAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA2ElEQVQoFY2R4Q2CMBCFK3GARjeoG4AjuIIrOIL8hH8mboAjqBugI8AGOIJxA/xeoUnTxMRL3vXd4/ruGsw4jqaqqlxnDDQLnLSlmeJZ17WF9nMtriiUMiXiDT4gB2q4g4KL0owfge0tHpXy4OQv/Ep/NYXFDfMPOGmfNXDghOYfEpz08Yp4BiVc6OA7zmnxdFHVPKYFg3hw8heS9KJ2uLmM1IIuaYhLK6ct0E5prCRg0KvpAtmkHdRa+iFdTQ1NjYoQ1MeZ73UutD2ig+vZCo3RvyzR/b/7ArtsexdgsS92AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 5$" ], "text/plain": [ "5" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A=Matrix([[1,2,3],[4,5,6],[7,8,9]])\n", "# i行j列の要素の取り出し\n", "A[1,1]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAYAAAA3v0BtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAELUlEQVRoBe2a7VEbMRCGgUkBhHQAHRBTQZwO4qQCoINk8sv8y5AOIBUE0wGkg0AH0EGAEvI+4vbmTtbH+Xxn7MQ7I6RbnXb31a72JJnN8Xi8vRGgk5OTpwB7qViyMWj7lqy8UXn0yulSWR83ZuLZDY7Jpjx1p8axUF/Hx65GjzAcydIRnvrn6FUOkdDv6p0vxXsD1Q88i39b8HqrCt3HhQLWD7acip+MqiSoQuiZ6vdmudqstxt4KknhNqZNLdmAYPIM1IbaH8S7Uj1SuYzJzYUfAEqhCJEwvEZmZJH2SayPI+kDiJFN4ldjhOocqKEG3UmwnzoRvi0+4dAXEd5MHsWR9JVt44XqZPhpAMbvJ4T5YEM6WvGkE92vq4PFM6+dVfl+OwlKQkb+gOJ5n1r9vScL0y9dRI1bDmqfGz9UJ0GFBkgggAg7y4ih1zrjFfoAdKDCJP7OCZ8ZlASSIC6l7HtOeBf90gMQFxFqE35k3rmyX80uCSOW7xFa61jQg/SSxkkWE7Wj6zmX/UpzJYQUu6O6/GaVnT00pIcE5dauJ97Cj5AMUiNQEo7b91SXHlJ7lxKU2g2TjTahFvVITE0WlIQyWweq/cQA0IeY4A74hBlrl7pKg+LBPsTVPtdOJgoJxBMkhmu1/W/DULw+k4U/iRvSx0TiOU4VPlixnykJSq9cqQCM9eSTy0g+s6tnGX2uwsRVJxNbsnvOJCgJ3OvKyDZypJ8Qi4ZZTOZWrGOV+WtQq+K9tafWnnrBGViH3wtO/kyq/09P6as+tf0Xr+9Ll5k847+c3CYVL/8ChNq216MNvX2u+v8r/f7d/k/xzJ4pA5qAsuMFHrtX4fT5TUKju+QpLS0Z0rGroZwSuNR0e0DVPFOi+9ImoG4lqDwcStgiCePxSnVTS6QwuVFqAio6uM8OAeHsRHS8q+oRP3udsMzZj+vuJ4GYOcwbeUqCOSTi9jcqxDlrKrpQ1d8FcWzn5gpvfVL5o8I64iapGo5i1akJKMBcSJCbMdWA4n49ewKtq5r5Cb3QQLrKo73ajyqHKiSsIGXDT4Mx3gFCgtosUmaqesymqzOSDgPENZl/xXwhRT8q70zpzYKaGvHMAFjfV2RoCmU5rs4AbbdKvFejJCjNBj9wISRGNqOx/lZ86bTIsDokh2UQpCQojWA2QobvIE3K+0wWhHhIN6qhkBddRw4U11ShL/dQo5MZyEmf7w9rNuQNtmek+qj+HCh+760lBD1/LmztdZchPWQ3LlHLfZ/aeO6jymFhQ7DK/h+FBDFbllIJO/aC7MVS8R5U1oZZgLIwRH/0G6l3+Z6Ost8pvUjs1n7MbmNc2zHSbxPaWEQu/BoLWqYX16CWyRspW9aeSs3OMvVZ9mMfZ2nT2afnhaTseSbDt1myHAYLPz6w1X9kLD948yhdwFiO+1N2/wUIJlGEz6Tw+AAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}2 & 3\\\\5 & 6\\end{matrix}\\right]$" ], "text/plain": [ "⎡2 3⎤\n", "⎢ ⎥\n", "⎣5 6⎦" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A[:2,1:4]" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABoAAABLCAYAAABumJecAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACwUlEQVRYCe1Zy00DMRBdEGfER6KAlMCng9ABiA6gAzgmNwQdAB0QOoAOEHSQFMABEBXwXrCDdz32jge4II9k2Z6x5+28dcZeZ2k0Gm03TfOEIsndeDw+lAxdHcZNoRt09ezDtrQSGC7R5uBQZmGnp30h2PehO6A+BLoCconjll/MvW4p0IGOqgiIyl7BZFI9QdlB+713ghsQRpScA4drMN6gvKLsoojvAvqkaIH45PNFAdBTtBlVkSwXjf7B4ApkJq9SV6lbMGBZDJtu9sbCi6KhSkH0g9TDREoZflXNBDpm+3vUUeZ2YxZVCZBqA1x47jQs1HVc6LoVSMeTMKpSJ5CiU1XqdDwJo8zUIb9to1wJPkWVGQjemGTVGdwEhEh4iCySYiBSBgSeXNXnbj5RMRDmHAGsd/+h81CKgBxl6gVgAgLIABPfUZu+oUoiOrFQ5qNSAQHgGBNMlIVAq67ja2+b146yNSNlW94ZDycfruNrb/M1380egPwpyOu5zAdOP0N95g1B/eLbvacgOHjAYJaWQP8GxQNq1elI9Y5aCN8dfteyqKQ3oq4XRMBFQTopQ/RJ6SNq3lMkxQJ0kvSWMfyEuozb2FSBYk6Umkqdkqh42P+jTpUZkF4GIGOIcot20aHEk6gCwmBuCcxxvA5FFQm3+PVIGyi0QHuYw61COi8wUmkvCmDal7ctQ7eDJ+aNb0ugI6UN6ruWQehoI3oU5lJ1AZDf2/ikJ4aO99zniQeI1KbfEUBIGb8mniOPCYUJCL4YjXRzn4AxnL1dNNzCowNLEgUGS0TcyqVlnsMxAfG/Bt7oF0lRRKCLxysuhOI0VAQEAP4vQfnbiADgD4x/HhF/NwRJZQqYZNGmoPlsvCOutmyWlmFsyzvlK6svXQxZZzljBcqxk7WFq26KVdUd/Ct/+NIpgbhkU988Jckzu218Ap7SnxVH175gAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}1\\\\4\\\\7\\end{matrix}\\right]$" ], "text/plain": [ "⎡1⎤\n", "⎢ ⎥\n", "⎢4⎥\n", "⎢ ⎥\n", "⎣7⎦" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "col_0 = A[:,0]\n", "col_0" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFIAAAAZCAYAAACis3k0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC1klEQVRoBe2Z0XHUMBCGLwwFMNBB6CCECiAdAKkgpAPu8e6NgQ4SKiChA6ACJukg6QCSEvg+x/IJW05sRrqbubFmFElref/Vr92VddlZLBbns9lsjxrKwXK5vA6Dqe0yAD8fkB5HT+Y7EHnBgxeRcOqOYADu3jv90Yh31joVA+MoqbCRPaHurtWQgWCPB84LC3FxxywmdusxKsbM/SlxvHBZv2TfsrboAf/THWTz9yuyYE8jtDOKSOabT5OKVJa5/Kn1uXnm7G/UjyzktpYXa8DQ613rnP4PgWgdW587bpfBRKLIBLvOcgnm23UCRlgSpvdVJNZyI6L3EB5EJAr1Cj2huDfURm+sYa1vAHe9r2IjkB/E43Z/6GFziKLT9stbOjb/37LeUU7zoEei0JA+2QRpYPtpYUg9o5q3zJGlc/Q+ONfg6JWH1N9U8+I5sjjUEa3KvUTyosa7O725YaUqe08Cz8CuPKO25YrWC0PvgjJYIa5lH5z5Xbc6bG4YH1E99DrlodD2U2cjIQ2uhFUkajV9N1MCi0UHGIHEPfrtdZ+B/SWaw3BVeonkBcOqmNErE0b1JHMX24yUkiUVgRcASrSh3ylJImtDvUWkFHaU5BaA+52q4X0leE7f8/+SgxkiILQpPclN7MuRTn6JYr+n4mIC1iOUm5CbHBJPytB318MHeazuqQNwSx44po8kWbUhSedKEomhKuskdOQ3ymlLfyifgpHapNcpu+oF5mpMZ20HUrdXUw/eDi8+TIa2D3qKIVUkrFp4Jxj8T35mHG5WRTcRHE9lnaW5Z9N3ze+oRy07m+Ggn9FQ5KJ0dz3CItgv5J+rUYE/6BYveKUhbah7970vf2WzBByJDE4jfvIblnnVz2iDiMxm3RYqCkSODe0tpCLPkiYi8/A4+rDJBLt9aiaPzLSnE5ETkZkYyKSmutlwhF9F+qb/a0dkpLrw5eUg/APQb8z5X5iY3chh4izKAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}4 & 5 & 6\\end{matrix}\\right]$" ], "text/plain": [ "[4 5 6]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "row_1 = A[1,:]\n", "row_1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "numpyではcolumn_stackを使って拡大係数行列を作った.\n", "sympyではrow_insert, col_insertを使う." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}1 & 2 & 3\\\\4 & 5 & 6\\\\7 & 8 & 9\\\\1 & 2 & 3\\end{matrix}\\right]$" ], "text/plain": [ "⎡1 2 3⎤\n", "⎢ ⎥\n", "⎢4 5 6⎥\n", "⎢ ⎥\n", "⎢7 8 9⎥\n", "⎢ ⎥\n", "⎣1 2 3⎦" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b = Matrix([1,2,3])\n", "A.row_insert(3,b.T)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}1 & 2 & 3 & 1\\\\4 & 5 & 6 & 2\\\\7 & 8 & 9 & 3\\end{matrix}\\right]$" ], "text/plain": [ "⎡1 2 3 1⎤\n", "⎢ ⎥\n", "⎢4 5 6 2⎥\n", "⎢ ⎥\n", "⎣7 8 9 3⎦" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.col_insert(3,b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 行列・ベクトル間の単純な演算" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 次元の確認" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADEAAAAVCAYAAADvoQY8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACWElEQVRYCc2X4VECMRCFT4cCTks4O0CtQOkALAE60PEX/NUO1BKgA7UDoQPpQKQDfF9IMHMGLnfE0czkNtndy3ubTXK5bLVaZX4dDoeF3/9v7RC/w8wro9HoWt22p/qPzcLy3HA7YKYpMnQlziVvjMI+1C/UHNhuLkn/TvoXq0smYrHkx2QvJR8BN0GoA7lXyVOUrlg9hF0QmdoEO1btqT1xvvtKjQWHaCz5T+V/Ibl0y+lOiocAkb50fTlC3BWXgVunSCTrYsEX3pkL4kpETWpKhGbqL201JiIv+aTq1sKyfOGdt/RgluchJrIx60e+zfqjCmXOd63VbogF7ysy0VF1S2QnsIAu5UAKB2qHMrfz/TrGSCx4d1p6nKnunFUNyLFLAOeqpP1N9VdKTax3kbg80MeDxo1ejjpp5Pcrp1NoRqqwrP2J5XSsGr1ZbbD4j9XOQ+CpdBFY7IncnU5BXA3SpgaMbjmxxJKUhlgmAQSxUN02o3xQpgLYZk8SgB2kCRa8FgRBSgo7UFkspZgoCKRfOAwom1MtQaDRWGto8yQTc4LgtOHUCRXuUc++QWTZ2MwAx6wJzgbwKclsNi1RWKXBuSbNOJ1Y82zSk5KD6UrPuu95NrL24wIoP045yqna5cytLRXPWCw3jMUcmH8JjlmC2fffQWN0VfN9x4l5XziF6ju+LCeK+Qqvm3s9uco3ykIDVJbf9wVQwFwh+NnYtsErMfQu++Sj0jGBg+UJX3P1cZlgaNb9zutHBT5X9vsKn1RmeG7+cX78X2udXcesyb/ygR/7wcf/AlmHmAfOV8zqAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left( 3, \\ 3\\right)$" ], "text/plain": [ "(3, 3)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.shape" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(2, 1)\n", "(1, 2)\n" ] } ], "source": [ "print(v1.shape)\n", "print(v1.T.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 転置(transpose)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}1 & 4 & 7\\\\2 & 5 & 8\\\\3 & 6 & 9\\end{matrix}\\right]$" ], "text/plain": [ "⎡1 4 7⎤\n", "⎢ ⎥\n", "⎢2 5 8⎥\n", "⎢ ⎥\n", "⎣3 6 9⎦" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.T" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAZCAYAAACRiGY9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACHklEQVRYCe2Y3W3CMBDHQ8UAiBHaDVp1A9igHxO0bFDUJ3ir6AbABFW7Ad2AwgZlgyJG6P8X7HAEHHggIkGcdLF959yH7852Uul0Op9RFF0LPTS73e7MD4reytYX2dgydrYrcmoixo0hlrYrP54x/qK0HmQYfnYqY3EKxTpHqlDhyDDmJCNVzXA40hZZEz/eJtXeCp+El8JHITDWnK9l97BPo/tKkjl2Bl6D4w3V3nuabXdFqqcX30G9NBYOhQ2N22pxuCfMC16d3pEUpPU8iHYXUhyMlAQSISts4QQRLaAutPyYeIiHdHPDYRGBpnAe91YPaN+r4Xov6JSm/Ui4vS5x65iKhnOR2q2hh3cAmEn+1MkhKm8pmY0ttGRKMP2MUD8Z4R9+kGcr3X7hMJ40t/VEFKEFIxV0Si8lICVeeLIpiFYDk0n5dMiGJDucCmxZSLeP5Ibm6gZFBGcst3c2ClaEWzCCbDpSyGwYecKlhFud6MqsJyaEIsVqgHPn4FqhigbPF7K6ucGaQ04vutkRg1ANcIgOeYyASMJawpGwr+FEiLNJKjInJyATOI/YZf+EnFlAsJ5glup7yjnHObn1+0/0Yn9P4YCQrIhBfTYljE5v78sJ5hmqKTPlaF1uDPYI4TYzkHM70z5UU0fzxCimnupygn8Q1FJf/cxa8u8W1ql9IuKdSLdFTr+0rXuPT9KpOP0U6l+zDGX+78eXQ/sf05GkzD58y+oAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}x & y\\end{matrix}\\right]$" ], "text/plain": [ "[x y]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v1.T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ドット積(内積)\n", "numpyと違ってdot関数を使うと怒られる.\n", "\n", "\"\\*\" を使います." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}x + 2 y\\\\3 x + 4 y\\end{matrix}\\right]$" ], "text/plain": [ "⎡ x + 2⋅y ⎤\n", "⎢ ⎥\n", "⎣3⋅x + 4⋅y⎦" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = Matrix([[1,2],[3,4]])\n", "A*v1" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEwAAAAZCAYAAACb1MhvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADHUlEQVRYCe2Z7VEbMRCGD4YCHJdgOgiTDqCDfFQAdBAPv+x/GegAKCHpgHTARwehgzAugfdRtIqk8fmsu+O4MNmZRd+7r1a7K/nYWSwW36uqei82Oloul4/W2LbUmonmnvn5M18eq3+1rYyh5zVh1vhXYTqNcM331JhpYD/qbFs9l5wgXPVLCboX9yG7LaamdRsxaw8XEgBXqp+omO7S6IlOJPQwknWuOocRe280PIpqMeY+DYZ33Y3CDNuDKMZMSPZC8qSrTBBgHtX/kPWPptkGc58eFgzhw/CjOg5CZ0FF6w/F5IzBaFvMvRtMimfaJfnrQPW2NyQ3LjwIlWDuLSTZmVc8V3kUtekvfqYMYqkWmDcaTBvllC00Pqh+LMaDvoihW835QUUl/TwlMJjdjOSxuXgwkm7DzHPmXu2QW/3YtcpPAFJZjHm3YSe8Uy5gzbsVX4vJLxgBYISeEW8unhWUxlzbK5swUHnm8d5IX4wP9Z/F5FajYsy1HialeFaskI2jDC+DpuIwrvnvXO8r/hEGPJuDhUgLT6729w99P63ZBnOtwST0TgLj3MON96A+5zEqnVub8jalZBDCeGVOHEalcUI6JzDU6Y6fMXjTt2wxuvK+bMrmZq3BBCp/P60DsFl6w2iNQSr148n8SnA/SxrEhGHNt8PEMBNxnL/wPvqCh6leTE05zAkUEAPgEjyd6pvAxRqHWYAHhmjwKtnDSphzRyhCtNbDvCH4ikHS50QIDZTFIUpyHfQGLNgZt1+MlaVJ/iqQlUyt8zBOA37yxkuSp/oYs+SaCBxJIzGWxwtmbs5OtFezGq8i/lFSSeGp+EZsn2wwZAhP5oyM8HzeW9ziv8X2ialT/mKPaw0mRSTP5IbyBhqzkdiPI48/3KTecOS0xPNsfklZF5IlMl5iLgcGFxPGEfMgdaQ6FxNvyk7PiT/SajzMBl+r1Ca7hA5PElKHEb9OriSzl+hYG5Km6R8tyV9TGYjv8eSuy44HkJjhzRmsL09KrBQ1xprDIojjqv43WOF5uJCUG/+K1rX6v2S0/s1UfR605xUfBObPkO0hfU8WG9oAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}x^{2} + y^{2}\\end{matrix}\\right]$" ], "text/plain": [ "⎡ 2 2⎤\n", "⎣x + y ⎦" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v1.T*v1 #v1*v1ではerror" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJ4AAAAZCAYAAADAMJcbAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFA0lEQVRoBe2b7XHVOBSGDUMBkBJCByx0EDpYlgoWOtgMv5J/DNsBUAJ0AB0E6AA62GxK2OdRLKOr2L7E9tVVNtaMrmTJ1nn1ng9JdnLn5OTkQ9M0j8gxPT09Pf0RL9ZyZWAuA9jTX4zxMhnn+A6G95WO35LGtboysDMGsLUXDn53ZxLWgVcGRhi4N9JXZRcecwiwGLbvU/f6De2fawLc4jxuMT2mPCcf0/6tJpy/igXcbsdeUkbuf/XR3vtulOExaQ1N5XWTp/47bZ8on5E/9s6ycCM4dIa3lE+jaOpvqLutcQ9dlZNEjFtKzwKLOU3xpRbSj8hhnd8y0b5un3vB8xpbTFGJr2JDBaVG1jmHeMBs9Lsgq8CdJ+TN4XkDH2N5OFg0FTc80Bu1zFOSHqfyzCFBSlePbRWUR2D4DrZ8njrJfdoPC2BUdi7/2mLB6hIrx+bF0k1balXcg3T2EBOj39u0fc91cT4C25CyZhtEwfk9Zx4b25slZI8aHgIlKC6LT6j/SdZbn5NNZ9yzt30Vso0sYVmj/i4g4od6xP2QS/dVed972p7F+5cuR8YO70vp7/ZK1CNWYVTFMdhcYgcdOsF+bZ63LbWeFv82A+CM/J7s3sH9ioSp9OIJ+UaT+FJSJX7JQLxqMX+iPcf4B20xSmaP7e5SzIyu08aTbhRWK8divQD32MeEyTwPRjwEGulSpV1wrcKMeqYDctofGkv8gE1jC1GDupiMauFUS6mCdRKTp8rzUPv5Y1s8kPxs3X3NQ8VH8OnEIVGvlmMA+uokd5IWeVhVZvE8aHhI+ILg1Nr9uvGNNg2woRxdqug3RLsU5kmD9fmNU197k+OPjpsPxv0qU0wfKN3//aAMRknd6PaanCYx5W1p/+J18MiFuPK5zeJYoO3Yi/LMmDrE4BKrXNIsngcND+FReZdi+pUY+66UPN9nWA3tRqhDys7zrzw80MAzeplj5NhcaiX/iL6w56T02u1Aur/zeduKRTxwqMQDSiPtRqItn0efo2w8k18wxqI8M55LrCfvNOjkYhv6YwCaxPOg4aWSEBIH7w4StKnADkB6/w7rX1uZD+LER2QZXboI3d7nPNy35AofGWZ6F3J0soeUXaSjrmIbyg3Fcl0Lx+J7Ap78faNOa8Cw3WgXl+FJPPcaHoNqVAqIn6L0qnyj6cYyCqe7SNLLPiM3eFsi8XFbTyOZBG4ol+ti+zswqigVmHOkMb6jvUqOwSWHKY9cBkf513b6OycKHZcHpmvz3Gt4DKj3mX1/I0Hn5C7RZt9Z11CukiuxAYuKFKOb4dQgJeMgQmsxi7t3aYr3LVEiS6PXcVVUvldyO+CbAnHXyPEQBXJsztMknu/lo7TXWrx7I4lpIEml+j1UEl3uzql3y673lEjINFKouFSZKrnv+6dG6vs6T97/kH3XZLrizZfNi/76Gkdc7u/yFJf5KjnOwbZcOxeT3OtQvr+Ne/RJPBf/ezwA6+mTDhfOfGpCrgYocbfibw9r5RlcwRnvTlXkjOdcDtMlccZQ/Y9qZORwEPEO6i4RTvi117ckVc3z0FK7M91gBCWWOqNquhz7xcVluvj2YGdEbhm4dp6LG94Wvpbqdt/huzM/q7m382/jShj8UvhvyjiTef5fGt5timz7tNA5PO9jj7dPrlbZlTCwGl4lirhtMMJSS8j8nkx8/b/ahIy1Op8B7Mu9dnxx70v94/8A6j4zk+Q/7OAAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}x + 3 y & 2 x + 4 y\\end{matrix}\\right]$" ], "text/plain": [ "[x + 3⋅y 2⋅x + 4⋅y]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v1.T*A" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEwAAAAZCAYAAACb1MhvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADHUlEQVRYCe2Z7VEbMRCGD4YCHJdgOgiTDqCDfFQAdBAPv+x/GegAKCHpgHTARwehgzAugfdRtIqk8fmsu+O4MNmZRd+7r1a7K/nYWSwW36uqei82Oloul4/W2LbUmonmnvn5M18eq3+1rYyh5zVh1vhXYTqNcM331JhpYD/qbFs9l5wgXPVLCboX9yG7LaamdRsxaw8XEgBXqp+omO7S6IlOJPQwknWuOocRe280PIpqMeY+DYZ33Y3CDNuDKMZMSPZC8qSrTBBgHtX/kPWPptkGc58eFgzhw/CjOg5CZ0FF6w/F5IzBaFvMvRtMimfaJfnrQPW2NyQ3LjwIlWDuLSTZmVc8V3kUtekvfqYMYqkWmDcaTBvllC00Pqh+LMaDvoihW835QUUl/TwlMJjdjOSxuXgwkm7DzHPmXu2QW/3YtcpPAFJZjHm3YSe8Uy5gzbsVX4vJLxgBYISeEW8unhWUxlzbK5swUHnm8d5IX4wP9Z/F5FajYsy1HialeFaskI2jDC+DpuIwrvnvXO8r/hEGPJuDhUgLT6729w99P63ZBnOtwST0TgLj3MON96A+5zEqnVub8jalZBDCeGVOHEalcUI6JzDU6Y6fMXjTt2wxuvK+bMrmZq3BBCp/P60DsFl6w2iNQSr148n8SnA/SxrEhGHNt8PEMBNxnL/wPvqCh6leTE05zAkUEAPgEjyd6pvAxRqHWYAHhmjwKtnDSphzRyhCtNbDvCH4ikHS50QIDZTFIUpyHfQGLNgZt1+MlaVJ/iqQlUyt8zBOA37yxkuSp/oYs+SaCBxJIzGWxwtmbs5OtFezGq8i/lFSSeGp+EZsn2wwZAhP5oyM8HzeW9ziv8X2ialT/mKPaw0mRSTP5IbyBhqzkdiPI48/3KTecOS0xPNsfklZF5IlMl5iLgcGFxPGEfMgdaQ6FxNvyk7PiT/SajzMBl+r1Ca7hA5PElKHEb9OriSzl+hYG5Km6R8tyV9TGYjv8eSuy44HkJjhzRmsL09KrBQ1xprDIojjqv43WOF5uJCUG/+K1rX6v2S0/s1UfR605xUfBObPkO0hfU8WG9oAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}x^{2} + y^{2}\\end{matrix}\\right]$" ], "text/plain": [ "⎡ 2 2⎤\n", "⎣x + y ⎦" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v1.T*v1" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAE4AAAAzCAYAAAA5Fj4CAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEmUlEQVRoBe2Z7VHcMBCGIXMFEEq4dBAmHUAHIakA6CAMv+BfhnQAVJBJOoAO+OggdBByJeR9fJKQzVmS5Q+O82lGJ2mlW61e767X2s3T09OtjQXl7OxstoA8OpJwWIjPREjcq04riFxqfFShJQ3NRidmseV78IYfxC+dZbdy+BuAo+zpYDfzbuvfc/FyoKt/IY48nA+tOb8CA8m/52+r8aHG++98Ykf9QzH3n9C5+E5F+9gR/6Vg0wdwaNvdUpyuRyGsqXa2hTQL/+gXgHwU/cEnvvV+HxrnMDHm+VmEHUdckU5vwAm0qTDCv+2ov3KhTeemikIZ0I7VFm8kM4b+yPwqlCTgdGCCQF7DlE+qB6po1FdVyq3W/KajFjohCMDZNyl+7li116L9mshp1xIm3eu/zjcbPldq9+sETjVVYrMfVDG6Vb1S3dUYMBAAk7SFmI1whNZWQpSZXdBj20TOE3Oea8njy494X1TxzbUlqnFijqb5jAEApmgdZVvVzWv9+4I68E8TObUWS0ABKLiTp6L3/AMt+EEQBU4M7rSR75t4Qz6IVmiQ2lp1fpZjkF4TOf3wCO36XpEQi6nSSkuipipgqvEXG/0scVmCQRM5vYcOQLga37+hjdCCGhcFTgxc0YZ2o+JFwIRoW1S3aAk6DeTEWpz1GNE540w8qgpTOtmkNKoMDCDcDuB0eQK8HWHqmy5Otvc3ZkW00rCFnFMx8s8C36h/Y1FM40Cf+mSEKzlR0ZizTlbdVyu5cpZAM+eBF2/aYJkEZ+d2jv3DbEOMj1SvVe1VEYA6s43w6nMaa8iRE0shXiMq+Ktqr76C/k3rNjZ1A/xHLYBEF/OHVS4GQOLT2m9rzfV2H/cmsAUkVQL0oqjPCw5QgmHIfHXcx9l1q9gSxPthFV9DlwIwyfXEfNwqAmbPhH/bFlDf1OLbLtRPdlejBS5VsyzK1TYWjlTXr8cGgTVwmaqwBi4TuNH6OPCSnyMEyUqejxo4gUYsx/d3UdS3X0T2C8JOvWjHbqqHAmvXQ4VPr6Tk+diBQ9vuPOCSu6M2VWmbu8A0iAGkfztcC+TYNc4BIxC5+U1Onq+BE1oCbaoG/5acPB+1qQooC1rj5HkUOD0Ne93CPrFktF2bleRlg7bFkzcqg9G0rOR5iqkOluRtC5r5f5NEM/dxhCM2cU5LiDIzvGqboMaJQXIyWmtbJ3lrpUycaCqD1mcnz4PASd5Bk7yJ+ISW+aFEVqI5xNyfC5qqnkg1t1ibjNbaQr3Vovr4OhcjiZaU5PUFy+kPKUMQOF94DxB3tSzaomR0dpLX369lv3cZak0VUCR8TjKamKiUr9Q4KcnbEiz/773LENI4TI7aNBldAs1oKnyiSV7/5C37vctQq3ESfPAkb0uw/L9nJ5p9JqF+7wlpaRyfMsEkb0jALua6lEG8uk9II6BqdpK3K5CGkCHk43LO0SrJm7Phgv8MIkPIxy2QKUpqleSNck9bMIgMnQInE3ExXtoZu181lAxdm2r3SCwpR6txJCgIeF3RuPiEcoSRdqq4CIYCJ6tx3En98yohxLrMEeDr6QU2/wGrsit0JjZL3AAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}x^{2} & x y\\\\x y & y^{2}\\end{matrix}\\right]$" ], "text/plain": [ "⎡ 2 ⎤\n", "⎢x x⋅y⎥\n", "⎢ ⎥\n", "⎢ 2 ⎥\n", "⎣x⋅y y ⎦" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v1*v1.T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 外積,outer, cross\n", "\n", "outer(v1,v2)がSympy1.1.1では見つからない.\n", "crossは使える." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "v1 = Matrix([1,1,3])\n", "v2 = Matrix([1,2,-1])" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "ename": "AttributeError", "evalue": "'MutableDenseMatrix' object has no attribute 'outer'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mv1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mouter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m: 'MutableDenseMatrix' object has no attribute 'outer'" ] } ], "source": [ "v1.outer(v2)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAABLCAYAAAAGaxWkAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC9klEQVRoBe2b3U3DMBSFA+IZFZAYoCMA3aBsAGIDugE8tm8INihsAGwATIBgg3YAHqBiAs6pbMlNrhObXAcQtmTd5Dq9/nL8lziwNh6P94qieEGW0v1kMjmWCrR9qGeGmH0pLsrWNpyCKxzzYjfN3ZPEx5dC/EP4juh3QacgTwKGuFRqiHyL4wUrLif4rwUfXRXQ8nWa5+xeU2YASXEX8G9JBdbnKmp9KewAQR+RpRaj0udNlXYFWkAx9reVBN9y8MDerxQIJ12BPgt103UJyKBZZd0TQNUtKQYfR/lFaEWdgJZhAMkm34N9LZf5zn8EFDBUU5o3fZxF56BGzSEsZ4HgFDSYELSHiE/ItKHp2NO0IwSQpqnauKGgXE32ayOFF3KliQbttOlNy3Agicto3b12CgqQAwPzXgcllXUNavv4r1eU8yYhfSuVJObSFzSYvL+OLEAf5SCqfUryhey66X0cjf4M2ihR5AVZ0UjBGi/PijZKFHlBVjRSsMbLs6JYLvlOxE0HlZRS0TsQbqtQIkgSUCh5pgVo46iDsskRnI9y0c+cFkqy6qCo5ASwlZ05qfIYnyqoaXK1AeTeiBooIPsIzO3D6DdMF8h3rAaKCkYpmtyCq4AC8BQBkzS5C7ppTqy1ZUHWNHkvUZPvWgi+3H2aE2ttWahl3xwAlBO8mzhN9Y1/Dtu4q+z+2By/WV/rt1AAcLOrsuEF/wf9sEEbtRbIZ1X6qCd4D35mldRa0TIFFOSgYndg4vYiu8QzLL9jfTulAOW2onpK2fSqsBlUVU4Ey4pmRbUV0I6X++i/VTTFEsrHO67v+1jf1d5EVUABxKekG2R+P+K3pD6yatICpXLL505Ac/OBqqqmPOpV5USwrGhWVFsB7Xi5j2ZFFRXYMbG2FWOu/P1oq7hYOu3e09AEuoOPe6UPsK13oFXWeoIBRmWPydxkxeRRX5GkpSMr2lLAys//jKLuqJ9h5Jbv5Ff8wwChCMq5zrenmeSbESsWUu0fvn4B8oumqvCRp38AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}-7\\\\4\\\\1\\end{matrix}\\right]$" ], "text/plain": [ "⎡-7⎤\n", "⎢ ⎥\n", "⎢4 ⎥\n", "⎢ ⎥\n", "⎣1 ⎦" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v1.cross(v2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## スカラー三重積" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABMAAAAOCAYAAADNGCeJAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABLElEQVQ4EZWT7U0CQRRFwVCA0Q6WDmA7UDtArIDYgfzdf8YSlAoUOnBbgBK2A5UO1nPWGbNOIA6TXN7H3HfnzVtm2LbtIK6qqib4azDF38d8atl7SnKv5HYjfs7ZWIFPUIICHFxw3fOwJX4tCWssxorZwS1w4wFjd8eWRXbRCQWSzTT6o5D41yAwg+RBV30y+ZsYn0Unw97D2VN8dJbZnSHkPBvE7O4OfIAxWJPrrn2KmLNxlRQvf9xuzl/EC7DJuibEKDTBf4lCwb5hV3KyxHrF3Vfrxbpb4GFllhinxqFHq0i6iiyxUOWQ43VTIePmFLFnCooDKlNy/mXqVOwykC/SIsgbcjX2913i2+kcLOQPfegkfSauayBhBxz2O3t/vh6xYvG6HvpITv7gG3VBYdtBZ+BZAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 16$" ], "text/plain": [ "16" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v3 = Matrix([-1,2,1])\n", "v3.dot(v1.cross(v2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 行列操作" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 掃き出し, LU分解" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[Matrix([\n", "[ 1],\n", "[-2],\n", "[ 1]])]\n", "⎡1 2 3 1⎤\n", "⎢ ⎥\n", "⎢4 5 6 2⎥\n", "⎢ ⎥\n", "⎣5 7 9 3⎦\n" ] }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( \\left[\\begin{matrix}1 & 0 & -1 & - \\frac{1}{3}\\\\0 & 1 & 2 & \\frac{2}{3}\\\\0 & 0 & 0 & 0\\end{matrix}\\right], \\ \\left( 0, \\ 1\\right)\\right)$" ], "text/plain": [ "⎛⎡1 0 -1 -1/3⎤ ⎞\n", "⎜⎢ ⎥ ⎟\n", "⎜⎢0 1 2 2/3 ⎥, (0, 1)⎟\n", "⎜⎢ ⎥ ⎟\n", "⎝⎣0 0 0 0 ⎦ ⎠" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A=Matrix([[1,2,3],[4,5,6],[5,7,9]])\n", "print(A.nullspace())\n", "Aex = A.col_insert(3,b)\n", "pprint(Aex)\n", "Aex.rref()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "rrefはreduced row echelon formを取り出してくれる.これはGaussの消去法で下んとこまで行って,さらに上んとこへ戻ってきたやつ.拡張行列もそのままやってくれるはず.もうすこし,試す必要があるが,一応MapleのLUDecompositionに近い結果を与えてくれる." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( \\left[\\begin{matrix}1 & 0 & 0\\\\4 & 1 & 0\\\\7 & \\frac{5}{3} & 1\\end{matrix}\\right], \\ \\left[\\begin{matrix}1 & 2 & 3\\\\0 & -3 & -6\\\\0 & 0 & -3\\end{matrix}\\right], \\ \\left[ \\right]\\right)$" ], "text/plain": [ "⎛⎡1 0 0⎤ ⎡1 2 3 ⎤ ⎞\n", "⎜⎢ ⎥ ⎢ ⎥ ⎟\n", "⎜⎢4 1 0⎥, ⎢0 -3 -6⎥, []⎟\n", "⎜⎢ ⎥ ⎢ ⎥ ⎟\n", "⎝⎣7 5/3 1⎦ ⎣0 0 -3⎦ ⎠" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A=Matrix([[1,2,3],[4,5,6],[7,9,8]])\n", "L, U, P = A.LUdecomposition()\n", "L, U, P" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 階数, rank" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Matrix([[1, 2, 3], [4, 5, 6], [7, 9, 8]])\n", "3\n" ] } ], "source": [ "print(A)\n", "\n", "print(A.rank())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 行列式, determinant" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABkAAAAOCAYAAADaOrdAAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA/klEQVQ4EbWU0Q2CMBCGqXEAZsANjG4AG8gKuIE+wqtuwAy4gbiCG+AIxA3w+wkYUvHF1ksu1x7w/ddei+m6LnC1oigiGMeBsyG2mpO/K2dcRQaBkpgIKGN8IhzwhHG9UNLRBNxPGYC1qideKe9DJIbTAA4FnFjNOCQf+RAR7AFMlc9Z6NyTOapyiDaEiGh8rORDB/BaAnh/4v4iAlwNvyB2JgYmz3M17IbbjdPzb5YC6O+A/QL5kpy26X2kA90TX07BGV7ZvKVdya9zKt/x7YqYjgzG6ouXexIAU6O3xPHXMupIuHU+wkO1V2C6L7bFPF/52C4JaFsyW4F5fzhex8eV111V+AkAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle -2$" ], "text/plain": [ "-2" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c = Matrix([[1,1],[1,2]])\n", "print(c.det())\n", "\n", "a = Matrix([[1,2],[3,4]])\n", "a.det()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 課題" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "次の行列式の計算を確認せよ.\n", "$$ \n", "\\left|\n", "\\begin {array}{cccc} \n", "1+a & 1 & 1 & 1\\\\\n", "1 & 1+b & 1 & 1\\\\\n", "1 & 1 & 1+c & 1\\\\\n", "1 & 1 & 1 & 1+d\n", "\\end {array} \\right|\n", "= abcd \\left(1+\\sum_{i=a}^d \\frac{1}{i}\\right)\n", "$$\n" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "⎡a + 1 1 1 1 ⎤\n", "⎢ ⎥\n", "⎢ 1 b + 1 1 1 ⎥\n", "⎢ ⎥\n", "⎢ 1 1 c + 1 1 ⎥\n", "⎢ ⎥\n", "⎣ 1 1 1 d + 1⎦\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQQAAAAQCAYAAADwOAEzAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEpElEQVR4Ae1b61UVMRBeOBSA2gF24KMCpQOwA6UD/cs/D3YgVIDQgXTAowPpQA4d4PflZmJu2L2b12Tvcsg5Ia/JzHwzSXY2y914eHjoUtLh4eE26M+Q3yHfof06Zf4YLfi9Ac0J8g7yL7QPxua0Hte2QWs8Iq8E1xz8JjhzyqnwlfgkBmeIayP1QBAhYHSN+hVKlQ0Lvjyp9lGei8x1K7VtMBXeElxz8FuJXafCV+KTGLyCazOGeICGT/LfA2NF3VDuo2VwkcKI85C/pMwppFWzQahXY2xZuHL9RqyN8YXmjWpPjC/LJzHAfFxZB4LPIEZgBs0u5txCzn3iXL7OMKunBjYIMTTBVogr12/E2gRfaNTE9iT4Cn0SA9HhyjoQIMExiJGWQcMIISk6yJBROkXbBqX65c4vwTUHv+XahfOmwlfikxi8DteWT42TaAftI+Rb5L/IfH/fQ/8PlH4igxv0f7Wd71Geov3ofR995EdeTPfIvHe4MS38QT2UyYOA4dF3oWlZ9uijboMW+Grj6uE3F78Zc0P/Oa3LZvvNRQgwEIXyovAb6sw8BH4iH6HuwnBb54blRj62dJ9RP0OdfSaxjvwHjUvSMKP+FpmOMAl9fTJlvHmEMKCPqg3EFpqlAq5Z+o02hi1mtS6hL/des/1mDgQrlJ8SeRAwOpDEevguz8XA9AG0fOJ3tmR9j22beOF4jjE/aviEPnMRiX4CHZLJ6MPwtrzUixF9VGygDgoCauMa4bfufqPJZ7UuoW/T/bZFCyHxqbwNZx+b1v8/VMbf0Bzh+0yf47nBX5EAfPhUZbSwFPaj/wXHbUqRKXNMafmLofyxl2xgvO9TKHXe94mDeoo+tWwQqOBsVxNbVVxQOIXfWuGz60ZtXRKslVHTf7XWWpTftqzH+OReCtEBjBucxgs/LRLs0iEBWjHAJcaYDD/0r3rKp8hccLV/wbdvw3foZ4TCkDC881iaP9BI0aeWDR6pooBNBZevOHQeWis+malPjE91XRKgAr5aay1qHWxaZ9Kh4cYnAwJcOijQxUNCNj5JmOTJe7GC34ISf1fQDMl0czUqGfoU20ADR8izIa6199sKWzizraCZBJ9VrHitpeDadNZYfFnwmotXA3aAIb80UDFJ7p7BCqPBDlC/Z7ZEUsocU2Jcogm2HR9LZMIj1kEXyrQkqkWKPo4WuvJAzbWBKiDL3Olq26vs7GhDXJ6ijiaCnzdNrTqqD7DIepRySRmMz2Jdhj6pjYsRAg3EKMBtePQx9ObN5hUy0y76xOh8XeDvGCTxYpC/OfDvH1iXqEHoOtDwPeYOZapMx0OjkqFPsQ00cIQ8a+PK4BeqVLWdoc+s1qU1VvFaS7GT+S0DJmxD+AkyXwV4MXiKzE3LDcw+vgqY/x3waHlAcN41+vzDAF3mCc+5TPz0yERafqYk387jMyqT9DEJPLPvEFL08WiLbBCDSWhysXm6jtrZox3E5dGM8hPdY8oW+KgH5DRfl1Zu1tr07D3ok5q4sn/cRCXWLeUuqnXD0afPU8ZGvM/4+rzevs+/Q2gvvb5ERh8mAqnPenKOTxkbjfuMb/Il1nX/AC+KRdxWjKexAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle a b c d + a b c + a b d + a c d + b c d$" ], "text/plain": [ "a⋅b⋅c⋅d + a⋅b⋅c + a⋅b⋅d + a⋅c⋅d + b⋅c⋅d" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy import *\n", "a,b,c,d,x,y,z = symbols('a b c d x y z')\n", "\n", "A = Matrix([[1+a,1,1,1],[1,1+b,1,1],[1,1,1+c,1],[1,1,1,1+d]]\n", ")\n", "pprint(A)\n", "simplify(A.det())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 逆行列" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFkAAAAzCAYAAAD8ZKSTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEIUlEQVR4Ae2b4VXbMBDHSV8HoHSDsEGBCUg3aNoJChu0j0/JNx5sQDtBSzcg3aCwAXQCWjZo/z8/yXWNHZyc5DiO7j0hWdjS3c+X01lxBpPJZHurQqbT6UNFd+qaQ0DMKlk+0zXXKr9L5WzOWOlf9QQuSxzhejmQJ9+qcay7MKu/Nv1nGQJieqTrxnhyksgEnkcef0t3c6g5Prp59lX/4lj9N66vM5V0eiVl+MjvqR1sTYoK2QG+UP3ak1SbeH9Nn8rKQ5R0YLH6rMLNxwlwiqASO1wA9LiosYzCq/ESPGblIn0eVMYq6PklhkKxIY+k9K0MKKc2ePC2+oN7TQxI1jFjQwbmnWDWxbcyfKs9nbw+dkwe11jNArMl+J1b/Gr0NXXH9uRHygksgAkTPuN4dE7fOlqHLIAseN8E+7xvMOvsmRsuBIKY+V1lkdjJSl0ZBtR/obGI0XVhpE7Pte5/CjIL1l4ICwWWR8wd1XnOHGLcdRijlXAhsG8EY7fowWoPKesAyapjdMgCyUJ3oLq80AGep6zey9xwYbXeeSoL3Uxt4nFRRurr2uL30im4o5pQGUSiQpaGVyqEBOJxWSoXx/JJbRzrZvtH/JGb71J9d2pfqf5k1SEqZCm4a1WwjeulZ9RsJ3pMbgNS1+dIkFu4QwlygtwCgRamSJ6cILdAoIUpzCmc0p+h9CS/5OmN9oHKqfo7kwdLH7PIHjbJ3qrw+sRC+zlmyJqU7/HYWcuSdtUfdMzO3QuVXohsYmsAR0IW2ZHMLggB+TQb6d8fHk17tSchyHwqb1Sz37KwmCE7BYoTowjencQRMEP2JAWbMPFOhfcszM/7ftw+1MFSOIFlR+1QhZdWAJ7EEQgGmfEEl+1B9o3P1GaxSCICpnAhkKy0P1UO1fYpG6CRfRXfl3Vs6h+TJzvPJZNg79XLSA1Af/Udm16bPNnBYy/2RMDv3TEPI0HfinTjrqySbTxk8a4cDsR3k2RP96obfbNjhqyJshxSk/ZWZCOf1PJ3lI3tNYWLxrNs+IlmT+4qP3kfi3KwF3Msdpogy5A/T02ucwZPnRPj/5qXxXehjZwqPULYaIW8EoBVMGL1hXCSFJNj3Z3CuCZPZhzdaWLfiRuTVAd5r34+rr0Qq41myKLII3T+uxC1eVOIH2CuxTsXDb3AZGOIcHEksKOCsiTqJOx92rsw2RgCMl78owC5j02TjeZwIY8t7x2jEF9H9WZzyGpjCE/OPdeFCL4ZMeen+aAdayxjYzDImnwoHsTjXm0OFe/xsjaawwVKuMn5vXT2UwV3TH9xC7So79q1nU1L2eghkw2Q7+ai40Z5rpuctA0FfEZBXF561ypXoiONpjbqvP8YSv3s2EMGEsULixmgmgg5MYNR56IJm16fX9PhRlMbeZl8VLJj9he1vUSpak6dvQAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}-2 & 1\\\\\\frac{3}{2} & - \\frac{1}{2}\\end{matrix}\\right]$" ], "text/plain": [ "⎡-2 1 ⎤\n", "⎢ ⎥\n", "⎣3/2 -1/2⎦" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = Matrix([[1,2],[3,4]])\n", "A.inv()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 課題\n", "次の連立方程式を解け.\n", "$$ \n", "\\left\\{\n", "\\begin {array}{cl} \n", "x+y+z&=0\\\\\n", "ax+by+cz&=0\\\\\n", "bcx+cay+abz&=(a-b)(b-c)(c-a)\n", "\\end {array} \\right.\n", "$$" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Matrix([[1, 1, 1], [a, b, c], [b*c, a*c, a*b]])\n", "Matrix([[0], [0], [(-a + c)*(a - b)*(b - c)]])\n", "-b + c\n", "a - c\n", "-a + b\n" ] } ], "source": [ "from pprint import pprint\n", "from sympy import *\n", "a,b,c,x,y,z = symbols('a b c x y z')\n", "\n", "A = Matrix([[1,1,1],[a,b,c],[b*c,c*a,a*b]])\n", "bb = Matrix([0,0,(a-b)*(b-c)*(c-a)])\n", "print(A)\n", "print(bb)\n", "Ainv = A.inv()\n", "res = Ainv * bb\n", "pprint(simplify(res[0]))\n", "pprint(simplify(res[1]))\n", "pprint(simplify(res[2]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 固有値,固有ベクトル\n", "\n", "sympyでは固有値・固有ベクトルは,eigenvects()で求められます.\n", "戻り値は,\n", "> [(固有値, 重複度, [固有ベクトル]), ...]\n", "\n", "です." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ \\left( -1, \\ 1, \\ \\left[ \\left[\\begin{matrix}-1\\\\1\\end{matrix}\\right]\\right]\\right), \\ \\left( 3, \\ 1, \\ \\left[ \\left[\\begin{matrix}1\\\\1\\end{matrix}\\right]\\right]\\right)\\right]$" ], "text/plain": [ "⎡⎛ ⎡⎡-1⎤⎤⎞ ⎛ ⎡⎡1⎤⎤⎞⎤\n", "⎢⎜-1, 1, ⎢⎢ ⎥⎥⎟, ⎜3, 1, ⎢⎢ ⎥⎥⎟⎥\n", "⎣⎝ ⎣⎣1 ⎦⎦⎠ ⎝ ⎣⎣1⎦⎦⎠⎦" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = Matrix([[1,2],[2,1]])\n", "A.eigenvects()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ベクトルの規格化\n", "\n", "eigenvectsの固有ベクトルは規格化されていません.norm()を使うとかんたんに規格化してくれます." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABUElEQVQ4Ee2V7W3CMBCGDeoAiBFgg35sABvACu0Gzc/kb7sBM7QbwAqwAYyAOkKf17Iry3auacTPWrLOvtz7+HLnwKRt2w/n3D0zjnXXdZe4sSxxrzx/SWKaCcAjDx4S56gljGcJp6PUhujOeOY4dcHzJsQ8Yq/a4z8FX2F6gQG2w66jivUba5VIdT5Ef2qtV5Y4LbgDomy/mGpkdVjAFYozkFmmVGYz/CpHMSyghBeEyqg28oN8jFXDbY2Cz99ZDqo2xsqw4AERTK8aO1/E/AmIWs34BPxekIJjMBDIDo1q2lcKjxwEBKLPao79uZMhocL8CgSyQbVMM2O90CxoOEwgIjXhCZs3QYfoMyyGdW2UgZpwAKj6pWOFr9qYXiDqPVNQ/7OU0lhX76BieoFksMwgg7ZmDQcRsqB/YFaQEdub19BfG67IOUlm7P/yHEbzDWMmXkmRXilzAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}2\\end{matrix}\\right]$" ], "text/plain": [ "[2]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v1=Matrix(A.eigenvects()[0][2])\n", "v2=Matrix(A.eigenvects()[1][2])\n", "\n", "simplify(v1.T*v1)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABsAAAAVCAYAAAC33pUlAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB9klEQVRIDZ2VPU4CURDHF7SyIh4BbiDaU8AN1ngDbK0kVtAZjwClrXSWYkJhKzeA1s54A/z9lzcv7y0s7O4kk3lvvmfe7Gxju90mdWEymVxh+13W/rysYoHeC/wuQVcF8ojdjG4VLq6qpGwgua4dDNsnUJWVhlrBqKZNhDZ0UToSinXfbISt0INLwHjXCH7BUdjmRtVpxLiFk09o1yK5QFPoIOCpxY/gAH7WgTptlJNnc+qoePchjwCq8g98M36lYDhQVX3o3Bw42oeunTwUqaIWfL1x5WksmkA53eBUlRwCJZkkejPheDxOwb7dD1Hk60P8Ip70QcS7GNk0kpEeUllvQP/wnD04nalnnDigr1Wm9tmEJmdcxFQbLsB0uVy+93q9H84RwH/FwV3EPHJB/wuxpvbB1JpcVqB6bROmCiNAPoRRpSrp6g1vQ0d+Gl3AGcKUczY9gaJaIdlJcIldQv03Z0Y+mGPYrvN9xihFNocWTZr5SpxuB+or4qy1liUfBYOpAdH7DTnvxnU3ONZi7zh/QF9vfwP1iTodJavVleytK5T1gX6AMlJwrZtoO8CLALkyl40SzYOWQEfMbPRDKYIFqJ+hBkXBfEtCvdxZgRRQg5QH/2PdC+Y01TbtNE2UAh4Fy/yoEsLozUwZY+0+ZZTvv6nUov/4PPBo1hCozgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\sqrt{2}$" ], "text/plain": [ "√2" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v_norm = v1.norm()\n", "v_norm" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADkAAAA/CAYAAABaQWCYAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD9ElEQVRoBd2b4VEcIRiGz0wKSCzBdKAtnB3EEtQOdPJL/zmWYFJBZuwgpgOTEizBuQ6S5z2BIAKHt8BimFn5YNnd9/H7YO8Tb+fi4mK5WCx+cITl4fLy8lPYOWobrb/Qth/Rd/Te6zz0bJmPQXv05jECdwORa+c5SH4Td8GA2Zto+rNJBGN2NIb6dziWvpX6HGQ4YO42Ak/QcEr9daqWYSEBOwIwnEJb8Q4JCdwZNDciwv5A9UU2Ze+pWhzTvw5F085WQ0Ki+BAI68Vr7FNLgS14raTFK/87e/EoNRDOi0bTCX1LT9819h59sdeFN+yfOZQnEa7Q9L0opfLivYxtS3dIQDSvltSxVVNzT55yJTJO0Pqg8uKV4S4KjK7hijCFnUTeYMtrrpj2PnXyfc05hehnjgN3YYHRG/IOoefokhfsimllyoM6Fy1cpwjQmAPs4pVVN+sKqQeackV9hti1N02txSQagvQL8Jxa83Wltumz98vWs0Ai8BZVDxzWm0kvGhi9NhTiCmeFrDz+yFFUui88nioJ/Ybo79S71FEvck7vRHlctSuM19wuKrNBIvKWQx78yZFcSBjzsYgkM2iWcPX0yJtajBS6zcpsnhQRcJqbOpqWjZAI0XxQSK1XwkI1yiCezTHaG3PDwns/G8Z91/nks86gUQK54prknAnul2yWiElePPHE3HNyovyyyzd6suw200fhaU0H+97Uy1/lVXnj0yUvfw4DibTJeeNLvKeekcJ1ct74FiD1CWZS3piCHCZcmZNhfinoV+WNKciRwtVpBHirvNHdIDCGgwRQK+tWeWPA5prDhKsUGcB13ui11T/ps+0wkAZQeaMg7V/iNC+Tfy3QL6KkDAOJ2Ml5Ywp4GEi8NzlvHBISsI2ZCWM2ZhkpONs/mycRX23XysKk6tkgEVRt1yoFZ/tngcSLbr8Du1n2MSskD/f3O5plHxay+yce34tGRLPsw0J2DVcTmr4XpaNZ9tEMEhB99uy6a2VhUnXVcAVwyYPkma67Vik4218bcpZdKwuTqqtCeg+5wu62a+U9N2o2gSRsu+5aRcm8zpara7ddK48najaDlDc5uuxaRcm8zibh6t2/y66V97yoWc2TeC2ZNuXORVV5nVw7TqpVQ4zHVtVsHa5VxW57s2rhmhOAl5unU7nnd4FEQPN0KgfZK1ybp1MjQDZPp3KQXcKVOdlsMycHZ8/1Clf7vAXAVTdz3I0zRldIAPfQUnUzJ8PmTnUJVz3NAFbfzHEkGaMLpAFsspmTYXOnukDytGabOY4kY3SBxJPNNnMybO6Ug0RImEX8L19IWwhS/3Fhv4Ph6DGK/2nWv2hGO/aFNMm5/wu+635wv/6ENAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}- \\frac{\\sqrt{2}}{2}\\\\\\frac{\\sqrt{2}}{2}\\end{matrix}\\right]$" ], "text/plain": [ "⎡-√2 ⎤\n", "⎢────⎥\n", "⎢ 2 ⎥\n", "⎢ ⎥\n", "⎢ √2 ⎥\n", "⎢ ── ⎥\n", "⎣ 2 ⎦" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v1n = v1/v_norm\n", "v1n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## 対角化\n", "\n", "ちょいとわかりやすい行列を作成してみてみます." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( \\left[\\begin{matrix}1 & 1\\\\0 & 2\\end{matrix}\\right], \\ \\left[\\begin{matrix}1 & 1\\\\0 & 1\\end{matrix}\\right], \\ \\left[\\begin{matrix}1 & 0\\\\0 & 2\\end{matrix}\\right]\\right)$" ], "text/plain": [ "⎛⎡1 1⎤ ⎡1 1⎤ ⎡1 0⎤⎞\n", "⎜⎢ ⎥, ⎢ ⎥, ⎢ ⎥⎟\n", "⎝⎣0 2⎦ ⎣0 1⎦ ⎣0 2⎦⎠" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D = diag(1,2)\n", "P = Matrix([[1,0],[1,1]]).T\n", "A = P*D*P.inv()\n", "A, P, D" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAYAAAA3v0BtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADhElEQVRoBe2a7VEbMRCGQ4YCGNKB6QBCBUAHOB0klMBP+1+GdACpIGM6gA4Y6AA6CHEJed7LrXOWV7qP8dmCuZ3RSLcn7e6rXUl7sncmk8neB4em0+ncYWfFwkbX9o9Y+Uj5E5SrrKyPGzML7BaO2Q6eeqZxAer7+Ni38QYM37B0LE+9O9ptiohZOKSv3H1Ee2PrDV22FH6j+4ByBe+FOkpJUAzWQvxJeaV8powoGyP0a71/p76V0tKeR+ozShRYMvwYOKeMKRfI/CXBmyJ0an3sUReApJe2IkTP13qOURJUbNCG+GP0PDm6HuCdAtDdztU/Z1Cn2KewD8nCTu9dyhJUygsVFPuV9lIzS1BYaAandtk3GX5Ls+88fHJ4BStXT3lryTCYF3VuuZQlqHLrlsFeiBnPNowVYFmCKq1ULjpasfj/eovmqjmDUkqmLCakIxhPFW+G71udU7YwLaZXhK2TgdE3yHulPje5tBV6XyhfjefVydxPAxCkGRPZYTeDp3i+o5biPkleUQJ7TK2NQfUJz16mwat/1ASU0pWtEMbPUay8sxXlvKZaAal2HkBVZyPn9uCpnL1TtW3wVHU2cm4PnsrZO1Xb3qWnatMkzQDpSusLxerMdW2jd8TYy3K8MnZ9PF7CT+Z+tZ5CgC4UH6gl7IeEUpTMSmFvVMq/ptY9v0rxyYFCXWZacu3qT4JicOcLRVdbO6aiYymZxR5NqJJc+3JwJSZBMaLzhaKrrR1T3ngGiH2+22h98ermNhopdaAk2LsEsfuBZBiYFR1rGf+C8fKMRyHYRZ/dRStoODMU9Cgee/sKRn/sO+5Qmnkf3SxSnjKDYzMl2dHZ0st1E0AESGFnO6KrIgXKHRAw7d4iYPf2qA3iFnDahaOUAuWtJRNkXoxeKFrHddUA0c83WmOxsFyoioJisIWdF2LGsw1jIbCPBrboaNmnPmsiPwqqHNz5QrGJ8iZ9AKIrsgPqhYdoj1Ri4+tAdb5QjClsw8dwbQzH1OHGIKDR5RHd0qUcYTcSSDmnVH931YXiifr0ReiTJzSp97TDn0NP4UU3iySo0uBOF4prAHuHDAHTegopekapYy0oZkQbxlIOFmro4xm9+ntBJ6pbU52EbnvQAGrbHmiqf/BU05nadj/b/XRCW+pT2FTuetu2L6k/tJnOBQYLPx1u1T8y2kVLUmgGL3U4r9j9F7JUBDymtAIAAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}1 & 0\\\\0 & 2\\end{matrix}\\right]$" ], "text/plain": [ "⎡1 0⎤\n", "⎢ ⎥\n", "⎣0 2⎦" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P,D = A.diagonalize()\n", "\n", "P.inv()*A*P\n" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAYAAAA3v0BtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACaElEQVRoBe1a7U3DMBBtEQNUsEHZgMIElA0oG0A34G/zD3UEYALUbgAboHYD2IDSEXgv5KQS/JGExL1EPsm62E589/xs93JpfzabDXoGSZJka2hW1QQfjb4fwMsVyleuzFV5b3dmkfObOBZ9MPWOiylQv9qfbUcPMNzC0wmZ6pwcFkWEWTjFvaR7hOug+62sbScoDMaN+ISyQTlDGaIEkf/Y9oEiIxOigJE7KLIVRGCvsu1O7qkIKsi6q8FIZKqGSQwyRGQqyDTXYCQyVcMkBhmiDFPHmUdHQTz7baSUbWeYxHERrjCIpYx/VG+Btg9cv0A/Zm2NqKq2i4BKY79GvPYMClCVbJdZfh4X9HRHUHq4cHsSmXLPj57eyJQeLtyeRKbc86Ont5NMecMkzj/CFcmtf6J6gjJHG+O/IAJbpRKpXlAYkB8Q7qGXRADNBOcK+hKlMWCZnUqJVOfyw8BMuA+gU0AZKCYZWX9gvSmBzS3KBGUKG89l7DhBYSBGyWvDgG9oG8MgWVMnPlB8h2IePS+y7NivTqygCrKwj7dg7yRaQeFJcZh7yCatXH42MNIuuQOpq9Aupkx7SZwWFvm7pU6soLCnZNmZlpi0yYGhCpgVVOYlP24PDR4LUyo/fvtAMT3Gz6J5GaFhvcNmvn+vdScoOM283gb6SrzENZfeNcqNtAXQciDJCnGa9MZ+eJqsMIA9h+bBQH2BuinSQFd9AhuVEqleUBiYBwbjr+AC2zGZKbPu3FNyU9t0BNUWxjrJlJx+Q5w0EvqkhGSnnmpy8j7D2RSDMMVX890/MkqiRTUoOMffsT9+fwMOBKuShUmKMgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}1 & 1\\\\0 & 1\\end{matrix}\\right]$" ], "text/plain": [ "⎡1 1⎤\n", "⎢ ⎥\n", "⎣0 1⎦" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eigs = A.eigenvects()\n", "v1 = eigs[0][-1][0]\n", "v2 = eigs[1][-1][0]\n", "\n", "Matrix([v1,v2]).reshape(2,2).T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "対角化行列$P$をeigenvectsから作ろうとして苦労した.まず,固有ベクトルの取り出しが自動的にできない.重複しているときには,固有ベクトルは二つ出てくる.さらに,タプルからの取り出しがこれでいいいのか...さらに,ベクトルから行列を作るときに横置きのができない.うううんん.他のやり方をしたでやってみる.上では仕方がないので,一旦4x1のMatrixにしてそのあとreshape,さらにTransposeで..." ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAYAAAA3v0BtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACaElEQVRoBe1a7U3DMBBtEQNUsEHZgMIElA0oG0A34G/zD3UEYALUbgAboHYD2IDSEXgv5KQS/JGExL1EPsm62E589/xs93JpfzabDXoGSZJka2hW1QQfjb4fwMsVyleuzFV5b3dmkfObOBZ9MPWOiylQv9qfbUcPMNzC0wmZ6pwcFkWEWTjFvaR7hOug+62sbScoDMaN+ISyQTlDGaIEkf/Y9oEiIxOigJE7KLIVRGCvsu1O7qkIKsi6q8FIZKqGSQwyRGQqyDTXYCQyVcMkBhmiDFPHmUdHQTz7baSUbWeYxHERrjCIpYx/VG+Btg9cv0A/Zm2NqKq2i4BKY79GvPYMClCVbJdZfh4X9HRHUHq4cHsSmXLPj57eyJQeLtyeRKbc86Ont5NMecMkzj/CFcmtf6J6gjJHG+O/IAJbpRKpXlAYkB8Q7qGXRADNBOcK+hKlMWCZnUqJVOfyw8BMuA+gU0AZKCYZWX9gvSmBzS3KBGUKG89l7DhBYSBGyWvDgG9oG8MgWVMnPlB8h2IePS+y7NivTqygCrKwj7dg7yRaQeFJcZh7yCatXH42MNIuuQOpq9Aupkx7SZwWFvm7pU6soLCnZNmZlpi0yYGhCpgVVOYlP24PDR4LUyo/fvtAMT3Gz6J5GaFhvcNmvn+vdScoOM283gb6SrzENZfeNcqNtAXQciDJCnGa9MZ+eJqsMIA9h+bBQH2BuinSQFd9AhuVEqleUBiYBwbjr+AC2zGZKbPu3FNyU9t0BNUWxjrJlJx+Q5w0EvqkhGSnnmpy8j7D2RSDMMVX890/MkqiRTUoOMffsT9+fwMOBKuShUmKMgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}1 & 1\\\\0 & 1\\end{matrix}\\right]$" ], "text/plain": [ "⎡1 1⎤\n", "⎢ ⎥\n", "⎣0 1⎦" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v1.col_insert(1,v2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "numpyにはravel()というフラット化の関数があるがsympyにはない.\n", "\n", "結論:3つほど上でやっているdiagonalizeで取り出しましょう.重複があっても取り出してくれるんで." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 課題\n", "行列\n", "$$\n", "A\\, := \\, \\left[\n", "\\begin {array}{ccc} \n", "2&0&1\\\\\n", "0&3&0\\\\\n", "1&0&2\n", "\\end {array} \\right]\n", "$$\n", "\n", "を対角化する変換行列$P$を求め,対角化せよ." ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaMAAABLCAYAAADd9eivAAAACXBIWXMAAA7EAAAOxAGVKw4bAAASOElEQVR4Ae1dS7ITORZ1EYw7Xr+O6Hk/dsBnBcAOgFoBsAMIRjAjYAfACijYAdQKqmAHsICOaIrocQ/6HL88xi+R7ZR0pZTSVxFppTMl3aujc3UlZVr+5enTp1dXq9UnHKHw/tmzZ3dDN6ZeQ36W/Rjxx6l5ek+HuiZhmprPGi/o8QVlnoXKxb1fQtd5LSMfZX3AcQ1lfGdZSwioi3P/YkPu7E+AVZLNXCw+nYPjckp8t6ojdUNZ0TaakmeQZWKfh+Rf3gL9Jc5Zwe3wdftL7DmEv0Ker4iPxhGNMErFNDXfSHzy1xeBnLdx7U7g+valpHzgBznyHgW9wZE1+NlWZs5z5/4qlcOp+dTcSRxU5kpxbh2pZko9U/KsDO1zr/xtZ/SKQq0aA2Wx47qH419WZXZYTiqmqflMIELbvR4XhGu8tNcZpeZjwcjL2fNfOB7g+Ek+0/QSoL9zf7VK5XBqvjU9QtzBNd7by9115nofWXWkmin1TMkjSJA32z4Pyd92RpKbHUPoCQrhKJcVWMyySzYwjRWAtuHSyDscrSyPcVb0AXp9xGE2MKoJO/R27hcGHBhrhP0fiLqC40WvfNkHFep0VPZZxBkBYDoiLr10PcLdR5Re76FN1Fl+Qx2u4wg+G5qjftCNTojLdVze5bJgj8G5X7DVwA8+h3s+8GSFmHz+hPg2ji4HMNtwDfUhh47OPi9tA2FxDjDpzTklfmxRnpdhiwDa5zuOuzgeouS3tqWblEbe3IJ+LS2rTKoYdHbuT0IqLRHwfYCcJ4g5YFkHnHPlRQOY4Wq/EeuD4yjt09wZgQb06p8B6LG+tNCvJTSgOXjD0S25o6WYBrSarIJzfzJUSQm5jPs5kPMPXOMAhrMkDwURKGmfps4IinI0y9Ghz4oKEuIIiiZ/zsCnR73U1blfpaVuQQqXr8ZBy3O876E8AkXs09QZAYMnOI75Ve7yNDgCCejYOfrl7Ih86iU49wu2FDgxZdZzWlAFL3pAoJR9mjkjKMgZEQ8+fPbgCOQiQB7x+UDzz46c+7lNPSm/HA2fEe0KUxzWrrx+PQ4Bc/s0c0aoB0eGDP4G3TkO/pmBADp4PaQWrzJKK55VOjr3i0O9V8A/9t71m2YIlLBPk1e7oRhHJBzB8tXcfSMXMzCOtaAB699R/5hRIN/OCT34bR1GOqQ70P1qq/oP7eHcL8+k0LMiSdWsib878lAPAVP7NHFGqDt3WmDg1M1DQQTQ+dHZXysooqWiySd29L/iaNWZOvcrMIa8x0FJoUGYrulFhgoauQggYGqfVst02k/MX+d2jpohgM5HfOLvS1oNzv16LUM+nAXEaWYkvgSS+CVrBKztM9sZQSGOSvhKJd+i46jdgyNgiQA7GL7IwJdjmgrO/erNwa2rrgekcqWAv230/icATuFLZvaZ7YxQUS1T6IFz4bp78YYI6IGvRpaGRZsV9WEoiUt1rQXnfsUWgbPhCyLfEHPpdh2GAQHb4f5waUnRUdmnxTMj7SGmTmNJZFhkXWDAHGEycEbL8A7XuN7OTUpbeyNMSy/Sda1wIx/O/foNwVkQN0a9gZgvLDC+ie+tPlOEenEBdTlK+7RwRutOAgCq04hD3lNXRwBtpecc1WXHCmQng4PZ+EYdl+taWopx7sc2aGb6of25r+JiA+p4lPaZtUzHzgGM4OFvsSzWNJqomEa9oecFsyjo3J8FdhfaJgIm9pnljIDLemSI2J1RmyRZilZ/DhVp6SUG5/5S2OX1yEXAxD5znZHWzOUZcyvl+R2BEAL8DxsG8e3827yf0sW5P287uPT5ETCxz1xnpGUTbuHuwREohYBGXuJbKTkx5UoX534Map52iQiY2GeuMzobkPVluiVSrJ06iV98PtlKcO630hKux9wImNhnrjNS5yBl5gbF5S8QgeENqnXNcN7KcyPn/gK55lWKR8DKPpOdERTQyHC1rUx8VTyHIzAJAQ14NryblKtAIud+AVC9yN4RyLbPZGcE5DRClRK9g+n6t43A90G92Z0R9HDut80V164+Atn2meOM1ClIifrVd4nHhIAGPdoiZc66O/fnRN9lt4hAtn3mOCN1Ct9aRMZ1WhwC4pkcwZwVdO7Pib7LbhGBbPu8nFErdQo+M8oAsVRWPNd4MZTN/buu4OB+Xhq9lBJbslzxTLwrKetQ2dJBOh1K7/eNEQCXuVTKPdyu4Xxx7dCh/aoNZBvRLZ7jjE4GafKIUcJrkqmmrCgQCiVGffkjtOeI31MEYrbVJ8S3cfTskFgd8Y7ncwXpEMV9YE9D1b5qLIPfOUgw3ddxkPN4AIe/h6Kej3H983Ctywj6E7M3OFgf1iu540PeZgPq2bP9yjai8c1xRqex0mqSqaasWBxKpke9+Ud03FB07YgoC+f8l0x+5z8zaucA3uopcIbHEM2782ymn9E6AH8aKR2CnNEK53dwjTul82/hN+2VoynKYQf9CvGmnXHOWbIGI6aOL0fX2Lyox3fkWW8iivNHOOfsaFEB9erVfrPt81JGS8oDkiCTAsmEg4ZHg3w7KVNiopqyElUslY3GGhoBc6eAW8BF7VZKfqlyxbMW9JcO0mlKndnJPAD+dEAKcgxPdMEgpuPZODyWB5mcJVFXLmt5aBuBXu1XtiDbiEY5xxlFjw6jtfMMKQhwA08uY4yDlud430MeAinc5wCBBiujpZPYnOepcyE32/cLyh53CnR8nDFz5uShXQSO1n4vG7SJpmcGRXkROQgEOqBQcSkdaaic2tdCDra2DmN5k7mPtqEz+Pt2AbimWRKXT60C5fC/n3Y5urGTspLr5WQi0Ln9ZtunhTPaRfrMpvHsCQjI0exrE++MEoDdkWUfzjuynF9Gx8MR8HpJDedm/66Lsnb9MdtVSsZ9ztA8tInAUdtvjjPyTq1NQh/SSr+ROZSutfvJHX+BiiRzH86AToGO6AYOOoY/cRQNg0wuz+kNu6LyvPCiCLRqv9n2mfPMSIhnT89UkMfZCOxrC426Ji8tZWtjW8Cmbuhck52BrUrBZ3N7RXBmguMlDs5g+BIP33LTct3evBk3+eLCe8rNKMOzlkdgw/GAqNbtd6M7eJZkn3RGfxsqrjiAw95L/9t79zhvCkvFU1FQesVT863TgQQanYTIoGt6kSGqbCT+Z2yGIX1qvrG4JEzGhRh/z+I+2ouvc7PN3qUa8KH6oFw+j/qKeNfy3aEiYu+rnRRPza/0iqfmm5LOioNTZO1Lo7opvpAWbZRrvyn1TMlzQe/hS7BOoYSjaxv5dEb/HW4qHqU9+DVnqe9g4Z0mEJaKp1ZD6RVPzbedjg+wuSQzDqfDBd5PCf9OyYQ8qfnG4nIwGZdl9X0y99HR8KWCqwHBWqbj0p1pgDy+Tn6KePObI1MB4cLUTorDqX6+qvSKf06RfsWKg+kanOdU3RSHysux35R6puQJ6b2vTqH0uraRb7FMp0I9bgMBLslcD6hyDde4RKTRVyBJH5c6rcMnoMslOc1Qi4INOVz6u4J4MyPC+RmPooK98FwEurdfcCypj8lxRhJ4mot+KD8qVMVoKbumrFBdLa+hLnwz6xvizXOIoX73cP2+pazKZSXzrED7pnCfefjcRnkFnwYOmxlrrr7IfxWF30A8fmGBnPgmwblyVM5MsR7kJ/PikN5z4AOZvdpvdjtMXmY41HAJ97fJdMFABxL8hZgjeY7oc0NNWbm6WuQnZtzzjG9s8YUFxjeJJ+KjCqjzCSpsyaVU/MaOYQXd6Byo30Ocr20gV1/k58yHo+uPOB//fok7cLzEvRXiVnChOpMD9GbdGLSsyedtfA7KbZUsX5GfE5+jtN8cZ8QRFhssKkwhE9Jw2yASjL8Y57E21ChBSIx8B4nLsnFky4rVrWR61gnlX9gSpqS8lssu1L7R3Icer3HQGWw7CDoObl67PSvK5eMHlMly+bxoHDaDEcjMlTMuu8p36L1ZdiwpcE58KBt1Ozr7zXFGchAnMaSYSiak43r3ZqkpRobS1pQlmR4XQ0A8E+8mC7Lg0kiYdJBOo9vhr9CDTmfjeMKp1oOoZO6zrrvKHV8vgMtYRNffHZ+o5pMtyDaiMjPxpegcPzJwdMigJbDzb7afXPdOrlykKjVlRarmyYGA1qTFu1hQLNtXOiyB+5a4xLZJD+kdn2mtlGufWc5ITkIecZrKE1PBCbHcKj/QrClrYvU92c8IiGfi3c8pdlwp0L7SQTrtkJx2uYC+QUVqyQkK7+Ci4xPVSLIF2UZUZia2mBnJI0YLP5CB2+2vH7YeSGdxu6YsC32PsQzNQjQricHAun2lQ+/ct8Ylpk16SOv4TG+lHPtcS8lxRvKA8ojT1Z6QsqIjWtWUNaHqniSMgHgWvYNEgfZdBPcL4BJuuU6vOj5RDZdsn5KS44y+DIWUGh1KR48dASJwNsAg3s2JinRw7s/ZCi67JQSy7TPHGWmEKiVaAsZ1WR4C6vjFuzlrKB2c+3O2gstuCYFs+7RwRpqetQSM67I8BNTxyxHMWUPp4NyfsxVcdksIZNtnsjPCeqoMcoVzKdISOK7LshBQx7/h3VzVc+7PhbzLbRiBbPtMdkYDKOoY3Bk1zJLeVdsa7HDXgO+N1Me530hDuBrzImBlnzk7MBCBzzjoiNwZEY3GAkhyFSpxS6RrDXXiKSiJX3IAKWVY53HuWyM6sTxwmX/XzsDfIXLHCe7D2BI3qFt26Mh+Tewz1xn9AcS5Zc+1bOS9ABMEQGBOl9/g4G9hruMQUXDabaBTZTi4lc55siqfzv0qMF8UAn7zrzieI+YfE64GvvOvObjHX/cOaahPb/ZrYp+5zoijQwZ2eh4aQABk5jLWejNJnD/CuYjSgHbJKnDXcQY6gFaCc79yS4DP3Pz1BPHaEVE8zrl0y+/cgLbmnwhSvHlgfVBob/ZrYp+XMtHUv1QuocPLhMKzF0RA/GppZuTcL9jgO4pmJ61BwHYSDlK4IzpXBTzUR8DEPrOc0eDF11NjnC9hOah+M7rEvQgMHQy51dLLCyvn/t5mK3XzFgrm8vM4aHmO9z1URMDSPrOc0VBnTZmdCBVJcESixKuWZkWC37kvJArHQ6d3SMrpoQR+3xwBM/u0cEb8My+G7tdrz6vhn40h8Ougz9vG9KI6zv16jSJHw2cqu4Iv0+1Cptx1M/vMdkYYsXDESoJk/RFeOay85M4RWI+8wDPNQpqpjnO/maaQIto5Wt89Lo+AmX1mO6Ohrr8xhnHqQVZ5CFzC4hEY+MTRbnOOaAt85/4WGAVPQ8+KJE6zpir/fyahxx5b26eVM3o3NIymbMfeTl5/GwS0Ht3iEp1q6NwXEgVjdHxangstxemaXmQoqIkXvYWAqX2aOCMQRUt1/B2AB0fACgEObvQ7EqsyTctx7pvCeagw9jNngUSaGbX4kktA3cVcMrVPE2c0QPscMX+QJm+5GMS9IvURAI+45MvjdX3p0RKd+9GQJWXgLDT0A3vuAPMZnNHsKalwzzQdgRL2aeaMoJz+Ivzh9Cp5ysII6IGuRo6FxZkW/2QojR1908G5X6d5gDMHJt8Qb16WwjmX6O7huF9Hi6pSWrZfc/u8bAwtHdIjEgSHj1KMwZ1aHLDXcwzNUt/hGtfTPyBufqYBHdnBsMN5j/NeeOTcn0rQvHScBXFjVG5BwxcWGN/E99DODLjVX0BdmrZf6FfEPq2dEUex3A+NXvNxfzRYhsYgC7dN6Tno2WNPHHLuV2AcuM3ByaJXXzqw3yL2abZMRx4ORGEHsp4d8ZoHRyABAQ5mXoNP3bwd5dxPaGXP0isCRezT1BkRWRgllyvYiWhNkZc9OAKTEAB/OLPmMkBPs6J13Zz7k5rYE3WMQEn7NHdGA86aHZ11jLurXhkBEJ1OiH+c9hDnXI7pMTj3e2w11/kgAqXts4gzgtL8xTwflL86WENP4Aj8QIB/KvYR/Gn+JYsfKl88c+5fxMO/LQqBovZZxBkRfhglHzKeIdbDrkW1ilfGFgHwhG/+8ej95Qvnvi01vLQGEKhhn9tv032BwHG1+WptTufAvL+jjN9w9LrsMsYk5nsqpqn5YnTbmRZt9QU3o5dYU/MNinAWfXdBPHHup/UnWdzP5OBOmzC+kVVH6pJSz5Q8W/XOts9D8umM+LLBrlcls95mgnD+KppGyR9dHpMzSsU0NR/gNQ18bpMSkvKBI3xWxOdEi9nOxbkfpM++/sSK+0kcDGprf9GqjtQspZ4peVaG9rlX/v8Bmk048gNxAYgAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[ \\left( 1, \\ 1, \\ \\left[ \\left[\\begin{matrix}-1\\\\0\\\\1\\end{matrix}\\right]\\right]\\right), \\ \\left( 3, \\ 2, \\ \\left[ \\left[\\begin{matrix}0\\\\1\\\\0\\end{matrix}\\right], \\ \\left[\\begin{matrix}1\\\\0\\\\1\\end{matrix}\\right]\\right]\\right)\\right]$" ], "text/plain": [ "⎡⎛ ⎡⎡-1⎤⎤⎞ ⎛ ⎡⎡0⎤ ⎡1⎤⎤⎞⎤\n", "⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥ ⎢ ⎥⎥⎟⎥\n", "⎢⎜1, 1, ⎢⎢0 ⎥⎥⎟, ⎜3, 2, ⎢⎢1⎥, ⎢0⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢ ⎥ ⎢ ⎥⎥⎟⎥\n", "⎣⎝ ⎣⎣1 ⎦⎦⎠ ⎝ ⎣⎣0⎦ ⎣1⎦⎦⎠⎦" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = Matrix([[2,0,1],[0,3,0],[1,0,2]])\n", "evs = A.eigenvects()\n", "evs\n", "#" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( \\left[\\begin{matrix}-1 & 0 & 1\\\\0 & 1 & 0\\\\1 & 0 & 1\\end{matrix}\\right], \\ \\left[\\begin{matrix}1 & 0 & 0\\\\0 & 3 & 0\\\\0 & 0 & 3\\end{matrix}\\right]\\right)$" ], "text/plain": [ "⎛⎡-1 0 1⎤ ⎡1 0 0⎤⎞\n", "⎜⎢ ⎥ ⎢ ⎥⎟\n", "⎜⎢0 1 0⎥, ⎢0 3 0⎥⎟\n", "⎜⎢ ⎥ ⎢ ⎥⎟\n", "⎝⎣1 0 1⎦ ⎣0 0 3⎦⎠" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P,D = A.diagonalize()\n", "P,D" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}1 & 0 & 0\\\\0 & 3 & 0\\\\0 & 0 & 3\\end{matrix}\\right]$" ], "text/plain": [ "⎡1 0 0⎤\n", "⎢ ⎥\n", "⎢0 3 0⎥\n", "⎢ ⎥\n", "⎣0 0 3⎦" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P.inv()*A*P" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "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": "84px", "width": "252px" }, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": { "height": "583px", "left": "0px", "right": "929px", "top": "106px", "width": "212px" }, "toc_section_display": "block", "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 2 }