[LRUG] Abstract algebra slides
Matthew Willson
matthew at playlouder.com
Thu Jul 9 08:07:30 PDT 2009
This was interesting, thanks!
Some comments from another ex-math-dude that might clarify or confuse:
There may be some confusion, language-wise, between the programming
concept of a vector (which is just a data structure and doesn't
necessarily come with any algebraic structure to speak of,
mathematicians might just call them tuples), and the mathematical
notion of a vector space (which requires quite a rich algebraic
structure but doesn't imply any one particular data structure
representation for the vectors).
Might be worth breaking down some situations where a simpler
mathematical structure than a vector space might be enough to express
what you're doing, just in case anyone gets a little TOO eager to spot
vector spaces everywhere :) - here goes:
* If the scalars are actually limited to just integers (eg numbers of
pints of beer, presuming halves are out of the question :), then it's
actually not a full-on Vector Space, just a Module ( http://en.wikipedia.org/wiki/Module_%28mathematics%29
). Because the scalars are just a Ring not a Field.
* If the scalar multiplication operation isn't defined, doesn't obey
the relevant axioms, or isn't being taken advantage of, it's really
just an Abelian Group (most likely a direct product of abelian groups,
in fact, if the addition is being done component-wise on tuples of
values)
* Furthermore if the commutativity/associativity/inverses axioms for
the vector addition operation don't hold (or aren't being taken
advantage of), it's not even that, it's just a set with a binary
operation. (Probably just the idea of applying a binary function
component-wise to pairs of tuples) - which doesn't require any special
algebraic structure.)
(Actually there's some other structures inbetween 'abelian group' and
'just a set with a binary operation', eg semigroups, monoids etc.)
One other thing is that the 'vector division' operation you have in
the vector space interface seems a little odd to me (it's not part of
the standard structure of a vector space structure, for one, but also
why offer vector division but not vector multiplication?).
Also the ordering stuff isn't part of the standard vector space
structure, but part of a richer structure. eg could be a http://en.wikipedia.org/wiki/Ordered_vector_space
, although that comes with some extra axioms requiring the order
structure to be compatible with vector space addition and scalar
multiplication, so wouldn't work for the lexicographic ordering.
Going richer still if anyone's interested, there's Normed Vector
Spaces http://en.wikipedia.org/wiki/Normed_vector_space ) which are
vector spaces that come with a sense of the 'length' of a vector
(hence you can order the space by length if you want), and taking it
even further, Inner Product Spaces, which comes with a notion of the
angle between two vectors.
Then even richer still you get into banach and hilbert spaces, popular
with engineers and physicists...
Fun times.
-Matt
On 9 Jul 2009, at 10:25, Tom Stuart wrote:
> Hi LRUG,
>
> Thanks for all the Hoegaardens. How did you know?
>
> The slides for the talk I gave last night are available at http://experthuman.com/files/do-mix-your-drinks.pdf
> .
>
> Cheers,
> -Tom
> _______________________________________________
> Chat mailing list
> Chat at lists.lrug.org
> http://lists.lrug.org/listinfo.cgi/chat-lrug.org
More information about the Chat
mailing list