Mathematica求微分换元

【转载请注明出处】http://www.cnblogs.com/mashiqi

2017/12/16

有时我们需要对PDEs中的各项进行变量替换,比如把$frac{ ext{d}}{ ext{d}x} f(x)$换成$frac{ ext{d}}{ ext{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}$.

原文地址:https://www.cnblogs.com/mashiqi/p/8047548.html