求助,公式推导时如何控制梯度不展开?
mathematica吧
全部回复
仅看楼主
level 2
我要对以下两个公式联立消去其中的eta
equ1 = D[\[Eta][x, y, t], t] +
Grad[\[Phi][x, y, z, t], {x, y}].Grad[\[Eta][x, y, t], {x, y}] ==
D[\[Phi][x, y, z, t], z];
equ2 = D[\[Phi][x, y, z, t], t] +
1/2*Norm[Grad[\[Phi][x, y, z, t], {x, y, z}]]^2 +
g*\[Eta][x, y, t] == 0;
直接用eliminate始终不行,然后我尝试通过equ2导出eta代入equ1,并且要控制梯度不被展开,于是我尝试
Inactivate[Solve[equ2, \[Eta][x, y, t]], Grad]
可是不知道为啥梯度项无论怎么控制它还是会展开。单独求解一个Inactivate[Grad[\[Phi][x, y, z, t], {x, y}], Grad]就能成功。
求问各位前辈怎么解决?
2018年01月16日 10点01分 1
吧务
level 12
当你用=定义的时候,Grad已经被展开计算了,所以后面再Inactivate也没用
把equ1和equ2的定义也放到Inactivate里就可以了
Inactivate[
equ1 = D[\[Eta][x, y, t], t] +
Grad[\[Phi][x, y, z, t], {x, y}].Grad[\[Eta][x, y, t], {x, y}] ==
D[\[Phi][x, y, z, t], z];
equ2 = D[\[Phi][x, y, z, t], t] +
1/2*Norm[Grad[\[Phi][x, y, z, t], {x, y, z}]]^2 +
g*\[Eta][x, y, t] == 0;
Eliminate[{equ1, equ2}, eta], Grad]
2018年01月16日 11点01分 2
谢谢您了,梯度确实控制住了。不过消元还是不彻底,无论我是Eliminate还是先solve equ2再代入equ1结果都会剩下一个eta对t的偏导项消不掉。
2018年01月17日 01点01分
又求解代入了eta对t的偏导,问题解决了。[开心]多谢前辈。
2018年01月17日 01点01分
1