Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Julia 微分方程将“无”交给我的微分方程_Julia_Differential Equations - Fatal编程技术网

Julia 微分方程将“无”交给我的微分方程

Julia 微分方程将“无”交给我的微分方程,julia,differential-equations,Julia,Differential Equations,我试图解两体微分方程。Differentialsequations.jl过去可以毫不费力地解出我的方程,但在某个时刻,它开始不向微分方程提交任何初始条件 这可能是最近经常出现的范围界定问题吗 using Unitful, RecursiveArrayTools, DifferentialEquations function propagateTrajNewWay(df::DataFrame, idx::Int) x = df.E[idx]u"m" y =

我试图解两体微分方程。Differentialsequations.jl过去可以毫不费力地解出我的方程,但在某个时刻,它开始不向微分方程提交任何初始条件

这可能是最近经常出现的范围界定问题吗

using Unitful, RecursiveArrayTools, DifferentialEquations

function propagateTrajNewWay(df::DataFrame, idx::Int)
    x  = df.E[idx]u"m"
    y  = df.F[idx]u"m"
    z  = df.G[idx]u"m"
    r0 = [x, y, z]
    vx = df.dE[idx]u"m/s"
    vy = df.dF[idx]u"m/s"
    vz = df.dG[idx]u"m/s"
    v0 = [vx, vy, vz]
    rv0 = ArrayPartition(r0, v0)
    tspan = (df.time[idx]u"s", df.time[end]u"s")
    μ = 3.986004418e14u"m^3/s^2"
    # prob = ODEProblem(twoBody, u0, tspan)
    # println(prob)
    # sol = solve(prob, VCABM(), reltol = 1e-12, abstol = 1e-12)
    prob = ODEProblem((t, y, dy) -> twoBodyNew(t, y, dy, μ), rv0, tspan)
    sol = solve(prob, VCABM())
    return sol
end

function twoBodyNew(t, y, dy, μ)
    show(y)
    r = norm(y.x[1])
    dy.x[1] .= y.x[2]
    dy.x[2] .= -μ .* y.x[1] / r^3
end


function propWholeTraj(df)
    for ii = 1:size(df, 1)
        propagateTrajNewWay(df, ii)
    end
end

propWholeTraj(df)
这里的代码基本上是从头到尾复制的 使用静态数组。我也有自己版本的双体函数和设置并调用它的函数,但这也有同样的错误


有没有想过这里会出什么问题?

函数签名应该是twobodynet,y,μ,dy。它总是du,u,p,t。链接页面上的文档已修复

只是想澄清一下,该页面上的所有文档都是正确的?我用这些公式又试了一次,但它对meDid仍然不起作用。你在文档更新后跟踪文档吗?我在你的帖子后更新了它们来修复错误。是的,我将代码复制并粘贴到一个单独的脚本中并运行了它,但仍然得到了相同的nothing error事实上,我应该补充一点,Unitful use在这里对我不起作用。我得到错误:LoadError:DimensionError:km s^-1和0.0在维度上不兼容。所以我一直在削减代码中的单位,我还必须使用LinearAlgebra添加,否则规范是未定义的。我现在得到的只是一个错误:LoadError:type Float64没有对应于dy.x[1]行的字段x。=y.x[2]