Vous êtes sur la page 1sur 38

Taller 2

Diego Alejandro Garzon Sanchez


26 de junio de 2019

#1. Usar sapply para simular el resultado de tomar la media de 100 numeros
# aleatorios de la distribucion normal para 10 muestras independientes.

#Creamos la matriz donde introducimos datos en 10 columnas, donde


#cada una de ellas tiene 100 numeros como se pide, para usar sapply
#debemos convertir esa matriz en dataframe asi cada columna se lee
#como un elemento y aplica la funciÃ3n 'mean' a cada una de ellas.

x=matrix(0,100,10)
for (i in 1:10) {
x[,i]=rnorm(100)
}
x=as.data.frame(x)
#Asi como Resultado tenemos la media de cada columna:
sapply(x,mean)
## V1 V2 V3 V4 V5 V6
## -0.14182777 0.06600922 0.07427965 -0.01329685 -0.19675846 0.03493721
## V7 V8 V9 V10
## -0.21998521 0.20782018 -0.05957100 0.04736374
#2. Para una enfermedad que se sabe tiene una frecuencia de complicacion
# postoperatoria del 20 %, un cirujano sugiere un nuevo procedimiento.
# El prueba este en 10 pacientes y no hay complicaciones. ¿Cual es la
# prob. de operar exitosamente 10 pacientes con el metodo tradicional?

#Usamos la distribucion binomial para obtener la probabilidad de 10 exitos


#en 10 intentos con una probabilidad de exito de 80%.

dbinom(10,10,0.8)
## [1] 0.1073742
#3. Genere un vector muestral z de 5 numeros aleatorios a partir de la
# distribucion uniforme y realice un (line plot) de quantile(z,x) como
# una funcion de x (use curve, por ejemplo) y la libreria lattice.

#Tomamos matriz de 5 vectores muestrales z para usar la libreria lattice,


#se realiza el line plot con la funcion 'curve' y dos de las funciones de
#la libreria para graficar los datos.

library(lattice)
z=matrix(0,5,5)
for (i in 1:5) {
z[i,]=runif(5)
}
x=quantile(z)
x
## 0% 25% 50% 75% 100%

1
## 0.03510337 0.22247562 0.40037147 0.61971987 0.99744446
curve(quantile(z,x))
1.0
0.8
quantile(z, x)

0.6
0.4
0.2
0.0

0.0 0.2 0.4 0.6 0.8 1.0

parallel(z,x)
## Warning: 'parallel' is deprecated.
## Use 'parallelplot' instead.
## See help("Deprecated")
## Warning in parallel.matrix(z, x): explicit 'data' specification ignored

2
V5

V4

V3

V2

V1

Min Max

splom(z,x)
## Warning in splom.matrix(z, x): explicit 'data' specification ignored

3
0.5
0.40.3 0.5
0.3V50.3
0.1 0.30.2
0.1
0.8
0.7 0.6 0.8
0.6 0.6
V40.5
0.4 0.60.4
1.0
0.80.6 1.0
0.6V3
0.4
0.0 0.4 0.2
0.0
0.8
0.4 0.8
0.6
0.4V20.4
0.0 0.40.2
1.0 0.0
0.80.6 1.0
0.6V10.6
0.4
0.2 0.60.2

Scatter Plot Matrix

#4. Podemos generar datos aleatorios con las funciones "r". Por ejemplo,
# x = rnorm ( 1 0 0 )
# produce 100 numeros aleatorios con una distribucion normal. Crear
# dos histogramas diferentes para dos tiempos diferentes de definicion
# de x. ¿Obtienes el mismo histograma?

x=rnorm(100)
hist(x,main = "Primer histograma Distribucion normal",col = topo.colors(11) )

4
Primer histograma Distribucion normal
35
30
25
Frequency

20
15
10
5
0

−4 −3 −2 −1 0 1 2 3

x=rnorm(100)
hist(x,main = "Segundo histograma Distribucion normal",col = terrain.colors(11))

5
Segundo histograma Distribucion normal
20
15
Frequency

10
5
0

−3 −2 −1 0 1 2 3

#Al ver los resultados vemos que los dos histogramas son diferentes ya que
#en cada uno de los intentos sus valores cambiaran a pesar que mantienen
#distribucion normal.

#5. El conjunto de datos normtemp (UsingR) contiene mediciones corporales


# para 130 individuos sanos seleccionados al azar. La variable temperatura
# contiene la temperatura corporal normal. Hacer un histograma.
# Calcular la temperatura corporal media de la muestra y luego verifique
# usando mean().

temp=UsingR::normtemp
hist(temp$temperature,main = "Temperatura corporal de 130 personas",
col = cm.colors(10))

6
Temperatura corporal de 130 personas
10 15 20 25 30 35
Frequency

