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