使用Julia方程求解器可以创建简单的弹跳球模型吗?模拟弹跳球?
我开始用这样的:
using ODE
function bb(t, f)
(y, v) = f
dy_dt = v
dv_dt = -9.81
[dy_dt, dv_dt]
end
const y0 = 50.0 # height
const v0 = 0.0 # velocity
const startpos = [y0; v0]
ts = 0.0:0.25:10 # time span
t, res = ode45(bb, startpos, ts)
产生寻找有用的号码:
julia> t
44-element Array{Float64,1}:
0.0
0.0551392
0.25
0.5
0.75
1.0
⋮
8.75
9.0
9.25
9.5
9.75
10.0
julia> res
44-element Array{Array{Float64,1},1}:
[50.0,0.0]
[49.9851,-0.540915]
[49.6934,-2.4525]
[48.7738,-4.905]
[47.2409,-7.3575]
⋮
[-392.676,-93.195]
[-416.282,-95.6475]
[-440.5,-98.1]
但不知何故,它需要介入时的高度为0,扭转速度。还是我在错误的轨道上?
你不能在ODE中这样做,因为那需要事件处理。但是,事件处理现在位于[DifferentialEquations.jl](https://github.com/JuliaDiffEq/DifferentialEquations.jl/issues/64)列表的顶部。那里有解决方案时我会发布。 –
如果您有兴趣确保DifferentialEquations.jl框架能够处理您感兴趣的各种问题,请随时参考[关于此问题](https://github.com/JuliaDiffEq/DifferentialEquations.jl/问题/ 64)。考虑到API,已经能够处理这个问题以及更多问题,例如更改问题大小。我打算像一个星期左右发布。 –