5
0

96 97 98 99 100 101

temp$temperature

#Se halla la media con su definicion.


sum(temp$temperature)/length(temp$temperature)
## [1] 98.24923
#Uso de la funcion para hallar la media.
mean(temp$temperature)
## [1] 98.24923
#6. El conjunto de datos DDT (MASS) contiene medidas independientes del
# pesticida DDT en la col rizada. Hacer un histograma y un diagrama de
# caja de los datos. A partir de ellos, estimar la media y la desviacion
# estandar. Compruebe sus respuestas con las funciones adecuadas.

ddt=MASS::DDT
hist(ddt,main = "DDT",col = c(1,2,3,4,5))

7
DDT
10
8
Frequency

6
4
2
0

2.5 3.0 3.5 4.0 4.5 5.0

ddt

boxplot(ddt,main = "Boxplot DDT",col = "blue")

8
Boxplot DDT
4.5
4.0
3.5
3.0

(media=sum(ddt)/length(ddt))
## [1] 3.328
sqrt(sum((ddt-media)^2)/(length(ddt)-1))
## [1] 0.4371531
mean(ddt)
## [1] 3.328
sd(ddt)
## [1] 0.4371531
#7. El conjunto de datos babyboom (UsingR) contiene datos sobre los
# nacimientos de 44 niños en un periodo de un dia en un hospital de
# Brisbane, Australia. Hacer un histograma de la variable wt, que
# registra el peso al nacer. ¿ Es simetrico o sesgado ? La variable
# running.time registra el tiempo despues de la medianoche de cada
# nacimiento. El comando diff(running.time)registra las diferencias
# o los tiempos entre llegadas. Hacer un histograma de estos datos.
# ¿Cual es la forma general? ¿Es uniforme?

baby=UsingR::babyboom
#El histograma es de una distribucion sesgada a la izquierda
hist(baby$wt,freq = FALSE,main = "Peso al nacer",xlab = "Peso",col = "gray")

9
Peso al nacer
8e−04
Density

4e−04
0e+00

1500 2000 2500 3000 3500 4000 4500

Peso

dif=diff(baby$running.time)
#Esta distribucion podria ser exponencial lo cual es coherente con los
#datos, nos dice que la diferencia en tiempos es corta entre nacimientos.
hist(dif,freq = FALSE, main = "Diferencia entre tiempos al nacer",
xlab = "Dif",col = "pink")
curve(dexp(x,0.03),add = TRUE,lwd=3)

10
Diferencia entre tiempos al nacer
0.020
0.015
Density

0.010
0.005
0.000

0 50 100 150

Dif

#8. El conjunto de datos brightness (UsingR) contiene el brillo de 966


# estrellas en un sector del cielo. Proviene del catalogo de Hipparcos.
# Hacer un histograma de los datos. Describir la forma de la distribucion.

#Este conjunto de datos puede tener una distribucion discreta o continua,


#donde se aproxima a una binomial con probabilidad 0.5 o a una continua
#como la t student que aparenta normalidad pero mas apuntada.
brillo=UsingR::brightness
hist(brillo,freq = FALSE, main = "Brillo de estrellas",
xlab = "Nivel de brillo",col = "yellow")
curve(dt(x,966,8.5),add = TRUE, col="blue",lwd=3)

11
Brillo de estrellas
0.3
Density

0.2
0.1
0.0

2 4 6 8 10 12

Nivel de brillo

#9. El conjunto de datos batting (UsingR) contiene estadisticas de beisbol


# para el año 2002. Ajuste un modelo lineal para las carreras impulsadas
# (RBI) modelado por el numero de jonrones (HR). Hacer un diagrama de
# dispersion y adicionar una linea de regresion. En 2002, Mike Piazza tuvo
# 33 jonrones y 98 carreras impulsadas. ¿Cual es su numero predicho RBIs
# segun su numero de jonrones? ¿Cual es su residuo?

bat=UsingR::batting
ml=lm(RBI~HR,bat)
ml
##
## Call:
## lm(formula = RBI ~ HR, data = bat)
##
## Coefficients:
## (Intercept) HR
## 16.550 2.653
summary(ml)
##
## Call:
## lm(formula = RBI ~ HR, data = bat)
##
## Residuals:
## Min 1Q Median 3Q Max
## -38.563 -8.283 -2.196 7.867 39.770

12
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 16.54975 0.88778 18.64 <2e-16 ***
## HR 2.65334 0.05901 44.97 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12.47 on 436 degrees of freedom
## Multiple R-squared: 0.8226, Adjusted R-squared: 0.8222
## F-statistic: 2022 on 1 and 436 DF, p-value: < 2.2e-16
#El error residual estandar es de 12.47
plot(bat$HR,bat$RBI,col="orange")
abline(lm(bat$RBI~bat$HR),col="green",lwd=3)
120
bat$RBI

