On 01/08/2012 02:50 PM, John B wrote:
Please define what you mean by derivative in terms of a limit.  For
example if you have a scalar valued function of a vector do you mean the
gradient.  With regard to a tensor (indexed array in general) what do
you mean?  If you have a tensor function of multiple vectors or another
tensor what do you mean?
Hello Aaron and others:
I am trying to produce the symbolic gradient, with sums not expanded.
For example, I was hoping to produce something like the following.
Sorry for the mixed sympy and numpy notation. J is a function that
depends on matrices x and C.  J has an inner sum and an outer sum.  I
am looking for dJ/dC in symbolic form, without the sums evaluated.

N, i, j, K, D, m  = symbols('N i j K D m', integer=True)
i = Idx('i', N)
j = Idx('j', K)

x = IndexedBase('x', shape=(N,D))
C = IndexedBase('C', shape=(N,D))


innerSum = Sum((x[i,:]-C[j,:])**(-2/(m-1), (j,0,K))**(1-m))
J = Sum(innerSum, (i, 0, N))

the result I am looking for is:  partial dJ/ partial dC =

numerator =  2*(x[i,:]-C[j,:])**(-2/(m-1)) * (1-m) * [Sum((x[i,:]-
C[j,:])**(-2/(m-1)), (j,0,K))]**(1-m)
denominator = (x[i,:]-C[j,:]) * (m-1) *  [Sum((x[i,:]-C[j,:])**(-2/
(m-1)), (j,0,K))]
Sum(numerator/denominator, (i,0,N))

In general, the function J might contain multiply, add, transpose, or
sum operators within it.  What is the best way to approach this with
sympy?  I know that it can be done in Mathematica.  Does this example
help?
Thanks.

You might find section 11.1 in "Geometric Algebra for Physicists" by Doran and Lasenby relevant. Also go to http://www.montgomerycollege.edu/Departments/planet/planet/Numerical_Relativity/Cliff.html and download bookGA.pdf. and look at chapter 6.

--
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to