miércoles, 12 de junio de 2019

GEOMETRIA ANALITICA CON R


GEOMETRIA ANALITICA CON R

Ing. Luis Manfredo Reyes

R es actualmente el lenguaje de análisis   más utilizado en el mundo académico y de investigación, primero por su potencia de procesamiento, y en segundo lugar por ser un software libre.

R  puede ser descargado del siguiente sitio: http://www.r-project.org/

Existen versiones para Windows, Mac, Linux y Android

UN ERROR MUY COMUN POR TODOS LADOS ES: HAY GENTE QUE CREE QUE R ES UN PAQUETE ESTADÍSTICO (COMO SAS O SPSS).

Por ser un lenguaje y no un paquete, R tiene capacidades para muchos procesos, pero se debe reconocer que quizá donde más se le ha utilizado es en el campo de la estadística.

Una de las ventajas de R, es la enorme cantidad de librerías (o paquetes), que han sido desarrolladas para ampliar sus capacidades.


Sin embargo, R no fue diseñado como un software matemático, por lo que no posee todas las capacidades de análisis que se utilizan en geometría analítica. Para quienes deseen trabajar Geometría Analítica con mejor potencia se recomienda el software libre GEOGEBRA.
Sin embargo, para los que desean realizar éste tipo de cálculos sin abandonar el ambiente de R, hay esperanzas.
CASO 1. LÍNEAS RECTAS
Ejemplo: y=3x-1, entre x=-5, x=5

curve(3*x-1, from=-5, to=5)





CASO 2: CIRCUNFERENCIAS
Se puede realizar directamente con las funciones nativas, o con paquetes adicionales.
https://stackoverflow.com/questions/22265704/drawing-circle-in-r
 
usando plotrix: el paquete plotrix debe estar instalado

library(plotrix)
plot(1:5,seq(1,10,length=5),type="n",xlab="",ylab="",main="Test draw.circle")
 draw.circle(2,4,c(1,0.66,0.33),border="purple",
  col=c("#ff00ff","#ff77ff","#ffccff"),lty=1,lwd=1)
 draw.circle(2.5,8,0.6,border="red",lty=3,lwd=3)
 draw.circle(4,3,0.7,border="green",col="yellow",lty=1,
  density=5,angle=30,lwd=10)
 draw.circle(3.5,8,0.8,border="blue",lty=2,lwd=2)


Otro ejemplo: aplicación del método Monte Carlo para encontrar el área de un círculo

n <- 1000
set.seed(0)
x <- runif(n, -1, 1)
y <- runif(n, -1, 1)

#x and y have the same scale -> Circle
plot(x, y, asp=1)
symbols(x=0, y=0, circles=1, inches=F, add=T)

#In case x and y don't have the same scale -> Ellipse
#Use Gregor's Answer
plot(x,y)
radius <- 1
theta <- seq(0, 2 * pi, length = 200)
lines(x = radius * cos(theta), y = radius * sin(theta))

#Using plotrix
library("plotrix")
plot(x, y, asp=1)
draw.circle(x=0, y=0, radius=1)




CASO 3: ELIPSES
Se puede realizar directamente con las funciones nativas, o con paquetes adicionales.
Ejempo tomado de sitio:

Grafique la elipse con centro en el origen, distancia del vértice al foco de 3 unidades, excentricidad 1.5

theta=seq(0,2*pi,len=500)
e=1.5
r=3
x=e*r*cos(theta)
y=r*sin(theta)
plot(x,y,asp=1)



Grafique la misma elipse del ejemplo anterior, rotada 45 gradoss
phi=pi/4
xr=x*sin(phi)+y*cos(phi)
yr=-x*cos(phi)+y*sin(phi)
plot(xr,yr,asp=1)
 

Otra forma, tomada del sitio:
xc <- 1 # center x_c or h
yc <- 2 # y_c or k
a <- 5 # major axis length
b <- 2 # minor axis length
phi <- pi/3 # angle of major axis with x axis phi or tau

t <- seq(0, 2*pi, 0.01)
x <- xc + a*cos(t)*cos(phi) - b*sin(t)*sin(phi)
y <- yc + a*cos(t)*cos(phi) + b*sin(t)*cos(phi)
plot(x,y,pch=19, col='blue')

 
CASO 4: PARÁBOLAS VERTICALES
Ejemplo: y=x2, entre x=-5, x=5
 
curve(x^2, from = -5, to = 5)
 
 
CASO 5: PARÁBOLAS HORIZONTALES
 
 
La ecuación de la parabola debe ser reescrita para dejar y en función de x, queda una
 ecuación para el brazo positivo y una para el brazo negativo.
Ejemplo: x=(-y2-2y+3599)/3600
Al despejar y de la  ecuación queda y=+/ - 60*raíz(1-x)-1
Fuente:
eq1 = function(x){ -60*(sqrt(1-x)-1) }
eq2 = function(x){ 60*(sqrt(1-x)+1) }
plot(eq1, xlim=c(0,1), ylim=c(0,100))
plot(eq2, add=TRUE)




No hay comentarios:

Publicar un comentario