introduction to matrix analysis theory and practice