我一直試圖在 R 中繪制一個方程。變數固定在(對于這種情況)a=0.06, b=-0.01, i=0, t=0.005, r=0.0025,s=0.015而我打算改變 variable e。主要方程中的一些函式是,

方程看起來像這樣,

理想情況下,我希望在增加之間有一個情節Q。xe
t = 0.0005
A = 0.06
B = -0.01
r = 0.00025
s = 0.015
i=0
M= function(e) e*A - i*B
N= function(e) t/(1 t*e-t*i)
P= function(e) (s/t)*(1 N(e)*(r t))
我實際上不知道如何進行。我想創建一個 (e, Q, x) 串列,其中 x 是給定方程的根,e然后可能使用插值,然后在 R 中繪制 (Q, x)。
有沒有更直接的方法來繪制 x vs Q?如果沒有,有人可以幫我解決這個問題嗎?另外,如果使用mathematica 或MATLAB 更容易,盡管我對這兩種方法的經驗有限,請告訴我。
uj5u.com熱心網友回復:
t <- 0.0005
A <- 0.06
B <- -0.01
r <- 0.00025
s <- 0.015
i<-0
Q <- function(e){
N <- t/(1 t*e-t*i)
M <- e*A - i*B
P <- (s/t)*(1 N*(r t))
M/P
}
RHS <- function(x, e){
N <- t/(1 t*e-t*i)
M <- e*A - i*B
P <- (s/t)*(1 N*(r t))
Q <- M/P
V <- exp(-(r 2*N)/x/r/N)
exp(-1/(x*N)) V* (0.5-Q) Q*V^2
}
LHS <- function(e){
1 - Q(e)
}
x <- function(e){
suppressWarnings(sapply(e, \(u)
optimise(\(x) (RHS(x,u) - LHS(u))^2,
c(-100000, 100000))$min))
}
# assume
e <- 0.1
LHS(e)
RHS(x(e), e)
#plot:
e <- seq(0, 1000)
plot(x(e), Q(e), ty='l')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/422688.html
標籤:
上一篇:在matlab中插值
