首页 > 解决方案 > Julia:将旋转应用于 ODE 解决方案

问题描述

我正在玩 Julia ODE 模块。我解决了一个简单的牛顿力学方程,涉及一个斜面。为方便起见(因为我在解析求解时这样做了),我旋转轴,使x跟随平面,而y平面垂直。但是,在显示解决方案时,我想将其旋转回来,以使y重力方向重合。

现在,从解决方案对象中提取我的位置向量不是问题(尽管我的方法可能不是很惯用),也不是绘制它们。但是这样做,我失去了直接绘制解决方案所带来的美妙魔力。有没有办法将我的旋转直接应用于解决方案对象,所以它的行为仍然像一个准备滚动插值等的函子?

传递我的函数定义,我运行这个:

prob = ODEProblem(pfm!, u0, tspan, (g, alpha))
cb = ContinuousCallback(condition, affect!)
sol = solve(prob, Tsit5(), reltol=1e-8, abstol=1e-8, callback=cb)

绘制溶胶时:

漂亮的插值

事先获取位置向量时

pos = hcat(sol.u...)[[1, 2], :]

我明白了

无插值

手动旋转后的现有解决方案并不多

pos = rot_mat * hcat(sol.u...)[[1, 2], :]

生产

无插值,旋转

标签: juliaode

解决方案


推荐阅读