python函数无法调用_ODEINT无法调用函数

因此,我试图解决一个由三个ode组成的系统,并使用ODEint开发了以下代码来解决它们。但是当我运行时,ODEint在调用我的函数来处理方程组时遇到了一个问题。在from scipy.integrate import odeint

#initial parameters

X0 = 75.

M0 = 150.

G0 = 105.

N0 = 80.

T0 = 7.

u10 = 0.0301231859

u20 = 0.0078947020

u30 = 0.0010708464

Rxg = 1.92

Rxm = 3.84

Rxma = 5.76

#define system of equations

def sugar(t,y,u10,u20,u30,Rxg,Rxm,Rxma):

ddt = [-u10*(X0+(Rxg*(G0-y[0]))+(Rxm*(M0-y[1]))+(Rxma*(N0-y[2]))),

-u20*(X0+(Rxg*(G0-y[0]))+(Rxm*(M0-y[1]))+(Rxma*(N0-y[2]))),

-u30*(X0+(Rxg*(G0-y[0]))+(Rxm*(M0-y[1]))+(Rxma*(N0-y[2])))]

return(ddt)

#time parameter

tinit = 0.

tend = 10.

h = 2.

t = arange(tinit,tend+h,h)

#initial guess

y0 = [G0,M0,N0]

#run odeint

y = odeint(sugar,y0,t,args = (u10,u20,u30,Rxg,Rxm,Rxma))

print 't =',t

print 'y =',y

在我的输出中我得到:

^{2}$

改变y0和t的顺序仍然会导致相同的错误。我不理解这个错误,也不能指导我解决这个问题。任何帮助都将不胜感激。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值