80
60
40
20
0

0 10 20 30 40 50

bat$HR

#y=x*2.653+16.55 (EcuaciÃ3n lineal del modelo)


33*2.653+16.55 #El numero predicho es de 104 carreras.
## [1] 104.099
#10. Dadas las matrices A y B. Calcular A + B, 2A y (???1)B.

(A=matrix(c(1,2,-3,-1,0,4),nrow = 2,byrow = T))


## [,1] [,2] [,3]
## [1,] 1 2 -3
## [2,] -1 0 4

13
(B=matrix(c(5,0,1,1,-2,3),nrow = 2,byrow = T))
## [,1] [,2] [,3]
## [1,] 5 0 1
## [2,] 1 -2 3
A+B
## [,1] [,2] [,3]
## [1,] 6 2 -2
## [2,] 0 -2 7
2*A
## [,1] [,2] [,3]
## [1,] 2 4 -6
## [2,] -2 0 8
(-1)*B
## [,1] [,2] [,3]
## [1,] -5 0 -1
## [2,] -1 2 -3
#11. Dadas las matrices A y B. Calcular AB

(A=matrix(c(2,1,-3,1,2,4),nrow=2,byrow = T))
## [,1] [,2] [,3]
## [1,] 2 1 -3
## [2,] 1 2 4
(B=c(-2,1,2))
## [1] -2 1 2
A%*%B
## [,1]
## [1,] -9
## [2,] 8
#12. Dadas las matrices A,B y C. Calcular B + C, AB, BA, AC, CA, A(2B ??? 3C).

(A=matrix(c(1,-4,2,-1,4,-2),nrow = 2,byrow = T))


## [,1] [,2] [,3]
## [1,] 1 -4 2
## [2,] -1 4 -2
(B=matrix(c(1,2,-1,3,5,-2),ncol = 2,byrow = T))
## [,1] [,2]
## [1,] 1 2
## [2,] -1 3
## [3,] 5 -2
(C=matrix(c(2,2,1,-1,1,-3),ncol = 2,byrow = T))
## [,1] [,2]
## [1,] 2 2
## [2,] 1 -1
## [3,] 1 -3

14
B+C
## [,1] [,2]
## [1,] 3 4
## [2,] 0 2
## [3,] 6 -5
A%*%B
## [,1] [,2]
## [1,] 15 -14
## [2,] -15 14
B%*%A
## [,1] [,2] [,3]
## [1,] -1 4 -2
## [2,] -4 16 -8
## [3,] 7 -28 14
A%*%C
## [,1] [,2]
## [1,] 0 0
## [2,] 0 0
C%*%A
## [,1] [,2] [,3]
## [1,] 0 0 0
## [2,] 2 -8 4
## [3,] 4 -16 8
A%*%((2*B)-(3*C))
## [,1] [,2]
## [1,] 30 -28
## [2,] -30 28
#14. En cada caso encontrar a, b, c, d que satisfaga la ecuacion.

#a)
(A=matrix(c(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),ncol = 4,byrow = T))
## [,1] [,2] [,3] [,4]
## [1,] 0 0 1 0
## [2,] 1 0 0 0
## [3,] 0 1 0 0
## [4,] 0 0 0 1
(B=c(1,9,6,5))
## [1] 1 9 6 5
solve(A,B)
## [1] 9 6 1 5
#b)
(C=matrix(c(1,0,2,0,0,0,1,1,0,1,0,0,0,0,1,0),ncol = 4,byrow = T))
## [,1] [,2] [,3] [,4]
## [1,] 1 0 2 0

15
## [2,] 0 0 1 1
## [3,] 0 1 0 0
## [4,] 0 0 1 0
(D=matrix(c(1,0,6,6,1,9,8,4),ncol = 4,byrow = T))
## [,1] [,2] [,3] [,4]
## [1,] 1 0 6 6
## [2,] 1 9 8 4
(Ci=solve(C)) #Inversa de C#
## [,1] [,2] [,3] [,4]
## [1,] 1 0 0 -2
## [2,] 0 0 1 0
## [3,] 0 0 0 1
## [4,] 0 1 0 -1
(Sol=D %*% Ci)
## [,1] [,2] [,3] [,4]
## [1,] 1 6 0 -2
## [2,] 1 4 9 2
# Asi vemos que a=1,b=6,c=0,d=-2. Verificando:
(Sol%*%C)
## [,1] [,2] [,3] [,4]
## [1,] 1 0 6 6
## [2,] 1 9 8 4
#15. Calcule AB ??? BA en cada caso.
#a)
(A=matrix(c(1,2,2,2,1,2,1,2,3),ncol = 3,byrow = T))
## [,1] [,2] [,3]
## [1,] 1 2 2
## [2,] 2 1 2
## [3,] 1 2 3
(B=matrix(c(4,1,1,-4,2,0,1,2,1), ncol = 3, byrow = T))
## [,1] [,2] [,3]
## [1,] 4 1 1
## [2,] -4 2 0
## [3,] 1 2 1
(A%*%B)-(B%*%A)
## [,1] [,2] [,3]
## [1,] -9 -2 -10
## [2,] 6 14 8
## [3,] -7 5 -5
#b)
(A=matrix(c(2,0,0,1,1,2,-1,2,1),ncol = 3,byrow = T))
## [,1] [,2] [,3]
## [1,] 2 0 0
## [2,] 1 1 2
## [3,] -1 2 1

