You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Julia的QuDiffEq求解微分方程遇数组长度要求错误,请求调试

调试QuDiffEq求解ODE时的错误

错误原因

QuDiffEq的QuLDE求解器要求初始状态数组的长度必须是大于1的2的幂次(比如2、4、8、16...),你的初始条件u0 = [1.1,1.1,1.1]长度为3,不满足这个要求,所以触发了错误提示。

修复后的代码

把初始数组长度改成2的幂次(比如4),同时调整微分方程函数的循环范围以匹配数组长度:

using QuDiffEq
using OrdinaryDiffEq, Test

function f(du,u,p,t)
    for i in 1:4  # 循环范围匹配u0的长度
        du[i] = u[i]
    end
end

u0 = [1.1,1.1,1.1,1.1]  # 长度改为4(2的2次幂)
h = 0.01
k = 5
tspan = (0.0,10.0)
prob = ODEProblem(f,u0,tspan)
qsol = solve(prob,QuLDE(k),dt = h)

补充说明

  • 如果实际问题需要3维状态,可以给u0补一个占位元素(比如[1.1,1.1,1.1,0.0]),后续处理时忽略多余维度即可。
  • 其他符合要求的数组长度还有2、8、16等,可根据需求选择。

内容的提问来源于stack exchange,提问作者Thành Trần

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 06:15:08