diff options
author | Trupti Kini | 2016-09-03 23:30:23 +0600 |
---|---|---|
committer | Trupti Kini | 2016-09-03 23:30:23 +0600 |
commit | 5f15ee61029068ad350502ad04768d7cd84e4736 (patch) | |
tree | b43a8aa92365b74d47758af2ebd4222961586c20 /Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER5.ipynb | |
parent | b417454ff6b5f8c2eb90f054723965a8f52e0268 (diff) | |
download | Python-Textbook-Companions-5f15ee61029068ad350502ad04768d7cd84e4736.tar.gz Python-Textbook-Companions-5f15ee61029068ad350502ad04768d7cd84e4736.tar.bz2 Python-Textbook-Companions-5f15ee61029068ad350502ad04768d7cd84e4736.zip |
Added(A)/Deleted(D) following books
A Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER1.ipynb
A Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER2.ipynb
A Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER3.ipynb
A Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER4.ipynb
A Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER5.ipynb
A Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER6.ipynb
A Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER7.ipynb
A Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER8.ipynb
A Linear_Algebra_And_Its_Applications_by_G._Strang/screenshots/Ch5Eigenmatrix.png
A Linear_Algebra_And_Its_Applications_by_G._Strang/screenshots/Ch5eigenVectors.png
A Linear_Algebra_And_Its_Applications_by_G._Strang/screenshots/ch5eigenvaluematrix.png
Diffstat (limited to 'Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER5.ipynb')
-rw-r--r-- | Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER5.ipynb | 411 |
1 files changed, 411 insertions, 0 deletions
diff --git a/Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER5.ipynb b/Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER5.ipynb new file mode 100644 index 00000000..af1f3093 --- /dev/null +++ b/Linear_Algebra_And_Its_Applications_by_G._Strang/CHAPTER5.ipynb @@ -0,0 +1,411 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 5 Eigenvalues and Eigenvectors" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex:5.1.1 Pg: 238" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Eigen values: [ 3. 2.]\n", + "Eigen vectors:\n", + "[[ 1. 0.]] \n", + " and\n", + "[[ 0. 1.]]\n" + ] + } + ], + "source": [ + "from numpy import mat\n", + "from numpy.linalg import eig\n", + "A=mat([[3, 0],[0, 2]])\n", + "Eig,V=eig(A)\n", + "print 'Eigen values:',Eig\n", + "print 'Eigen vectors:\\n',V[0],'\\n and\\n',V[1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex:5.1.2 Pg: 238" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The eigen values of a projection matrix are 1 or 0.\n", + "Eigen values: ['1', '0']\n", + "Eigen vectors:\n", + "[[ 0.70710678 -0.70710678]] \n", + " and\n", + "[[ 0.70710678 0.70710678]]\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import mat\n", + "from numpy.linalg import eig\n", + "print 'The eigen values of a projection matrix are 1 or 0.'\n", + "P=mat([[1/2, 1/2],[1/2, 1/2]])\n", + "Eig,V=eig(P)\n", + "Eig=[\"%.f\"%xx for xx in Eig]\n", + "print 'Eigen values:',Eig\n", + "print 'Eigen vectors:\\n',V[0],'\\n and\\n',V[1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex:5.2.1 Pg: 238" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Eigenvalue matrix: [ 3. 2.]\n", + "S=\n", + "[[ 1. 0.]\n", + " [ 0. 1.]]\n", + "AS=S*eigenvaluematrix\n", + "[[ 3. 0.]\n", + " [ 0. 2.]]\n", + "Therefore inv(S)*A*S=eigenvalue matrix\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import mat\n", + "from numpy.linalg import eig\n", + "P=mat([[1/2, 1/2],[1/2, 1/2]])\n", + "Val,V=eig(A)\n", + "print 'Eigenvalue matrix:',Val\n", + "print 'S=\\n',V\n", + "print 'AS=S*eigenvaluematrix\\n',(A*V)\n", + "print 'Therefore inv(S)*A*S=eigenvalue matrix'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex:5.2.2 Pg: 238" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The eigenvalues themselves are not so clear for a rotation.\n", + "90 degree rotation\n", + "K= [[ 0 -1]\n", + " [ 1 0]]\n", + "Eigen values: [ 0.+1.j 0.-1.j]\n", + "Eigen vectors:\n", + "[[ 0.70710678+0.j 0.70710678-0.j]] \n", + " and\n", + "[[ 0.-0.70710678j 0.+0.70710678j]]\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import mat\n", + "from numpy.linalg import eig\n", + "print 'The eigenvalues themselves are not so clear for a rotation.'\n", + "print '90 degree rotation'\n", + "K=mat([[0, -1],[1, 0]])\n", + "print 'K=',K\n", + "Val,V=eig(K)\n", + "print 'Eigen values:',Val\n", + "print 'Eigen vectors:\\n',V[0],'\\n and\\n',V[1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex:5.2.3 Pg: 249" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "K is rotation through 90 degree,then K**2 is rotation through 180 degree and inv(k is rotation through -90 degree)\n", + "K=\n", + "[[ 0 -1]\n", + " [ 1 0]]\n", + "K**2=\n", + "[[-1 0]\n", + " [ 0 -1]]\n", + "K**3=\n", + "[[ 0 1]\n", + " [-1 0]]\n", + "K**4=\n", + "[[1 0]\n", + " [0 1]]\n", + "K**4 is a complete rotation through 360 degree.\n", + "Eigen value matrix,D of K:\n", + "[ 0.+1.j 0.-1.j]\n", + "and also D**4=\n", + "[ 1.+0.j 1.+0.j]\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import mat\n", + "from numpy.linalg import eig\n", + "print 'K is rotation through 90 degree,then K**2 is rotation through 180 degree and inv(k is rotation through -90 degree)'\n", + "K=mat([[0, -1],[1, 0]])\n", + "print 'K=\\n',K\n", + "print 'K**2=\\n',(K*K)\n", + "print 'K**3=\\n',(K*K*K)\n", + "print 'K**4=\\n',(K**4)\n", + "D,V=eig(K)\n", + "print 'K**4 is a complete rotation through 360 degree.'\n", + "print 'Eigen value matrix,D of K:\\n',D\n", + "print 'and also D**4=\\n',(D**4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex:5.3.1 Pg: 249" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A=\n", + "[[ 0. 4. ]\n", + " [ 0. 0.5]]\n", + "Eigen values: [ 0. 0.5]\n", + "[[ 1.]\n", + " [ 0.]]\n", + "k= 0\n", + "U(k+1)(K from 0 to 5)\n", + "[[ 0.]\n", + " [ 0.]]\n", + "k= 1\n", + "U(k+1)(K from 0 to 5)\n", + "[[ 0.]\n", + " [ 0.]]\n", + "k= 2\n", + "U(k+1)(K from 0 to 5)\n", + "[[ 0.]\n", + " [ 0.]]\n", + "k= 3\n", + "U(k+1)(K from 0 to 5)\n", + "[[ 0.]\n", + " [ 0.]]\n", + "k= 4\n", + "U(k+1)(K from 0 to 5)\n", + "[[ 0.]\n", + " [ 0.]]\n", + "k= 5\n", + "U(k+1)(K from 0 to 5)\n", + "[[ 0.]\n", + " [ 0.]]\n", + "k= 5\n", + "U(k+1)=\n", + "[[ 0.49613894]\n", + " [ 0.06201737]]\n", + "k= 5\n", + "U(k+1)=\n", + "[[ 0.24806947]\n", + " [ 0.03100868]]\n", + "k= 5\n", + "U(k+1)=\n", + "[[ 0.12403473]\n", + " [ 0.01550434]]\n", + "k= 5\n", + "U(k+1)=\n", + "[[ 0.06201737]\n", + " [ 0.00775217]]\n", + "k= 5\n", + "U(k+1)=\n", + "[[ 0.03100868]\n", + " [ 0.00387609]]\n", + "k= 5\n", + "U(k+1)=\n", + "[[ 0.01550434]\n", + " [ 0.00193804]]\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import mat\n", + "from numpy.linalg import eig\n", + "A=mat([[0, 4],[0, 1/2]])\n", + "print 'A=\\n',A\n", + "Eig,zz=eig(A)\n", + "print 'Eigen values:',Eig\n", + "D,v=eig(A)\n", + "u0=v[:,0] #Taking u0 as the 1st eigen Vector.\n", + "print u0\n", + "for k in range(0,6):\n", + " print 'k=',k\n", + " u=A*u0\n", + " print 'U(k+1)(K from 0 to 5)\\n',u\n", + " u0=u\n", + "\n", + "u0=v[:,1] ##Taking u0 as the 2nd eigen vector.\n", + "for ki in range(0,6):\n", + " print 'k=',k\n", + " u=A*u0\n", + " print 'U(k+1)=\\n',u\n", + " u0=u" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex:5.5.1 Pg:282" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x= (3+4j)\n", + "xx_= (25+0j)\n", + "r= (5+0j)\n" + ] + } + ], + "source": [ + "from numpy import sqrt\n", + "x=3+4*1J\n", + "print 'x=',x\n", + "x_=x.conjugate()\n", + "print 'xx_=',x*x_\n", + "r=sqrt(x*x_)\n", + "print 'r=',r" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex:5.5.2 Pg:282" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Length of x squared: 2.0\n", + "Length of y squared: 25.0\n" + ] + } + ], + "source": [ + "from numpy import mat\n", + "i=1J\n", + "x=mat([[1, i]]).H\n", + "y=mat([[2+1*i, 2-4*i]]).H\n", + "print 'Length of x squared:',abs(x.H*x)[0,0]\n", + "print 'Length of y squared:',abs( y.H*y)[0,0]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} |