16
(B=matrix(c(3,1,-2,3,-2,4,-3,5,11),ncol = 3,byrow = T))
## [,1] [,2] [,3]
## [1,] 3 1 -2
## [2,] 3 -2 4
## [3,] -3 5 11
(A%*%B)-(B%*%A)
## [,1] [,2] [,3]
## [1,] -3 5 -4
## [2,] 0 3 24
## [3,] 12 -27 0
#16.
library(expm)
## Loading required package: Matrix
##
## Attaching package: 'expm'
## The following object is masked from 'package:Matrix':
##
## expm
(A=matrix(c(1,1,0,1),ncol = 2,byrow = T))
## [,1] [,2]
## [1,] 1 1
## [2,] 0 1
A%*%A
## [,1] [,2]
## [1,] 1 2
## [2,] 0 1
A %^% 2
## [,1] [,2]
## [1,] 1 2
## [2,] 0 1
A %^% 3
## [,1] [,2]
## [1,] 1 3
## [2,] 0 1
A %^% 4
## [,1] [,2]
## [1,] 1 4
## [2,] 0 1
n=30
A %^% n
## [,1] [,2]
## [1,] 1 30
## [2,] 0 1

17
# De manera general A %^% n=
(An=matrix(c(1,'n',0,1),ncol = 2,byrow = T))
## [,1] [,2]
## [1,] "1" "n"
## [2,] "0" "1"
#17.
n=1
(A=matrix(c(cospi(n),-sinpi(n),sinpi(n),cospi(n)), ncol = 2, byrow = T))
## [,1] [,2]
## [1,] -1 0
## [2,] 0 -1
A%^%2
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
#Ahora si n=2 en la matriz obtenemos el mismo resultado que con A%^%2
n=2
(A=matrix(c(cospi(n),-sinpi(n),sinpi(n),cospi(n)), ncol = 2, byrow = T))
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
#De igual manera para n=4 y el angulo Pi
n=4
(A=matrix(c(cospi(n),-sinpi(n),sinpi(n),cospi(n)), ncol = 2, byrow = T))
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
A%^%4
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
#18.
(A=matrix(c(1,1,1,0,1,1,0,0,1),ncol = 3,byrow = T))
## [,1] [,2] [,3]
## [1,] 1 1 1
## [2,] 0 1 1
## [3,] 0 0 1
A%^%2
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 0 1 2
## [3,] 0 0 1
A%^%3
## [,1] [,2] [,3]
## [1,] 1 3 6

18
## [2,] 0 1 3
## [3,] 0 0 1
A%^%4
## [,1] [,2] [,3]
## [1,] 1 4 10
## [2,] 0 1 4
## [3,] 0 0 1
#De manera general A%^%n=
An=matrix(c(1,'n','(n*(n+1))/2',0,1,'n',0,0,1), ncol = 3, byrow = T)
An
## [,1] [,2] [,3]
## [1,] "1" "n" "(n*(n+1))/2"
## [2,] "0" "1" "n"
## [3,] "0" "0" "1"
#19. Hallar las inversas de cada matriz.

(I1=matrix(c(2,3,4,2,1,1,-1,1,2),ncol = 3, byrow = T))


## [,1] [,2] [,3]
## [1,] 2 3 4
## [2,] 2 1 1
## [3,] -1 1 2
solve(I1)
## [,1] [,2] [,3]
## [1,] -1 2 1
## [2,] 5 -8 -6
## [3,] -3 5 4
(I2=matrix(c(1,2,2,2,-1,1,1,3,2),ncol = 3, byrow = T))
## [,1] [,2] [,3]
## [1,] 1 2 2
## [2,] 2 -1 1
## [3,] 1 3 2
solve(I2)
## [,1] [,2] [,3]
## [1,] -1.666667 6.666667e-01 1.333333
## [2,] -1.000000 -3.172066e-17 1.000000
## [3,] 2.333333 -3.333333e-01 -1.666667
(I3=matrix(c(1,-2,1,-2,5,-4,1,-4,6),ncol =3 ,byrow = T))
## [,1] [,2] [,3]
## [1,] 1 -2 1
## [2,] -2 5 -4
## [3,] 1 -4 6
solve(I3)
## [,1] [,2] [,3]
## [1,] 14 8 3
## [2,] 8 5 2
## [3,] 3 2 1

