eine Differentialgleichung könnte alsJacobian für verschiedene Variablen
sys <- function(t, y, p, u) {
dy <- numeric(2)
u <- u(t)
dy[1] = p$a*(1 + p$b*(y[2] - 1)/(p$c + y[2] - 1) - u*y[1])
dy[2] = u*y[1] - y[2]
list(dy)
}
Lassen Sie uns definiert werden Weiteren davon aus, dass die stationären Zustände (Gleichgewicht) sind bekannt. Nun, gibt es eine Möglichkeit, die Jacobi-Matrix der rechten Seite in Bezug auf x
zu berechnen?
Ich weiß, dass ich
f <- function(y){
c(
p$a*(1 + p$b*(y[2] - 1)/(p$c + y[2] - 1) - u*y[1]),
u*y[1] - y[2]
)
}
und berechnen Sie die Jacobi mit
Jx <- jacobian(f, c(1,1))
definieren könnte, wobei jacobian
aus dem pracma
Paket kommt. Aber gibt es keinen leichteren Weg ohne diesen Zwischenschritt? Es könnte auch helfen, wenn man f
innerhalb sys
, z.B.
sys <- function(t, y, p, u) {
dy <- numeric(2)
u <- u(t)
dy[1] = f(y)[1]
dy[2] = f(y)[2]
list(dy)
}
Und zuletzt, könnte es auch eine Möglichkeit geben, die Jacobi w.r.t zu berechnen. zu u
?
Vielen Dank!
Welche Funktion ist 'u()'? –
Irgendeine beliebige Funktion abhängig von der Zeit. Könnte eine Linie oder ein Exponential oder ein Sinus sein. – Pascal