I understand now. Thanks for the clear explanation.

So, let's talk about functionality that we want to give the user. In the 
module I have proposed, the CoordSystem class provides a method to 
initialize a user-defined basis, let us say B.

Now, let us define a vector v in this coordinate system. In code, we will 
just pass to the Vector class this CoordSystem object. So, now we have a 
vector v defined whose components in the basis B are [ a1, a2, ... , an] 
transpose.

Now, as you said, we need a way to represent the inner product. For this, 
we can have a class, InnerProduct. To initialize this class, the user will 
have to provide a positive definite Hermitian matrix which will be used to 
implement the inner product. The other way we can do this is for user to 
provide a definition for <v1, v2>. Then we can check whether this 
definition conforms to the standard rules of the inner product.

Once we have a well defined InnerProduct object with us, then we can move 
on to finding the dual of v represented in the basis B. So, our objective 
is to find out the row vector v'. Now, since

repr(v')*repr(v) = <v, v> = repr(v).T * H *repr(v)

So, if we assume repr(v') = [ b1, b2, .. , bn], then the LHS will be just:

[ a1 b1 + a2 b2 + .. + an bn]
and RHS is, for a given H and v, just a scalar.

So, as I see it, we have n-1 free variables and one dependent variable ( b1 
through bn are all the variables here).
Am I right thus far? If I am, then we can just set the n-1 variables to be 
unity ( in fact, zero seems a simpler choice) and the remaining variable 
can be found from the relation I mentioned above.

Is this what you wanted? Or am I off base?

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to