19
(I4=matrix(c(1,2,3,4,0,1,2,3,0,0,1,2,0,0,0,1),ncol =4 ,byrow = T))
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 0 1 2 3
## [3,] 0 0 1 2
## [4,] 0 0 0 1
solve(I4)
## [,1] [,2] [,3] [,4]
## [1,] 1 -2 1 0
## [2,] 0 1 -2 1
## [3,] 0 0 1 -2
## [4,] 0 0 0 1
(I5=matrix(c(0,1,0,0,0,0,2,0,2,0,0,0,0,3,0,1,0,0,0,0,
1,0,2,0,0,0,0,3,0,1,0,0,0,0,2,0),ncol = 6,byrow = T))
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0 1 0 0 0 0
## [2,] 2 0 2 0 0 0
## [3,] 0 3 0 1 0 0
## [4,] 0 0 1 0 2 0
## [5,] 0 0 0 3 0 1
## [6,] 0 0 0 0 2 0
solve(I5)
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0 0.5 0 -1 0 1.0
## [2,] 1 0.0 0 0 0 0.0
## [3,] 0 0.0 0 1 0 -1.0
## [4,] -3 0.0 1 0 0 0.0
## [5,] 0 0.0 0 0 0 0.5
## [6,] 9 0.0 -3 0 1 0.0
#20. Hallar los siguientes determinantes.

(D1=matrix(c(2,1,1,1,4,-4,1,0,2), ncol = 3, byrow = T))


## [,1] [,2] [,3]
## [1,] 2 1 1
## [2,] 1 4 -4
## [3,] 1 0 2
det(D1)
## [1] 6
(D2=matrix(c(3,0,8,5,0,7,-1,4,2), ncol = 3, byrow = T))
## [,1] [,2] [,3]
## [1,] 3 0 8
## [2,] 5 0 7
## [3,] -1 4 2
det(D2)
## [1] 76

20
a=2
(D3=matrix(c(a,1,0,2,a,2,0,1,a), ncol = 3, byrow = T))
## [,1] [,2] [,3]
## [1,] 2 1 0
## [2,] 2 2 2
## [3,] 0 1 2
det(D3)
## [1] 0
#21. Calcule los autovalores y autovectores de las siguientes matrices.
# Hallar la dimension del espacio E(??) para cada autovalor ??.

(A=matrix(c(1,0,0,-3,1,0,4,-7,1), ncol = 3, byrow = T))


## [,1] [,2] [,3]
## [1,] 1 0 0
## [2,] -3 1 0
## [3,] 4 -7 1
eigen(A)
## eigen() decomposition
## $values
## [1] 1 1 1
##
## $vectors
## [,1] [,2] [,3]
## [1,] 0 0.000000e+00 2.347800e-33
## [2,] 0 3.172066e-17 3.172066e-17
## [3,] 1 1.000000e+00 1.000000e+00
(B=matrix(c(2,1,3,1,2,3,3,3,20), ncol = 3, byrow = T))
## [,1] [,2] [,3]
## [1,] 2 1 3
## [2,] 1 2 3
## [3,] 3 3 20
eigen(B)
## eigen() decomposition
## $values
## [1] 21 2 1
##
## $vectors
## [,1] [,2] [,3]
## [1,] -0.1622214 -0.6882472 7.071068e-01
## [2,] -0.1622214 -0.6882472 -7.071068e-01
## [3,] -0.9733285 0.2294157 1.110223e-16
(C=matrix(c(5,-6,-6,-1,4,2,3,-6,-4), ncol = 3, byrow = T))
## [,1] [,2] [,3]
## [1,] 5 -6 -6
## [2,] -1 4 2
## [3,] 3 -6 -4
eigen(C)

21
## eigen() decomposition
## $values
## [1] 2 2 1
##
## $vectors
## [,1] [,2] [,3]
## [1,] -0.6854346 -0.9414664 -0.6882472
## [2,] 0.3141575 -0.1976432 0.2294157
## [3,] -0.6568748 -0.2730900 -0.6882472
I=matrix(c(1,0,0,0,1,0,0,0,1),ncol = 3, byrow = T)

library(Matrix)
#matriz A
EA=(A-1*I)
rankMatrix(EA)
## [1] 2
## attr(,"method")
## [1] "tolNorm2"
## attr(,"useGrad")
## [1] FALSE
## attr(,"tol")
## [1] 6.661338e-16
#La dimension de E(1)=1

