I wish I had this when I was learning Linear Algebra. When it was taught to me, both in HS and College, there was not a word of motivation about why we were juggling numbers around in boxes. It was tedious and had seemed to have no connection to anything.
I developed a strong dislike for LA, if not outright fear and hatred. This from someone who majored in math at university. I later learned from reading Dr Oakley's book, _A Mind For Numbers_, that this is a perfect recipe for not mastering a subject. I was sabotaging my own learning by approaching it from the point of view of something to be despised. It was many years later after reading Oakley's book that I challenged myself to learn Linear Algebra.
I found the Coursera course Coding the Matrix https://codingthematrix.com/ perfect. Not only did Professor Philip Klein explain the subject well, but it was also a programming course in python. Coding the algorithms helped make them that much more concrete. I'm happy to say I finished the online course with 100% grade.
Unfortunately Coding the Matrix is no longer available on Coursera.
I know this thread is more about Strang being a teaching god, and he is. I wanted to add something on alternative ways to learn linear algebra.
This is a problem I always had in university. Higher math always seemed to start with "the definition of X is Z etc." and I would never know what's the purpose of doing this. When I attended a talk of Gilbert Strang many years later it was eye opening because it was a totally different approach that always accompanied theoretical concepts with a concrete interpretation.
Actually I now think it might also be a cultural thing. If you take a look at the approaches the English Wikipedia takes vs. the German Wikipedia take explaining a vector space you'll know what I mean:
I'd second the point on different cultures doing it differently. One of my profs once said he had a book written by two mathematicians, one German and another Italian. It was fairly evident who had worked on which part. He also mentioned that the "old style" German books would almost apologize if they "had" to use just a few pictures to illustrate something.
I had a math professor who told me that advanced math books are like Hoyle's Rules of Games. There are two ways you can use Hoyle's Rules of Games. You can memorize the rules of bridge and stop there, but then you will have a pretty dull experience. Or you can use the book as a tool to start playing bridge, and it will open you up to a rich and engaging activity.
Honestly I think we spend way too much teaching students calculus and differential equations and way too little on linear algebra. LA is a lot more useful for most real engineering work, particularly software engineering.
I had to build a somewhat basic SVG editor in React recently and the other devs on the team had to leave a lot of the core to me because I was the only one that remembered enough matrix math to do it.
No, linear algebra is not more useful than calculus or differential equations for any branch of engineering other than computer engineering. Computers engineering is the only discrete engineering discipline.
Every branch of science and engineering. e.g. optimizing distribution networks, predicting the weather, designing structures that won’t fall down, setting the orbits of rockets, controlling robots, simulating materials for 3d animation, designing new pharmaceutical molecules, analyzing data from high-energy physics experiments, ...
If you look at how people solve differential equations in practice, it’s all matrix algebra.
Linear algebra is also pervasive throughout pure mathematics.
Edit: I think everyone should also learn calculus though, and differential equations are the heart of calculus. Here’s an introductory calculus book http://www.math.smith.edu/~callahan/intromine.html and here’s an introductory linear algebra book https://web.stanford.edu/~boyd/vmls/ which try to get students closer to the way these tools get used in practice.
I used this course years ago while I was self-teaching CS, really great course. MIT in general makes some awesome stuff available -- so awesome, it helped this disgruntled lawyer get the hell out of law and into my dream field.
I can't express strongly enough how appreciative I am to MIT, and also schools like Stanford and Harvard, and Prof. Sedgewick from Princeton, for making courses like this publicly available.
I’m also a (formerly disgruntled) lawyer eternally grateful to Stanford and MIT for helping me escape. And like you, I cannot overstate my appreciation. If anyone involved in these courses stumbles upon this thread - thank you.
I've been on the other side (CS professor for two years, apparently students really loved my work) - if you can, email them and tell them about your appreciation. It's worth it.
I don't know about others, but in my case I had to put up with a lot of BS, and "older" colleagues that were envious of my "performance" (annual feedback reviews by students). These few emails (and two letters!!) went a long way for me.
Absolutely. One of the older tenured guys at my CS department spent his time playing poker. He blogged about it constantly -- when he wasn't blogging about his yacht which he ran aground. (Eeek!) Another took some of his salary and spent it on a share of a minor league baseball team. He kept talking about how much he loved hanging out with the players, shagging balls in the outfield.
But they kept coming up with excuses about why they couldn't pay me as much as them so I left. Boom. I encourage more professors to leave and more students to check out venues like Coursera and Udemy.
I used these videos to get up to speed on Linear Algebra while taking a grad-level machine learning course. I could not have made it through that course without these videos.
The one I'm currently in, software development. edit: I'm a relatively new arrival here, been paid to do it for ~1.5 years now, so I haven't yet had the opportunity to form a more specific aspirational sub-field.
It's what I should have just done straightaway -- dad's an engineer, his dad was an engineer, half his brothers are engineers -- but I didn't for a variety of personal reasons I won't get into here. I was always fascinated by computers and by prog langs in particular -- a deep curiosity about how text could turn into action, although I wouldn't have framed it like that as a kid. But I was the sort of dork who would check out books on C++ as a 10 year old despite not having access to a compiler or any idea what I was doing. This fascination kind of took a backseat until I was out of law school, working, and slowly realizing how miserable I was at the thought of 40+ more years of what I was doing.
So I took a long and circuitous route to get here, but now here I am, and eternally grateful for these sort of resources. Without them, the switch would have been way more difficult. It already took me 3 years of dedicated work; I can't imagine what I would have done without this stuff freely available. Probably would have had to pay to go back to school.
Gilbert Strang got me through linear algebra in University. Fifteen or so years later, I told my wife who went back to school as an older adult about him. He got her through, too.
His teaching capability is so great, we ended up buying his textbook and using that instead of the one assigned by her college. My wife ended up with the best grades in the class, but not only that, ended up actually learning the material and retaining it many years later. Her field is in no way related to mathematics, but it would not be an exaggeration to say that she benefited greatly from her maths exposure.
Related note: Strang's essay on the imbalance in education in favor of Calculus over Linear Algebra is (in my opinion at least) a great read, for those interested in the pedagogy of mathematics.
Definitely - I went through some of his lectures after I had read up on Linear Algebra as part of a course (from [1]) and had used it in a bunch of applications, but I still found the lectures worth going through if only because his fantastic exposition helped me visualize things better.
I already love this essay because I've been saying the same thing for years, and he even mentions "statistics and discrete mathematics" as something we should be doing more of; in short, calculus is useful for physicists and engineers, primarily, whereas statistics and discrete mathematics, properly taught and motivated, are useful for everybody.
For example, if there's a certain probability of people with cancer getting a positive test result, what's the probability of a positive test result meaning you have cancer? Too many people absolutely cannot approach that problem in any intelligent fashion.
(Side note: More classes should accept "there isn't enough information to give a coherent answer" as a correct result.)
You will need calculus for any non-trivial statistics though, unless you want statistics distilled into cook book style pre-canned formulas and recipes. Those are fine when you are dealing with a situation that has been anticipated 'just so'.
> You will need calculus for any non-trivial statistics though, unless you want statistics distilled into cook book style pre-canned formulas and recipes.
It's a matter of focus: The point isn't to derive statistics, any more than the point of a first semester course on differential calculus is to derive the real numbers and the infinitesimals. Calculus isn't useless, it's just not as useful unless you go into specific fields.
Statistical distributions and methods were all designed by humans for a particular purpose. If you understand calculus, you can start with a statement of the desired goal, and then work backwards to derive the formulas you need. The final form you get then makes sense, and you have some ownership of it. In a pinch you can re-derive it for yourself, but even if you look it up in a book you understand what the parts mean.
If you don’t know calculus, someone has to tell you the formulas, which will seem like mysterious completely arbitrary magic. Memorizing them will be a pain in the butt. When you try to use statistics you will make small mistakes which will lead to wrong or even entirely incoherent results, but you won’t notice because you’re just following a recipe you don’t understand.
Of course, to do real statistics you need linear algebra as well.
I taught a bunch of undergrad level Calculus courses and one or two Lineal Algebra classes using Strang's book. By far the most fun class I've taught, and it's very easy (and in my opinion almost mandatory) to add some numerics to it. Ok, cool, you can solve by hand Ax = b of a 3x3 matrix, now let's do it for a 1000x1000 matrix for one of many real world problems.
There are also tons of very complicated advanced calculus and differential equations concepts that have direct "discrete" analogues in linear algebra, and this become glaringly obvious when trying to say discretize and solve a partial differential equation.
Interesting read; what are good calculus resources that achieve Strang's outlook? I do know Strang has a free calculus book. I've taken calculus years ago and have forgotten most of it. I hated that it was taught to me in a rote way. I am looking for resources that teach the essence well similar to 3blue1Brown.
At a different college, I loved that class. It brought equations to within a hair's breath of symbolic data for me in 1+ dimensional arrays. It was absolutely essential for the honors chemistry/physics/compsci track.
I had an HP 48G calculator at the time that could do symbolic derivation and all of the matrix decompositions. And if it didn't have a function, it was easy to write your own in any of four (4) programming languages: symbolic user programs (User-RPL), their compiled language (System-RPL), C or assembly. The matrix editor looked exactly like a spreadsheet. What's cool about HP's Erable (CAS) is, just short of being LISP/Scheme, everything was a value. Compiled binaries could be pushed on the stack (RPN). Oh and programs could be copied to other HP 48G/GX's with it's incredibly-powerful serial IR port. Some ingenious soul figured out how to turn the calculator into a learning IR remote control with a library of preset manufacturer codes. (I once turned on all the TVs in the lecture hall from the back of the class (15 m away) with my calculator during lecture... and people freaked out. :D) People modded them with 2-8x as much memory by chip stacking and wiring the enable pin and an inverter to the processor. None of this 64KiB rubbish, 512KiB FTW. And if you couldn't see parens in your 3 line equation, there's a graphical equation editor. Finally, if you got bored of that, there's always the easter eggs with the team's name in a solved crossword puzzle and grayscale pictures of them (not like Tetris on an Agilent oscilloscope, but okay).
I preferred his competitor's book because it made sense to me, Anton's Elementary Linear Algebra, Applications Version
Strang is an excellent teacher and this an effective course for coming up to speed in Linear Algebra fundamentals.
I watched every lecture and did most of the homeworks a couple of summers ago in preparation for taking grad ML courses at Carnegie Mellon (10-601 Intro and 10-605 Scalable ML). The foundations that I built from Strang's course were essential to my success later.
Exactly this. I also studied from his video lectures and I owe most of my understanding of the topic to him.
He has an amazing ability to intuitively explain complex concepts step by step.
This is an excellent course. That's where I first learned about the "column picture" of matrix multiplication... and this after 10+ using linear algebra and teaching. Overall LA can be a complicated subject, but Strang does a good job at making it seem like common sense.
G-Strang! I took this class in the fall of 1999, and I remember thinking it was unusual that every lecture was being recorded. So cool to see it still having an impact 20+ years later.
Gilbert Strang got me through the more difficult of the two linear algebra gatekeeper classes in University. I didn't go to class once after the first week. I sent him a thank you email and he wrote a nice reply.
These videos helped me immensely when I was getting my Electrical Engineering degree. I didn't realize going into the degree a bulk of the coursework would be focused around fourier/laplace transforms and linear algebra.
I am not able to wait for a video to explain something, I prefer to read books. I don't know what is good about this teacher. Linear Algebra Done Right is a good book. I am not able to appreciate Gilbert Strang style. But algebra is easy to grasp if you are motivated and prepared for hard work. I recall he stressed SVD. Once you are up on statistics SVD is a very useful tool, but I find his style overly pragmatic, if you are able to read a book like Linear Algebra Done Right you will appreciate what a non pragmatic style mean here. Anyway this can be sour grapes, I would like my students to enjoy my lessons. Algebra Done Right goal is that you can demonstrate and learn for facts and proofs. GS book is about using the tools of linear algebra.
I'm a current CS student. I've heard that Linear Algebra is a worthwhile class for students studying Computer Science. Yet, my program doesn't have it as a requirement. Can anyone explain in broad terms if this course is something I should consider taking anyways?
Very loosely, you can think of "Linear Algebra" as "the type of math that computers are really good at". For this reason and others, it's really heavily used in many of the most interesting sub-fields of software development: ML, statistics, HPC, etc.
It's also a topic that most people are unlikely to pick up on their own, even if they are somewhat motivated. Working through the exercises in a math textbook doesn't give most people the "feeling of accomplishment" feedback loop that e.g. playing with a new web dev framework does.
For those reasons, I would highly recommend taking it in college, because the structure and commitment mechanism of a college course will help you get yourself through the material.
One major caveat: In my opinion, courses that only cover pencil & paper "theory" exercises are much worse than courses that have a combination of pencil & paper work and problem sets that require the use of software tools like Matlab, Octave, or Python/NumPy. In the real world, you're always going to use software tools for the actual number crunching, so it's extremely valuable to get familiar with actually using them. It can also help you on problem sets in your other courses - using Matlab or Octave on your laptop is much faster and more pleasant than keying numbers into the matrix interface on a TI-84!
If you ever intend to have anything to do with machine learning, computer graphics, or work for a quant firm[1], yes.
If you want to work on adtech, CRUD apps, or uber-but-for-catsitters startups, probably not. I have been working on two out of the three for a decade, and in all this time, I haven't had to use a lick of linear algebra.
From an academic standpoint, it's arguably a more useful course for your general education than calculus (Which is a requirement for just about any degree), but less useful than statistics.
[1] If you ever intend to work for a quant firm, you should probably take a lot more math courses than just linear algebra.
In comparison, I'd say Strang's class is more formal and feels more like work, and those videos will be more fun while fullfilling the same purpose, to give you a lasting understanding of what linear algebra is and where it might come in handy.
I gained some great intuition from http://matrixmultiplication.xyz/ and (of all things) a paper named "An Introduction to Quantum Computing"[0].
Page 3 of that paper lays out matrix multiplication (e.g.: applying a "transformation matrix" in the spatial parlance of 3blue1brown's videos) as a traversal of a directed graph.
This isn't super readable (it's from my notes to self), but my intuition is:
Matrix multiplication is a graph traversal:
* Each i,j in transform matrix (on left) pulls N (the value at that index) times the j-th value in the input vec (on right) into the i-th output vec index
* This is equivalent to an N weighted vertex from the j-th node to i-th node, so i takes N of j's previous value
* The input (right side) is a matrix? It's just multiple column vectors next to each other, repeat the above process and make a new output vector for each iteration
If you're interested in graphics, animation, simulation, machine learning, or other topics, knowing the concepts in linear algebra will be worthwhile.
Most higher-level math will be easier for you if you have familiarity with vector calculus and linear algebra, so if you're the kind of person who benefits from a structured class when learning new/weird ideas, it's worth studying in school. (I'd also generally recommend a course in probability and statistics)
Linear algebra is like the Swiss Army knife of science, and it is used in pretty much all areas of science for modelling. I assume you remember high school math functions, and how useful they are to help us describe input-output relationships between real number inputs and real number outputs.
Now imagine the inputs are vectors and the outputs are vectors too, in other words we would need vector-functions. Many problems in math, science, computing, economics, biology — you name it — are of this multidimensional nature, so the more you know about vector functions the better models you can build.
As you can imagine describing arbitrary input-output relationships between high-dimensional spaces is quite complicated. Think of all the possible ways that a vector input vec{x} = [x1,x2,...xn] can affect the coefficients of a vector output vec(y) = [y1,y2,...ym]. If you allow arbitrary functions like quadratics, sine, cosine, exp, etc. there would be way too many different ways to map vec(x) to vec(y). Too many ways...
This is where the "linear" part of linear algebra comes in. Instead of arbitrary input output transformations vec(x) --> vec(y), what if we restrict oursleves only to relationships where the output yi is some linear combination of the inputs x1 x2 .. xn, where linear combination means
y1 = m11*x1 + m12*x2 + ... + m1n*xn
in other words, take the outputs are equal to the inputs times some proportionality coefficients mij.
The other output coefficients y2...ym are computed in the same way with different coefficients
thus the overall map vec(x) --> vec(y) has a total of m*n coefficients mij.
This map between inputs vec(x) and outputs vec(y) is the vector-equivalent of the single-variable function y=mx (proportionality relationship, or line with slope m passing through the origin if your prefer to think of it geometrically). We call these maps "linear transformations" and they have really nice properties. If you study linear algebra you'll learn all about them. Computationally (usefully), geometrically (Whoooa moments), and theoretically (knowledge buzz). And that's just the math part! Once you start to look into applications, it goes really far... Others in this thread have already mentioned numerous areas of applications in CS areas, and it's the same in biology, chemistry, economics, etc. TL;DR: linear algebra is good stuff!
Gilbert Strang has this lovely patrician, avuncular energy that puts me at ease. I feel like he's as likely to pour me a cup of tea as he is to expound on matrices. He feels less like an MIT professor and more like a shared pedagogical treasure of our internet age.
I have always thought that the best way to learn linear algebra would involve constant visualization and interaction on a computer.
My LA teacher in college told us that he visualized the left matrix in a matrix multiplication flipping over and crashing down on top of the right matrix. (or is that backwards?) The only way I learned things like vector spaces and orthogonality was by visualizing them in my head, Bret-Victor style.
In my totally unqualified opinion, there is a huge opportunity for a software product that allows people to play with and explore mathematical concepts in a visual and fun way.
> the left matrix in a matrix multiplication flipping over and crashing down on top of the right matrix. (or is that backwards?)
Both ways work. A row from the left matrix rotated 90° clockwise to line up with the rows of the right matrix gives you the coefficients to use to combine those rows into a row of the result matrix. Conversely, a column from the right matrix rotated 90° anticlockwise to line up with the columns of the left matrix gives you the coefficients to use to combine those columns into a column of the result matrix.
I didn't fully understand that until I read Strang's book.
Before I dropped out of FSU, I managed to rope myself into two math classes (Complex Variables and Game Theory), both of which had a strict requirement of Linear Algebra, which I hadn't taken.
I was a bit panicked because it was a bit too late to sign up for anything else, and so I binged through this MIT course, and learned just enough to get permission from both the professors to still let me take the classes. It definitely would have been better to have taken linear algebra directly, but having this as a resource was super valuable.
I watched a few of the lectures in the past. I was really impressed with his teaching skills but the quality of some of the videos was really bad it really took away from the learning experience. Really wish there could be a professionally recorded version of him.
Is there a text focusing on the known differences between the lower dimensional spaces of 1-4 dimensions and the higher-dimensionality spaces commonly used in DNN calculations?
You might have to be a bit more specific about what exactly you are asking, but for example this paper and its references might be an interesting start: https://bib.dbvis.de/uploadedFiles/155.pdf
UC Berkeley vandalized their historical video lecture collection by deleting it in response to a government ADA enquiry and pressure from "progressives" on campus. Does anyone known why videos like those of Strang at MIT haven't had the same fate?
Cautionary note: you might better look for another resource to learn linear algebra. Don’t waste your time watching these videos just because it is from MIT
Strang in general, and these videos in particular, are strongly recommended every time self-teaching linear algebra comes up here. In 13 years on hacker news I think this is the first negative thing about Strang I have read. Can you expand on your criticism?
Strang course is too verbose and one does not need the whole course to do practical work. Linear algebra done right is the book you need if you want to apply in practice rather than just watching mit videos. https://www.amazon.com/Linear-Algebra-Right-Undergraduate-Ma...
Not OP. I don't have anything against Strang, I think his teaching is very good, but it's worth noting that his approach to the subject is very applied and not very general. This is totally fine if applications are what you're interested in but for somebody who wants to learn more about the theory and the underlying concepts, there are better resources.
I've watched all of these, and they are hands down the best intro linear algebra lectures you're going to get, anywhere, ever. The concepts are well motivated, and he places appropriate emphasis on the "big picture". It is remarkably easy to follow his train of thought as he introduces new concepts.
> Don’t waste your time watching these videos just because it is from MIT
This is actually pretty good advice. A lot of the other MIT Open Courseware sites were ... not very good. At all. Some were only a syllabus. Some of the video lectures were utterly unwatchable.
In this case, however, Dr. Strang's reputation is well deserved. Absolutely, don't just watch these because they're from a 'good' school. But do watch them because they are fantastic, if you have an interest in his topics.
I haven't watched the 1999 version (the one linked) of this class, but I have watched Gilbert Strang's newer lectures on this subject and they were absolutely wonderful. The book is great as well.
Don't watch these just because it's from MIT, watch them just because of Strang!
Not. It's an extremely fundamental area of mathematics, necessary for really understanding any mathematical subject (including statistics, machine learning, signal processing etc) but it's not at all necessary for the vast majority of programming / software engineering tasks, and indeed you'll find excellent software engineers who haven't got a clue about linear algebra. I think the reason you see it discussed on HN is because many people here are interested in mathematics and that sort of theoretical way of thinking.
I don't mean to sound negative about it though. For example, the notions of abstraction and interface are very important in both maths and software.
People frequently recommend Strang's teaching as an amazing pedagogical approach for engineers and applied mathematicians, but I find I'm frustrated every time I read his books or listen to his lectures. They don't work well for me and I've found much better alternatives
I developed a strong dislike for LA, if not outright fear and hatred. This from someone who majored in math at university. I later learned from reading Dr Oakley's book, _A Mind For Numbers_, that this is a perfect recipe for not mastering a subject. I was sabotaging my own learning by approaching it from the point of view of something to be despised. It was many years later after reading Oakley's book that I challenged myself to learn Linear Algebra.
I found the Coursera course Coding the Matrix https://codingthematrix.com/ perfect. Not only did Professor Philip Klein explain the subject well, but it was also a programming course in python. Coding the algorithms helped make them that much more concrete. I'm happy to say I finished the online course with 100% grade.
Unfortunately Coding the Matrix is no longer available on Coursera.
I know this thread is more about Strang being a teaching god, and he is. I wanted to add something on alternative ways to learn linear algebra.