Hello everyone,
I have been working on a basic vector framework for sympy for some time 
now. I am still working on the classes for coordinate systems, so currently 
all operations occur in the _same_ frame. The PR for the code is here 
<https://github.com/sympy/sympy/pull/7566>.

To get you started, here is how you would do some basic vector 
manipulations using the code (i, j, k are by default base vectors, and x, 
y, z are by default base scalars. Better naming ideas?)-

>>> from sympy.vector import *
>>> u = 4*i - 5*k
>>> from sympy.vector.vector import VectorAdd
>>> isinstance(u, VectorAdd)
True
>>> v = 8*k
>>> u += v
>>> u ^ v
...output...

Now I am facing a few problems..

1. How do I ensure methods like 'trigsimp' work with these classes? 
Currently, passing a vector like *(sin(a)+cos(a))**2*i - j* to trigsimp 
returns the correct answer mathematically, _but_ the instance is of type 
Add (instead of the expected VectorAdd). How do I prevent this?

2. How do I get 'solve' to work with these classes? For example, consider a 
problem solved (in the future) using the module -

*Do the following vectors form a basis for R^3: {(2,-3,1), (4,1,1), 
(0,-7,1)}?* 

To check if the vectors can form a basis, we check if the 3 conventional 
basis vectors can be expressed in terms of the given vectors. First, define 
b1, b2 and b3 as the vectors in question

>>> b1 = 2*R.i - 3*R.j + R.k
>>> b2 = 4*R.i + R.j + R.k
>>> b3 = - 7*R.j + R.k

Define three Symbols as the coefficients of the linear multiples

>>> a, b, c = symbols('a b c')

Now check if R.i = x*b1 + y*b2 + z*b3n returns a valid solution. If yes, do 
the same for R.j and R.z. If all three have some solution (not necessarily 
same), the vectors do form a basis.

>>> solve(R.i - (a*b1 + b*b2 + c*b3), a, b, c)
>>>

solve returned None. Hence, solution does not exist. Therefore, the given 
vectors cannot define a basis for R^3.

I think it would involve changing the code for 'solve' itself. Any ideas?

I guess answering these questions may require a look at my code, so any 
help is appreciated.

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/70e921e4-df0e-42e1-b001-2de154eda2ec%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to