├── .DS_Store ├── .ipynb_checkpoints ├── image_compression-checkpoint.ipynb ├── pi_matrix_decoposition-checkpoint.ipynb ├── plotting_ellipses-checkpoint.ipynb └── svd-checkpoint.ipynb ├── README.md ├── image_compression.ipynb ├── pi_matrix_decoposition.ipynb └── plotting_ellipses.ipynb /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luisguiserrano/singular_value_decomposition/20163a9ef0939823c61cf381bc1621f52fc7f698/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # singular_value_decomposition 2 | 3 | This is the repo for the video "Singular value decomposition and applications to image compression". 4 | https://youtu.be/DG7YTlGnCEo 5 | 6 | Notebooks: 7 | 8 | - image_compression.ipynb: The image compression example in the video. 9 | - pi_matrix.ipynb: The random matrix example in the video. 10 | - plotting_ellipses.ipynb: Some rotation and translation plots. -------------------------------------------------------------------------------- /pi_matrix_decoposition.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Example with random matrix" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 13, 13 | "metadata": {}, 14 | "outputs": [], 15 | "source": [ 16 | "import numpy as np\n", 17 | "from numpy.linalg import svd\n", 18 | "import matplotlib.pyplot as plt\n", 19 | "from matplotlib.pyplot import imshow" 20 | ] 21 | }, 22 | { 23 | "cell_type": "code", 24 | "execution_count": 14, 25 | "metadata": {}, 26 | "outputs": [], 27 | "source": [ 28 | "vmin = 0\n", 29 | "vmax = 1\n", 30 | "image_bias = 1 # sometimes 1\n", 31 | "def plot_svd(A):\n", 32 | " n = len(A)\n", 33 | " U, S, V = svd(A)\n", 34 | "\n", 35 | " imgs = []\n", 36 | " for i in range(n):\n", 37 | " imgs.append(S[i]*np.outer(U[:,i],V[i]))\n", 38 | "\n", 39 | " combined_imgs = []\n", 40 | " for i in range(n):\n", 41 | " img = sum(imgs[:i+1])\n", 42 | " combined_imgs.append(img)\n", 43 | " print(np.round(img,2))\n", 44 | " print(\"=====\")\n", 45 | " \n", 46 | " #print(imgs)\n", 47 | " \n", 48 | " print(combined_imgs)\n", 49 | " \n", 50 | " return U,S,V" 51 | ] 52 | }, 53 | { 54 | "cell_type": "code", 55 | "execution_count": 15, 56 | "metadata": {}, 57 | "outputs": [ 58 | { 59 | "name": "stdout", 60 | "output_type": "stream", 61 | "text": [ 62 | "[[2.51 2.37 2.22 1.97]\n", 63 | " [6.07 5.72 5.37 4.77]\n", 64 | " [5.63 5.31 4.99 4.43]\n", 65 | " [7.88 7.43 6.98 6.19]]\n", 66 | "=====\n", 67 | "[[3.15 1.41 3.79 0.56]\n", 68 | " [4.87 7.53 2.44 7.43]\n", 69 | " [5.28 5.85 4.12 5.22]\n", 70 | " [8.85 5.96 9.36 4.03]]\n", 71 | "=====\n", 72 | "[[3.1 0.96 3.93 0.99]\n", 73 | " [5.03 8.99 1.98 6. ]\n", 74 | " [4.98 3.01 5.01 8. ]\n", 75 | " [8.96 7.02 9.03 3. ]]\n", 76 | "=====\n", 77 | "[[3. 1. 4. 1.]\n", 78 | " [5. 9. 2. 6.]\n", 79 | " [5. 3. 5. 8.]\n", 80 | " [9. 7. 9. 3.]]\n", 81 | "=====\n", 82 | "[array([[2.5129268 , 2.37029143, 2.22496161, 1.97491746],\n", 83 | " [6.0691682 , 5.72467824, 5.37368069, 4.7697793 ],\n", 84 | " [5.63425954, 5.31445527, 4.98860976, 4.42798315],\n", 85 | " [7.87808152, 7.43091645, 6.97530422, 6.19141025]]), array([[3.15001871, 1.40791218, 3.78880714, 0.55746973],\n", 86 | " [4.8743301 , 7.5295786 , 2.44075653, 7.42814078],\n", 87 | " [5.27953502, 5.85029558, 4.11788081, 5.2171997 ],\n", 88 | " [8.84904357, 5.96419913, 9.35868823, 4.03114429]]), array([[3.10337436, 0.96150448, 3.92917454, 0.99445918],\n", 89 | " [5.02692418, 8.98997372, 1.98155328, 5.99855688],\n", 90 | " [4.98239762, 3.00655494, 5.01206002, 8.00094348],\n", 91 | " [8.95887283, 7.01531532, 9.02817769, 3.0022044 ]]), array([[3., 1., 4., 1.],\n", 92 | " [5., 9., 2., 6.],\n", 93 | " [5., 3., 5., 8.],\n", 94 | " [9., 7., 9., 3.]])]\n" 95 | ] 96 | } 97 | ], 98 | "source": [ 99 | "P = np.array([[3,1,4,1],[5,9,2,6],[5,3,5,8],[9,7,9,3]])\n", 100 | "U,S,V = plot_svd(P)" 101 | ] 102 | }, 103 | { 104 | "cell_type": "code", 105 | "execution_count": null, 106 | "metadata": {}, 107 | "outputs": [], 108 | "source": [] 109 | } 110 | ], 111 | "metadata": { 112 | "kernelspec": { 113 | "display_name": "Python 3", 114 | "language": "python", 115 | "name": "python3" 116 | }, 117 | "language_info": { 118 | "codemirror_mode": { 119 | "name": "ipython", 120 | "version": 3 121 | }, 122 | "file_extension": ".py", 123 | "mimetype": "text/x-python", 124 | "name": "python", 125 | "nbconvert_exporter": "python", 126 | "pygments_lexer": "ipython3", 127 | "version": "3.7.6" 128 | } 129 | }, 130 | "nbformat": 4, 131 | "nbformat_minor": 4 132 | } 133 | -------------------------------------------------------------------------------- /plotting_ellipses.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 5, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import numpy as np\n", 10 | "from numpy.linalg import svd\n", 11 | "import matplotlib.pyplot as plt\n", 12 | "from matplotlib.pyplot import imshow" 13 | ] 14 | }, 15 | { 16 | "cell_type": "code", 17 | "execution_count": 6, 18 | "metadata": {}, 19 | "outputs": [], 20 | "source": [ 21 | "# SVD\n", 22 | "\n", 23 | "def plot(A, n=100):\n", 24 | " x = np.array([[np.cos(2*np.pi*i/n), np.sin(2*np.pi*i/n)] for i in range(n)])\n", 25 | " y = np.dot(A, x.T).T\n", 26 | " for i in range(n):\n", 27 | " plt.scatter(y[i,0], y[i,1], color=[(n-i)/n, 0, i/n])\n", 28 | "\n", 29 | "def plot_circles(A, xlim=4, ylim=4, n=100):\n", 30 | " U,S,V = svd(A)\n", 31 | " sigma = np.diag(S)\n", 32 | "\n", 33 | " I = np.identity(len(A))\n", 34 | " plt.xlim(-xlim, xlim)\n", 35 | " plt.ylim(-ylim, ylim)\n", 36 | " plot(I,n)\n", 37 | " plt.title(\"Unit circle\")\n", 38 | " plt.show()\n", 39 | " plt.xlim(-xlim, xlim)\n", 40 | " plt.ylim(-ylim, ylim)\n", 41 | " plot(V,n)\n", 42 | " print(\"Rotating\", np.arccos(V[0][0]), 'or', np.arccos(V[0][0])*180/np.pi, \"degrees\")\n", 43 | " print(np.round(V,2))\n", 44 | " plt.title(\"Vt\")\n", 45 | " plt.show()\n", 46 | " plt.xlim(-xlim, xlim)\n", 47 | " plt.ylim(-ylim, ylim)\n", 48 | " plot(np.dot(sigma,V),n)\n", 49 | " plt.title(\"sigma Vt\")\n", 50 | " print(np.round(sigma,2))\n", 51 | " print(\"Stretching x-axis by\", sigma[0][0])\n", 52 | " print(\"Stretching y-axis by\", sigma[1][1])\n", 53 | " plt.show()\n", 54 | " plt.xlim(-xlim, xlim)\n", 55 | " plt.ylim(-ylim, ylim)\n", 56 | " plot(np.dot(np.dot(U,sigma),V),n)\n", 57 | " print(\"Rotating\", -np.arccos(U[0][0]), 'or', -np.arccos(U[0][0])*180/np.pi, \"degrees\")\n", 58 | " plt.title(\"U sigma Vt\")\n", 59 | " print(np.round(U,2))\n", 60 | " plt.show()\n", 61 | " plt.xlim(-xlim, xlim)\n", 62 | " plt.ylim(-ylim, ylim)\n", 63 | " plot(A,n)\n", 64 | " print(\"Original transformation\")\n", 65 | " plt.title(\"A\")\n", 66 | " print(np.round(A,2))\n", 67 | " \n", 68 | " return U, S, V" 69 | ] 70 | }, 71 | { 72 | "cell_type": "code", 73 | "execution_count": 7, 74 | "metadata": {}, 75 | "outputs": [ 76 | { 77 | "data": { 78 | "image/png": "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\n", 79 | "text/plain": [ 80 | "
" 81 | ] 82 | }, 83 | "metadata": { 84 | "needs_background": "light" 85 | }, 86 | "output_type": "display_data" 87 | }, 88 | { 89 | "name": "stdout", 90 | "output_type": "stream", 91 | "text": [ 92 | "Rotating 2.356194490192345 or 135.0 degrees\n", 93 | "[[-0.71 -0.71]\n", 94 | " [-0.71 0.71]]\n" 95 | ] 96 | }, 97 | { 98 | "data": { 99 | "image/png": "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\n", 100 | "text/plain": [ 101 | "
" 102 | ] 103 | }, 104 | "metadata": { 105 | "needs_background": "light" 106 | }, 107 | "output_type": "display_data" 108 | }, 109 | { 110 | "name": "stdout", 111 | "output_type": "stream", 112 | "text": [ 113 | "[[6.71 0. ]\n", 114 | " [0. 2.24]]\n", 115 | "Stretching x-axis by 6.70820393249937\n", 116 | "Stretching y-axis by 2.2360679774997894\n" 117 | ] 118 | }, 119 | { 120 | "data": { 121 | "image/png": "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\n", 122 | "text/plain": [ 123 | "
" 124 | ] 125 | }, 126 | "metadata": { 127 | "needs_background": "light" 128 | }, 129 | "output_type": "display_data" 130 | }, 131 | { 132 | "name": "stdout", 133 | "output_type": "stream", 134 | "text": [ 135 | "Rotating -1.8925468811915387 or -108.43494882292201 degrees\n", 136 | "[[-0.32 -0.95]\n", 137 | " [-0.95 0.32]]\n" 138 | ] 139 | }, 140 | { 141 | "data": { 142 | "image/png": "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\n", 143 | "text/plain": [ 144 | "
" 145 | ] 146 | }, 147 | "metadata": { 148 | "needs_background": "light" 149 | }, 150 | "output_type": "display_data" 151 | }, 152 | { 153 | "name": "stdout", 154 | "output_type": "stream", 155 | "text": [ 156 | "Original transformation\n", 157 | "[[3 0]\n", 158 | " [4 5]]\n" 159 | ] 160 | }, 161 | { 162 | "data": { 163 | "image/png": "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\n", 164 | "text/plain": [ 165 | "
" 166 | ] 167 | }, 168 | "metadata": { 169 | "needs_background": "light" 170 | }, 171 | "output_type": "display_data" 172 | } 173 | ], 174 | "source": [ 175 | "#A = np.array([[0,1],[-2,-3]])\n", 176 | "#A = np.array([[2,2],[1,-1]])\n", 177 | "#A = np.array([[4,8],\n", 178 | "# [-5,3]])\n", 179 | "A = np.array([[3,0],\n", 180 | " [4,5]])\n", 181 | "\n", 182 | "U,S,V = plot_circles(A, xlim=10, ylim=10, n=8)" 183 | ] 184 | }, 185 | { 186 | "cell_type": "code", 187 | "execution_count": 8, 188 | "metadata": {}, 189 | "outputs": [ 190 | { 191 | "name": "stdout", 192 | "output_type": "stream", 193 | "text": [ 194 | "[[ 0.31622777 0.9486833 ]\n", 195 | " [ 0.9486833 -0.31622777]]\n", 196 | "[[6.70820393 0. ]\n", 197 | " [0. 2.23606798]]\n", 198 | "[[ 0.70710678 0.70710678]\n", 199 | " [ 0.70710678 -0.70710678]]\n" 200 | ] 201 | } 202 | ], 203 | "source": [ 204 | "print(-U)\n", 205 | "sigma = np.diag(S)\n", 206 | "print(sigma)\n", 207 | "print(-V)" 208 | ] 209 | }, 210 | { 211 | "cell_type": "code", 212 | "execution_count": 9, 213 | "metadata": {}, 214 | "outputs": [ 215 | { 216 | "data": { 217 | "text/plain": [ 218 | "array([0, 5])" 219 | ] 220 | }, 221 | "execution_count": 9, 222 | "metadata": {}, 223 | "output_type": "execute_result" 224 | } 225 | ], 226 | "source": [ 227 | "np.dot(A, np.array([0,1]))" 228 | ] 229 | }, 230 | { 231 | "cell_type": "code", 232 | "execution_count": 10, 233 | "metadata": {}, 234 | "outputs": [ 235 | { 236 | "data": { 237 | "text/plain": [ 238 | "array([3, 0])" 239 | ] 240 | }, 241 | "execution_count": 10, 242 | "metadata": {}, 243 | "output_type": "execute_result" 244 | } 245 | ], 246 | "source": [ 247 | "np.dot(np.array([1,0]), A)" 248 | ] 249 | }, 250 | { 251 | "cell_type": "code", 252 | "execution_count": 11, 253 | "metadata": {}, 254 | "outputs": [ 255 | { 256 | "data": { 257 | "text/plain": [ 258 | "array([4, 5])" 259 | ] 260 | }, 261 | "execution_count": 11, 262 | "metadata": {}, 263 | "output_type": "execute_result" 264 | } 265 | ], 266 | "source": [ 267 | "np.dot(np.array([0,1]), A)" 268 | ] 269 | }, 270 | { 271 | "cell_type": "code", 272 | "execution_count": 12, 273 | "metadata": {}, 274 | "outputs": [ 275 | { 276 | "data": { 277 | "text/plain": [ 278 | "array([[ 3. , 0. , -3. , 0. , 2.12132034,\n", 279 | " 2.12132034, -2.12132034, -2.12132034],\n", 280 | " [ 4. , 5. , -4. , -5. , 6.36396103,\n", 281 | " -0.70710678, 0.70710678, -6.36396103]])" 282 | ] 283 | }, 284 | "execution_count": 12, 285 | "metadata": {}, 286 | "output_type": "execute_result" 287 | } 288 | ], 289 | "source": [ 290 | "#x = np.array([[1,0,-1,0],[0,1,0,-1]])\n", 291 | "x = np.array([[1,0],\n", 292 | " [0,1],\n", 293 | " [-1,0],\n", 294 | " [0,-1],\n", 295 | " [1/np.sqrt(2), 1/np.sqrt(2)],\n", 296 | " [1/np.sqrt(2), -1/np.sqrt(2)],\n", 297 | " [-1/np.sqrt(2), 1/np.sqrt(2)],\n", 298 | " [-1/np.sqrt(2), -1/np.sqrt(2)]])\n", 299 | "\n", 300 | "np.dot(A,x.T)" 301 | ] 302 | }, 303 | { 304 | "cell_type": "code", 305 | "execution_count": 13, 306 | "metadata": {}, 307 | "outputs": [ 308 | { 309 | "data": { 310 | "text/plain": [ 311 | "array([[-0.70710678, -0.70710678, 0.70710678, 0.70710678, -1. ,\n", 312 | " 0. , 0. , 1. ],\n", 313 | " [-0.70710678, 0.70710678, 0.70710678, -0.70710678, 0. ,\n", 314 | " -1. , 1. , 0. ]])" 315 | ] 316 | }, 317 | "execution_count": 13, 318 | "metadata": {}, 319 | "output_type": "execute_result" 320 | } 321 | ], 322 | "source": [ 323 | "vx = np.dot(V,x.T)\n", 324 | "vx" 325 | ] 326 | }, 327 | { 328 | "cell_type": "code", 329 | "execution_count": 14, 330 | "metadata": {}, 331 | "outputs": [ 332 | { 333 | "data": { 334 | "text/plain": [ 335 | "array([[-4.74341649, -4.74341649, 4.74341649, 4.74341649, -6.70820393,\n", 336 | " 0. , 0. , 6.70820393],\n", 337 | " [-1.58113883, 1.58113883, 1.58113883, -1.58113883, 0. ,\n", 338 | " -2.23606798, 2.23606798, 0. ]])" 339 | ] 340 | }, 341 | "execution_count": 14, 342 | "metadata": {}, 343 | "output_type": "execute_result" 344 | } 345 | ], 346 | "source": [ 347 | "svx = np.dot(sigma,vx)\n", 348 | "svx" 349 | ] 350 | }, 351 | { 352 | "cell_type": "code", 353 | "execution_count": 15, 354 | "metadata": {}, 355 | "outputs": [ 356 | { 357 | "data": { 358 | "text/plain": [ 359 | "array([[ 3.00000000e+00, 8.88178420e-16, -3.00000000e+00,\n", 360 | " -8.88178420e-16, 2.12132034e+00, 2.12132034e+00,\n", 361 | " -2.12132034e+00, -2.12132034e+00],\n", 362 | " [ 4.00000000e+00, 5.00000000e+00, -4.00000000e+00,\n", 363 | " -5.00000000e+00, 6.36396103e+00, -7.07106781e-01,\n", 364 | " 7.07106781e-01, -6.36396103e+00]])" 365 | ] 366 | }, 367 | "execution_count": 15, 368 | "metadata": {}, 369 | "output_type": "execute_result" 370 | } 371 | ], 372 | "source": [ 373 | "usvx = np.dot(U,svx)\n", 374 | "usvx" 375 | ] 376 | }, 377 | { 378 | "cell_type": "code", 379 | "execution_count": 16, 380 | "metadata": {}, 381 | "outputs": [ 382 | { 383 | "data": { 384 | "text/plain": [ 385 | "71.56505117707799" 386 | ] 387 | }, 388 | "execution_count": 16, 389 | "metadata": {}, 390 | "output_type": "execute_result" 391 | } 392 | ], 393 | "source": [ 394 | "np.arctan(3)*180/np.pi" 395 | ] 396 | }, 397 | { 398 | "cell_type": "code", 399 | "execution_count": 17, 400 | "metadata": {}, 401 | "outputs": [ 402 | { 403 | "data": { 404 | "text/plain": [ 405 | "163.23296235748467" 406 | ] 407 | }, 408 | "execution_count": 17, 409 | "metadata": {}, 410 | "output_type": "execute_result" 411 | } 412 | ], 413 | "source": [ 414 | "73*np.sqrt(5)" 415 | ] 416 | }, 417 | { 418 | "cell_type": "code", 419 | "execution_count": 18, 420 | "metadata": {}, 421 | "outputs": [ 422 | { 423 | "data": { 424 | "text/plain": [ 425 | "0.9486832980505138" 426 | ] 427 | }, 428 | "execution_count": 18, 429 | "metadata": {}, 430 | "output_type": "execute_result" 431 | } 432 | ], 433 | "source": [ 434 | "3/np.sqrt(10)" 435 | ] 436 | }, 437 | { 438 | "cell_type": "code", 439 | "execution_count": 19, 440 | "metadata": {}, 441 | "outputs": [ 442 | { 443 | "data": { 444 | "text/plain": [ 445 | "array([[1.8, 1.2],\n", 446 | " [4.4, 4.6]])" 447 | ] 448 | }, 449 | "execution_count": 19, 450 | "metadata": {}, 451 | "output_type": "execute_result" 452 | } 453 | ], 454 | "source": [ 455 | "sigma_2 = np.diag([3*np.sqrt(5), 1/np.sqrt(5)])\n", 456 | "E = np.dot(np.dot(U,sigma_2),V.T)\n", 457 | "E" 458 | ] 459 | }, 460 | { 461 | "cell_type": "code", 462 | "execution_count": 20, 463 | "metadata": {}, 464 | "outputs": [ 465 | { 466 | "data": { 467 | "image/png": "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\n", 468 | "text/plain": [ 469 | "
" 470 | ] 471 | }, 472 | "metadata": { 473 | "needs_background": "light" 474 | }, 475 | "output_type": "display_data" 476 | }, 477 | { 478 | "name": "stdout", 479 | "output_type": "stream", 480 | "text": [ 481 | "Rotating 2.356194490192345 or 135.0 degrees\n", 482 | "[[-0.71 -0.71]\n", 483 | " [-0.71 0.71]]\n" 484 | ] 485 | }, 486 | { 487 | "data": { 488 | "image/png": "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\n", 489 | "text/plain": [ 490 | "
" 491 | ] 492 | }, 493 | "metadata": { 494 | "needs_background": "light" 495 | }, 496 | "output_type": "display_data" 497 | }, 498 | { 499 | "name": "stdout", 500 | "output_type": "stream", 501 | "text": [ 502 | "[[6.71 0. ]\n", 503 | " [0. 0.45]]\n", 504 | "Stretching x-axis by 6.708203932499367\n", 505 | "Stretching y-axis by 0.447213595499958\n" 506 | ] 507 | }, 508 | { 509 | "data": { 510 | "image/png": "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\n", 511 | "text/plain": [ 512 | "
" 513 | ] 514 | }, 515 | "metadata": { 516 | "needs_background": "light" 517 | }, 518 | "output_type": "display_data" 519 | }, 520 | { 521 | "name": "stdout", 522 | "output_type": "stream", 523 | "text": [ 524 | "Rotating -1.8925468811915391 or -108.43494882292204 degrees\n", 525 | "[[-0.32 -0.95]\n", 526 | " [-0.95 0.32]]\n" 527 | ] 528 | }, 529 | { 530 | "data": { 531 | "image/png": "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\n", 532 | "text/plain": [ 533 | "
" 534 | ] 535 | }, 536 | "metadata": { 537 | "needs_background": "light" 538 | }, 539 | "output_type": "display_data" 540 | }, 541 | { 542 | "name": "stdout", 543 | "output_type": "stream", 544 | "text": [ 545 | "Original transformation\n", 546 | "[[1.8 1.2]\n", 547 | " [4.4 4.6]]\n" 548 | ] 549 | }, 550 | { 551 | "data": { 552 | "text/plain": [ 553 | "(array([[-0.31622777, -0.9486833 ],\n", 554 | " [-0.9486833 , 0.31622777]]),\n", 555 | " array([6.70820393, 0.4472136 ]),\n", 556 | " array([[-0.70710678, -0.70710678],\n", 557 | " [-0.70710678, 0.70710678]]))" 558 | ] 559 | }, 560 | "execution_count": 20, 561 | "metadata": {}, 562 | "output_type": "execute_result" 563 | }, 564 | { 565 | "data": { 566 | "image/png": "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\n", 567 | "text/plain": [ 568 | "
" 569 | ] 570 | }, 571 | "metadata": { 572 | "needs_background": "light" 573 | }, 574 | "output_type": "display_data" 575 | } 576 | ], 577 | "source": [ 578 | "plot_circles(E, 10, 10)" 579 | ] 580 | }, 581 | { 582 | "cell_type": "code", 583 | "execution_count": 21, 584 | "metadata": {}, 585 | "outputs": [ 586 | { 587 | "data": { 588 | "text/plain": [ 589 | "63.50433056099403" 590 | ] 591 | }, 592 | "execution_count": 21, 593 | "metadata": {}, 594 | "output_type": "execute_result" 595 | } 596 | ], 597 | "source": [ 598 | "142/np.sqrt(5)" 599 | ] 600 | }, 601 | { 602 | "cell_type": "code", 603 | "execution_count": 22, 604 | "metadata": {}, 605 | "outputs": [ 606 | { 607 | "data": { 608 | "text/plain": [ 609 | "array([[1.5, 1.5],\n", 610 | " [4.5, 4.5]])" 611 | ] 612 | }, 613 | "execution_count": 22, 614 | "metadata": {}, 615 | "output_type": "execute_result" 616 | } 617 | ], 618 | "source": [ 619 | "sigma_3 = np.diag([3*np.sqrt(5), 0])\n", 620 | "F = np.dot(np.dot(U,sigma_3),V.T)\n", 621 | "F" 622 | ] 623 | }, 624 | { 625 | "cell_type": "code", 626 | "execution_count": null, 627 | "metadata": {}, 628 | "outputs": [], 629 | "source": [] 630 | } 631 | ], 632 | "metadata": { 633 | "kernelspec": { 634 | "display_name": "Python 3", 635 | "language": "python", 636 | "name": "python3" 637 | }, 638 | "language_info": { 639 | "codemirror_mode": { 640 | "name": "ipython", 641 | "version": 3 642 | }, 643 | "file_extension": ".py", 644 | "mimetype": "text/x-python", 645 | "name": "python", 646 | "nbconvert_exporter": "python", 647 | "pygments_lexer": "ipython3", 648 | "version": "3.7.6" 649 | } 650 | }, 651 | "nbformat": 4, 652 | "nbformat_minor": 4 653 | } 654 | --------------------------------------------------------------------------------