Prerequisites & Notation

Before You Begin

This chapter assumes comfort with NumPy array creation, indexing, broadcasting, and basic matrix concepts from undergraduate linear algebra. If any of these items feel completely foreign, review the linked material first.

  • NumPy array creation, slicing, and broadcasting (Chapter 5)(Review ch05)

    Self-check: Can you create a 2D array and compute a matrix-vector product with @?

  • Complex numbers and conjugates

    Self-check: Do you know that (a+jb)=ajb(a + jb)^* = a - jb and z2=zz|z|^2 = z z^*?

  • Basic linear algebra: matrix multiplication, determinants, eigenvalues

    Self-check: Can you compute the determinant of a 2x2 matrix by hand?

  • Python functions, closures, and decorators (Chapter 2)(Review ch02)

    Self-check: Can you write a decorator that times a function?

Notation for This Chapter

Symbols and conventions introduced in this chapter. We use jj for the imaginary unit (engineering convention) and boldface for vectors and matrices.

SymbolMeaningIntroduced
A\mathbf{A}, B\mathbf{B}Matrices (uppercase boldface)s01
x\mathbf{x}, b\mathbf{b}Column vectors (lowercase boldface)s01
AT\mathbf{A}^T, AH\mathbf{A}^HTranspose and conjugate (Hermitian) transposes01
tr(A)\mathrm{tr}(\mathbf{A})Trace of matrix A\mathbf{A} (sum of diagonal elements)s01
det(A)\det(\mathbf{A})Determinant of square matrix A\mathbf{A}s01
κ(A)\kappa(\mathbf{A})Condition number mathbfAcdotmathbfA1\\|\\mathbf{A}\\| \\cdot \\|\\mathbf{A}^{-1}\\|s02
σi\sigma_iSingular values of a matrix, ordered sigma1gesigma2gecdots\\sigma_1 \\ge \\sigma_2 \\ge \\cdotss02
lambdai\\lambda_iEigenvalues of a matrixs02
otimes\\otimesKronecker product of two matricess04
mathrmvec(mathbfA)\\mathrm{vec}(\\mathbf{A})Vectorization operator — stacks columns of mathbfA\\mathbf{A} into a single vectors04
emathbfAe^{\\mathbf{A}}, mathrmexpm(mathbfA)\\mathrm{expm}(\\mathbf{A})Matrix exponential sumk=0inftymathbfAk/k!\\sum_{k=0}^{\\infty} \\mathbf{A}^k / k!s05
\\mathbf{A}^\\daggerMoore-Penrose pseudoinverses06