On Sat, Jun 6, 2009 at 1:59 PM, Alan G Isaac <ais...@american.edu> wrote:
> On 6/6/2009 2:58 PM Charles R Harris apparently wrote: > > How about the common expression > > exp((v.t*A*v)/2) > > do you expect a matrix exponential here? > > > I take your point that there are conveniences > to treating a 1 by 1 matrix as a scalar. > Most matrix programming languages do this, I think. > For sure GAUSS does. The result of x' * A * x > is a "matrix" (it has one row and one column) but > it functions like a scalar (and even more, > since right multiplication by it is also allowed). > It's actually an inner product and the notation <x, A*x> would be technically correct. More generally, it is a bilinear function of two vectors. But the correct notation is a bit cumbersome for a student struggling with plain old matrices ;) Ndarrays are actually closer to the tensor ideal in that M*v would be a contraction removing two indices from a three index tensor product. The "dot" function, aka *, then functions as a contraction. In this case x.T*A*x works just fine because A*x is 1D and x.T=x, so the final result is a scalar (0D array). So making vectors 1D arrays would solve some problems. There remains the construction v*v.T, which should really be treated as a tensor product, or bivector. Chuck
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion