我正在尝试解决 ODE 问题(与 Julia 一起),该问题可以在满足特定条件时提前停止。
假设我有一个洛伦兹系统,如下所示
using DifferentialEquations
function lorenz!(du,u)
du[1] = 10.0*(u[2]-u[1]);
du[2] = u[1]*(28.0-u[3]) - u[2];
du[3] = u[1]*u[2] - (8/3)*u[3];
end
u0 = [1.0;0.0;0.0]
tspan = (0.0, 100.0)
prob = ODEProblem(lorenz!,u0, tspan);
sol = solve(prob);
Run Code Online (Sandbox Code Playgroud)
并且,例如,我想在 u[3] 高于 10 时停止 ODE 求解器,如下所示。
sol = solve(prob, stopcondition = u[3]>10);
Run Code Online (Sandbox Code Playgroud)
但我不确定是否有可能在给定条件下停止 ODE 求解器。
任何相关评论将不胜感激:)
我正在尝试创建一个函数,将数据帧转换为 Julia 中的元组向量。
\n例如,
\nusing DataFrames\ndf = DataFrame(A=1:4, B=4:7, C=10:13)\n\n4\xc3\x973 DataFrame\n Row \xe2\x94\x82 A B C \n \xe2\x94\x82 Int64 Int64 Int64 \n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n 1 \xe2\x94\x82 1 4 10\n 2 \xe2\x94\x82 2 5 11\n 3 \xe2\x94\x82 3 6 12\n 4 \xe2\x94\x82 4 7 13\n\nT = [t for t in zip(df.A, df.B, df.C)]\n\nT = 4-element Vector{Tuple{Int64, Int64, Int64}}:\n (1, 4, 10)\n (2, 5, 11)\n (3, 6, 12)\n (4, 7, 13)\nRun Code Online (Sandbox Code Playgroud)\n然后T就变成了我想要的结果。
\n然而,问题是我需要使上述过程发挥作用。
\n所以,我需要的是自动将数据帧的列放入 zip 函数中。
\n我想要制作的函数形式如下
\n …