1

我正在尝试使用 DifferentialEquation.jl 解决以下 ODE:

在此处输入图像描述

其中 P 是用于投影的矩阵。我很难想象如何解决这个问题。有没有办法使用 Julia 直接解决它?或者我应该尝试手动重新排列方程(我已经尝试过)以适应通常的微分方程格式?我已经开始写下一些可以在下面找到的方程式,但我并没有走得太远。


function ODE(u, p, t)
    g,N = p
    Jacg = ForwardDiff.jacobian(g, u)
   
    sum = zeros(size(N,1))

    for i in 1:size(Jacg,1)
        sum = sum + Jacg[i,:] .* (u / norm(u)) .* N[:,i]
    end

    Proj_N(N) * sum
    nothing
end

prob = ODEProblem(ODE, u0, (0.0, 3.0), (g, N))
sol = solve(prob)

任何帮助表示赞赏并提前感谢。

4

1 回答 1

0

如果你想使用不合适的形式,你必须返回导数,即

function ODE(u, p, t)
    g,N = p
    Jacg = ForwardDiff.jacobian(g, u)
   
    sum = zeros(size(N,1))

    for i in 1:size(Jacg,1)
        sum = sum + Jacg[i,:] .* (u / norm(u)) .* N[:,i]
    end

    Proj_N(N) * sum
end

我认为您只是混淆了变异和非变异衍生形式。

于 2020-09-11T17:49:12.993 回答