Its often the case that the we need coefficients of the characteristic polynomial (**xA = λx**) rather than just the Eigen values and Eigen vectors of the matrix **A**, The following simple algorithm which can determine the coefficients of the polynomial from its roots (Eigen values) would be extremely handy, its a simple dynamic programming algorithm and also illustrates how quickly we can code
dynamic programming algorithms in Matlab because the matrices resize automatically.

% % eigen_poly_coeff: input 'A' should be a square matrix % The program finds the eigen values of A, and constructs % the caracteristic polynomial % % output is the order of coefficients in the increasing % degree order. % function retval = eigen_poly_coeff (A) v = eig(A)'; B = size(v); coeff_matrix = eye(1,(B(1,2)+1)); coeff_matrix(1,1) = v(1,1)*-1; coeff_matrix(1,2) = 1; for i=3:1:(B(1,2)+1) coeff_matrix(1,i) = 1; for j=(i-1):-1:1 coeff_matrix(1,j) = (coeff_matrix(1,j)* v(1,(i-1))*-1); if(j-1 >=1) coeff_matrix(1,j) = coeff_matrix(1,j)+coeff_matrix(1,j-1); end end end retval = coeff_matrix; endfunction

## 1 comment:

Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my blog, it is about the Wireless, I hope you enjoy. The address is http://wireless-brasil.blogspot.com. A hug.

Post a Comment