Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.83 KB | None | 0 0
  1.   function [An, Bn, Cn, Dn, N] = qq2standard(A, B, C, D, forme)
  2.     n = size(A)
  3.     coeff = poly(A);
  4.     if isequal(forme, 'diag')
  5.    
  6.     elseif isequal(forme, 'commandable')
  7.         x = zeros(1,n);
  8.         for k = 1:n
  9.             x(k) = A^(k-1)*B;
  10.         end
  11.        
  12.         y = fliplr(eye(n));
  13.         for k = n-1:1
  14.             y = y + fliplr(ones(1, k) * coeff(k) ,n-k); %% Les coefficients coeff(k) sont les facteurs du polynome caractéristique
  15.         end
  16.        
  17.         N = x * y;
  18.         [An, Bn, Cn, Dn] = changebase(A, B, C, D, N);
  19.        
  20.     elseif isequal(forme, 'observable')
  21.             X = zeros(1,n);
  22.             for k = 1: n
  23.                 X(k) = (eye*(A')^(k-1)+ coeff(k-1)*(A')^(k-2)+coeff(1)*eye)*(C');
  24.             end
  25.             M = Inv(X);
  26.             N = M';
  27.            
  28.            
  29.     end
  30.  
  31. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement