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

调用Scipy的solve_ivp时报dxfc_dt缺必填位置参数该如何解决?

错误原因

  • 你使用的Scipy版本低于1.4.0,solve_ivp的args参数从1.4.0版本才开始支持,你传入的args没有被识别生效,solve_ivp调用dxfc_dt时仅传入了t和y两个参数,因此提示缺少剩余5个位置参数。
  • 你后续调用dxlc_dt时参数顺序传反:函数定义时的参数顺序为t, x_lc0, v_lc0, ts, da_lc,调用时第二个、第三个参数顺序颠倒,即使修复参数缺失问题也会得到错误计算结果。

修正方案

优先使用lambda匿名函数封装固定参数,兼容所有Scipy版本,不需要依赖args参数,同时修正参数顺序问题,修改后的代码如下:

# 用lambda封装参数,替换原solve_ivp调用行
ys = solve_ivp(lambda t,y: dxfc_dt(t,y,x_lc0,v_lc0,da_lc,k,ts), tspan, y0, method='LSODA', t_eval=t)

# 修正dxlc_dt的参数顺序,和定义保持一致
x_lc,v_lc=dxlc_dt(t, x_lc0, v_lc0, ts, da_lc)

plt.plot(t,x_lc,label='Lead Car',color = 'black')
plt.plot(t,ys['y'][0],label='Following Car', color='yellow')
plt.xlabel('Time')
plt.ylabel('Distance (miles)')
plt.legend()
plt.show()

如果你要继续使用args参数,只需要将Scipy升级到1.4.0及以上版本即可。

内容的提问来源于stack exchange,提问作者qhumphrey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:36:11