I'd like to implement a generic rule for expanding differential forms by the product rule. For instance, I'd like to transform the following PDE:

$\phi \frac{\partial \phi}{\partial t} = \phi \nabla^2 \phi \;\;(Eqn 1)\;\;$ to $\;\; \frac{\partial \phi^2}{\partial t} = 2 \nabla \phi \cdot \nabla \phi + \nabla^2 \phi \;\;(Eqn 2)$

The above transformation requires two rules, which I've implemented like this:


$\phi (x,t) \phi ^{(0,1)}(x,t)=\phi (x,t) \phi ^{(2,0)}(x,t)$

prodrule2=f_[x,t] Derivative[0,1][f_][x,t]:>Inactive[Derivative][0,1][f[x,t] f[x,t]]/2;
prodrule3=f_[x,t] Derivative[2,0][f_][x,t]:>Inactive[Derivative][2,0][f[x,t] f[x,t]]/2-Inactive[Derivative][1,0][f[x,t]]^2;


$\frac{1}{2} \left(\phi (x,t)^2\right)^{(0,1)}=\frac{1}{2} \left(\phi (x,t)^2\right)^{(2,0)}-\left(\phi (x,t)^{(1,0)}\right)^2$

However, I'm hoping there is a more generic way to do this for arbitrary functions and functional dependencies. I discovered that product rule relations can be expressed generically as

productrule = D[f[x, t]*g[x, t], {x, n1}, {t, n2}]
Activate[productrule /. n1 -> 1 /. n2 -> 0]

$\frac{\partial ^{\text{n2}}\left(\underset{K[1]=0}{\overset{\text{n1}}{\sum }}\left(\begin{array}{c}\text{n1} \\K[1] \\\end{array}\right) f^{(K[1],0)}(x,t) \frac{\partial ^{\text{n1}-K[1]}g(x,t)}{\partial x^{\text{n1}-K[1]}}\right)}{\partial t^{\text{n2}}}$

$f^{(1,0)}(x,t) g(x,t)+f(x,t) g^{(1,0)}(x,t)$

My question: Is there a way to transform equations to the expanded form as shown in (Eqn 2) with a generic rule using the above generic product rule expressions?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.