Complete linear algebra: theory and implementation
4.6 (2,205 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
14,539 students enrolled

Complete linear algebra: theory and implementation

Learn concepts in linear algebra and matrix analysis, and implement them in MATLAB and Python.
4.6 (2,205 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
14,533 students enrolled
Created by Mike X Cohen
Last updated 5/2020
English
English, Italian [Auto-generated], 1 more
  • Polish [Auto-generated]
Current price: $34.99 Original price: $49.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 25.5 hours on-demand video
  • 14 articles
  • 14 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Understand theoretical concepts in linear algebra, including proofs
  • Implement linear algebra concepts in scientific programming languages (MATLAB, Python)
  • Apply linear algebra concepts to real datasets
  • Ace your linear algebra exam!
  • Apply linear algebra on computers with confidence
  • Gain additional insights into solving problems in linear algebra, including homeworks and applications
  • Be confident in learning advanced linear algebra topics
  • Understand some of the important maths underlying machine learning
  • * Manually corrected closed-captions *
Requirements
  • Basic understanding of high-school algebra (e.g., solve for x in 2x=5)
  • Interest in learning about matrices and vectors!
  • (optional) Computer with MATLAB, Octave, or Python (or Jupyter)
Description

You need to learn linear algebra!

Linear algebra is perhaps the most important branch of mathematics for computational sciences, including machine learning, AI, data science, statistics, simulations, computer graphics, multivariate analyses, matrix decompositions, signal processing, and so on.

You need to know applied linear algebra, not just abstract linear algebra!

The way linear algebra is presented in 30-year-old textbooks is different from how professionals use linear algebra in computers to solve real-world applications in machine learning, data science, statistics, and signal processing. For example, the "determinant" of a matrix is important for linear algebra theory, but should you actually use the determinant in practical applications? The answer may surprise you, and it's in this course!

If you are interested in learning the mathematical concepts linear algebra and matrix analysis, but also want to apply those concepts to data analyses on computers (e.g., statistics or signal processing), then this course is for you! 

Unique aspects of this course

  • Clear and comprehensible explanations of concepts and theories in linear algebra.

  • Several distinct explanations of the same ideas, which is a proven technique for learning.

  • Visualization using graphs, numbers, and spaces that strengthens the geometric intuition of linear algebra.

  • Implementations in MATLAB and Python. Com'on, in the real world, you never solve math problems by hand! You need to know how to implement math in software!

  • Beginning to intermediate topics, including vectors, matrix multiplications, least-squares projections, eigendecomposition, and singular-value decomposition.

  • Strong focus on modern applications-oriented aspects of linear algebra and matrix analysis.

  • Intuitive visual explanations of diagonalization, eigenvalues and eigenvectors, and singular value decomposition.

Benefits of learning linear algebra

  • Understand statistics including least-squares, regression, and multivariate analyses.

  • Improve mathematical simulations in engineering, computational biology, finance, and physics.

  • Understand data compression and dimension-reduction (PCA, SVD, eigendecomposition).

  • Understand the math underlying machine learning and linear classification algorithms.

  • Deeper knowledge of signal processing methods, particularly filtering and multivariate subspace methods.

  • Explore the link between linear algebra, matrices, and geometry.

Why I am qualified to teach this course:

I have been using linear algebra extensively in my research and teaching (primarily in MATLAB) for many years. I have written several textbooks about data analysis, programming, and statistics, that rely extensively on concepts in linear algebra. 

So what are you waiting for??

Watch the course introductory video and free sample videos to learn more about the contents of this course and about my teaching style. If you are unsure if this course is right for you and want to learn more, feel free to contact with me questions before you sign up.

I hope to see you soon in the course!

Mike


Who this course is for:
  • Anyone interested in learning about matrices and vectors
  • Students who want supplemental instruction/practice for a linear algebra course
  • Engineers who want to refresh their knowledge of matrices and decompositions
  • Biologists who want to learn more about the math behind computational biology
  • Data scientists (linear algebra is everywhere in data science!)
  • Statisticians
  • Someone who wants to know the important math underlying machine learning
  • Someone who studied theoretical linear algebra and who wants to implement concepts in computers
  • Computational scientists (statistics, biological, engineering, neuroscience, psychology, physics, etc.)
  • Someone who wants to learn about eigendecomposition, diagonalization, and singular value decomposition!
Course content
Expand all 178 lectures 25:20:39
+ Introductions
7 lectures 39:32

Get a broad overview of linear algebra

Preview 08:03

Learn about some applications of linear algebra

Linear algebra applications
05:57
An enticing start to a linear algebra course!
09:09

See how to use the internet to run the Python code for this course, with or without installing Jupyter on your computer.

Using MATLAB, Octave, or Python in this course
03:52
Leaving reviews, course coupons
03:45
Using the Q&A forum
04:47
+ Vectors
24 lectures 03:26:41

zip file that contains exercises and solutions (pdf) and MATLAB and Python code.

Exercises + code
00:02

Learn two ways of interpreting vectors (this is the "algebraic-geometric dualist perspective" in linear algebra).

Algebraic and geometric interpretations of vectors
09:06

How to do basic arithmetic with vectors.

Vector addition and subtraction
05:51

Multiply a vector by a number, and learn why "scalars" are called scalars.

Vector-scalar multiplication
06:32

Arguably the most important and fundamental computation in all of linear algebra!

Vector-vector multiplication: the dot product
07:02

Learn several important properties of the vector dot product.

Dot product properties: associative, distributive, commutative
12:00

Use a for-loop to compute dot products between corresponding columns.

Code challenge: dot products with matrix columns
06:14

Learn to compute the length of a vector.

Vector length
05:17

Find the coding bug!

Vector length in MATLAB
1 question

How to interpret the sign of a dot product from a geometric perspective.

Preview 15:11

Determine whether two vectors in R3 are orthogonal.

Vector orthogonality
1 question

Use the dot product sign to infer geometric relationships.

Relative vector angles
1 question

Implement what you learned in code!

Code challenge: dot product sign and scalar multiplication
10:42

Is the dot product commutative? Use a computer to find out!

Code challenge: is the dot product commutative?
07:24

Learn the "sensible way" to multiply two vectors.

Vector Hadamard multiplication
02:25

Create a matrix from two vectors using the outer product.

Outer product
08:07

The special multiplication for 3-D vectors.

Vector cross product
06:28

Learn the basics of complex numbers and complex vectors.

Vectors with complex numbers
08:17

If you ever work with complex numbers in linear algebra, you need to know about the Hermitian!

Hermitian transpose (a.k.a. conjugate transpose)
11:44

"Normalize" a vector by giving it length=1.

Interpreting and creating unit vectors
05:50

Important linear algebra terminology.

Dimensions and fields in linear algebra
07:54

A subspace is an important concept in linear algebra that is fundamental for many other topics.

Subspaces
15:50

Two very different but easily confused topics.

Subspaces vs. subsets
05:47

Learn the algebraic and geometric interpretations of a span of a set of vectors.

Span
11:11

Determine whether a vector is in the span of a set of vectors.

In the span?
1 question

The linear algebra declaration of linear independence! 

Linear independence
15:34

Combine independence and basis into one concept.

Basis
11:51
+ Introduction to matrices
10 lectures 54:48

zip file that contains exercises and solutions (pdf) and MATLAB and Python code.

Exercises + code
00:02

Learn the basic terminology of matrices.

Matrix terminology and dimensionality
08:14
Matrix sizes and dimensionality
1 question

Many matrices are given special names, here are some of them.

A zoo of matrices
11:21
Can the matrices be concatenated?
1 question

Basic arithmetic with matrices.

Matrix addition and subtraction
05:52

Multiply a matrix by a number.

Matrix-scalar multiplication
01:41

Use computers to test whether u(A+M) = uA+uM

Code challenge: is matrix-scalar multiplication a linear operation?
05:33

Flipping off a matrix or vector is actually a good thing in linear algebra.

Transpose
06:21

What you learned with complex vectors applies to matrices.

Complex matrices
01:51

True or false

Addition, equality, and transpose
1 question

How to work with the diagonal elements of a matrix.

Diagonal and trace
05:51

Apply your knowledge to learn a new concept in linear algebra.

Code challenge: linearity of trace
08:02
+ Matrix multiplications
20 lectures 02:44:23

zip file that contains exercises and solutions (pdf) and MATLAB and Python code.

Exercises + code
00:03

Matrix multiplication gets its own introduction.

Introduction to standard matrix multiplication
08:17

Strange but true: There are four different ways to think about matrix multiplication.

Four ways to think about matrix multiplication
11:55

Implement matrix multiplication in code.

Code challenge: matrix multiplication by layering
07:44

Diagonal matrices are convenient for many reasons, including simplicity of multiplication.

Matrix multiplication with a diagonal matrix
03:42

Learn the "LIVE EVIL" rule!

Order-of-operations on matrices
05:56

Key properties of matrix-vector multiplication.

Matrix-vector multiplication
14:07

Find the value for * that makes the equation valid.

Find the missing value!
1 question

A geometric interpretation of matrix-vector multiplication.

2D transformation matrices
10:54
Code challenge: Pure and impure rotation matrices
10:25

Also, gain new insight into the meaning of singular values!

Code challenge: Geometric transformations via matrix multiplications
13:15

Two key matrix identities lead to the zero matrix and the identity matrix.

Additive and multiplicative matrix identities
04:45

Learn how to create symmetric matrices.

Additive and multiplicative symmetric matrices
11:26

Yet another way to multiply matrices.

Hadamard (element-wise) multiplication
02:34

Determine whether two operations on matrices give identical results.

Matrix operation equality
1 question

Use code to learn an important concept in linear algebra.

Code challenge: symmetry of combined symmetric matrices
09:08

Is the product of two symmetric matrices symmetric? Find out!

Multiplication of two symmetric matrices
09:42

Use code to learn a special property of multiplication with diagonal matrices.

Code challenge: standard and Hadamard multiplication for diagonal matrices
04:56

Create a Fourier matrix and implement the Fourier transform.

Code challenge: Fourier transform via matrix multiplication!
10:12

The Frobenius dot product is used often in statistics and machine learning.

Frobenius dot product
08:04

Learn several commonly used matrix norms.

Matrix norms
12:54

Conceptual and implementational aspects of matrix division.

What about matrix division?
04:24
+ Matrix rank
11 lectures 01:37:02

zip file that contains exercises and solutions (pdf) and MATLAB and Python code.

Exercises + code
00:02

Learn the key properies and uses of matrix rank.

Rank: concepts, terms, and applications
10:50
Maximum possible rank.
1 question

Learn the distinction between rank in a first-year course vs. rank in real-world applications.

Computing rank: theory and practice
16:22

Upper bounds of the ranks of added and multiplied matrices.

Rank of added and multiplied matrices
11:46

Test your knowledge of the rank of summed and multiplied matrices.

What's the maximum possible rank?
1 question

Create an MxN matrix with rank r.

Code challenge: reduced-rank matrix via multiplication
07:53

Does scalar multiplication change the rank of a matrix? Test your hypothesis in code!

Code challenge: scalar multiplication and rank
12:10

Rank of our favorite type of matrix: A^TA.

Rank of A^TA and AA^T
10:41

Use code to confirm your theoretical knowledge.

Code challenge: rank of multiplied and summed matrices
07:06

Transform a rank-deficient to a full-rank matrix using this one simple trick!

Making a matrix full-rank by "shifting"
10:23

Use code to test span.

Code challenge: is this vector in the span of this set?
06:46
Course tangent: self-accountability in online learning
03:03
+ Matrix spaces
9 lectures 01:14:11

zip file that contains exercises and solutions (pdf) and MATLAB and Python code.

Exercises + code
00:00

Apply a concept you've already learned (span) to a new domain.

Column space of a matrix
13:29

The column space of a matrix, visualized in MATLAB.

Column space, visualized in MATLAB
03:40

Really, it's the same as the column space, but transposed.

Row space of a matrix
04:25

Learn how to interpret and find the "null space" of a matrix.

Null space and left null space of a matrix
14:39

Learn some interesting features of matrix spaces.

Column/left-null and row/null spaces are orthogonal
10:47

See how the puzzle pieces of matrix spaces all fit together.

Dimensions of column/row/null spaces
08:10

See an example of extracting bases for the four subspaces of a matrix.

Example of the four subspaces
11:09

These equations look simple, but they are really important for applied linear algebra.

More on Ax=b and Ax=0
07:52
+ Solving systems of equations
8 lectures 01:18:02

zip file that contains exercises and solutions (pdf) and MATLAB and Python code.

Exercises + code
00:01

Understand the algebra and geometry and systems of equations.

Preview 14:53

Converting equations into matrices is the first step of advanced statistics and model-fitting.

Converting systems of equations to matrix equations
04:23

Use Gaussian elimination to solve a system of equations.

Gaussian elimination
14:42

Learn how to recognize and compute the echelon form of a matrix, and how to obtain the pivots.

Echelon form and pivots
07:21

Compute the reduced row echelon form and see how the RREF is used in solving systems of equations.

Reduced row echelon form
16:20

See the RREF form of difference kinds of matrices.

Code challenge: RREF of matrices with different sizes and ranks
10:59

How does RREF affect matrices spaces? Watch to find out!

Matrix spaces after row reduction
09:23
+ Matrix determinant
8 lectures 58:55

pdf file that contains exercises and solutions (pdf).

Exercises
00:01

Learn the key properies and uses of matrix rank.

Determinant: concept and applications
05:59

Learn the shortcut to compute the determinant of a 2x2 matrix.

Determinant of a 2x2 matrix
07:03

See the difference between determinant in theory and determinant in computer applications.

Code challenge: determinant of small and large singular matrices
08:39

Learn the shortcut to compute the determinant of a 2x2 matrix.

Determinant of a 3x3 matrix
13:13

See what happens when you swap rows of larger matrices.

Code challenge: large matrices with row exchanges
05:02

A different perspective on the determinant will lead the way towards discovering eigenvalues!

Find matrix values for a given determinant
04:51

Discover the effects of "shifting" a matrix on its determinant.

Code challenge: determinant of shifted matrices
14:07
+ Matrix inverse
13 lectures 01:46:03

zip file that contains exercises and solutions (pdf) and MATLAB and Python code.

Exercises + code
00:02

Learn the key concepts and uses of the matrix inverse.

Matrix inverse: Concept and applications
12:40

See how the inverse is computed and visually represented.

Computing the inverse in MATLAB
03:13

There is a handy short-cut for inverting a 2x2 matrix!

Inverse of a 2x2 matrix
07:55

This is the full algorithm to compute the inverse of any invertible matrix.

The MCA algorithm to compute the inverse
13:58

You know the theory, now make the magic happen in MATLAB (Or Python)!

Code challenge: Implement the MCA algorithm!!
15:00

Another way to compute the inverse is RREF, which has a more intuitive explanation compared to the MCA procedure.

Computing the inverse via row reduction
12:03

Use code to discover an interesting property of inverses of diagonal matrices.

Code challenge: inverse of a diagonal matrix
08:36

Think a rectangular matrix can't be inverted? Think again!

Preview 10:14

See how the one-sided inverse is implemented in MATLAB.

One-sided inverses in MATLAB
06:27

One inverse to rule them all!

Proof: the inverse is unique
03:16

A gentle introduction to the Moore-Penrose pseudoinverse.

Pseudo-inverse, part 1
08:12

Find out what happens when you compute the pseudoinverse of an invertible matrix.

Code challenge: pseudoinverse of invertible matrices
04:27
+ Projections and orthogonalization
13 lectures 02:02:15

zip file that contains exercises and solutions (pdf) and MATLAB and Python code.

Exercises + code
00:02

Learn how to project a point onto a line.

Projections in R^2
08:35

Extend the projection formula to any number of dimensions.

Projections in R^N
10:19

Decompose a vector into two parts -- orthogonal and parallel -- relative to another vector.

Orthogonal and parallel vector components
12:38

Translate your theoretical knowledge of vector decomposition into code!

Code challenge: decompose vector to orthogonal components
11:27

Know the key properties and definitions of an orthogonal matrix.

Orthogonal matrices
12:02

Learn the textbook procedure for orthogonalizing a matrix (and see why it's better to have computers do it for you!).

Gram-Schmidt procedure
12:43

Take the Gram-Schmidt procedure to the next level!

QR decomposition
13:37

Implement your theoretical knowledge in computers!

Code challenge: Gram-Schmidt algorithm
13:34

Take the Gram-Schmidt procedure to the next level!

Preview 01:45

Apply your theoretical knowledge in code!

Code challenge: Inverse via QR
08:07

Warning: this one's hard but rewarding!

Code challenge: Prove and demonstrate the Sherman-Morrison inverse
12:54

Strange but true! Don't believe it, prove it!

Code challenge: A^TA = R^TR
04:32