# Transformation of Differential Operators

I would like to gain some knowledge about how to transform differential operators to different coordinate systems using Mathematica. I know that the Laplacian command has an optional parameter chart that does this for various coordinate systems but I would like to gain some insight and possibly intermediate solutions doing this. As a simple test example, I believe the laplacian in polar coordinates will do just fine. So, I would like to transform $$\Delta u = u_{xx} + u_{yy}$$

using $$u(x,y)=w(r,\phi)$$ and the transformation $$x=r \cos\phi, y=r\sin\phi$$ into

$$\Delta w = \color{red}{\frac{1}{r^2}}w_{rr} + \frac{1}{r}w_{r} + \frac{1}{r^2} w_{\phi\phi}$$

Without incorporating the specific transformation one can of course calculate

D[w[r[x, y], phi[x, y]], x, x] + D[w[r[x, y], phi[x, y]], y, y]


but how would you use the transformation from here? How would you do this in a "step by step" manner, e.g. how would you calculate the derivative(s) of $$r$$ w.r.t. $$x$$?

Edit: as was kindly pointed out by Daniel Huber, the red part in the above laplacian shouldn‘t be there.

• Is this what you want? Nov 25, 2020 at 9:26
• I don't see how Kuba's DChange from his MoreCalculus really helps (unless I'm misusing it). I tried DChange[w = Laplacian[u[x, y], {x, y}], "Cartesian" -> "Polar", {x, y}, {r, \[Theta]}, {}] and the result was uninformative, keeping intact the form Derivative[0, 2][u][r*Cos[\[Theta]], r*Sin[\[Theta]]] + Derivative[2, 0][u][r*Cos[\[Theta]], r*Sin[\[Theta]]] and just stating the forms of r and \[Theta] in terms of x and y (along with the list of obvious restrictions on r and \[Theta]. Nov 25, 2020 at 18:11
• I also tried current vector analysis functionality moved to the kernel from the old VectorAnalysis package, but alas TransformedField["Cartesian" -> "Polar", Laplacian[u[x, y], {x, y}], {x, y} -> {r, \[Theta]}] just returns  \!(*SuperscriptBox[(u), TagBox[ RowBox[{"(", RowBox[{"0", ",", "2"}], ")"}], Derivative], MultilineFunction->None])[r Cos[[Theta]], r Sin[[Theta]]] + \!(*SuperscriptBox[(u), TagBox[ RowBox[{"(", RowBox[{"2", ",", "0"}], ")"}], Derivative], MultilineFunction->None])[r Cos[[Theta]], r Sin[[Theta]]]. Nov 25, 2020 at 18:13

A step by step derivation:

We have:

x[r_, ϕ_] = r Cos[ϕ];
y[r_, ϕ_] = r Sin[ϕ];
ϕ[x_, y_] = ArcTan[x, y];
r[x_, y_] = Sqrt[x^2 + y^2];


Then doing the derivatives formally by hand we have (I use u[x,y] and u[r, ϕ] instad of u and w): We replace the formal derivatives by MMA syntax:

rep1 = {Subscript[u, r] -> D[u[r, ϕ], r],
Subscript[u, rr] -> D[u[r, ϕ], {r, 2}],
Subscript[u, rϕ ] -> D[u[r, ϕ], r, ϕ],
Subscript[u, ϕ] -> D[u[r, ϕ], ϕ],
Subscript[u, ϕϕ] -> D[u[r, ϕ], {ϕ, 2}]};
rep2 = {Subscript[r, x] -> D[r[x, y], x],
Subscript[r, xx] -> D[r[x, y], {x, 2}],
Subscript[ϕ, x] -> D[ϕ[x, y], x],
Subscript[ϕ, xx] -> D[ϕ[x, y], {x, 2}],
Subscript[r, xy] -> D[r[x, y], x, y],
Subscript[r, y] -> D[r[x, y], y],
Subscript[r, yy] -> D[r[x, y], {y, 2}],
Subscript[ϕ, y] -> D[ϕ[x, y], y],
Subscript[ϕ, yy] -> D[ϕ[x, y], {y, 2}]};
rep3 = {x -> x[r, ϕ], y -> y[r, ϕ]};


Finally we take the expression for Subscript[u, xx]+Subscript[u, yy] from the picture above, evaluate the replacements and simplify:

Subscript[u, rr] Subscript[r, x]^2 +
2 Subscript[u, rϕ ] Subscript[r, x] Subscript[ϕ, x] +
Subscript[u, r] Subscript[r, xx] +
Subscript[u, ϕϕ] Subscript[ϕ, x]^2 +
Subscript[u, ϕ] Subscript[ϕ, xx] +
Subscript[u, rr] Subscript[r, y]^2 +
2 Subscript[u, rϕ ] Subscript[r, y] Subscript[ϕ, y] +
Subscript[u, r] Subscript[r, yy] +
Subscript[u, ϕϕ] Subscript[ϕ, y]^2 +
Subscript[u, ϕ] Subscript[ϕ, yy] /. rep1 /. rep2 /.
rep3 // Simplify[#, {r >= 0}] &


This gives the result: As you can see, your formula above for the Laplacian in spherical coordinates is wrong.

• Yes you can do it, but it looks ugly and you loose the overview. E.g. uxx== D[u[r[x, y], p[x, y]], {x, 2}] // Simplify . If you really want to do this, then define replacement rules that changes MMA syntax back to the short form. Or at least use //TraditionalForm Nov 25, 2020 at 13:54