{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "
\n", "数式処理group work-4(Google page rank)\n", "
\n", "
\n", "
\n", "file:/~/python/doing_math_with_python/group_works_4.ipynb\n", "
\n", "cc by Shigeto R. Nishitani 2009-2022 \n", "
\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 目的:Google page rankと線形代数\n", "\n", "Googleの躍進の土台となったPageRankは線形代数の計算です.\n", "線形代数のコマンドを実際に使いながら,その中身を理解して行くことを\n", "目的としています." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 解説\n", "## Google page rank\n", "\n", "Googleのpage rankは非常に単純な仮定\n", ">「多くの良質なページからリンクされているページはやはり良質なページである」\n", "\n", "から成り立っている.博士論文のテーマを探していたスタンフォード大学院コンピュータサイエンス学部時代のラリー・ペイジ(Larry Page)が考案しました.\n", "\n", "> 『そのアルゴリズムはペイジの名をとって「ページランク(Page Rank)」と呼ばれたが,\n", "> 特定のサイトに入るリンクの数と,リンクしたサイトのそれぞれに入るリンクの数の,\n", "> その両方を考慮に入れる.\n", "> これは学術論文の引用の度数計算の方法を手本にしており、予想通りに機能した』\n", "> (『ザ・サーチ グーグルが世界を変えた』ジョン・バッテル著、中谷和男訳,2005年日経BP社) \n", "\n", "詳しい解説はhttp://ja.wikipedia.org/wiki/ページランク\n", "にある." ] }, { "attachments": { "image.png": { "image/png": "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82Sd/lJFnLKOff7556XGGnS9so6zqwjyUM8yyyyy9KVhE5vjd+mll4qBGz6dvPzUV7g5RsWOoFCnTZtmuL+CKOLXXnutIavzzjvPQGihMhMBXJouuOACOXDEEUfUfTAXVcQz+z4Vv1588UWpJ1ytKpUhYJelzamnnip7n/gZ//TTT5VlUMepGeCxH4wiYRay8sor13Frw28aHNwQnyyxxBJlGcdIlx+yE7ennXbayRDJSmUmAkcddZRQqRJm8+STT555og5/qSJOWae+8MILUuONNtooZTX3o7oYboEdS/zHH3+8H5VKuBbffPON6dy5s8SGRRnvscceCdcofcW/9957UmmYx8oJy9L4y+YLy9oaxjMfERuj1y5RX3/99QbKWmu5b5544onGCeroP1XEKepMlr9efvllqTFkFSqVIzD77LObsWPHSsQggpRnYf+pFErWEsZABfr555/L7EP3z0uhVfxcJYo4f1k6P8fXX3/d7LbbbhrGMw+U1q1bmzPOOEOIUnr16mX+/PPPvLP181MVcYr68v333zfWqlXYjVq0aJGimvtVVZZdBw4cKJViiZoZYVZlyJAhsi/M/cSSNLMPlcoRcMZXBB4pJ8UUMdc9+eSTZu+99242Yy6XZz2fh90NXCH6gEe+HkUVcYp69aWXXpLabrjhhimqtZ9VhY96s802k4HNcccd52clI64V1tG85BBoLJdddtmIS6zf7N98801p3FprrVW2kaUUMRfDCNezZ0+ly/wfkrDkudjF/fv3N59++mlZjNOWQBVxinrMLUurIq690zBKwj0nSy4S+ag5gpPff//dsOS344475p/W3xUiEKYipujRo0cbAiCo/INAmzZtJEzif/7zH9O7d++6g0UVcYq69JVXXpHarr/++imqtb9VXXHFFY0lVpAKEqD8l19+8beyIdfstNNOE3/hlVZayQwePDjk3LOV3SeffCLuNbjIYTVdSpjNBWWLIlYvM0CVfxBgVjzffPOZO+64w8AfX0+iijhFvekU8QYbbJCiWvtdVZaoN998c3EdwbUpC/LMM8/IXpvl4JZVAfyGVapHoJLnstyydNNaYKg0fPjwpocz+f/CCy9sGEAieDxYBq66wUEVcUq6EnebH374QUbc5UbdKWmSN9W85pprzBxzzGGuvvrqBqt0byoXckWwOu3evXuDq5Ja39cOsNsy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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "## ランクの計算手順\n", "\n", "つぎのようなリンクが張られたページ群を考える.\n", "\n", "![image.png](attachment:image.png)\n", "\n", "まずは,リンクを再現する隣接行列を作る.ページに番号をつけて,その間が結ばれている$i-j$要素を1,そうでない要素を0とする.\n", "上の例では,\n", "```\n", "1 2 3 4 5 6 7\n", "---\n", "0 1 1 1 1 0 1\n", "1 0 0 0 0 0 0\n", "1 1 0 0 0 0 0\n", "0 1 1 0 1 0 0\n", "1 0 1 1 0 1 0\n", "1 0 0 0 1 0 0\n", "0 0 0 0 1 0 0\n", "```\n", "となる.\n", "\n", "2. この隣接行列を転置する.これはページランクが「どれだけリンクしているか」ではなく,「どれだけリンクされているか」を評価するためである.\n", "3. 転置した隣接行列tMのそれぞれの列ベクトルの総和が1となるように規格化して「推移確率行列」をつくる.(ヒント参照)\n", "4. 初期ベクトルとして,すべての要素が同じ値で,足して1になるような長さ7の列ベクトルを用意する.\n", "5. 初期ベクトルに何度か(例えば10回,あるいは収束するまで)推移確率行列を掛ける.この操作は,行列の最大固有値に属する固有ベクトルを見つけることに相当する.\n", "6. 得られたベクトルの各要素が対応するページの得点とみなせ,得点順にランクが高くなる." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 演習" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Page Rankの手順の確認\n", "\n", "うえの手順にしたがって,「推移確率行列(transition probability matrix)」trans_matを作り,初期ベクトル(init_v)に5回ほど作用させて数字の変化を観察せよ.ページランクはどうなるか.\n", "\n", "### ヒント\n", "\n", "手順2,3に於いて,和を取って規格化する代わりに,\n", "以下のようにして作成した対角(diagonal)行列VAを,\n", "転置した隣接行列tMに右からかければ推移確率行列が得られる.\n", "``` python\n", "> V = [1/5,1,1/2,1/3,1/4,1/2,1]\n", "> diag(*V)\n", "```\n", "\n", "### ヒント\n", "はじめに\n", "> init_printing()\n", "\n", "をいれておくと,固有値ベクトルとかの表示が綺麗." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 解答例" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}0 & 1 & 1 & 1 & 1 & 0 & 1\\\\1 & 0 & 0 & 0 & 0 & 0 & 0\\\\1 & 1 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 1 & 0 & 1 & 0 & 0\\\\1 & 0 & 1 & 1 & 0 & 1 & 0\\\\1 & 0 & 0 & 0 & 1 & 0 & 0\\\\0 & 0 & 0 & 0 & 1 & 0 & 0\\end{matrix}\\right]$" ], "text/plain": [ "⎡0 1 1 1 1 0 1⎤\n", "⎢ ⎥\n", "⎢1 0 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢1 1 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 1 1 0 1 0 0⎥\n", "⎢ ⎥\n", "⎢1 0 1 1 0 1 0⎥\n", "⎢ ⎥\n", "⎢1 0 0 0 1 0 0⎥\n", "⎢ ⎥\n", "⎣0 0 0 0 1 0 0⎦" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy import *\n", "init_printing()\n", "M = Matrix([[0, 1, 1, 1, 1, 0, 1],\n", "[1, 0, 0, 0, 0, 0, 0],\n", "[1, 1, 0, 0, 0, 0, 0],\n", "[0, 1, 1, 0, 1, 0, 0],\n", "[1, 0, 1, 1, 0, 1, 0],\n", "[1, 0, 0, 0, 1, 0, 0],\n", "[0, 0, 0, 0, 1, 0, 0]])\n", "M" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANUAAACvCAYAAABq+ZskAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAOaElEQVR4Ae2d740cxxHFl8Z9JggbcADHDO6sCEhmYCoDWRlIH8lvBpWB5AgEMgM5A4KXAR2AAQsHReD3llPHvd350zvdPdW1/RoYzuz86df1q66dnr2e4pM3b97c7Ha7T1jGyoe3b9++HjugfSLQKwHExGfYfj1mP449uTo48BO2efJh+c/hB22LgAjsCbwb4fAK+/7O/YdB9TOiTEE0Qku7ROCQAOLkl8PP3MY+rk6CijtnCy60CP0fTnyO5R32bRaI0OJQ9T2WW2zfY71Z8dKGbrfM6dyI3A/vVLMdFMbxueufWH8YjH2G9Sd8foWlWmChbur8C8vvWP6GZXQsi/3Fi6c2jYF+d8wHu918XoJ7UlDBuf+A2DOs9wE1CN8Pn3/GZ44nqxRo8I60/7EE2z9gm3erTYqzdpfM6djo3P+U2DvZqe9Gzv2IfS8Bgd8sKmUJiHlZnqm1ZXNPDaqXaBGHX8fFhn08rlKWgJiX5ZlaWzb3xaBKvAv9ObXFOm+ZgJgvM6pxRinui0GFxlvA8Nlmqmj4N0Vm3X4xX8ct96oi3FOCKqWhf0k5SecUJSDmRXEmV7bIPSWoxp6lrAUW2fy7lUo5AmJejuU5NRXhvhhUGGfasG9siGf77AeLcwzQuRMExHwCTOXdpbgvBtVgx7+xvh6xye5UPK5SloCYl+WZWls299Sg4tQgzmY4LrfYcXcQ4cfH9Xk9ATFfzy7nymzuSUGFoOEEwt+x3k8YZIuxzaHft1i+4+eNij0k2h1yI9m9zKbaYv7g2nDcrx6avrzBuxIn0H6DNX+Y4PoFPt9hXbVAg98eLPZH5vfYx+e437A+mTG8P7PQP57aMKFL5nRdZO5PDl5SfA5D9INDoWBUNX0RQOxwriZfn3qSNPzrC4+sFYE8AgqqPH66WgROCCioTpBohwjkEVBQ5fHT1SJwQkBBdYJEO0Qgj4CCKo+frhaBEwIKqhMk2iECeQQUVHn8dLUInBBQUJ0g0Q4RyCOgoMrjp6tF4ITAOXP/9hdjGsYNNjgXb9OEltDtNqlkx8zdfJ7T35KCCgKcke6S0JKRDP3ukkr2ypz+ZvHyeQntpOEfDGTizNdYvoforxTeqkBzNKkk9JnYk4k8qxVnu7tkTmc6+zy7vyUFVbVem1ZxdnLDNBmddUDAm7mnfrZ2hKDiO1RjCTnsNRV7x+qgT2gzk4A3c0/9bO2mgwrDAEssM9dHPN4CnmtP6GPezD31S2k3HVTonRYw9zM9NSXwZi7XoSMC3sw99Ytotx5UR/4e/Wg5DEYPamcVAt7MPfUXtRlUTwfstq7ihZWVjj1LWVX2raJEnkakzNqbuad+jvZfDX/TdyqMcW3YNzbEs332g4XZpHUGAW/mnvqltBlUfww+sHWGS6pcmp3csEqrLrtSb+ae+mu1/2tdouk71dDI7OSGZqzWyQS8mXvqZ2uvCSp7ULNnmmRPrTkRt2Ql8tztumLu6fMS2lepHR1ijGAW/nGMZbOEltC6xaJEnp0wZ+dCcfN5rraSae79p39EII8AbjpKppmHUFeLwDSBNc9U07XpiAiIwE5BpU4gAoUJKKgKA1V1IqCgUh8QgcIEFFSFgao6EWBQce4cX5Ofm0woUiIgAvMEOL2JcbT/oeIaa+Z62GSGBEVVROACCXBSxD5nioZ/F+hdmeRLQEHly1/qF0ggee6f2Y7pGDfY5jzAbpJpwma3pI7k7sW8AW037jk+TwoqCPCFwO6SaQ6dSok8dzs+d29a0OdcuNPIXO2k4R9EukzsCLuzEyuu7YnOzN38PXRqT+7Z2klBtbZjFLouO7lhRjs8tTOaHf5ST+7Z2hGCij9Vjv0NzXJT8Hit4qldy6YI9Xpyz9ZuOqgwBLLkLnMdocrf1zy154y99GOe3EtpNx1U6EAWMPcznSkl8GYunzzkqT3ZqA4OeHIvot16UKX0IcvfkHJu6XM8tUvbEqk+T+6L2gyqpwNNW7cEd+xZytpn3yq1kml6apuNPa49uedoP0qm+cfgOVs340iMcW3YNzbEs332g0XRdntqFzUkWGWe3DO1Q+X9W5vcsER38tQu0f6odXhyz9aO8EyVndwwo2d5amc0O/ylntyztdcElT2o2TNNVQ/iluyWTNNT+wjqpsy9tT25l9C+OgI4+RFijGAW/nGMpYtkmrDzFosSeW7rb/YvN+652kqmSfepiEAmAdx0lEwzk6EuF4FJAmueqSYr0wEREIEvOSrEQQREoCAB3akKwlRVIkACCir1AxEoTEBBVRioqhMBBpWSaaofiEA+AU5vUjLNfI6qQQQeCHBShJJpPuDQhggUJKBnqoIwVZUIkEDy3D/DhekYN9jmPEAl0zQoFdfg7ZZQkmZ5+XvQdrM9h3tSUEGALwQqmeaXTkYWn8DkFZYqL0iyQ7GgfpeEktB19ben7SW0k4Z/gOyWXBHa2ckNCWpN6Vjbzd/0U3TuSUG1pkMWvCY7uWFGW3rVzkBW5NLQ3CMEFX+qHEvIYUMvHq9VetWuxTO13tDcmw4qDAMsucucM6q8gdyr9hzoLY5dAvemgwpOtIC5n3FoSuDNXD55qFftSSAbHQjPvfWgSvGj5W9IObf0Ob1ql+Z4bn1Nc2dQPR0ssvW5BtY8f+xZyvTsG+0Sk2l62m18vdaetudoK5nmUo/B2N6GnGPDS9tnP5YsVXfWcU/tsxpa4WRP2zO1lUwzsT9kJ1ZM1Bk7zVN7rD1b7vO0PVs7wjNVdnLDjN7Qq3YGsiKXhua+JqjsIdGeaYpQnKoEt+Quk2l62n3ki039TW1P20toXx0BnPwIMX57sNgfW5VM8wuPmv/eovLuEnkOQN1sh36WtpJp1gwJ1d0NAdx0lEyzG2/L0M0JrHmm2ryREhSBSAQUVJG8pbaGIKCgCuEmNTISAQVVJG+prSEIKKhCuEmNjESAQaVkmpE8pra2SoDTm5RMs1XvqF0hCXBShJJphnSdGt08AT1TNe8iNTAageS5f2YYpmPcYJvzAJVM06BUXvfI3JB62U79tdpJQYXK+VKekml+AU0W1ZNpds7crb+V4J4aVPfoSMzFtoPoD1jxbrVJgd5oMk3s/4AG8MHwVa2GOGt3yZy+BHdP27O1IzxThU6sWCvgK9frybyyafWrjxBU/KlyLCGH5Yfg8VrFU7uWTSn19mp3CpvFc5oOKgwDni1a8DU3YMKp6ad4aqe3svyZvdpdkmTTQQVD7ZV9jnOnSkrgTV07t99Te65dtY/1ancxrq0HVYqhlkMh5dzS53hql7blnPp6tTuJEYPq6XCmrZMu3OiksWcpk7Zv1EtMpmk2eqw9mXvYW0pTyTSXSA4/6/K0seGl7bMfS5aqC3O8V7sLOEjJNBMhZidWTNRp7bRe7S7ihwjPVKETKxbx0vaVeDLf3trCimuCyh5S7ZmmcJMeV4fhSJfJNB9T2HXD/MhuftzU9iP9VdpXR5VMfkTnVjLN3Y4/inyD5QV43E3CKnSgY+Y7T9tztZVMs1AAqJq+CSAQlUyz7y4g62sSWPNMVbM9qlsEwhNQUIV3oQxojYCCqjWPqD3hCSiowrtQBrRGQEHVmkfUnvAEGFRKphnejTKgAQJKptmAE9SEyyLAt6WVTPOyfCprWiGgZ6pWPKF2XAyB5Ll/tBhTMd4NlnMO3HMs/E+eN3mnSNr7eYebMqevwf0Gq82Tpw7aIftb8p0KcD/B0I9Y/4jlJ2z/iOU3bF8TQM0i7W2Zg/czLO+x8BmBSVSr+/i4/0T2eVJQwcDRhJYAYQktj5kU+yztfdLQPU+wYAKcLZjfQ+s1Fv7XML8Wc2ZiRdF9nhRUYOGZXFHajzvjR3x8iY5nr/Q/PnoZn0L7PDWoPJMrSvtxoNgzLLlcagnt88WgSvxGrPIWsLRnY6YK81nFDQ5egs8XgwoczXkcz0+VWkMRaU8RH8/yNH12nCPhfZ4SVCnusHf5U84tfY60SxNtv76mfZ4SVJ7JFaV92sHtm7xWEtFTxW33hPf5YlBhjGvDvrEhnu2zh+ei+KXdVyJPdp5L8PliUA1R4plcUdqPv6rsTkUul1pC+zw1qDyTK0r7cejc4uPdwTf646OX8Sm0z5OCCg7sMqFlr3YfxaX9KGB3yKPD5T9G5351BhJ+Q3ICLZNJbppUEnrS3pg5/My7BYv9kZlzAfnszPme/JKtXcL6XMk0a3cN1d8FAXzRKJlmF56WkS4Ekp6pXFomUREISkBBFdRxana7BBRU7fpGLQtKQEEV1HFqdrsEFFTt+kYtC0pAQRXUcWp2uwQUVO36Ri0LSkBBFdRxana7BBRU7fpGLQtK4Jy5f3sTMR3jBhucF3aLbXvXqrr50AqZWDEXTK92k1tU25PuVDDONbki9JXIs6MEpkNAhfV5alC5JVdEQCmR53C7AwuODLZIpunGfAgoN/0S/S0pqAafeq1CJ1bMgNar3UQW2vYIQRU6sWJGUPVqN5GFtr3poMKt2BLLzPXNKm+kSnsO+UMuyNmT1hy8BO5NBxWcYgEz9ytjSuCt8a+0p6nVYk7F8NxbD6ppt349YjkUvu7Zbkva27E+VGqae+tBFT6x4mFPOGO7V7uJKLztTQcVxtc27Bsbbtg+JfI8I1qXTvVkzrZ56pfSbjqohg4QOrHiUieeOd6r3UQS2vYIQRU6seJM0Cwd6tVucglt+5qgsodE+5VmqXNkHcctWYk8B4JgwSHvt1i+y4K6cLEnczbNU7+EdvKEWojx24OFf5hj2TK54i30lMhzt2Mi0xfwxR0dULl4MqdpnvpZ2kqmWblnqvo+COCLTsk0+3C1rPQgsOaZyqOd0hSBMAQUVGFcpYZGIaCgiuIptTMMAQVVGFepoVEIHP6k/hm/YBy3+wP28YUxFREQgYEAYuIzNq+ngDCoOHfu+4kTqsyrm9DSbhGIQsCSEI229/9lxDfBWZjjBQAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}0 & 1 & 1 & 0 & 1 & 1 & 0\\\\1 & 0 & 1 & 1 & 0 & 0 & 0\\\\1 & 0 & 0 & 1 & 1 & 0 & 0\\\\1 & 0 & 0 & 0 & 1 & 0 & 0\\\\1 & 0 & 0 & 1 & 0 & 1 & 1\\\\0 & 0 & 0 & 0 & 1 & 0 & 0\\\\1 & 0 & 0 & 0 & 0 & 0 & 0\\end{matrix}\\right]$" ], "text/plain": [ "⎡0 1 1 0 1 1 0⎤\n", "⎢ ⎥\n", "⎢1 0 1 1 0 0 0⎥\n", "⎢ ⎥\n", "⎢1 0 0 1 1 0 0⎥\n", "⎢ ⎥\n", "⎢1 0 0 0 1 0 0⎥\n", "⎢ ⎥\n", "⎢1 0 0 1 0 1 1⎥\n", "⎢ ⎥\n", "⎢0 0 0 0 1 0 0⎥\n", "⎢ ⎥\n", "⎣1 0 0 0 0 0 0⎦" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Mt = M.T\n", "Mt" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}\\frac{1}{5} & 0 & 0 & 0 & 0 & 0 & 0\\\\0 & 1 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & \\frac{1}{2} & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & \\frac{1}{3} & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & \\frac{1}{4} & 0 & 0\\\\0 & 0 & 0 & 0 & 0 & \\frac{1}{2} & 0\\\\0 & 0 & 0 & 0 & 0 & 0 & 1\\end{matrix}\\right]$" ], "text/plain": [ "⎡1/5 0 0 0 0 0 0⎤\n", "⎢ ⎥\n", "⎢ 0 1 0 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢ 0 0 1/2 0 0 0 0⎥\n", "⎢ ⎥\n", "⎢ 0 0 0 1/3 0 0 0⎥\n", "⎢ ⎥\n", "⎢ 0 0 0 0 1/4 0 0⎥\n", "⎢ ⎥\n", "⎢ 0 0 0 0 0 1/2 0⎥\n", "⎢ ⎥\n", "⎣ 0 0 0 0 0 0 1⎦" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#V = [1/5,1,1/2,1/3,1/4,1/2,1] # use float\n", "V = [Rational(1,5),1,Rational(1,2),Rational(1,3),Rational(1,4),Rational(1,2),1]\n", "VA = diag(*V)\n", "VA" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}0 & 1 & \\frac{1}{2} & 0 & \\frac{1}{4} & \\frac{1}{2} & 0\\\\\\frac{1}{5} & 0 & \\frac{1}{2} & \\frac{1}{3} & 0 & 0 & 0\\\\\\frac{1}{5} & 0 & 0 & \\frac{1}{3} & \\frac{1}{4} & 0 & 0\\\\\\frac{1}{5} & 0 & 0 & 0 & \\frac{1}{4} & 0 & 0\\\\\\frac{1}{5} & 0 & 0 & \\frac{1}{3} & 0 & \\frac{1}{2} & 1\\\\0 & 0 & 0 & 0 & \\frac{1}{4} & 0 & 0\\\\\\frac{1}{5} & 0 & 0 & 0 & 0 & 0 & 0\\end{matrix}\\right]$" ], "text/plain": [ "⎡ 0 1 1/2 0 1/4 1/2 0⎤\n", "⎢ ⎥\n", "⎢1/5 0 1/2 1/3 0 0 0⎥\n", "⎢ ⎥\n", "⎢1/5 0 0 1/3 1/4 0 0⎥\n", "⎢ ⎥\n", "⎢1/5 0 0 0 1/4 0 0⎥\n", "⎢ ⎥\n", "⎢1/5 0 0 1/3 0 1/2 1⎥\n", "⎢ ⎥\n", "⎢ 0 0 0 0 1/4 0 0⎥\n", "⎢ ⎥\n", "⎣1/5 0 0 0 0 0 0⎦" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tM = Mt*VA\n", "tM" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADEAAAAVCAYAAADvoQY8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACQElEQVRYCc2X0VHCQBCGkbGAqB2khCAdQAdICdABjk/w5kAHagWKHWgHDnQAHYh0gP935CCGSwgJQnZm7273dvf+zd4ll8pqtapEud/v+1G5bGMXvmolQoPBoCcxsCrJvrgj9qyuBD2YwLmhC540pImWurr6e6PY6sZWdvRL2V859IVUismDZN2axst4MOlIgrWfmbukkcCTflBfQ45QXeNP8Tyis8OGBpuErTJvH2J4kf9CfCv2k2LJdiSeiN/ES5OEjIfiJ5eTjJpxvXRmAfXv8bm8MmDke4e/xn+2dUJM8IK7a89EW46mNDGHr5hsxaHsu1Y4Rx/iBbdXVcNZcG2XiuZ2nrR0ZP94DuCONcHdphJsF/b9XlICbKNA/XSv8WkMwN0kCQ7RLOOaVAEuC4HbJwneTLwRUimsQkN9pqqlBjveJLhNEtca7LyLHetwkJ1nx2F7KhV4PCqRlXgB7K1Y1mBHsjMFIAmAsaUSSVuIeV+cpWKJcf5hAlwLkqAkAEwjDj+UWIkw0bXV6VoqMSeJqZjrRRrZSjkrESbwo36SFuSAuZvQFpBpxDVpShKv4iDNEkMxCTi/4ALPnDlkRSoi3zGsWB0xZGTprLzWblvubx/mX0J39Jk4KPrvoBgtsVc0ThZ/reOLZ9hSCYgP2DHuQlzlnVvOrHLchhu0+fCaJLQwlz9+Nvy868jXk+93Xv9D/EKc4DWXVlsJYnANdl7HMy7AH+Aoo21RM3Bud050/4X7rBfVlW0sjD1wRnH9AqgsRv9MDu8AAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left( 7, \\ 1\\right)$" ], "text/plain": [ "(7, 1)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v_init = Matrix([1/7,1/7,1/7,1/7,1/7,1/7,1/7])\n", "v_init.shape" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMYAAACvCAYAAACmYKHPAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4Ae2dUZLcttHHx1t6dslKld8t30CWTpDNDRzrBHJukJSe4ret+AaxT2A7N0h8Ajm6QZL3r8ryli+Q7//DohkQBMgGyVntzKCrKJBAo7v/DTQAcjHQB3/+85+fHQ6Hf+oq0d+++uqr35cKel73wCl7QP36X7L/aQmDyj54lBR8rXuYU/p3+tDvuwfOyAN/KWD5nfI+Jz8NjL8qUnogFLy1Z5Z8/EzX21Smnh/r+Unqf90zml3r+l73tyn/qd4LxyL2+8ItPd/kflQeWZPAyPlczxJmkfezKnyq6y/KcwWY+Gj8P0RFdA6eqf+PmBeSyPenmPdc6Ttdf1L+qIPF8oPyWR7+oOsz3S92qsj/B6Vmi4k6KA+bFnWLD/tfDxUPB55/UP4Ii/J+jLxmO3zQZ3fJ8C8Y/sol/iEzublV/kfJ80HPTbipG+tMsCt/b9yo82C/F9wYM0fpjDHHVyyT83g3uVH6NxiU0sj/VPo7XbPBEXnp3ENn1D3R+nelv9dlMmkgOgfTXCDdE4ymJ3Q85aH7W10EDcFDPS8RRNZRhzqS6dIdKxDQAxby9ExgPNYVsEQ+7IPoAPiIMnx4qzSlF3oAW8mPzCQhWJGv+7W4VTUMICPsknkM3OjyYL8v3NhTpdWBIed9KamjRqdxddHQjHRDR65op/6X4icQrOPY6MrIa3kEQd7hCCjq06HDqKlnOlb4UKD7P+qejrdIkbfG59WNLaUPGK+U/6Muw4Ket9Lp+qAhvokPlRcCXmmQqXQVbgxRXfxUomPgRo8Lu+w6Ku4S4DzvKs9oeKZxRyNNrPtG6bXAMZLNEXVpVK5AqjPcW55SRsd/FeQRRARm6CgJv/tWdQmekQ1ZZa9ulpCTxsxktT7ixxJNZqYS01LeAvazxb3kFyvfEhg4z6ZGk0dqUz/lVVLD/EPXR6TGpPvw4qNnZhyjsJxQWSlo4HlsjCvSl5I7eQlL5Hh104k/lyxmv9QeRt4USyJ6/lZy0lkmMCsPeTfzNd2lc9jPGbfLQY9cXBlT1vhZ6fD4ZLhz3EgmgRSmcN0PnVX3tWVHWCqpvDRrLWpUPZYRs53Wq1t8/L2Hjkxg/6J71v/MIukyUY93pPKwDNXTb3Qx4/GOMYtD5fDxVcc+BOhxHUnGLHaVu3wuvibcWKs6TdjFvxvuFm+tnTGs09dGcWxIR86qTQJOY9NQvEfQOX6qMscC6ugWh63qJNHZvA/Z7Lakciiv6VY+nckCmgAn0EudHb/wCfZrXdjPxYeE2RlWPMjk2kTSg9+asate0efK9+LG7jXYd8Hd6rS1geHRw2i4SHIsL2R0Ehz8nS46iS2pavV56Wa04o+Sa4jPk9aJW+sXdUebGSiYKViK0AF5Nxph0TNf7OALpHuCE/7q7CUeZPHeBt9WWot9E26Mlv1N2HfG3eS3tYHxbkaLzSb8XaOJ5AiWI3Sa8JmzVFk8dKB/K61N96VqQ57qMZVXO+HAWLip6Y4yaXS+lmEbL+Jm37d6ZqScI4LjqfgIgBIxmzbPbrkgyV+FXfWKPo/ytuDGxDnsu+DO/eB5XhUYcoiNeKUGt7zZhpQMllBMzznZUmqytIgN8UTpqi9AqkfH40vWrG25QTyrDp2qppvpfrSsEz9BzuyBPwIW5fHOUfqsK5ZA5jt7tpRZZ24wMr5qKr2rsKveZtwYJTlrsG/GXXXIQsGjhfK5Ylsu5Dw2YyxN+6GDyGF8mbrNheTP4sFJnyq1kfig+zDCKvV2dPhfiJ9lQUph/RzzGfHzTl7VLSF0WIJtgkF5yCJAzCfPI7+SEYVy8U7eSZRHsGD3pGwkYfmhGbt074Ub65qw74h72TMFji2BQecqvQyytYH3hklHyfRTzifbnA8HQkNgiYeOS4cedVjl0XDudwXVR+YgV/eBlP+LbrBlCLpYdFDerG6V8yLLxVKoFKB0bNP5jXhyDKhiRjEenlMyf2ydMZqwy849cYOnFfsuuFNHttyvDgw5LgBVyvd7RsWDUjrBF7p+yzMU8+h4BEu6H2jSQVROR0cGL4ghYJQy0hGEdNz83eBaeaUXcHvxZyQOcpTOETq5RtSgm4Divei3ugZ9umcZwhLCAoatLVysnQPpni9y0CQo77IHuwa5Mb+UtOJGxgS7bPL63IsbPa3YrT2OhRubqvRB8nsMlinWgNUKaYH4MZ5ZA+N52X6ha/JNXnxsZ6djDx1Czwc9M1KmHYIGGW0ijHXJL9Eo2MRrSyTkYhvLDzDROSczi/IINGTDDxHgb5Qfgk1pdc+++HLdjLCvdaUjO8Eymgn0jD4bFAhc+HlpL3aAyM+y85XuwwCk+xEpvwk3lVWnil1lu+OOOt3YZQO8u+PGjhpJZ/g4ofSDTYFRU9DzuwdO0QNpYFydIoBuc/fAsT3QA+PYHu7yT9IDPTBOstm60cf2QA+MY3u4yz9JD/TAOMlm60Yf2wM9MI7t4S7/JD3QA+Mkm60bfWwP9MA4toe7/JP0QA+Mk2y2bvSxPbB6r9SxDWuVH7cQsLXjbA4o8/jgUnF7fLOFZ3NgqGFshy17pfj9AXudWvdcsc+I/T5bDkhDBvt/2KymZELsgM0PKDPbjfk78bC/akLKX7RRPOg3Yh8U+5sme6CUZ3qbfBZtYINluuesGTcGJjaYvUXsUeds24jHhTvT68YebchxH5TPfrjXBkApz5P9aUm5+3ZTYMgwNnmxaTDdXWsHoc0GRwS19qAwGirvwGxgZMNeSS8ziW3cO0j3Uz0jg817YZOfUp65CO5AysPRizZGPnxBUNoGRDrsf/RMsA826X61zyRvE27VP0j/Inbx7I476l6LvYQbkQzC6SABPgKD38cUN1xSyUOrA0OK2Yk4MkB5jMoYxAgy+ys7eMUTdtbqnq3XdKRFirxFPpVNdCqPjnBQmjoKRzNCpjtf6QxDB451vDYSPPy6b9gCr3t23/6k/MEXel7tM9W17emYNiKVeXFTbxG75O2KG6WSuQq76hVxR3kEWk6vlJEfcpfzLD5vefmmU+ejNgrf6LqW4XS0XUkyCR4ajSsn9JZoNKpIBr/5QM5oG7ry+e3ypIOVBBbykDkKqsiDf1JfrPLZHrixR3L2xu7Fjfpm7Au4mdnXthf2zNKWwGB58q4g3ToI5XtT9ZAwOTGdEYJe5bGWv8mMYOplZisFV8a6/Cg5NgCUfPFzlPA8pmt9tgduTNgNeyNudK/BXsUteQyEux5yh5FGj+ymJU2cMlftyVxha5l0MqWmL3mzIsT/VAwcuDC8W8QKdFJ+i82s8VIXnZfRZ9VLm+QQZKo+/K6beyP7RR0/e7UAsrJSOvGZ6u2FG327YffiRuka7Eu4Vd582Bu2eGntjGENODfqejqCy045gU5OB7TZyFOP2cK+/qT8ZtdzyePlmzOtGEkJDJYGa4jZChtzIvggdDb7TPbsidvsIN0Luwc3+pqwe3GLj+WZLYlpa2al0vJe2W20NjA8Wmy09PAu8fCpzhywxHuIjmVtn75ck29BwUySy/tegr9NeBb1JAy88CGfhgmke4LiNj56Azr32S64sUH2HAP7XrgxMcXuwi1MDGT4mBmftmYgmRxyp7xmIjA+jLUs9Qgpraetno0Otr62/FWpwIff4TZWZgaY64ylMr5w0HlYbjSRbKRxPtHF/+vxR12MXjSSfRBAX5PPjoRbZhT9sgq7Ezc63di9uCPf1sPesC2lj+1h7TuGrattFDJ5pJZX6nwp3+K9wNO5HittlcVIMqkjOWY3HblG6GwmZKsSATmQ8mwpxzuN6Tb/DHy6sbxgs3h3xY2iRP+u2JEr8VXcmW7DSbaR5eGjFtz4lsFoINXnvYPZg8McmL0nH2QG5oUbAuPXyGPpQpWh2KauISPe2IwxWsbkTM5nHNV0QJocg6Op97aio2a3sU8CygpWpM9UJz07q6Y799kxcGN+Tb9B2wt7jntOd4qd2XqxvcVzo4sBk6AckfLyQ+5G5QsP/2flq2aMWPkHpTYimjzSz3Txx62J0SmT514yaEiuESm/ekCaGG0pVJu++bKF7TlhN6P6RF/OmD+rDjMUf+T7RPcBt1IClFELuUYun0UbJnYofwtubNgVu+zx4ka3B7u7vaWbtvIccofuZrpqrhEryCheXt9F54Rc3dMZvtAVXsrIJE/Xf3Wxjq2RvXjZ6FHjs3z0cJXI8m9LhbKD6ZVRfAhq3VNnZHeh7pyNjPB5INIReIkcZi7du3xW0G1Z2Gn4LM9Sy7+1jDyV/jXYN+PGjo3YS7j5IhW2f6Q4pYd30vSQu7TYfb/pXCkZgcF0MBqDl+0Xum6UP3QGPR/0zJqvdOCajdyMrMiiHtP5qgPSVA9ddFKCsHpAWeTDbnRCBOTEbgokz2Wj+CzQTGbx7yLio3zRZ+g2Uh1GenDhJ4gO/kb56RYUF24qq94idvHsijvqbcIuG2Zxq5wl22td6aBU9Dv6l0jywocepf3AtSVn9fLL8UAaGFeXA7sj7R7we6AHht9XnfOCPNAD44Iau0P1e6AHht9XnfOCPNAD44Iau0P1e6AHht9XnfOCPEBg8HcD9rqk34IvyAUdavfA4AH+8h72fREYT3XxhxTvX53F2ql74Cw9wB9QiYVDX0qdZft2UFs98GirgF7f7wH9ZZXZmVHpog6Fw0Onhn1zYAiw7RFirxR74TmVo2n7svjZ88LenNkD1/bkk6wwZUonxDKyeDgaheJtxhhtZRNh+lsFcKLXfShcpp9HiKN/RvvRyIw6PX50YZe8vXBjXjP2RD/1oRFulTPQ2G/62VXNezI/V574RvlNtCkwZACb9dh8F34QopRNYrseuBZleg898/Jh9+LhaHhS+tdipIPmDcQmS17wSgMHM4k1sm6HURY5NHbYhq6UZy4GIezD54u4E14XdsndEzfq3dilmw6/hBse2nA4Qkf3BLL1v+AvPa+i1YEhI1YdoGVWqv6t7tk6fNA9J2Ewokxobz4poBMtHo6GIdK9CmPEg4gJqWxoSCtUHo18UBoGGMtXSudglEwbmUAYAktlLj9GmS7skrk7bvRLrhf7Im6JIwjS2Rj5DCDYTv3Rcax6bqKrJu4xM506HxHheKPrWgbSgA+R+HHN0LESA8GS292MUbgJcDorV074pkQsP/NGxk5kjQ5tEN+DPBhuATeYXdglx4ubGZaDD/J+xiDCb4DCYIPiNbQlMDDsXUGpdTrKHxQlTizZ/XM0lrWq0RqML6Vn1JlNmPLzGeGgPEa+G+NJUgKFX6mVAixh891KjnUgD/ZdcWOh9Huxe3ETAOG39BUPGN5K8Xz2o/nicmni5DLDXe6TucL3USa76WioLtlmv1QLI80ajKrDkjB9sUVXlcSPrtKhcNQhQGl4Zo0HfTBcK27AzWB34Vb9sAxHVkb4C/msAFbTqsCQNutYc6PZpohdjWi5IiMXI2JOwaHKNLubMMaGJvBsxszll56ZLbhKZHaEw9GMQfJ/0TX760TjLaQe7PeBG9Nq2Ffjll9oQwab0UcMlLXSlqXUki4bgZf47rs8/B5dThyCIzr0NhrS0rFTjHyaLS6hSgDFSwPyTpO+WAdW5VnnOIWD4ZpwA7CGfQfcvHRzhM7wk9/g0BX/EBgfxnqWesSU1qlWz0YcW7Nb/oNI5TQCYOlwNGx1Y5RMvoS4l1AIF7GWXgrCUjmfUQmc9F1Ij8vkxH5s3Bi6hL0Zt7Dhf5aetSXWsoMOh4+NiaXUr/HBUiurpjhYF+U2sqW8llcCl/K9t3vsl3IaZyDl2ZIm2O3FKD5G/sdKW/F+rnrFOolu7KwRepsJ2apUxZ7otnZMdVgeHXAtbuQVsSe6m3CrHgMTn+Ann4NT4x33u5wrxRKg1Dg2Y0yWCA7D3ifLMylPD0fDFg9GRu7FQ8LUaMO6V/d0MHz3VleNarqNvxhUVtiY5thrutO2bcaNTQ7sNd0GaYRb8giyT5UOM4XuQ79UOuI1AZ6UGWMtsZ6zUTaV8ZkedjlwLRW61310JH/oWjocDZUejDQk14ik50EdjoZxDdiPhRszCCiotmRjSYT+nOhXrFQGX+uegGZQGgadWIlgcb/vxTqj5Gr01PAgY1B83weu2cuujVw1i+f4GE3yRqEheIkcjeBejBUjmBVs6ZGzWP5tXmDP0s0XpNaD4eZwI9qF/Yi4sWEWuxe3+MBCu7GMZWvIcCmPtqz6VuWLdBIHrgmkjSB8ScKxdGCmydHBbA18NtNZI1UP6ZJMeODH0XxQeKHrRvmjIFJeIOUz4tFo2ArRwR/E4WgYI/tc2MW3O+6oH9/wAWH2k3O009qHgXDkc5VziB+ySsSKhRmmiVQnfERR2g9ca/JcZz5rD6SBcXXWSDu47oGVHuiBsdJxvdp5e6AHxnm3b0e30gM9MFY6rlc7bw/0wDjv9u3oVnqgB8ZKx/Vq5+0BAoO/B7B3Jv+j13kj7+i6B6Ye4K/qYR8ZgfFUF3+UWvprslg6dQ+ctQf4oyyx0A9cO+tm7uBWe6C/Y6xwnf5Cyua1ESmPPTvMvoG41/Ul+ZZ36qmwLOIGo/hOHnvT7loBtn027BlqPlytpX7Ca/1pdNiWZVoqfhqNzWP5bw3orLb7kp2dvEtNDuVSPTrwa11GPNf2UP0Y+W2/lHX+dH8O9jAts7lNyYTYKTo54kV51GNv2OzhcyYt8q/GjRzJ8GL34EZkM/a9cEc8tLn1A7DxzEksw85c+ObIHRgSysYvNnKxKe6gFIV2uNXivndvffEBgo5RPWRMZSWijnXUUB5leQ/lKh1hQ2AwEwTMiVL7UEEHADvl+OY24WGzIQ1R8g1rWQvWAzr07Do0TXw5bcWNPC92D27kubDvjRvFUSZ9xwKDPLahs+H097rytqTahFyBIWHsOhx1EOUx4qGEUXH2l1ON9WloZoc0uuk4pQ6m7OAMTucoETPc4CAYJBengQc9YcSOzwR+Tvw+/EdduTPZvTn8MCavZM/imfhFeQT+QekgU/cEVJCn++rhcybX0shrj2nqwk0FycAXXuwu3FHuInbp3hs3qsHDEpZAMB9bX2JFYHnwVumqWjIuoNFGo3EsfqP0WgbQcefIVV9yiGxG4dGPTJRfPWRMZfDjYK6cGJk9h3KxLJw0ZC6s8RnflGgyOpeYlvJ2wo2ak8K+gBs89NNRf1CdUt+At0rewKCD2TSaCrNRnPI58tZndGcmagHyUvyjQEoMCUuZGXmPIy+d+HPxMcpYHkWMvMyIzSQ5k5FJeci7aRZWrrAHbiSfGvY53Af5mB93fURqbtM9Ay7kbstHd/z1fyU07Sg1xie1gsb6vBy7DxmT7NkDzlReW+4wyxxUHmZBpRy5QkfGgZzbxPqfkTSdjvX4PxJPWF4qh1/NsTziHaM0q4ZKKoOndrha4PH+I1m74EafZDVhF38T7qhjF+xLuEv+Ux0G5bC01H1tAJ1U9cwY1unnRvG54Gmpb3LCIWMC8rUuZhFegi3qAwg942xmF5u1JuBKGeInKKg7vPzCp3yCyByHI3ForaNjJ//HBfYhh4sPEdSpETK5NpF07IobYyTTi30NblRsxt6KW/wMQgwg9B/a8SddbvIEhkeY/dbYw1vi+Y1AWFB4DxnjE6V15JLMWt4PKpgcyiVZBN6tLmYKpmE6IO8no4BU3kF5vPPAG0j3BCd1ilO1ypF1rXSY3kPFdf/sihsTZJcLu/iacEfZe2Fvwi1b+VDAwEXQf6eLgWvSlthYoitlfhgLLM353uUZybPNBvxdo0at9UszAF9NCJznKBFApvNiJ6S8RqpHncmhXFEejc4XK8p5Ebdl2Ld6tqCtiSYfu/nDFh0hJ0atEq6cb/ZZsnfFjbIocwv2Odyo2Ix9LW6UQ6rPMpmBLHx+J69CH1s+gfFrfLDUykIqoTYyljqH5VUb3Vs/4TN9Izvig3U8Ph1XdZYqip9OVTuUi6k+X1rhTGYPMA5LJMnhvaP0eVNsgcwn9kzKSDU3QKS8xXvpJOD2xo0uF/aVuJG/CXsrbvGz4mC5nJMtpYa2zBn03Hzgmi0tclk2YywtEbz1a3ymN4xOemg94IzGKR7KpXw6LB1uEpDKY/YgQAynbsOsVerkgUf8b2Ey0jOBQqce5Vt5Q4qM3XBHbNjmxc5s7cYNrp2wt+IOg5Z082Vq0qbY5aFHHibxsC5nZMmJLRCs5ZYM8NZnqQNvTui5lR4LQEsHPpUVDzhTPqNH9VAubI8Xs1FpFqLzpPq+Ed9odolGMBKlfDF78YAx45tNpRPZE/nKX4UbZarbgr0VNyoIJqgUUHclC/+24pY4+mJ+oiRazJaJDynM6SrPKD3LOF5y3yll5A2kezrMF7pe3eXcjRDK/6+u0VJDz976jM6th4yZeuzhGkh6GW0INEbF4UAu7pXHyxxOhHifmKw/Vc7yi6VTGjBBDpWMVM7XD8jeS+6e7v41m0xXWla6tw8Z6SxV4rM85JuOkCd7vLjh92JvxY1ss8uDfTNuFIoYtP4e7uI/8gf9FlvSNk9ZJvfuA9ckHMHMGoD8WdcLXTfKHy0R9MxBWHRuXroG8tangnjRgz6IDjLRE0r0j3jp5HQEWzsSXG+UzxcJ96Fc4mVmea0rHd0IlskIozz02ayBfdThxR3fjCjyMlC80j22FUllNlOCA+z4lYAkMCdf35S3C27JP0iWC7v43LijXPhnsUvmbrjRCUkmPkwHKexgx8GkLeE3Unn4uKG0H7hmTulp90AaGFfdHd0D3QNTD/TAmPqk53QP9J+29j7QPVDyQJ8xSl7peRfvgR4YF98FugNKHuiBUfJKz7t4DxAYfCvnbw7p9/uLd0x3wEV6gL9zhL+/ERhPdfHHIv5Q1al74JI9wB8GiYX+VeqSe0HHXvfAo3pRLyl5QH8dZYZlZOEXfJMtIKU655B3abiPEhhyou3EZU8Vv2lgn0q6Ea/aV2ID2D4kdkTaPiT2Do1IvGHai5ksBdmPNOmsymu2R3XYP8Sms9GeL+WRj1421SmZEDtWRwep6dn0GzPHA03wUKh85LN/qHrgmniOhjuxIcfejDvKcmHfEzd6t9LugSGAbBpj01/YMKeUDXGug9nEG953lA5H2egex1r9sAnMZCqfzvm10oNSGu4/SulQQxDqfq09dM5S52XzJHYMOnRvxExiQX2QbvAghw2GZjvPXAwYgVSGjxYPXIt84DkmbmwqYXfjRoBsXcR+DNzo3oN2DQwBZXciW7yHXaS6ZwTlmVFu6PAV4wmC0QitunQq5NJYNhLTifg1XggK3R90z+9CftLtoEfPq+xRPdtGjugJqXyCQ3l0hIPSAbsesZnZIQQF5SKCYBRUKmeWC7tBdY9ugrxER8WNwqi/pJsyL27qL2KXvF1xF41emXm1sl6tGo1bGmXfKP9ajqBTzBEjrueANPbXjzpXFIruVE+zPbKRTkmDcZUILCViuTgEte6xEVmjLePK5/fVkw5WEljIOxpudMmuOewu3FHO3ti9uAsuW5e1d2DQsd8VTLFOTPkchSWKGqjWKZmNLLhKeningZ7fJeElucQ3Z89L6Rh15igrJCpLZwTLY6a7Sfl0T5AwW9awZOzzj/eAGwOq2BtwI2c37I240b0L7baUSgDMGfZkrlAywnKiwMNIdlA5MwIpSUmW/QqMn6laAMFbo5EM1WEZk77Y1uoN+arzVA/8AH94t4iFBKf78LhBYOVG8gkySkc2R/ZNuJEh2U3YxV/DjbjdsEuPCzdK96TdAkNGWYPNjZCezjrCJ8c8UwaNkHY8Ru3rEePdA7wQeprsiQ1NI9hsEgQ5/mG24MrJsIbD46xQ8jnpcPbXfMZbSHfHjQ7Zg39bsddwI3Jv7B7c6N2NrnaT5BNkI5uP+46Ll7j8gLRXFKlBh+DQPUFxS77I27lTe/g8WV1C3Ykd/yt+OtS10vTl+qBn6xjMJLnM71XHe1bVWGH8fb1k7okbHU3Ypb+IG0EqOwb2vdobE11EYHwYOS11VSwwldbyxmajt70DWP5sKiezrCkdkEYAfKKL/+/gj7oYvWgse0EkMNz2qH74ra/qtBJr6bkgLJXxuZXOY+9Bbp2yc1fcKF6JfQk3onfD7sSNzq30sQlgKfVrfLDUyppSjNdFHRsx0vqWV3JWyjfcxwbjk2zxCw76xEwDDaQ8W9IQTC57xEdAPVbqtm1QeHeY2KReohsba4TeZkK2Km3GjWLJWov9c1Wf4I4yze+7Yl/Cje4dqPnANa9OlhSlBrcZY7TkqAmVE3B88YA0lRUbJMp6pjQ9U8hjDyN300Fm6JIdj5WA9S3PBarpNtY5HMbjTdfgRjb2N2F34EbufWHPcaN7F2LG2JN4H7BRO5X7mR48B7PR4QBbPSANoeIhcPhj1ye6DyOTUjoqa290GXnsoRG5RiR5xYPMEiYCCqot2VgGoj8n7GNUnejMGfNn1dkT9yHaMLFD+XPYl3Bj9q7YG3DnLlv9fLW6ZqGiAPCiueVgNkYwOhNLm3DAl6XK4wXRpmf48g5JPXiGEVz3LntUr0QEGleNrMxsGvFJN19S1hweZx8EnowE3j3cB240zWGfxU3lldg340b3XuQ+cM2rUE7BccwadBhetl/oulH+0GH1jPMmB7PFPBq/RMw4w2yge5uZrKFqh6O57DGFkstohw3MPhAdPBzgFp7iP+KDhxfp2U+v0U6zkc4+8QUixWezC3rhx18st0YHrkV5yh6CdhfcCJTsReziceGO8mijWeyStytu9K4l2RI+wijtB66tdWKvd34eSAPj6vzgdUTdA9s90ANjuw+7hDP0QA+MM2zUDmm7B3pgbPdhl3CGHuiBcYaN2iFt90APjO0+7BLO0AMEBt/K2XuT/8HsDOF2SN0Dsx5gF0DYh0ZgPNXFH3ZKf2lVdqfugYvxAH9cJRb6gWsX0+QdaJMHTvYdQ3+lZLPhiJTHHitmwEDc6/qSfMs79VRYOu7YiLSrrqG9yeZZ17DXhOUAAAsySURBVOY2f9TSUaTQ9iexB6rpILVo9GJ9gInXfm9Ah+aZEzjyXaA/Ks/2FCHeOv+wn0p5dCKmxpbD0ajD/p3qgWcqG5HsoA4bGM3uUK5nbLef5LIrlfc4jgMa7RuDWXnY/5r7SDyX9kEdBTc6ZUMT9sg/wR1lubDvjBvVzW1OpZzcgSEAbJhjAxyb6g4RkB2EtvjbAk/9KJOOM3Qw3bPVmo10/Fov6Ea/yD4W4Aj0U4Z9t0qN2MBIQJXsYz0ZOq3q0AkXDzwTT40IpFFnl0w6BgE5/NBK9wwM5rM80EfH76BI/AQGo+JRcEcdW7BPcEeZLdj3xI16V5vDOEeuwFDDrDq4zBQ31EcP0yCBYJ3BOhCjqeUhmt22tVNFKA8knqFjJnk03MF0KCWYgizdzx14ZiKGNPIPz8kNQTAEOPniJejBSIeyw+PIJ4+BJyd+6/yjrqPgRpl0r8KuevipRi7sx8CNQZK72OY1wy3/ym4WUjrNaESM/G+UXssQRp058tZHBw3FFUiyh3vLa0ixr0STUarEtJQn25itRvYmdZiRPIfHUYVl6aQxKVhJ7xM3Jnux740b3btg9wYGQG3pgnIjW6JQPkeu+upo/LDnI1ITpnuWUlD4jHZ36/tXddORNlRSHqPZjU/CIlf1gDLVDEs46asF9uNEOo35uXiZKdN8bD013MDyYt8VN4rlv13a/BHC5ihrqBrrk1rBlvqqS0CFaVn3+TE0B+WFJZ54+PUXyyPeMUozm4qC0+ApHY4Wylv+kZ7ZA8pUXlvmMcscUjt1z/FANCiDAOdO8e7DaJouKfV4Ryp/sLixUPa5sIvvqLijLava3DNjWKevjXzoT0c5nlNqri+H0XnpeKzR6eg/pQLjPTr5Pyq+1kVH4uLFdm72Isi4NpF04OxbpTZjuuSJn6CgbnjpTyupjM5kwY+N4CgF+cnhBmcN+5Fxo3pVm3sCA+FLZL/XXeKrlY/qy1m8WNPh6Szf6aLD25IqyNAzhyMPwap7OilTeHHpoXI65LXSYZkWBK37h0+U1olbJPwg5vzwuFBf8sAHHmYKbMRe3lHOAbeghA8OE+zHwo1CyV7d5lcIWKDSu4VVsdmAv2vUaFN9gWOJQYcJny5rSmI+wcEfeHBITsw+TSN8LoBnyWYZUwy+Er/lqR51JofHUR5lEuh8tYKHF3FbjnyrZ2aJOXqwuDFa9hexKx9fHgs3qle3+WJgyHgblUuNY3nVDtdSX7wsoVhu5GRLqbBMEg9r79LnTatndtkzKSPvXJCmvMV76STg+LtCFW+povjpANXD41TGdD9aXqkOAwKzB1hOErfsPixgPyZu1K9u80fUdpBN7TmrzRhLyxNv/dDZ5Uy+TN3mypLn57ovdfJgj+q+TXgPeqZz0alH+SmP8x4ZrQeU0TjVw+OibQTbBK/ymD0IEPPzyeDGn7K9il3FtN9RcEfdm9rcGxisjYnunNh+wfvApFEzRm995KQnCZoYOgRkAfiNdI5G2LviMLIaT8wKidUvBVPKN3svncieyFd+8YAy5TP7LR0ex0s8F0vA0kxEA5vOk8CNE4VlFrvKj4kbEza1+eJSKoJ0HVwmsIwA/9U1Wubo2VVfuujsf0enkeoy6tA5eOG1AAyHsRkPqcrsL7G2Nk+LqQ9Z/bun8r/2IcBG6TLXOBf5piOUyB5mFwYEfDJ3eBz82Dx5h1I9lmAsGy1gjokbO1qxT3AjRPZ6sR8LN2ZYe9zy0EruA9cEFkXMGijiZfuFrsnfDcQ3OUhNfDjLW5/1dNq5cfJkE6HkkW+zBp2Y2YCX14kjIi/BWj0cTTx0Ygj92Mqyiw5Jxyx+gVI+L5XYQR2IZc8b5fNFDT9QVqLR4XEwiJ8R9rWudFYjWGy2gA2+XXFHmU3YZUMVd5Tnxi5Zu+NO/DTb5vClJFvChxWl/cC11DH9/rI9kAbG1WW7oqPvHih7oAdG2S8998I90APjwjtAh1/2QA+Msl967oV7oAfGhXeADr/sgR4YZb/03Av3QA+MC+8AHX7ZAz0wyn7puRfugR4YF94BOvyyB84+MOKWgxF65bF/6allcq/rS/It79RTYWGrxYjAp2vATSHPus4K+wj0ygfv7togXg60HbbsleK3Auxhsg1uiyZ46ouHhrM9UOyQtD1Q7F0aSHx0YvYWGfE82VukvH5A2Z2HLOjZEZ0SAcTeJzYopvl2f6v84agfMvVMHfZX3duhdNLpbW9MDKQ61l8t6zvljfqRFeSpOzAkkA1ZbBpko9xBKYba4WGLweGpLx6CggYajpLRPeBMT7qhbnIEjnjDDlWlwUbVg2xTHo2JnZSB41apERsikV3CwQZBC9SD6oF77eFsdKZJw0jm+8Itc3wHlG3EjZ4J9iPhPkS56GNTaegzSnnmYkBfJFdgSCi7DpmGhw6ne0YSnhltho5c0thQnyDg54gDqS7g0A+oMHLFZwI1p1fK6AeU3XnFdSAdrPLnpP2UF5ZcSkObK2UgCbuedc8W/8lSDVklivylomO0N3roK8wO6UDKgFYa+OCf0NUkp5yBQyYjnfLe6LqWASidI299RmfPIWVE/aQx5wxYKANHiSazUolpKU/+oRPRsbhK9L5wY8v7xL47bvma3+/g79FPBZTPb8vdfcYbGACwJYluB7IIpHyOvPXDckYAah3IApDG7AeU/c/jjLzM3M0kXw+rAKusPOTd2PPG9KXkjTppIu8Y7c2Kg9VMrQ8l6uu3j+pFdyVSYJ1xjvVJrbClvnjDVF2QFaZtlYdZS+lRD+qSfJYR93IwG1il70HgjrbcG/Yj4eaDDb+Vp8+81GUfikofZoBcJM+MYZ1+LgLngmdT/QiQxhpegEESnWojESMcs1JpuYdtJ3Uwm+wFHw1737hRjS+5NpHsx3ZGbltVuOTthBtdzyWL91N+TcksQmCwzHKRJzA8guy3wh7eEs9c/R9U4d4O6pLzaFDem9IXt5LNnjx+p27B6+FPee4VN4ofCPbVuGW/DdDM9rnfvxdEzxldoQ08gVF6twiV9Y/NBkxXNVpdX+BYN08OKVM+X6mOdVAXo0vTKFcCHm1cu+5/H7iB8V6x79jepfbjKyaBw1JrkRYDQ8beRikWjalQyysZEvjW1o8dq3ZIGVN9vrTiJbIfUCYnyHdrDqSjvVhqzA1k8MySdDPj8mm/2idKAsTPYLe1va2vWlpShX2LtPjyHSWwrCgJtBljadnRVF9OooGKh5Qpn4bD8RPwNIYuAsTsYnQoNXQoF+9blQ+kZwIdnKP8gcF/g4ymg9kQLf3vBXfU/d6w74gbKLW+RhnkClhvYLDuK72Qsb1gzwPX6BzPJLN6SJnKw6c4pf2AMjkqITq2DVCtB7MhhkEEKg0kdyWOf9Uu2GB2DDWUv+pQusb2Rh/LUPprTvRV+s7EtpyR56tSZp4nYbzIvFPKiBZI9zTEF7r4a3Mg8nStPnBNdRlpAYWcuUPK+LwZtn8ExfEf1WE67geU3W2rGb3fyDdzB9LhQdoTur1LZv+1jyU2M88yx0Lkm46QdYT2PkgmKwZOsxwGct2jd9RXgwEz/zyoA9cE4L0e1CX9BCYvadWD2fCl+GxE4hMxTmfpxRRdPJxN/HRSZMMP0XhvlP81D0rfK+5owyJ22dmEO8qtYj8GbnRCkk1gWCASwJPDAeFLSXUYWBmQ+4FrqWP6/WV7IA2Mq8t2RUffPVD2QA+Msl967oV7oAfGhXeADr/sgR4YZb/03Av3QA+MC+8AHX7ZA+kf+PiBUM7F5r3aluictz93D5yMB9Sv5z6RHwgMvr+zeaxErj+flyr2vO6BB+6B4Q+AJTv/HxkyY/EJy8vMAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}0.321428571428571\\\\0.147619047619048\\\\0.111904761904762\\\\0.0642857142857143\\\\0.29047619047619\\\\0.0357142857142857\\\\0.0285714285714286\\end{matrix}\\right]$" ], "text/plain": [ "⎡0.321428571428571 ⎤\n", "⎢ ⎥\n", "⎢0.147619047619048 ⎥\n", "⎢ ⎥\n", "⎢0.111904761904762 ⎥\n", "⎢ ⎥\n", "⎢0.0642857142857143⎥\n", "⎢ ⎥\n", "⎢ 0.29047619047619 ⎥\n", "⎢ ⎥\n", "⎢0.0357142857142857⎥\n", "⎢ ⎥\n", "⎣0.0285714285714286⎦" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tM* v_init" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}0.293970734126984\\\\0.170413029100529\\\\0.141452215608466\\\\0.105020337301587\\\\0.184123346560847\\\\0.0409945436507936\\\\0.0640257936507936\\end{matrix}\\right]$" ], "text/plain": [ "⎡0.293970734126984 ⎤\n", "⎢ ⎥\n", "⎢0.170413029100529 ⎥\n", "⎢ ⎥\n", "⎢0.141452215608466 ⎥\n", "⎢ ⎥\n", "⎢0.105020337301587 ⎥\n", "⎢ ⎥\n", "⎢0.184123346560847 ⎥\n", "⎢ ⎥\n", "⎢0.0409945436507936⎥\n", "⎢ ⎥\n", "⎣0.0640257936507936⎦" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tM*tM* tM* tM* tM*v_init" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ページランクは1->5->2->3->4->7->6となる" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 初期ベクトルがちがうと...\n", "\n", "初期ベクトルを\n", "``` python\n", "> v_init=Matrix([100,0,0,0,0,0,0])\n", "```\n", "\n", "として,推移確率行列に右から掛け,それに伴うベクトルの各要素の変化を観察し,前問と比較せよ.その結果から,推移確率行列を掛けることによってどのように状態が推移していくか,漸近していく様子を記述せよ.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 解答例" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}\\frac{2311}{72}\\\\\\frac{11189}{720}\\\\\\frac{2521}{180}\\\\\\frac{3947}{360}\\\\\\frac{3943}{240}\\\\\\frac{191}{36}\\\\\\frac{679}{120}\\end{matrix}\\right]$" ], "text/plain": [ "⎡2311 ⎤\n", "⎢──── ⎥\n", "⎢ 72 ⎥\n", "⎢ ⎥\n", "⎢11189⎥\n", "⎢─────⎥\n", "⎢ 720 ⎥\n", "⎢ ⎥\n", "⎢2521 ⎥\n", "⎢──── ⎥\n", "⎢180 ⎥\n", "⎢ ⎥\n", "⎢3947 ⎥\n", "⎢──── ⎥\n", "⎢360 ⎥\n", "⎢ ⎥\n", "⎢3943 ⎥\n", "⎢──── ⎥\n", "⎢240 ⎥\n", "⎢ ⎥\n", "⎢ 191 ⎥\n", "⎢ ─── ⎥\n", "⎢ 36 ⎥\n", "⎢ ⎥\n", "⎢ 679 ⎥\n", "⎢ ─── ⎥\n", "⎣ 120 ⎦" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v_init=Matrix([100,0,0,0,0,0,0])\n", "tM*tM* tM* tM* tM* v_init" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### コメント\n", "要素のそれぞれの値は初期値が違うので,異なっている.しかし,何度かかけた後のページランク(順位)は先ほどの等確率の初期値を使った場合と同じである.初期値がどうであろうと,つまりどこから入ったとしても,いくつかリンクをたどった後は同じサイトに行き着く.ステップを繰り返すと定常状態になることが期待される.これがPage Rankの値の安定性を保証し,ランクの信頼性につながっている." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 固有ベクトルから確認\n", "\n", "推移確率行列の固有値・固有ベクトルをもとめ,最大固有値に対応する固有ベクトルを取り出せ.\n", "前問までに得られた結果と比較し,一致していることを確かめよ.\n", "ただし,固有ベクトルの大きさは任意であるため,norm()で規格化しておくと比較しやすい." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 解答例" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ \\left( 0, \\ 1, \\ \\left[ \\left[\\begin{matrix}0\\\\1\\\\0\\\\0\\\\0\\\\-2\\\\1\\end{matrix}\\right]\\right]\\right), \\ \\left( 1, \\ 1, \\ \\left[ \\left[\\begin{matrix}5\\\\\\frac{52}{19}\\\\\\frac{44}{19}\\\\\\frac{33}{19}\\\\\\frac{56}{19}\\\\\\frac{14}{19}\\\\1\\end{matrix}\\right]\\right]\\right)\\right]$" ], "text/plain": [ "⎡ ⎛ ⎡⎡5 ⎤⎤⎞⎤\n", "⎢ ⎜ ⎢⎢ ⎥⎥⎟⎥\n", "⎢ ⎜ ⎢⎢52⎥⎥⎟⎥\n", "⎢ ⎜ ⎢⎢──⎥⎥⎟⎥\n", "⎢ ⎜ ⎢⎢19⎥⎥⎟⎥\n", "⎢⎛ ⎡⎡0 ⎤⎤⎞ ⎜ ⎢⎢ ⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢44⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢1 ⎥⎥⎟ ⎜ ⎢⎢──⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢19⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢0 ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢33⎥⎥⎟⎥\n", "⎢⎜0, 1, ⎢⎢0 ⎥⎥⎟, ⎜1, 1, ⎢⎢──⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢19⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢0 ⎥⎥⎟ ⎜ ⎢⎢ ⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢56⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢-2⎥⎥⎟ ⎜ ⎢⎢──⎥⎥⎟⎥\n", "⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜ ⎢⎢19⎥⎥⎟⎥\n", "⎢⎝ ⎣⎣1 ⎦⎦⎠ ⎜ ⎢⎢ ⎥⎥⎟⎥\n", "⎢ ⎜ ⎢⎢14⎥⎥⎟⎥\n", "⎢ ⎜ ⎢⎢──⎥⎥⎟⎥\n", "⎢ ⎜ ⎢⎢19⎥⎥⎟⎥\n", "⎢ ⎜ ⎢⎢ ⎥⎥⎟⎥\n", "⎣ ⎝ ⎣⎣1 ⎦⎦⎠⎦" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tM.eigenvects(error_when_incomplete=False)\n", "#trans_mat.eigenvects()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}5\\\\\\frac{52}{19}\\\\\\frac{44}{19}\\\\\\frac{33}{19}\\\\\\frac{56}{19}\\\\\\frac{14}{19}\\\\1\\end{matrix}\\right]$" ], "text/plain": [ "⎡5 ⎤\n", "⎢ ⎥\n", "⎢52⎥\n", "⎢──⎥\n", "⎢19⎥\n", "⎢ ⎥\n", "⎢44⎥\n", "⎢──⎥\n", "⎢19⎥\n", "⎢ ⎥\n", "⎢33⎥\n", "⎢──⎥\n", "⎢19⎥\n", "⎢ ⎥\n", "⎢56⎥\n", "⎢──⎥\n", "⎢19⎥\n", "⎢ ⎥\n", "⎢14⎥\n", "⎢──⎥\n", "⎢19⎥\n", "⎢ ⎥\n", "⎣1 ⎦" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#v = Matrix(trans_mat.eigenvects(error_when_incomplete=False)[0][2]) # use float\n", "v = Matrix(tM.eigenvects(error_when_incomplete=False)[1][2])\n", "v" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 7.14840702476361$" ], "text/plain": [ "7.14840702476361" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.norm().evalf()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.699456533837389\n", "0.382860418521518\n", "0.323958815672054\n", "0.242969111754040\n", "0.412311219946250\n", "0.103077804986563\n", "0.139891306767478\n" ] } ], "source": [ "v_n = v.norm().evalf()\n", "for i in range(0,7):\n", " print(v[i]/v_n)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### コメント\n", "Page Rankが最大固有値の固有ベクトルと一致することが,どのような初期値であろうと最終状態のベクトルが安定することを保証している.この導出は,[la_eigen_vectors.ipynb](https://nbviewer.jupyter.org/github/daddygongon/jupyter_num_calc/blob/master/numerical_calc/la_eigen_vectors.ipynb)の3節に示した." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### eigenvectsの注意点\n", "my mac上ではうまく行くが,大学PC上ではエラーが出る場合がある.versionの違いによるらしい.eigenvectsをerror_when_incomplete=Falseのオプションをつけてやると通る.その場合,初めの推移確率行列の値を単に分数で与えるのでなく,Rationalとして与える必要がある.(挙動の細かいところは不明なので,sympyのversionによるかもしれない.要確認19/5/24,つけないと私のでも動かなくなった20/10/29.)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### eigenvectsに関するコメント\n", "\n", "最後の固有値を求めるeigenvectsで失敗するかもしれません.\n", "これはsympyのversionによるようです.1.6.1ではダメです.\n", "それまでのは行けそうです.\n", "\n", "上の方で,対角ベクトルを与えるところで,\n", "Rationalを使うとちゃんと求めてくれます.\n", "```python\n", "#V = [1/5,1,1/2,1/3,1/4,1/2,1]\n", "V = [Rational(1,5),1,Rational(1,2),Rational(1,3),Rational(1,4),Rational(1,2),1]\n", "```\n", "\n", "これに関する問い合わせと開発者の反応は[Githubのissue](https://github.com/sympy/sympy/issues/20351) の通りです.\n", "この辺りがOSS開発ソフトで時々おこる問題です.\n", "そういうものだということを覚悟して,\n", "いくつかのライブラリや他のソフトで結果をクロス検証することを心がけてください.\n", "\n", "<2020-11-02 月>\n", "\n", "\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" }, "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": "30px", "width": "252px" }, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": {}, "toc_section_display": "block", "toc_window_display": true }, "vscode": { "interpreter": { "hash": "f3f87633aac09da3bda522f97956bee375b5501d1579e6458804e567301cb62a" } } }, "nbformat": 4, "nbformat_minor": 2 }