2014-01-20 3 views
2

I가 다음 함수R에 3 차원 함수를 플로팅하는 방법?

f(x,y) = 2 x^2 + 12 x * y + 7 y^2 

내가 R의 3 차원 그래프를 플롯 하시겠습니까? 이것이 가능한지 궁금합니다. 그래서 인터넷에서 보았고 아래 코드를 시도했지만 아무 것도 그려지지 않았습니다. 누군가가 잘못된 것을 지적 할 수 있습니까? 당신의 z 벡터 만 x=y에 정의 된, 하나의 차원이기 때문에

x <- seq(-100,100,0.1) 
y <- seq(-100,100,0.1) 
z <- 2*x^2 + 12 * x * y + 7 * y^2 

xyz <- data.frame(cbind(x,y,z)) 
names(xyz) <- c('x', 'y', 'z') 
library(lattice) 
wireframe(z ~x*y, data = xyz, scales = list(arrows = FALSE), zlab = 'f(x,y)', drape = T) 
+0

을 당신은'emdbook' 패키지에서'curve3d' 기능에 관심이있을 수 있습니다 ... –

답변

2

아무 것도 그려지지 않습니다. , 데이터 프레임을 확장 outerexpand.grid를 사용하려면 :

df <- expand.grid(x = x, y = y) 
df$z <- as.vector(outer(x,y, function(x,y) {2*x^2 + 12 * x * y + 7 * y^2})) 
wireframe(z ~ x * y, data = df, scales = list(arrows = FALSE), zlab = 'f(x,y)', drape = T) 

enter image description here

관련 문제