Tag: matlab

  • Calculate A to N power matrix using matrix diagonalization.

    This is matlab function to calculate sum of A to N power using matrix diagonalization, it assumes that matrix is a square matrix.

    function [x] = powersum(A, m)
    % Greg Bugaj
     % Y = powersum(A, n) gives an sum of  matrices to N power, if matrix size
    % is less than 2 then we simply return the input matrix
    % Input : A - an nxn matrix
    %         n - How many matrices to sum
    %Output x - summed matrix to N power.
    % P is our eigenvector, d is the diagonal to verify( inv(p)*A*p )
    x = A;
    [p d] = eigs(A);
    for i = 2 : m
        % x = x+(A^i); -- Just raise to power and sum 
        % note b * inv(A) is same as b/p
        x = x +  ((p * d^i) / p);
    end