-1
由於之前不清楚,我對此表示歉意。我現在更瞭解這個功能,但可以在幾個方面使用一些幫助。在R中使用deSolve的差分Eq
我想找回轉換(X)與音量(V)的關係,或者反過來也可以。在我看來,傳統的「時代」術語是我想用0-1的X序列取代的,X是轉換,記得如此界定0和1.0
下面,rw是反應速率,並且是任何給定時刻的分壓的函數,它們被描述爲Pw,Px,Py和Pz,它們本身是初始條件(P.w0,v.0)的函數,轉換也是X.
預先感謝您
rm(list = ls())
weight <- function(Vols, State, Pars) {
with(as.list(c(State, Pars)), {
y = 1
delta = 2
ya.0 = 0.4
eps = ya.0 * delta
temp = 800
R = 8.314
k.2 = exp((35000/(R*temp)) - 7.912)
K.3 = exp(4.084/ temp - 4.33 )
P.w <- P.w0 * (1 - X) * y/(1 + eps * X)
P.x <- P.w0 * (1 - 2*X) * y/(1 + eps * X)
P.y <- P.w0 * (1 + X) * y/(1 + eps * X)
P.z <- P.w0 * (1 + 4*X) * y/(1 + eps * X)
r.w <- k.2 * (K.3 * P.w * P.x^2 - P.y * P.z^4)
F.w0 <- P.w0 * v.0/(R * temp)
dX.dq <- r.w/F.w0
res <- dX.dq
return(list(res))
})
}
pars <- c(y = 1,
P.w0 = 23,
v.0 = 120)
yini <- c(X = 0)
vols <- seq(0 , 100 , by = 1)
out <- ode(yini , vols , weight , pars)
我不知道其他問題來自哪裏,但請不要使用'T'作爲變量名稱。 'T'是R.中的一個布爾值。 – Heroka
'ode'中'V'的輸入是'0',因此它在'vol.func'函數中被除以0。 –