def calculateEuler(nuclei_A, nuclei_B, tau_A, tau_B, time, dt, n):
i = 0
while i < n-1:
nuclei_A[i+1] = nuclei_A[i] - (nuclei_A[i]/tau_A)*dt
nuclei_B[i+1] = nuclei_B[i] + (nuclei_A[i]/tau_A)*dt - (nuclei_B[i]/tau_B)*dt
time[i+1] = time[i] + dt
i = i+1
return nuclei_A, nuclei_B, time
我试着写一个函数,当原子核(a和B)经历放射性衰变时,它近似于原子核的数量。原子核的初始数目、原子核_A[0]和原子核_B[0]已经在前面的函数中赋值
对于测线,我得到两个错误:
TypeError: only size-1 arrays can be converted to Python scalars.
ValueError: setting an array element with a sequence.
我很难理解这些错误的含义以及我做错了什么
下面的运行没有错误,每个物种在分配的时间内达到零。我没有对你的功能做任何更改。如果您发现使用不同的值初始化会破坏此代码,您可以使用此代码示例和这些值重新格式化您的问题
我从中得到了一点乐趣,并且能够大大加快代码的速度,除了简单之外,没有其他原因。对于1000个时间步长的模拟,上面编写的函数平均运行时间约为2.91毫秒。对于相同长度的时间数组,以下函数平均运行时间约为0.009毫秒
相关问题 更多 >
编程相关推荐