On Jan 18, 5:12 pm, Dima Pasechnik <dimp...@gmail.com> wrote:
> Transpose of a vector is a duality between the underlying vectorspace
> and its dual.
> IMHO for teaching purposes it's important to see the distinction
> between row and column vectors.
> (Ideally, I think, one would have a "student mode" of Sage, where if
> A*v is valid for a square matrix A and a vector v, then v*A is not.)

Hi Dima,

Thanks for your comments.

Two years ago, tangential to another discussion, I suggested something
very similar to what Jason described - tagging vectors as rows or
columns, or None.  It didn't get a great response.
http://groups.google.com/group/sage-devel/browse_thread/thread/aec93bda3de2eefd/

I have now come around to the opinion that vectors are just vectors,
ie ordered lists of scalars (or coordinates relative to an ordered
basis, if you want a more general view).  You do not need to consider
a vector as a column vector to define a matrix-vector product A*v, you
just use the entries of v to form a linear  combination of the columns
of A, which can again be just a vector (not necessarily a column
vector).  And so on.  The new vector methods .row() and .column() make
the conversion of a vector to a matrix explicit, so for example you
could do something like an outer product as  v.column()*w.row().  You
only need to decide on an orientation once you try to print the thing.

A professor of mine in graduate school, JJ Uhl, would love to claim
that you never needed to write a transpose, since he felt you could
always deduce it from the context.  I'm sure there are
counterexamples, but he had a point.

A "student mode" is tempting and has been discussed in other contexts
(calculus?).  I think a strength of Sage is that a student can start
with it as an undergraduate and continue to use it the remainder of
their professional careers.  So for my money, I'd rather make
available the functions and methods that alleviate any confusion a
beginner might face, so that as their needs and confidence grow they
can slide into more subtle uses, rather than having to transistion
from one mode to another.

Rob

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to