Python 错误'';int';对象不可下标';在欧拉';s方法函数

Python 错误'';int';对象不可下标';在欧拉';s方法函数,python,Python,我正试图应用于求解以下微分方程: dA/dt=-k/2*Ca*Cc dB/dt=-k*Ca*Cc dD/dt=k*Ca*Cc 我想得到[[t0,t2,…],[A0,B0,D0],[A1,B1,D1],…] 式中,A0、B0和C0是时间t0时每种产品的浓度(与A1、B1、D1相同,但与t1相同…) 但我总是犯这样的错误: Traceback (most recent call last): File "<ipython-input-58-7025b89a5cfb>&qu

我正试图应用于求解以下微分方程:

dA/dt=-k/2*Ca*Cc

dB/dt=-k*Ca*Cc

dD/dt=k*Ca*Cc

我想得到[[t0,t2,…],[A0,B0,D0],[A1,B1,D1],…] 式中,A0、B0和C0是时间t0时每种产品的浓度(与A1、B1、D1相同,但与t1相同…)

但我总是犯这样的错误:

Traceback (most recent call last):

  File "<ipython-input-58-7025b89a5cfb>", line 1, in <module>
    runfile('C:/Users/catas/OneDrive/Desktop/ER_trab/simulator2_letshopethisworks.py', wdir='C:/Users/catas/OneDrive/Desktop/ER_trab')

  File "C:\Users\catas\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
    execfile(filename, namespace)

  File "C:\Users\catas\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/catas/OneDrive/Desktop/ER_trab/simulator2_letshopethisworks.py", line 70, in <module>
    print(euler(react,0,C0,60,60))

  File "C:/Users/catas/OneDrive/Desktop/ER_trab/simulator2_letshopethisworks.py", line 60, in euler
    C0[0] += h * f(t0, C0[0]) #calculos das aproximacoes y

  File "C:/Users/catas/OneDrive/Desktop/ER_trab/simulator2_letshopethisworks.py", line 44, in react
    dAdt=-k/2*C0[1:][0]*C0[1:][2] #velocidade de consumo de A

IndexError: list index out of range
我不明白怎么解决这个问题

谢谢大家!

这里:

C0[0] += h * f(t0, C0[0]) 
获取
C0
的单个元素并将其传递给step函数(
react
)。显然,这些项目是整数

然而,在该职能范围内:

Ca=C[0]
显然,您希望收到整个
C0
列表,以便从中提取
Ca
C
作为整数传递,因此
C[0]
将按照错误消息中的说明失败


您需要更清楚地考虑您的程序逻辑,以及该过程的哪些步骤将在何处发生。

如何调用它?似乎
C
是一个整数,但你却把它当作一个列表。“我已经复制并粘贴了这段代码,但没有发生任何事情,你没有包括应该运行哪个函数,你想在
euler
中使用
f(t0,C0)
?它告诉你
TypeError:'int'对象是不可订阅的
,你明白这意味着什么吗?如果你不明白,你到底需要什么帮助?您了解它与它抱怨的代码行的关系吗?特别是,你知道它对
C
意味着什么吗?你好,我明白你的意思了!我试图修复它,但现在我又犯了一个新错误!你能看一下吗!谢谢你,顺便说一句!
Ca=C[0]