小编c00*_*kie的帖子

有什么可能的方法来停止 ODE 求解器(使用 DifferentialEquations.jl)?

我正在尝试解决 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 求解器。

任何相关评论将不胜感激:)

ode julia

4
推荐指数
1
解决办法
370
查看次数

将数据帧转换为元组向量的便捷方法?

我正在尝试创建一个函数,将数据帧转换为 Julia 中的元组向量。

\n

例如,

\n
using 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)\n
Run Code Online (Sandbox Code Playgroud)\n

然后T就变成了我想要的结果。

\n

然而,问题是我需要使上述过程发挥作用。

\n

所以,我需要的是自动将数据帧的列放入 zip 函数中。

\n

我想要制作的函数形式如下

\n …

tuples dataframe julia

3
推荐指数
2
解决办法
983
查看次数

标签 统计

julia ×2

dataframe ×1

ode ×1

tuples ×1