我知道这个Mathematica的代码有什么问题。有没有人可以给我一个关于这个bug的解释,还能告诉我如何改进代码?
V[x_, y_, z_] := x^2 + y - z;
m = 10;
DSolve[m*x''[t] == -Grad[V[x, y, z], {x, y, z}]*x[t], x[t], t]
势场中粒子的模型。在这个模型中,我们将粒子视为质量点,它描述了空间中的轨迹,该轨迹由函数建模,该函数将其在空间中的坐标作为时间的函数。势场由函数V:R ^ 3→R给出,轨迹是微分方程的解
注意这个模型假设粒子是一个点质量,在我们使用这个模型的许多情况下,这肯定是假的。例如,作为行星运动的模型。
实际等式:
答案 0 :(得分:4)
首先:不要相信Wikipedia。它对一些基本知识有好处,但对于某些特定的东西更好地使用某些特定领域的来源。
正确的等式是:
正确的代码:
V[x_, y_, z_] := x^2 + y - z;
m = 10;
DSolve[m*{x''[t], y''[t], z''[t]} ==
-(Grad[V[x, y, z], {x, y, z}] /. {x -> x[t], y -> y[t], z -> z[t]})
, {x[t], y[t], z[t]}, t]
解决方案:
{{x[t] -> C[1] Cos[t/Sqrt[5]] + C[2] Sin[t/Sqrt[5]],
y[t] -> -(t^2/20) + C[3] + t C[4],
z[t] -> t^2/20 + C[5] + t C[6]}}