使用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,已經能夠處理這個問題以及更多問題,例如更改問題大小。我打算像一個星期左右發佈。 –