0
我試圖繪製一段時間(1800秒)的溫度。我有兩個初始值問題,其中func2依賴於func1和兩個初始值。Python-使用兩個方程的odeint
這裏有兩個功能:
rate = dA/dt = -(3.083e8*np.exp(-56000/(8.314*Temp))*A*0.033)
dT/dt = (-0.45*-98000*rate+5.7431*(273.15-Temp))/(2018.94)
其中A是物質的濃度和溫度是這樣的溫度。
我的初始值是:
T[0]=281.15
A[0]=6.529
這裏是我到目前爲止的代碼:
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
t = np.linspace(0,1800,100) #timeline
c0 = np.array([281.15,6.529]) #initial values
def df(c, t):
Temp = c[0]
A = c[1]
rate = -(3.083e8*np.exp(-56000/(8.314*Temp))*A*0.033)
dTdt = (-0.45*-98000*rate+5.7431*(273.15-Temp))/(2018.94)
return np.array([dTdt, rate])
sol = odeint(df, c0, t)
plt.plot(t, sol)
它只是產生this graph這是不對的。它應該看起來像上圖中的曲線:here
我在哪裏出錯了?
您在DF的結果換周圍的座標。它應該是:'return np.array([dTdt,rate])' –
當'Temp'爲8時,表達式'exp(-56000 /(8.314 * Temp))'下溢爲0。 'Temp'?阿列紐斯方程要求開爾文的溫度。 –
切換返回結果並將初始溫度更改爲開爾文(攝氏溫度)仍然得到不正確的圖表... – tlb