在 R 的区间内绘制结果图
plot graph of results within in interval in R
n=50
p=0.32
P=matrix( c(p, 1-p, 0, 0, 0, 0,
p, 0, 1-p, 0, 0, 0,
p, 0, 0, 1-p, 0, 0,
0, p, 0, 0, 1-p, 0,
0, 0, p, 0, 0, 1-p,
0, 0, 0, p, 0, 1-p),
ncol=6, nrow=6, byrow = T)
X=2
for(j in 1:n)
{Y=runif(1)
k=P[X[j],]
k=cumsum(k)
if(Y<=k[1])
{X[j+1]=1}
else if (Y<=k[2])
{X[j+1]=2}
else if (Y<=k[3])
{X[j+1]=3}
else if (Y<=k[4])
{X[j+1]=4}
else if (Y<=k[5])
{X[j+1]=5}
else {X[j+1]=6}}
mean(X)
x=c(1,2,3,4,5,6)
y=c(0.1,0.15,0.22,0.29,0.38,0.45)
approx(x,y,xout=mean(X))
我使用上面的代码通过固定 p 的线性插值得到一个平均值 (y)。
但是现在,如何更改代码以绘制 mean(y) 对 p[0:1] 的图形???
我一直只得到一个意思(y),请帮助我。
p.s.I 只需要大约$y,这就是我被困的地方:(
我认为将您的代码更改为 function()
并与 sapply(p.vector, ...)
一起使用会更好。
功能
func <- function(p) {
P = matrix( c(p, 1-p, 0, 0, 0, 0,
p, 0, 1-p, 0, 0, 0,
p, 0, 0, 1-p, 0, 0,
0, p, 0, 0, 1-p, 0,
0, 0, p, 0, 0, 1-p,
0, 0, 0, p, 0, 1-p),
ncol=6, nrow=6, byrow = T)
X = 2
for(j in 1:n)
{Y=runif(1)
k=P[X[j],]
k=cumsum(k)
if(Y<=k[1])
{X[j+1]=1}
else if (Y<=k[2])
{X[j+1]=2}
else if (Y<=k[3])
{X[j+1]=3}
else if (Y<=k[4])
{X[j+1]=4}
else if (Y<=k[5])
{X[j+1]=5}
else {X[j+1]=6}}
return(approx(x, y, xout = mean(X))$y)
}
将函数与 p[0:1] 一起使用
p.vec <- seq(0, 1, 0.01) # preparation of p[0:1] as a vector
n = 50 # defining other paramaters
x = c(1, 2, 3, 4, 5, 6)
y = c(0.1, 0.15, 0.22, 0.29, 0.38, 0.45)
y.vec <- sapply(p.vec, func) # calculation of the y about p[0:1]
plot(p.vec, y.vec, type="o") # for example
n=50
p=0.32
P=matrix( c(p, 1-p, 0, 0, 0, 0,
p, 0, 1-p, 0, 0, 0,
p, 0, 0, 1-p, 0, 0,
0, p, 0, 0, 1-p, 0,
0, 0, p, 0, 0, 1-p,
0, 0, 0, p, 0, 1-p),
ncol=6, nrow=6, byrow = T)
X=2
for(j in 1:n)
{Y=runif(1)
k=P[X[j],]
k=cumsum(k)
if(Y<=k[1])
{X[j+1]=1}
else if (Y<=k[2])
{X[j+1]=2}
else if (Y<=k[3])
{X[j+1]=3}
else if (Y<=k[4])
{X[j+1]=4}
else if (Y<=k[5])
{X[j+1]=5}
else {X[j+1]=6}}
mean(X)
x=c(1,2,3,4,5,6)
y=c(0.1,0.15,0.22,0.29,0.38,0.45)
approx(x,y,xout=mean(X))
我使用上面的代码通过固定 p 的线性插值得到一个平均值 (y)。 但是现在,如何更改代码以绘制 mean(y) 对 p[0:1] 的图形??? 我一直只得到一个意思(y),请帮助我。 p.s.I 只需要大约$y,这就是我被困的地方:(
我认为将您的代码更改为 function()
并与 sapply(p.vector, ...)
一起使用会更好。
func <- function(p) {
P = matrix( c(p, 1-p, 0, 0, 0, 0,
p, 0, 1-p, 0, 0, 0,
p, 0, 0, 1-p, 0, 0,
0, p, 0, 0, 1-p, 0,
0, 0, p, 0, 0, 1-p,
0, 0, 0, p, 0, 1-p),
ncol=6, nrow=6, byrow = T)
X = 2
for(j in 1:n)
{Y=runif(1)
k=P[X[j],]
k=cumsum(k)
if(Y<=k[1])
{X[j+1]=1}
else if (Y<=k[2])
{X[j+1]=2}
else if (Y<=k[3])
{X[j+1]=3}
else if (Y<=k[4])
{X[j+1]=4}
else if (Y<=k[5])
{X[j+1]=5}
else {X[j+1]=6}}
return(approx(x, y, xout = mean(X))$y)
}
将函数与 p[0:1] 一起使用
p.vec <- seq(0, 1, 0.01) # preparation of p[0:1] as a vector
n = 50 # defining other paramaters
x = c(1, 2, 3, 4, 5, 6)
y = c(0.1, 0.15, 0.22, 0.29, 0.38, 0.45)
y.vec <- sapply(p.vec, func) # calculation of the y about p[0:1]
plot(p.vec, y.vec, type="o") # for example