Defining subspaces¶
TODO: add a note about needing to know spans and linear (in)dependence first
TODO: Write the following conversation into a nice derivation
Definition with adding and scaling¶
Akuli ignoring matrices, what operations do we use in linear algebra anyway?
Akuli we have vector+vector and number*vector
Akuli together with those we can do linear combinations
Akuli ok?
adder ok
Akuli subtraction isn't really a separate operation: v-w = v + (-1)*w
Akuli just consists of those two
Akuli ok?
adder yeah likewise for division 1/x
adder * 1/x
adder (correct?)
Akuli yeah, note that we never divide by vectors
Akuli so vector/2 is (1/2)*vector
Akuli but 2/vector is undefined and bad
adder ok
Akuli so it's really just vector+vector and number*vector
adder just one sec
adder how about dot and cross products?
Akuli we haven't used them yet
adder that still falls within *
Akuli hmm, yes and no
adder are they valid lin. alg. operations?
Akuli i said "ignoring matrices"
Akuli i should have said "ignoring matrices and a lot of other operations" :D
adder ok
Akuli but really the core of the thing is vector+vector and number*vector
Akuli a lot can be done with just those
adder ok
Akuli linear independence and spans, for example
Akuli our next concept is a subspace
adder what is ittttttt
Akuli a set of vectors can either be a subspace or not be a subspace
Akuli so a subspace is a set of vectors that satisfies specific conditions
adder is this maybe the R thing I keep seeing on #math
Akuli there's 3 conditions: it must be non-empty, adding vectors in the set must not produce anything outside the set, and multiplying vectors of the set by any number also must produce vectors in the set
Akuli so basically, it must be not a dumb corner case we want to ignore (non-empty)
adder ok that sounds simple
Akuli and when you do our two favorite operations, you don't end up outside that set, you can basically calculate with just the elements of that set without needing anything from the outside
Akuli definition ok?
adder the name checks out
adder yeah
Akuli yeah it does
Akuli "space" in general means something where you can work in
Akuli "subspace" is just a subset inside the set of all n-dimensional vectors
Akuli ok?
adder ok
Akuli let's explore what sets are subspaces and what aren't
Akuli let's start small
Akuli is {(1,0)} a subspace?
Akuli it's non-empty, that checks out
Akuli let's try adding
adder with itself?
Akuli well, we need to pick two subspace elements to add
adder there are no other vectors
Akuli it should work for any two
Akuli so we'll have to add it with itself because there's no other choice
adder aha ok
Akuli (1,0) + (1,0) = (2,0)
Akuli oops
adder then it's not because we get 2, 0
Akuli yeah, not a subspace
Akuli let's try to fix this problem by adding (2,0) there
Akuli {(1,0), (2,0)}
Akuli is this a subspace?
adder no, (3,0) is outside the set
Akuli yeah :D
Akuli ok, let's say it's {(1,0), (2,0), (3,0), ...}
adder {(0,0)} is?
Akuli we add all positive integers
Akuli good!
Akuli {(0,0)} is a subspace
Akuli it satisfies all the rules: no matter what you do you stay in that set :)
Akuli ok?
adder ok
Akuli so let's try to get our {(1,0)} set thing to work
Akuli we have to add at least all vectors like (positive_integer, 0)
Akuli just because of +
Akuli ok?
adder yeah
Akuli so let's say it's {(1,0), (2,0), (3,0), ...}
Akuli then it satisfies the + rule, and also is non-empty
adder as long as it has the null vector it's a subspace
adder (I think)
Akuli let's talk about that then
adder because (3,0) * (0,0) = (0,0)
Akuli we don't have vector*vector, only vector*number
Akuli but let's try {(3,0), (0,0)}
Akuli it's not actually a subspace
Akuli (3,0) + (3,0) = (6,0)
Akuli goes outside it again
Akuli ok?
adder but why are you not adding it up with (0,0)? why (3,0)?
Akuli ah, the definition was a bit unclear
Akuli you should be able to freely combine any vectors within the subspace
Akuli whatever vectors you pick, it has to stay in the subspace for it to be a subspace
adder aha so it must stand for any pair of vectors within the set
Akuli right
Akuli and similarly in multiplication, it must work with any vector and any number
adder but where do we get a number? it's a set of vectors
Akuli a set of vectors is a subspace if ... and (any vector from the set)*(any number) is in the set
adder ahaa
adder ok
Akuli so for example, our {(1,0), (2,0), ...} thing is definitely not a subspace
Akuli multiply by -1 and it goes boom
Akuli ok?
adder ok
Akuli so let's try {(any integer, 0)}
adder I'm starting to think a subspace doesn't exist :D
Akuli multiply by 1/2 and we go outside it again
Akuli ok?
adder ok
Akuli so let's try (any number whatsoever, 0)
Akuli let's try adding
Akuli (x, 0) + (y, 0) = (x+y, 0) = (some number, 0)
Akuli seems to check out
Akuli how about multiplying? x*(y, 0) = (xy, 0) = (some number, 0)
Akuli we found a subspace! :D
adder wait wait wait
adder why are you saying 'any number' when we were working with vectors?
Akuli (good thing you keep interrupting me, it's been a while since i taught math)
Akuli our subspace candidate is now an infinite set of all vectors of the form (x,0) where x is any number whatsoever
Akuli so for every number there's a corresponding vector in our subspace candidate set
adder aaaaaaaah that's a vector
adder sorry
Akuli and now it does satisfy the properties
adder so wait, how does our first subspace look? name one
Akuli our subspace is basically the x axis
Akuli "a vector is in this set" just comes down to "second component of the vector is zero" which means "the vector is on the x axis"
Akuli and if you add/scale vectors on the x axis, surely you stay on the x axis
Akuli so the x axis is a subspace
adder ok
Akuli do you notice what we did?
adder anything different for y axis?
Akuli no
Akuli that would also be a subspace
Akuli hm
Akuli so if we take a vector (1,0) and want to make a subspace containing it, we need the whole x axis
adder yeah
Akuli at no point did we add anything unnecessary, and eventually x axis was it
adder ok
Akuli let's try with two vectors
Akuli say (1,0) and (0,1)
Akuli and let's see what do we need to put into our subspace to make one that contains both of them
Akuli ok?
adder ok
Akuli we need number*(1,0) and number*(0,1)
Akuli this is probably a quicker way to get started than adding
Akuli adding worked but we got confused by thinking it's some kind of integers thing, after all we needed to ditch that and take all numbers anwyay
Akuli ok?
adder ok
Akuli so it has to contain the whole x axis and the whole y axis
Akuli ok?
adder ok
Akuli this is only from number*vector rule, non-emptiness is clearly fine
Akuli we still need vector1+vector2 rule
Akuli ok?
adder ok
adder (1,1) is outside axes
Akuli yeah
Akuli but we actually do need it
Akuli (1,1) = (1,0) + (0,1) = subspacevector + subspacevector
Akuli so (1,1) has to go into our subspace too
Akuli ok?
adder ok
Akuli how about say (-7, 35.2)?
Akuli can we make that by adding x axis and y axis vectors, i.e. do we need it in the subspace?
adder I don't think so
Akuli look at this :D
Akuli (-7, 0) = x axis vector
Akuli (0, 35.2) = y axis vector
Akuli adding together:
Akuli (-7, 35.2) = subspace vector
Akuli so we DO need to include that in our subspace
Akuli ok?
adder I'm a bit confused, is this still the same subspace 23:24:12 my time
adder subspace from
Akuli ok, let's backtrack a bit
adder the one with (1,0) and (0,1)?
Akuli our goal was to make the smallest possible subspace containing (1,0) and (0,1), see what do we really need to put in a subspace other than those
Akuli we found out that we need at least the whole x axis and the whole y axis
adder yeah
Akuli (because you can multiply (1,0) and (0,1) by a number)
Akuli we found out that we also need at least (1,1) (because you can add (1,0) from x axis and (0,1) from y axis)
Akuli i'm saying that you might as well add (-7,0) from x axis and (0,35.2) from y axis
adder is the answer: a plane
Akuli yeah :)
Akuli it's the entire xy plane, i.e. the set of all 2D vectors
Akuli once we do that, it is obviously a subspace
Akuli non-empty and obviously contains everytihgn you can get by adding/multiplying its vectors
The smallest subspace that contains given vectors¶
TODO: Some of the stuff from the previous section belong here
adder this looks a lot like spans? Akuli yes!!! Akuli we just computed span((1,0),(0,1)) adder :DD Akuli in fact: span(vectors) = smallest subspace containing all vectors adder I'll brb Akuli ok :) Akuli send a message (or ping me) when back adder ping Akuli Akuli pong Akuli so we tried to make the smallest possible subspace containing some vectors and ended up with span(vectors) Akuli let's try to figure out if/why this works in general Akuli ok? adder ok Akuli so we have two sets Akuli span(vectors) and smallest_subspace_containing(vectors) Akuli the obvious part is: span(vectors).issubset(smallest_subspace_containing(vectors)) Akuli meaning that every vector in the span is also in the subspace Akuli this is because of how you can + and * within a subspace and that's all that spans do Akuli ok? adder ok Akuli .issubset() isn't quite same as == though Akuli what if the smallest subspace containing those vectors isn't just the span but also contains something else? Akuli then they would be different sets but .issubset() would be happy Akuli ok? adder ok Akuli we still have to rule out that possibility, but then we're done Akuli so taking a step back, we're trying to compare the span to some subspace Akuli maybe it would help to figure out if the span even is a subspace Akuli ok? adder ok Akuli that would actually help a lot Akuli every subspace has to contain the span Akuli and if the span is a subspace, there can't be any smaller subspaces (because they would contain the span) Akuli ok? adder ok Akuli so if we can see somehow that the span is a subspace, it's automatically the smallest subspace containing those vectors Akuli ok? adder ok Akuli so let's see if span(vectors) is a subspace :) Akuli is it non-empty? adder yes? Akuli yes :D Akuli now for some more interesting parts Akuli does span_element+span_element stay within the span? Akuli let's try Akuli let's say we have 3 vectors we're making the span of: span(u,v,w) Akuli ok? adder ok Akuli then all span elements look like au+bv+cw Akuli let's take two of those and add them together Akuli a1 u + b1 v + c1 w + a2 u + b2 v + c2 w Akuli ok? adder ok Akuli = (a1+a2)u + (b1+b2)v = (c1+c2)w Akuli = (some number)u + (some number)v + (some number)w Akuli = span element adder so #2 good Akuli yeah Akuli lets do #3 Akuli x*(span element) = x*(au+bv+cw) Akuli = (xa)u + (xb)v + (xc)w Akuli = span element Akuli ok? adder I don't follow the last = Akuli yeah ok Akuli = (xa)u + (xb)v + (xc)w (previous step) Akuli = (some number)u + (some number)v + (some number)w Akuli = span element adder ah adder o adder ok Akuli so #3 good :) adder so #3 good too Akuli so actually, "the smallest subspace containing these vectors" amounts to "the span of these vectors" Akuli at least with finitely many vectors adder ok :D cool adder now, does this help us in computing? Akuli hm, not in any obvious way Akuli we have mostly introduced a new name and an alternative definition for an existing thing Akuli whether or not that turns out useful is to be seen later Akuli ok? adder yeah ok some terminology can't hurt
Are all subspaces just spans?¶
Akuli there's one more corner case i want to cover
Akuli the smallest subspace containing specific vectors is a span
Akuli but is any subspace in fact just a span of something?
Akuli could there be some subspace that isn't the span of anything?
Akuli let's tackle that next
Akuli ok?
adder ok
Akuli the subspace could be {(0,0)} first of all
Akuli but we can just take span((0,0)) or something to correspond with it then
Akuli kind of a dumb case but that seems to work
Akuli and in general, if something isn't working you will often find out with some simple example, so this check is a good idea anyway :)
Akuli ok?
adder ok
Akuli so let's say the subspace is something else than {(0,0)}, our goal is to see if it is span(something)
Akuli it must contain at least one nonzero vector
Akuli (otherwise it would be the {(0,0)} subspace as that's the only subspace containing only one vector)
Akuli ok?
adder ok
Akuli so some nonzero vector n is in the subspace
Akuli then number*n is in the subspace
Akuli that's just span(n)
Akuli ok?
adder ok
Akuli so if that's the whole subspace we're done, it turned out to be a span
Akuli but there could be more to the subspace than that
Akuli let's say there's a subspace vector s that wasn't captured by span(n)
Akuli so, subspace = {multiples of n, multiples of s, ...}
Akuli ok?
adder ok
Akuli it has to contain everything in span(n, s) then
Akuli (because + and * stay within the subspace)
Akuli and now if the subspace is span(n, s) we're done
Akuli ok?
adder ok
Akuli the subspace could still contain something more, say v
Akuli then it must contain span(n, s, v)
Akuli if that's the whole subspace we're done
Akuli ok?
adder ok
Akuli you get the idea
Akuli if it turns out our span thing didn't "fill" the entire subspace, we just update it and try again
Akuli ok?
adder ok
Akuli so the only corner case where this doesn't work would be a subspace where we add more and more things to our span, and never reach the whole subspace
Akuli ok?
adder ok
Akuli but here's the thing
Akuli at every step the vectors we're spanning are linearly independent!
Akuli we're never adding anything redundant to the span, that would be dependent vectors
adder right ok
Akuli every vector we add grew the span
Akuli and we have an upper bound for the number of independent vectors!
Akuli if these are n dimensional vectors, we won't go beyond span(v1,v2,...,vn)
adder right
Akuli so eventually we reach the entire subspace
Akuli and that's why "a subspace" really means "a span of some vectors"
adder :)
Akuli if you say "a subspace" you just don't care what those vectors are
Akuli i was going to define "a subspace" this way but "a span of vectors we don't know ???" just seems weird and arbitrary
adder ok
Akuli i think that's it for today :)
adder :D
adder thanks, feels good to be learning math again
Akuli this was fun :D
adder I'll be back tomorrow