Mathematica中如何進行微分變換?
01-08
我有一個微分方程,比如
,如果我還一組變數,比如怎麼使用規則變換求得U在新變數下的微分方程呢?
- 先說內置做法。
Mathematica內置了不同坐標系下的拉普拉斯算符,查下幫助直接用就行
Laplacian[U[r, [Theta]], {r, [Theta]}, "Polar"] // FullSimplify
- 然後說下普適性比較強的推導方法
(*因為需要用{r,[Theta]}表示所以先求{r,[Theta]}對{x,y}的雅可比矩陣然後再求逆*)
J = Inverse[D[r {Cos[[Theta]], Sin[[Theta]]}, {{r, [Theta]}}]] // FullSimplify;
{px, py} = Function /@ (J[Transpose].{Hold[D[#, r]], Hold[D[#, [Theta]]]}) //
ReleaseHold
之後將原微分方程用px,py兩個算符表示,化簡即得
px[px[U[r, [Theta]]]] + py[py[U[r, [Theta]]]] // FullSimplify
symbolic - Analogue for Maple"s dchange
推薦閱讀:
※如何寫出易讀的 Mathematica 代碼?
※怎樣用Mathematica解帶字母的方程組?
※編寫過10萬行Mathematica代碼 (精簡後) 是種什麼樣的體驗?
TAG:WolframMathematica |