# VariationalD giving the wrong solution?

EDIT: As pointed out in the comments, VariationalD gives a variational derivative (which I don't want), not a derivative with respect to a function (i.e. $\frac{df[x]}{dlog_e(x)}$ as a simple example - this is what I thought it did the first time I read the description). Is it even possible in Mathematica to take the derivative of a function with respect to another function? I know you can use the chain rule to rewrite, using the example just above, $\frac{df[x]}{dlog_e(x)}=x\frac{df[x]}{dx}$. In my case the equivalent would be much more cumbersome and I want to be able to change the function w.r.t. which I'm differentiating. Is it possible to do this in Mathematica?
_

I am using the VariationalMethods package, specifically the VariationalD command. I am trying to take the derivative of one (complicated) function fitted to experimental data with respect to another (complicated) function.

First I wanted to make sure that the command does what I wanted. So I inputted the example given in VariationalD's "Examples" section:

 VariationalD[y[x] Sqrt[y'[x]], y[x], x]


This gives a result of $$\frac{d}{dy[x]}(y[x] \cdot y'[x]^{1/2})=\frac{2 y'[x]^2+y[x] y''[x]}{4 y'[x]^{3/2}}.$$

Trying to reproduce this by hand I started with the product rule:

$$\frac{d}{dy[x]}(y[x] \cdot y'[x]^{1/2})=y[x]\frac{d}{dy[x]}y'[x]^{1/2}+y'[x]^{1/2}\frac{d}{dy[x]}y[x]$$ The second term is just

$$y'[x]^{1/2}\frac{d}{dy[x]}y[x]=y'[x]^{1/2}.$$

The first term, you use the chain rule on:

$$y[x]\frac{d}{dy[x]}y'[x]^{1/2}=y[x]\frac{1}{2}y'[x]^{-1/2}\frac{d}{dy[x]}y'[x]$$ $$\frac{d}{dy[x]}y'[x]=\frac{dx}{dy[x]}\frac{d}{dx}y'[x]=(\frac{dy[x]}{dx})^{-1}y''[x]=\frac{y''[x]}{y'[x]}.$$

Putting all of that together:

$$\frac{d}{dy[x]}(y[x] \cdot y'[x]^{1/2})=y'[x]^{1/2}+\frac{1}{2}\frac{y[x]y''[x]}{y'[x]^{3/2}}.$$

Simplifying:

$$\frac{d}{dy[x]}(y[x] \cdot y'[x]^{1/2})=\frac{2 y'[x]^2+y[x]y''[x]}{2 y'[x]^{3/2}},$$

which is identical to the solution given by VariationalD except for a factor of 2. So I assumed it was a mistake I made somewhere (and it might be) and tried comparing every step I made when doing it by hand with the corresponding step in VariationalD. Eventually I discovered one difference in the step

 VariationalD[Sqrt[y'[x]], y[x], x]


which gives an answer of $\frac{y''[x]}{4y'[x]^{3/2}}$, a factor of 2 different than when I do it. I'm still not sure where the factor of 2 in the $y'[x]^{1/2}\frac{d}{dy[x]}y[x]$ step comes from.

I kept messing around with it and found that

 VariationalD[y'[x],y[x],x]=0


which can't be right. For example, if $y[x]=x^2$ and $y'[x]=2 x$,

$$\frac{dy'[x]}{dy[x]}=\frac{d(2x)}{dx^2}=2(\frac{dx^2}{dx})^{-1}=2(2x)^{-1}=\frac{1}{x}.$$

So why is VariationalD giving a zero answer? It's even weirder because $\frac{dy'[x]}{dy[x]}$ comes up when you perform the original differentiation by hand as well. It can't be zero there either or the first term would vanish and the answer would just be $y'[x]^{1/2}$.

So am I making a stupid mistake in my differentiation? Even if so, why is VariationalD giving zero for the derivative with respect to a function of its derivative?

I've spent about an hour searching for anything relevant online, and...nothing.

Any help would be appreciated!

EDIT: I've been looking at the description of VariationalD more closely and now I'm not sure it does what I think it does, i.e.

 VariationalD[f[x],g[x],x]


gives $\frac{df[x]}{dg[x]}$ as output. Is this correct? Looking at the description it now seems to me that it would give $f[x]\frac{df[x]}{dg[x]}$. But if that's the case then the output for my original expression is still wrong.

-
Do you mean convolution or ordinary multiplication when you write $*$ in your formulae? Also, are your $y[x]$ itself a functional since you used bracket instead of parenthesis? – Silvia Jun 20 '13 at 19:05
@Silvia ordinary multiplication is the only one that makes sense. – rcollyer Jun 20 '13 at 19:09
@rcollyer Well, even though, I expect people compose their TeXified formulae meeting the common notation rules more.. – Silvia Jun 20 '13 at 19:14
@Silvia exchanged * for \cdot. – rcollyer Jun 20 '13 at 19:25
VariationalD[y'[x],y[x],x]=0 because y[x] does not appear explicitly in the function that you are functionally differentiating w.r.t. y[x] - i.e. the functions y[x] and y'[x] can be independently varied. An example of this is described at link. – Stephen Luttrell Jun 20 '13 at 20:16

I think VariationalD[y'[x],y[x],x] indeed equals to zero.

You should not mistake functional derivative with ordinary derivative, where in the former case $y'$ is usually considered an independent variable to $y$. so functional $\mathrm{d} y'/\mathrm{d} y=0$ is just like an ordinary $\mathrm{d} a/\mathrm{d} b=0$.

The same reason you can't write something like this in calculus of variations

$$\frac{\partial J[x,y,y']}{\partial y}=\frac{\partial x}{\partial y}\frac{\partial J[x,y,y']}{\partial x}\,\text{,}$$

just like you can't write this in ordinary calculus:

$$\frac{\partial f(x,y,z)}{\partial y}=\frac{\partial x}{\partial y}\frac{\partial f(x,y,z)}{\partial x}\,\text{.}$$

-
Yeah, I realized that when I was re-reading the description of VariationalD again a few minutes ago. I didn't catch the "variational" part, so what you're saying is exactly correct. That said, is there another function that does what I want? (I edited the top of the post to explain that more clearly - basically I want the ordinary derivative, not the functional one.) – John Hyatt Jun 20 '13 at 21:47
@JohnHyatt I think you may check Dt`, using it along with self-defined substitution rules. – Silvia Jun 20 '13 at 22:03
I glanced at it briefly and am not sure if it will work, but I will give it a try tomorrow. Thanks. – John Hyatt Jun 20 '13 at 22:49