Mathematica求微分换元
【转载请注明出处】http://www.cnblogs.com/mashiqi
2017/12/16
有时我们需要对PDEs中的各项进行变量替换,比如把$\frac{\text{d}}{\text{d}x} f(x)$换成$\frac{\text{d}}{\text{d}y}g(y)$(其中$f(x)=g(y)$)。比如我想把$x$换成$\frac{1}{x}$,那么我可以令$y = \frac{1}{x}$、令$g(y) = f(x)$,然后用$g$对$y$的各阶导数$g^{(n)}(y)$来表示$f^{(n)}(x)$。那么我们可以使用以下语句:
(* Example 1 *)
y[x_] = 1/x;
Dt[g[y[x]], {x, 2}];
% /. x -> InverseFunction[y][y];
Refine[%,y!=0]
% // TeXForm (* 注意TeXForm里面 T X F 这几个都是大写 *)
% // TraditionalForm
Example 1说明:假设$y=1/x, ~f(x)=g(y)$,则 $f''(x) = y^4 g''(y)+2 y^3 g'(y)$。
(* Example 2 *) y[x_] = 1/Sqrt[x]; Dt[g[y[x]], {x, 3}]; % /. x -> InverseFunction[y][y]; Refine[%, y > 0]
% // TeXForm (* 注意TeXForm里面 T X F 这几个都是大写 *)
% // TraditionalForm
Example 2说明:假设$y=1/\sqrt{x}, ~f(x)=g(y)$,则 $f'(x) = -\frac{1}{2} y^3 g'(y)$。
(* Example 3 假设$f(x)$是radial的。将$\Delta f(x)$记为$g(|x|)$,并用$g$来表示$f$ *)
y[x1_, x2_, x3_] = Sqrt[x1^2 + x2^2 + x3^2];
(* D[g[y[x1,x2,x3]],{x1,2}]+D[g[y[x1,x2,x3]],{x2,2}]+D[g[y[x1,x2,x3]],{x3,2}] *)
Laplacian[g[y[x1, x2, x3]], {x1, x2, x3}];
Simplify[%]
% /. x1^2 + x2^2 + x3^2 -> y^2;
Refine[%, y > 0]
Example 3说明:假设$x \in \mathbb{R}^3, ~y=\|x\|$,并且函数$f(x)$是radial的并记$f(x)=g(y)$,则 $\Delta_x f(x) = g''(y)+\frac{2 g'(y)}{y}$。
(* Example 4 假设$y=y(x)$,那么如何将$\frac{\mathrm{d}^2}{\mathrm{d}x^2}$用$y$表示 *)
Dt[g[y[x]], {x, 2}]
Example 4说明:假设$y=y(x)$,那么如何将$\frac{\mathrm{d}^2}{\mathrm{d}x^2}$用$y$表示出来:我们应该有:$\frac{\mathrm{d}^2}{\mathrm{d}x^2} = (y'(x))^2 \frac{\mathrm{d}^2}{\mathrm{d}y^2} + y''(x) \frac{\mathrm{d}}{\mathrm{d}y}$.