Vector Spaces

Started by
3 comments, last by yellowjon 18 years ago
Can someone please point me in the direction of a plain english explanation of Vector Spaces. I'm finding the concepts a little hard to grasp (I'm more visual then abstract), especially the Gram-Schmidt Orthogonalization algo. Does this stuff have its uses in game dev? I'm still interested in learning it, but less so if i'll never really use it. Any help is appreciated, thanks. EDIT: I actually found a pretty good bit of info on this in the Wikipedia. Thanks Wikipedia! You're my only friend :( Just Kidding I still have Abba Zabba [Edited by - Morpheus011 on April 18, 2006 5:09:07 PM]
Advertisement
In its simplest form, a vector space (denoted Rn) refers to all the column vectors with n components. The 'R' means that you're working with real numbers, however you may also see Nn for natural numbers or Cn for complex numbers. Thus R2 is the space of all column vectors with 2 components. This is a plane. R3 is for a 3D space, and so on. There is also the notion of subspaces of Rn, which still consists of vectors with n components, but maybe not all such vectors.

Most decent linear algebra books cover this within the first few chapters, and I'm sure Wikipedia or Mathworld contain decent definitions and explanations. As far as its applicability to game development, you'll mostly be working in 2D and 3D spaces, possible 4D for quaternions (but not much). The beauty of vector spaces really come into play when you're dealing with larger linear systems, and when you're trying to solve the classic Ax = b.
Quote:Original post by Zipster
In its simplest form, a vector space (denoted Rn) refers to all the column vectors with n components. The 'R' means that you're working with real numbers, however you may also see Nn for natural numbers or Cn for complex numbers. Thus R2 is the space of all column vectors with 2 components. This is a plane. R3 is for a 3D space, and so on. There is also the notion of subspaces of Rn, which still consists of vectors with n components, but maybe not all such vectors.

Most decent linear algebra books cover this within the first few chapters, and I'm sure Wikipedia or Mathworld contain decent definitions and explanations.


That's not what is normally called a Vector Space.

OP, perhaps you feel more comfortable thinking in programming terms. A Vector Space is like a base class or interface class. It defines by a bunch of properties that all subclasses must have. Anything that has those properties can be called a Vector Space. In other words, you are concerned with the IsA relation, i.e. "is a" given set of polynomials a Vector Space? or "is a" given set of matrices a Vector Space?

The name is a little unfortunate because it doesn't necessarily have anything to do with vectors, but the properties that define a Vector Space were originally associated with vector algebra.

--www.physicaluncertainty.com
--linkedin
--irc.freenode.net#gdnet

My definition of a vector space (which I actually got from a linear algebra book) is a simplified view that's easy to understand for anyone. It might not be what a mathematician would "normally call a vector space," but it's a tangible definition that's easy to remember and easy to use. After all, most of the time you're not interested in the complete definition of vector spaces and whether or not some random space V is a vector space, but rather you're only interested in a subset of spaces such as Rn (which you know to be vector spaces a priori) and thus you don't need the whole nine yards. My only concession is that I forgot the tidbit on linear combination which would have completed the definition.
Just think of 2d or 3d spaces the way you normally think about them - vector spaces cover more spaces than that, but the intuitions you get from these guys usually extend to other more abstract ones.

Gram Schmidt is sometimes difficult to present, but conceptually it's not too bad. You are given, say, three vectors V0 and you want to produce a collection of vectors W that span the same subspace, but are orthogonal.

Well, for the first new vector in W, you can just choose one of the original ones in V0. Then you project all of the other vectors onto the orthogonal complement and call these projected versions V1. (The orthogonal complement is basically just the plane that's perpendicular to that first vector). Then you just repeat the procedure for V1.

This topic is closed to new replies.

Advertisement