||'''Book'''|| Linear Algebra || ||'''Author'''|| Gilbert Strang || ||'''Edition'''|| || /* code_begins */ {{{ def is_uniq(l): a=set() for i in l: a.add(i) b= list(a) if len(l)==len(b): return True else: return False def is_diag(X): l=X.eigenvalues() if is_uniq(l): return True else: return False def diagonalize(X): if is_diag(X): a= X.eigenvectors_right() l=[] for i in a: l.append(list(i[1][0])) S=transpose(matrix(l)) D=(S^(-1))*X*S return D,S else: print "not diag" A1=matrix([[4,3],[1,2]]) D=diagonalize(A1)[0] S=diagonalize(A1)[1] #A1=S*D*S**(-1) #Therefore A^(k)=S*D^(k)*S**(-1) S*D^(100)*S**(-1) out:[5916456789157588540587964239620896722549048263317672535777091979980469 5916456789157588540587964239620896722549048263317672535777091979980468] [1972152263052529513529321413206965574183016087772557511925697326660156 1972152263052529513529321413206965574183016087772557511925697326660157] #Therefore this matrix A^100 }}} /* code_ends */ * '''Solution by''': * , , * , ,