NLA-6.3

2026 days 전, jhlee2chn 작성

Algorithm 6.3  (inverse power method)

from numpy import argmax, argmin A=matrix([[10,-8,-4],[-8,13,5],[-4,4,4]]) Id=identity_matrix(3) x0=vector([1.0,1.0,1.0]) ## Initial guess maxit=20 # Maximum number of iterates dig=8 # number of decimal places to be shown is dig-1 tol=0.00001 # Tolerance limit for difference of two consecutive eigenvectors err=1 # Initialization of tolerance sig=1.9 # Initial Shifting number i=0 while(i<=maxit and err>=tol): y0=(A-sig*Id).inverse()*x0 ymod=y0.apply_map(abs) imax=argmax(ymod) c1=y0[imax] d1=sig+1/c1 x1=y0/c1 print "Iteration Number:", i+1 print "y"+str(i)+"=",y0.n(digits=dig), "d"+str(i)+"=", d1.n(digits=dig) print "x"+str(i+1)+"=",x0.n(digits=dig) print i=i+1 x0=x1 
       
Iteration Number: 1
y0= (3.0273924, -3.8029171, 13.486304) d0= 1.9741493
x1= (1.0000000, 1.0000000, 1.0000000)

Iteration Number: 2
y1= (1.7493556, -3.3806960, 10.247717) d1= 1.9975827
x2= (0.22447903, -0.28198365, 1.0000000)

Iteration Number: 3
y2= (1.6724019, -3.3366981, 10.017333) d2= 1.9998270
x3= (0.17070686, -0.32989747, 1.0000000)

Iteration Number: 4
y3= (1.6670698, -3.3335702, 10.001219) d3= 1.9999878
x4= (0.16695081, -0.33309245, 1.0000000)

Iteration Number: 5
y4= (1.6666950, -3.3333500, 10.000086) d4= 1.9999991
x5= (0.16668666, -0.33331639, 1.0000000)

Iteration Number: 6
y5= (1.6666687, -3.3333345, 10.000006) d5= 1.9999999
x6= (0.16666807, -0.33333214, 1.0000000)

Iteration Number: 7
y6= (1.6666668, -3.3333334, 10.000000) d6= 2.0000000
x7= (0.16666677, -0.33333325, 1.0000000)

Iteration Number: 8
y7= (1.6666667, -3.3333333, 10.000000) d7= 2.0000000
x8= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 9
y8= (1.6666667, -3.3333333, 10.000000) d8= 2.0000000
x9= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 10
y9= (1.6666667, -3.3333333, 10.000000) d9= 2.0000000
x10= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 11
y10= (1.6666667, -3.3333333, 10.000000) d10= 2.0000000
x11= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 12
y11= (1.6666667, -3.3333333, 10.000000) d11= 2.0000000
x12= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 13
y12= (1.6666667, -3.3333333, 10.000000) d12= 2.0000000
x13= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 14
y13= (1.6666667, -3.3333333, 10.000000) d13= 2.0000000
x14= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 15
y14= (1.6666667, -3.3333333, 10.000000) d14= 2.0000000
x15= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 16
y15= (1.6666667, -3.3333333, 10.000000) d15= 2.0000000
x16= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 17
y16= (1.6666667, -3.3333333, 10.000000) d16= 2.0000000
x17= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 18
y17= (1.6666667, -3.3333333, 10.000000) d17= 2.0000000
x18= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 19
y18= (1.6666667, -3.3333333, 10.000000) d18= 2.0000000
x19= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 20
y19= (1.6666667, -3.3333333, 10.000000) d19= 2.0000000
x20= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 21
y20= (1.6666667, -3.3333333, 10.000000) d20= 2.0000000
x21= (0.16666667, -0.33333333, 1.0000000)
Iteration Number: 1
y0= (3.0273924, -3.8029171, 13.486304) d0= 1.9741493
x1= (1.0000000, 1.0000000, 1.0000000)

Iteration Number: 2
y1= (1.7493556, -3.3806960, 10.247717) d1= 1.9975827
x2= (0.22447903, -0.28198365, 1.0000000)

Iteration Number: 3
y2= (1.6724019, -3.3366981, 10.017333) d2= 1.9998270
x3= (0.17070686, -0.32989747, 1.0000000)

Iteration Number: 4
y3= (1.6670698, -3.3335702, 10.001219) d3= 1.9999878
x4= (0.16695081, -0.33309245, 1.0000000)

Iteration Number: 5
y4= (1.6666950, -3.3333500, 10.000086) d4= 1.9999991
x5= (0.16668666, -0.33331639, 1.0000000)

Iteration Number: 6
y5= (1.6666687, -3.3333345, 10.000006) d5= 1.9999999
x6= (0.16666807, -0.33333214, 1.0000000)

Iteration Number: 7
y6= (1.6666668, -3.3333334, 10.000000) d6= 2.0000000
x7= (0.16666677, -0.33333325, 1.0000000)

Iteration Number: 8
y7= (1.6666667, -3.3333333, 10.000000) d7= 2.0000000
x8= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 9
y8= (1.6666667, -3.3333333, 10.000000) d8= 2.0000000
x9= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 10
y9= (1.6666667, -3.3333333, 10.000000) d9= 2.0000000
x10= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 11
y10= (1.6666667, -3.3333333, 10.000000) d10= 2.0000000
x11= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 12
y11= (1.6666667, -3.3333333, 10.000000) d11= 2.0000000
x12= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 13
y12= (1.6666667, -3.3333333, 10.000000) d12= 2.0000000
x13= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 14
y13= (1.6666667, -3.3333333, 10.000000) d13= 2.0000000
x14= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 15
y14= (1.6666667, -3.3333333, 10.000000) d14= 2.0000000
x15= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 16
y15= (1.6666667, -3.3333333, 10.000000) d15= 2.0000000
x16= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 17
y16= (1.6666667, -3.3333333, 10.000000) d16= 2.0000000
x17= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 18
y17= (1.6666667, -3.3333333, 10.000000) d17= 2.0000000
x18= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 19
y18= (1.6666667, -3.3333333, 10.000000) d18= 2.0000000
x19= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 20
y19= (1.6666667, -3.3333333, 10.000000) d19= 2.0000000
x20= (0.16666667, -0.33333333, 1.0000000)

Iteration Number: 21
y20= (1.6666667, -3.3333333, 10.000000) d20= 2.0000000
x21= (0.16666667, -0.33333333, 1.0000000)