#matriz B
EB1=(B-(21*I))
rankMatrix(EB1)
## [1] 2
## attr(,"method")
## [1] "tolNorm2"
## attr(,"useGrad")
## [1] FALSE
## attr(,"tol")
## [1] 6.661338e-16
#La dimension de E(21)=1
EB2<-(B-2*I)
rankMatrix(EB2)
## [1] 2
## attr(,"method")
## [1] "tolNorm2"
## attr(,"useGrad")
## [1] FALSE
## attr(,"tol")
## [1] 6.661338e-16
#La dimension de E(2)=1
EB3<-(B-1*I)
rankMatrix(EB3)
## [1] 2
## attr(,"method")
## [1] "tolNorm2"

22
## attr(,"useGrad")
## [1] FALSE
## attr(,"tol")
## [1] 6.661338e-16
#La dimensiOn de E(1)=1

EC1<-(C-2*I)
rankMatrix(EC1)
## [1] 1
## attr(,"method")
## [1] "tolNorm2"
## attr(,"useGrad")
## [1] FALSE
## attr(,"tol")
## [1] 6.661338e-16
#La dimension de E(2)=2
EC2<-(C-1*I)
rankMatrix(EC2)
## [1] 2
## attr(,"method")
## [1] "tolNorm2"
## attr(,"useGrad")
## [1] FALSE
## attr(,"tol")
## [1] 6.661338e-16
#La dimension de E(1)=1

#22. Calcule los autovalores de cada matrIz

a=matrix(c(0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0), ncol = 4,byrow = T)


eigen(a,only.values = T)
## $values
## [1] 1 1 -1 -1
##
## $vectors
## NULL
b<-matrix(c(1,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,-1),ncol = 4,byrow = T)
eigen(b,only.values = T)
## $values
## [1] 1 1 -1 -1
##
## $vectors
## NULL
c<-matrix(c(0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0),ncol = 4,byrow = T)
eigen(c,only.values = T)
## $values
## [1] 1 1 -1 -1
##
## $vectors

23
## NULL
d=matrix(c(0,-1i,0,0,1i,0,0,0,0,0,0,-1i,0,0,1i,0), ncol = 4, byrow = T)
eigen(d,only.values = T)
## $values
## [1] 1 1 -1 -1
##
## $vectors
## NULL
e=matrix(c(1,0,0,0,0,-1,0,0,0,0,1,0,0,0,0,1), ncol = 4, byrow = T)
eigen(e,only.values = T)
## $values
## [1] 1 1 1 -1
##
## $vectors
## NULL
#23. De los siguientes enunciados explicar paso a paso el codigo,
# y realizar los graficos con modificaciones al codigo fuente
# de la paleta de colores e ingresar secuencias de numeros.
# En el script de R ingresar los comentarios.

#CODIGO 1
x <- 1:10 #sequencia de numeros del 1 al 10
y <-sort (10*runif(10)) #10 muestras aleatorias con distribucion es uniforme
#cada una multiplicada por 10.
#sort organiza de menor a mayor las distribuciones
z <-runif(10) #son 10 muestras aleatorias con distribucion es uniforme
z3 <-cbind(z, 2*runif(10), runif(10)) #concatena z, 2*runif(10), runif(10)
symbols(x,y, thermometers=cbind(.5,1,z),inches=.5,fg= c(1,3,5,7,6,4,2,5,3,1))

24
10
8
6
y

4
2
0

0 2 4 6 8 10

#realiza un plot de x,y con thermometers con ancho .5, altura 1,


#proporcion z, fg colores modificados.
symbols(x,y, thermometers = z3 , inches=FALSE)
#realiza un plot de x,y con thermometers con ancho z ,
#altura 2*runif(10), proporcion runif(10).
text(x,y,apply(format(round(z3,digits=2)), 1 , paste ,collapse = ",") ,
adj = c( -.2,0) , cex = .75 , col = "purple" , xpd=NA)

25
10

0.48,1.54,0.17
0.64,0.10,0.17
0.56,1.19,0.15
0.80,0.74,0.54
8

0.61,0.17,0.13

0.66,0.47,0.34
6

0.65,1.34,0.58
y

0.76,0.25,0.16
2

0.17,1.24,0.36
0.80,0.48,0.57
0

0 2 4 6 8 10

#agrega los valores de los z3

#CODIGO 2#
N <-nrow(trees) #Numero de filas de la base de datos "TREES"
with(trees,{
symbols (Height,Volume , circles = Girth/24, inches=FALSE,
main="Trees ' Girth ")# xlab and ylab automatically
palette(topo.colors(N))

symbols (Height , Volume , circles=Girth/16, inches=FALSE, bg


= 1:N,
fg="black", main="symbols ( * , circles=Girth/16 , bg =1:N)")
palette("default")
})#

