0
私は長時間(1800秒)にわたって温度をプロットしようとしています。私はfunc2がfunc1と2つの初期値に依存するという2つの初期値の問題があります。ここ Python- 2つの方程式を使ってodeintを使う
は2つの機能である:
Aは、物質の濃度であり、温度は温度で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)
。
私の初期値は次のとおりです。
T[0]=281.15
A[0]=6.529
はここで、これまでに私のコードです:それはちょうど間違っているthis graph生成
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)
。この図の上の曲線のようになります。here
どこが間違っていますか?
。 'return np.array([dTdt、rate])' –
また、 'Temp'が8のとき' exp(-56000 /(8.314 * Temp)) 'は0にアンダーフローします。 'Temp'?アレニウス方程式では、ケルビンの温度が必要です。 –
戻り値を交換し、初期温度をケルビン(摂氏)に変更しても、間違ったグラフが表示される... – tlb