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}$.

 

posted on 2017-12-16 20:24  mashiqi  阅读(1270)  评论(0编辑  收藏  举报

导航