26
Trees ' Girth
80
60
Volume

40
20

60 65 70 75 80 85 90

Height

27
symbols ( * , circles=Girth/16 , bg =1:N)
80
60
Volume

40
20

60 65 70 75 80 85 90

Height

names(trees)
## [1] "Girth" "Height" "Volume"
#En el codigo anterior se muestra un plot del peso contra el volume
#donde el tamaño de los circulos varia mientras sube el volume, ademas
#se cambia el color por topo.colors.

# codigo 3 #
#library(graphics)
#mousedown <- function ( buttons , x , y ) {
# plx <- grconvertX (x , "ndc" , "user")
# ply <- grconvertY (y , "ndc" , "user")
# cat ("Buttons" , paste ( buttons , collapse=" ") , "at
# ndc" ,
# x , y , "user" , plx , ply , "\n")
# points ( plx , ply , col="red" , pch=21, cex=4)
# if ( x > 0.75 && y > 0.75 ) "Done"
# else NULL}
#function:define una nueva funcion en el lenguaje r, la cual va a manejar
#los eventos del mouse
#grconvertX, grconvertY, es la conversion de cordenadas de graficos,
#en este caso de las coordenadas normalizadas del dispositivo a las
#coordenadas del usuario cat concatena las representaciones
#paste concatena vectores despues de ser convertidos en caracteres
#en este caso buttons points genera una secuencia de puntos de color rojo,

28
#de forma 21, expansion 4 se crea un condicional

#mousemove <- function ( buttons , x , y ) {


# plx <- grconvertX (x , "ndc" , "user")
# ply <- grconvertY (y , "ndc" , "user")
# points ( plx , ply )
# NULL}

#function:define una nueva funcion en el lenguaje r, la cual va a manejar


#los eventos del mouse
#grconvertX, grconvertY, es la conversion de cordenadas de graficos,
#en este caso de las coordenadas normalizadas del dispositivo a las
#coordenadas del usuario.
#Points genera una secuencia de puntos, basados en la definicion de plx, ply

#keybd <- function ( key ) {


#cat ("Key <", key , ">\n" , sep = "")}
#function:define una nueva funcion en el lenguaje r, la cual va a manejar
#los eventos del teclado
#cat concatena las representaciones
#X11()
#plot ( 0:1 , 0:1 , type='n')
#EL GRAFICO SE CREA CON X11() PARA QUE FUNCIONE EN UNA PANTALLA EXTERNA
#Y CREA PUNTOS DE ACUERDO AL MOVIMIENTO DEL MOUSE DENTRO DEL GRAFICO QUE
#EN ESTE MOMENTO SE ENCUENTRA EN BLANCO.
#getGraphicsEvent("Click on upper right to quit",
# onMouseDown = mousedown,
# onMouseMove = mousemove,
# onKeybd = keybd)
#dev.off()
#Se crea un grafico, con coordinadas de 0:1 en x y, con un tipo de plot n
#Esta funcion espera la entrada de una ventana de graficos
#en forma de un evento de mouse o teclado.
#"Click on upper right to quit", mensaje que se mostrara
#al usuario en la ventana grafica
#on MouseDown = mousedown, la funcion para los clicks del mouse
#onMouseMove = mousemove, responde a la funcion de movimientos del mouse
#onKeybd = keybd respuesta de las teclas en el teclado

#codigo 4 #
## Persian Rug Art :
x <- y <- seq (-4*pi , 4*pi , len = 27)
#x, y son dos vectores iguales de longitud 27 con valores que varian
#de -4pi a 4pi.

r <- sqrt ( outer ( x ^2 , y ^2 , "+") )


#Se toma la raiz componente a componente de la matriz formada por
#la suma de las entradas de x^2 y y^2.
ropar <- par (mfrow = c ( 2 , 2) , mar = rep ( 0 , 4) )
#Se usa para poner distintas graficas en un mismo plot en este caso
#tendra 4 graficas organizadas por filas.
for ( f in pi ^ ( 0:3 ) )

29
contour (cos(r^2)*exp(-r/f),
drawlabels = FALSE, axes = FALSE, frame =
TRUE)

#Se usa para dibujar los contornos dependiendo de f.


