Re: symbolic differentiation of a scalar field
- To: mathgroup at smc.vnet.net
- Subject: [mg103360] Re: symbolic differentiation of a scalar field
- From: dh <dh at metrohm.com>
- Date: Thu, 17 Sep 2009 06:21:00 -0400 (EDT)
- References: <h8qc9n$cq2$1@smc.vnet.net>
Hi,
we may define a function with n variables by e.g.:
n = 3;
fun = Function[ Evaluate[Plus @@ Table[i Slot[i], {i, n}]]]
We need the "Evaluate" because "Function" has the attribute "HoldAll"
A general derivative can be written as:
Derivative[n1,n2,..][fun]
where ni indicates how many times the function is derived with respect
to variable i.
A function dfdk[k_] that takes k as argument and returns the first
derivative relative to argument k:
dfdk[k_] := (Derivative @@ Table[If[i == k, 1, 0], {i, n}])[fun]
Here the "Table" is used to get all argument values.
With this we e.g. have:
dfdk[i] gives the constant function i: i&
Daniel
Llewlyn wrote:
> Greetings,
>
> I have a function depending by n (large) number of variables, that is f
> (x1 .. xn).
> I need to do to some symbolic calculus with this function, basically
> differentiation.
> Supposing n=10 here's my solution:
>
> f[ Array[a_, 10] ] := Sum [i*a[i], {i,10}]
> dfdk[ k_ ] := D[ f[Array[a_, 10]], a[k]]
>
> How do you think of? And how may i do for an unknown n, set of
> variables?
> I've tried searching tutorial for standard techinque but i didn't find
> one, links are really welcome.
>
> bests,
>
> Ll.
>