2016-11-22 151 views
0

假設我有一個簡單的數學函數n1=m1*n1,並且我想繪製該函數,因爲n1接近無窮大。有沒有快速的方法來做到這一點?繪製R函數限制函數

m1=0.1 

初始n1=0.1

還是我必須要使用deSolve和建立微分方程?必須有一個快速的方法來做到這一點。

+0

這看起來像一個獨立的地圖(即'N1(T + 1)= M1 * n1(t)')而不是微分方程。你的意思是'd(n1)/ dt = m1 * n1'? R沒有象徵性的計算能力(例如有限制)...... –

回答

0

如果你的意思是在這個等式中的下一個值取決於最後一個值,你將成立這樣的:

m1 <- 0.1 
x <- seq(0.1, 1000, 0.1) 
y <- c(0.1, rep(NA, length(x)-1)) 

for(i in 2:length(x)){ 
    y[i] <- y[i-1] * m1 
} 

plot(y~x, type = "l") 
+0

是的,它是一個衍生物,你的例子不起作用。初始狀態下的值用於計算t + 1時的值。如果你不知道他們會是什麼,你爲什麼要分配y的值。 –

+0

在初始狀態爲0.1之後,下一個值爲0.01,下一個值爲0.001,依此類推。上面的代碼表明''t'時刻的值取決於't-1'處的'y'的值,這與說出初始狀態後的值完全相同('t = 2')取決於初始狀態('t = 1')。這只是通過for循環完成的。 –

+0

我不明白你爲什麼用seq函數初始化y。 –