2015-11-04 68 views
0

繪製表面三維圖,我試圖做一個三維曲面圖如下:問題與R中

library (emdbook) 

params <- c(a0=0.165451439, a1=-0.003771699, a2=-1.319022091, a3= -0.148502307, 
      p0=4.752635e-11,p1=-2.625385e-07, p2=4.166868e-04, p3=-1.049669e-01) 
Age<- as.matrix(seq(0:299)) 
Preci<-as.matrix(seq(from=10, to=3000, by=10)) 
curve3d(with(as.list(params), 
      a0*(exp(a1*Age)) +a2*(exp(a3*Age))* 
       ((p0*Preci^3+p1*Preci^2 + p2*Preci + p3))), 
     varnames=c("Age","Preci"), xlim=c(0,100), ylim=c(100,3000), 
     sys3d="rgl") 

但是,輸出給了我在曲線的開始一個奇怪的形狀。有誰知道我做錯了什麼?這是兩個函數(年齡和Preci)之間的相互作用,我做錯了嗎?

回答

0

我認爲要在功能之間進行交互,需要使用+符號而不是*符號。因此命令行變爲:

library (emdbook) 

params <- c(a0=0.165451439, a1=-0.003771699, a2=-1.319022091, a3= -0.148502307, 
      p0=4.752635e-11,p1=-2.625385e-07, p2=4.166868e-04, p3=-1.049669e-01) 
Age<- as.matrix(seq(0:299)) 
Preci<-as.matrix(seq(from=10, to=3000, by=10)) 
curve3d(with(as.list(params), 
      a0*(exp(a1*Age)) +a2*(exp(a3*Age))+ 
       ((p0*Preci^3+p1*Preci^2 + p2*Preci + p3))), 
     varnames=c("Age","Preci"), xlim=c(0,100), ylim=c(100,3000), 
     sys3d="rgl")