2012-10-03 29 views
7

Estoy intentando trazar la siguiente fórmula implícita en R:Trazado función implícita

1 = x^2 + 4 * (y^2) + x * y

que debe ser una elipse. Me gustaría muestrear aleatoriamente los valores xy luego generar el gráfico basado en esos.

Here's un hilo relacionado, pero las soluciones allí parecen ser específicas del caso 3D. Esta pregunta ha sido más resistente a googlear que yo hubiera esperado, así que tal vez el lenguaje R llama a las fórmulas implícitas algo más.

¡Gracias de antemano!

+0

@mnel. Tu versión fue correcta ¡Recuperar! –

Respuesta

11

Dos cosas que quizás no entiendas. En tablas de funciones implícitas con esa técnica, tiene que mover todos los términos del lado derecho de la función para que su función implícita se convierte en:

0 = -1+ x^2 + 4*(y^2) + x*y 

A continuación, utilizando el valor de contorno de cero tendrá sentido:

x<-seq(-1.1,1.1,length=1000) 
y<-seq(-1,1,length=1000) 
z<-outer(x,y,function(x,y) 4*y^2+x^2+x*y -1) 
contour(x,y,z,levels=0) 

Recibí un mensaje incorrecto en la primera versión. @mnels 'era correcto.

enter image description here

+0

Sí, pero ¿qué pasa con su solicitud de "muestra al azar x"? Me pregunto si quiere usar tu método pero usando 'x <-runif (1000, -1.1,1.1) 'y resolver para' y 'para generar puntos en la elipse. Alternativamente, ¿qué tal 'sfsmisc :: ellipsePoints'? –

+0

Para ser sincero, no noté la parte "aleatoria" x de la pregunta. "Resolver para y" requeriría obtener ambos "lados" de la cuadrática. 'sfmisc :: ellipsePoints' no parece ofrecer una solución inmediata (o incluso retrasada) para mí. Tendría que volver atrás y calcular las longitudes de los medios ejes, el centro y el ángulo antes de tener sus parámetros e incluso entonces no veo forma de usarlos para generar una solución para un valor de x arbitrario. –

Cuestiones relacionadas