rx <- range ( x <- 10*1: nrow( volcano ) )
ry <- range ( y <- 10*1: ncol( volcano ) )
ry <- ry + c (-1 ,1) * ( diff ( rx ) - diff ( ry ) ) /2
tcol <- terrain.colors(12)
opar<-par(pty = "s", bg = "cyan")
par (opar);
plot( x = 0 , y = 0 , type = "n" , xlim = rx , ylim = ry ,
xlab = "" , ylab = "")
u <-par("usr")
rect (u [ 1 ] , u [ 3 ] , u [ 2 ] , u [ 4 ] , col = tcol [ 8 ] , border =
" red ")
contour (x , y , volcano , col = tcol [ 2 ] , lty = "solid" ,
add = TRUE,
vfont = c("sans serif" , "plain"))
title ("A Topographic Map o f Maunga Whau" , font = 4)
abline(h = 200*0: 4 , v = 200*0:4 , col = " lightgray " ,
lty = 2 , lwd = 0.1 )
line.list <- contourLines (x , y , volcano )
plot ( x = 0 , y = 0 , type = "n" , xlim = rx , ylim = ry ,
xlab = "" , ylab = "")
u <- par("usr")
rect(u [ 1 ] , u [ 3 ] , u [ 2 ] , u [ 4 ] , col = tcol [ 8 ] , border =

30
" red ")
contour (x , y , volcano , col = tcol [ 2 ] , lty = "solid" ,
add = TRUE,
vfont = c("sans serif" , "plain"))
templines <- function ( clines ) {
lines(clines[[2]], clines[[3]])
}
invisible ( lapply ( line.list, templines ) )
filled.contour ( volcano , color = topo.colors , asp =
1)
A Topographic Map o f Maunga Whau

600
400
200
0

0 200 400 600 800 0 200 400 600 800

31
x <- 10*1: nrow( volcano )
y <- 10*1: ncol( volcano )
filled.contour (x , y , volcano , color = terrain.colors ,
plot.title = title(main = "The Topography of
Maunga Whau" ,
xlab = "Meters North " , ylab = "Meters West ") ,
plot.axes = {axis( 1 , seq (100 , 800 , by = 100) )
axis( 2 , seq (100 , 600 , by = 100) ) } ,
key.title = title(main="Height \n(meters ) ") ,
key.axes = axis( 4 , seq (90 , 190 , by = 10) ) )
# maybe also asp=1
mtext(paste("filled.contour(.)froxm" , R.version.string) ,
side = 1 , line = 4 , adj = 1 , cex = .66)

32
Maunga Whau (meters )

# Annotating a filled contour plot


a <- expand.grid ( 1:20 , 1:20 )
b <- matrix ( a [ , 1 ] + a [ , 2 ] , 20)
filled.contour(x = 1:20, y = 1:20, z = b ,
plot.axes={axis(1); axis(2); points
(10)})

33
#
## Persian RugArt :
x <- y <- seq (-4*pi , 4* pi , len = 27)
r <- sqrt( outer ( x ^2 , y ^2 , "+") )
filled.contour(cos(r^2)*exp(-r/(2*pi)), axes = FALSE)

34
## rather, the key *should * be labeled:
filled.contour ( cos ( r ^2) *exp(-r /(2*pi ) ) , frame.plot =
FALSE,
plot.axes = {})

35
require( grDevices )
x <- y <- seq (-4*pi , 4* pi , len=27)
r <- sqrt( outer ( x ^2 , y ^2 , "+") )
image ( z = z<-cos(r^2) *exp(-r/6) , col=gray ( ( 0:32 )
/32) )
image ( z , axes = FALSE, main = "La Matematica es
maravillosa ! . . . " ,
xlab = expression ( cos ( r ^2) * e^{-r /6}) )
contour ( z , add = TRUE, drawlabels = FALSE)
image ( t ( volcano ) [ ncol ( volcano ) : 1 , ] )
x <- 10 * ( 1 : nrow( volcano ) )
y <- 10 * ( 1 : ncol ( volcano ) )
image (x , y , volcano , col = cm.colors (100) , axes
= FALSE)
contour (x , y , volcano , levels = seq (90 , 200 , by = 5) ,
add = TRUE, col = " peru ")
axis ( 1 , at = seq (100 , 800 , by = 100) )
axis ( 2 , at = seq (100 , 600 , by = 100) )
box ( )
title (main = "Volcan Maunga Whau " , font.main = 4)

36
maravillosa ! . . .

100 200 300 400 500 600


Volcan Maunga
10
Whau
110 115 5
0.0 0.2 0.4 0.6 0.8 1.0 145

95
110

10
cos(r2)e−r
175 6

0
135
160
17

190
0
y

165
185
180
160 155
105

165 150
140
11

130
0

125
120
115

0
115

10
R Markdown
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and
MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the
output of any embedded R code chunks within the document. You can embed an R code chunk like this:
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00

Including Plots
You can also embed plots, for example:

37
800
600
pressure

400
200
0

0 50 100 150 200 250 300 350

temperature

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that
generated the plot.

38

Vous aimerez peut-être aussi