Как отобразить значение переменной следующего периода в сравнении с прошлым периодом в R - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь построить разностное уравнение, используя R. У меня есть следующее MWE:

N <- 10 #periods
time <- c(0:N)
x <- rep(0,N)
x[1] <- 0.5 #initial value
E <- rep(0,N)
E[1] <- 1
#Parameters
c <- 1
K <- 1
p <- 200
q <- 0.01
g <- 0.1
eta <- 0.3

for (t in 1:N) {
  x[t+1] <- (1 + g - g*x[t]/K - q*E[t])*x[t]
  E[t+1] <- (1 + eta*(p*q*x[t]-c))*E[t]
}

p1 <- plot(x[t], x[t+1]) #I try this but clearly this does not work
p2 <- plot(x[0:N], x[1:N+1]) #this produces a diagram where x=y, a 45 degree line

p1 производит

enter image description here

и p2 создает

enter image description here

Я ожидаю, что график будет выглядеть как стабильная спираль. Мой вопрос заключается в том, как правильно отобразить значение переменной следующего периода относительно текущего периода? Я ищу сюжет

$$ x_ {t + 1} (x_ {t}) $$

1 Ответ

2 голосов
/ 05 февраля 2020

Я вижу две проблемы:

1. N в вашем примере - маленький. Чтобы увидеть стабильную спираль, установите N на 100 или 1000

2. Ваши графики показывают именно то, что я ожидал, но я не думаю, что они делают то, что вы хотите;)

p1 отображает второй последний элемент x x[t] на оси x (t равен N после для l oop) против последнего элемента x -> одной точки.

p2 строит все элементы x, кроме последнего, против всех элементов x, кроме первого, т.е. значение против себя с 1 лагом -> точек образует почти диагональ

Но если Вы строите любой из:

plot(time, E)
plot(time, x)
plot(E, x)

Вы получаете интересные сюжеты, последний рисует спираль!

E_vs_x_plot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...