On 04/12/2013 03:53 PM, Prasoon Shukla wrote:
So, after spending a couple of days writing the proposal, I've uploaded on to the wiki.

https://github.com/sympy/sympy/wiki/GSoC-2013-Application-Prasoon-Shukla:-Vector-Calculus-Module

@All community members: Please give it a read. This is the first draft of the proposal so it's bound to be rough-ish. Please point out things that you don't like or would like to see improved. Also, please suggest any additions that you'd like to see.

Thank you.

--
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.


Analogous to term pythonic code I would use sympythonic code and make the following suggestions -

Start by defining you basis vectors as noncommutative symbols -

(e1,e2,e3) = symbols('e_1 e_2 e_3',commutative=False)

Then if a1, a2, and a3 are commutative sympy expressions (symbols) any vector a is -

a = a1*e1+a2*e2+a3*e3

Then you automatically get vector addition, subtraction, and scalar multiplication (if c, b1, b2, and b3 are scalars)

b = b1*e1+b2*e2+b3*e3

and

a+b = (a1+b1)*e1+(a2+b2)*e2+(a3+b3)*e3

a-b = (a1-b1)*e1+(a2-b2)*e2+(a3-b3)*e3

c*a = c*a1*e1+c*a2*e2+c*a3*e3

Then if you define dictionaries for the dot and cross products, dot product

dot_dict = {e1**2:1,e1*e2:0,e1*e3:0,e2*e1:0,e2**2:1,e2*e3:0,e3*e1:0,e3*e2:0,e3**2:1}

then -

dot(a,b) = (a*b).subs(dot_dict)

cross product

cross_dict = {e1**2:0,e1*e2:e3,e1*e3:-e2,e2*e1:-e3,e2**2:0,e2*e3:e1,e3*e1:e2,e3*e2:-e1,e3**2:0}

cross(a,b) = (a*b).subs(cross_dict)

Like wise for coordinate transformations -

Let the bases be e1,e2,e3 ang g1,g2,g3 be related by g1 = f1(e1,e2,e3), g1 = f2(e1,e2,e3), g1 = f2(e1,e2,e3)
where f1, f2, and f3 could also be functions of the coordinates then

g_to_e_dict = {g1:f1,g2:f2,g3:f3}

a = a1*g1+a2*g2+a3*g3

a_in_terms_of_e = a.subs(g_to_e_dict)

etc.








--
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