Aprenda R resolviendo

ejercicios

1.) Realice la operación \(3*4+6\). El orden de las operaciones será discutida en capítulos posteriores.

3*4+6
## [1] 18

2.) Realice la operación \(cos(5)\). El valor 5 es en radianes.

cos(5)
## [1] 0.2836622

3.) Realice la operación \(3*\sqrt{6+x}\) para \(x=4\).

x=4
3*sqrt(6+x)
## [1] 9.486833

4.) Asigne el valor de 5.2 a la variable y

y=5.2

5.) Asigne los valores de 3 y 4 a las variables x y y, respectivamente, luego calcule el valor de z cuando \(z=2x-7y\).

x=3
y=4
z=2*x-7*y;z
## [1] -22

6.) Obtenga ayuda del comando inv.

??inv 

No reconoce inv como un comando, pero en la pestaña help muestra resultados que empiezan con las letras inv.

7.) Genere la siguiente matriz. \[A=\begin{bmatrix} 1&0&2&-3\\ 0&5&2&2\\ 1&2&3&4\\ -2&0&1&3\\ \end{bmatrix}\]

A=matrix(c(1,0,1,-2,0,5,2,0,2,2,3,1,-3,2,4,3),nrow = 4);A
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    2   -3
## [2,]    0    5    2    2
## [3,]    1    2    3    4
## [4,]   -2    0    1    3

8.) Genere el siguiente vector b. \[b=\begin{Bmatrix} 1\\2\\3\\4\end{Bmatrix}\]

b=c(1,2,3,4);b
## [1] 1 2 3 4

9.) Evalue el vector c donde {c}=[A]{b} donde A esla matriz dada en el punto 7 y b es el vector dado en el punto 8.

c=A%*%b;c
##      [,1]
## [1,]   -5
## [2,]   24
## [3,]   30
## [4,]   13

10.) Resuelva el siguiente sistema de ecuaciones usando eliminación Gaussiana.

\[\begin{bmatrix}5&2\\1&3\end{bmatrix}\begin{Bmatrix}x_1\\x_2\end{Bmatrix}=\begin{Bmatrix}3\\-1\end{Bmatrix}\] Con ayuda del paquete matlib usamos la función gaussianElimination que calcula las soluciones del sistema de ecuaciones, además tiene la opción de obtener la respuesta en fracciones colocando “fractions=TRUE” y podemos obtener el paso a paso gracias a “verbose=TRUE”.

library(matlib)
## Warning: package 'matlib' was built under R version 4.0.5
A=matrix(c(5,1,2,3),nrow = 2,ncol=2);A
##      [,1] [,2]
## [1,]    5    2
## [2,]    1    3
b=c(3,-1);b
## [1]  3 -1
gaussianElimination(A,b,fractions = TRUE,verbose = TRUE)
## 
## Initial matrix:
##      [,1] [,2] [,3]
## [1,]  5    2    3  
## [2,]  1    3   -1  
## 
## row: 1 
## 
##  multiply row 1 by 1/5 
##      [,1] [,2] [,3]
## [1,]   1  2/5  3/5 
## [2,]   1    3   -1 
## 
##  subtract row 1 from row 2 
##      [,1] [,2] [,3]
## [1,]    1  2/5  3/5
## [2,]    0 13/5 -8/5
## 
## row: 2 
## 
##  multiply row 2 by 5/13 
##      [,1]  [,2]  [,3] 
## [1,]     1   2/5   3/5
## [2,]     0     1 -8/13
## 
##  multiply row 2 by 2/5 and subtract from row 1 
##      [,1]  [,2]  [,3] 
## [1,]     1     0 11/13
## [2,]     0     1 -8/13

Entonces \(x_1=\frac{11}{13}\) y \(x_2=\frac{-8}{13}\).

11.) Resuelva el sistema de ecuaciones del ejercicio 10 usando la inversa de la matriz.

A=matrix(c(5,1,2,3),nrow = 2,ncol=2);A  #Llamamos A  a la matriz conocida.
##      [,1] [,2]
## [1,]    5    2
## [2,]    1    3
iA=solve(A);iA  #llamamos iA a la inversa de la matriz A.
##             [,1]       [,2]
## [1,]  0.23076923 -0.1538462
## [2,] -0.07692308  0.3846154
b=c(3,-1);b  #b es el vector a la derecha de la igualdad. 
## [1]  3 -1
#La solución es multiplicar a ambos lados la inversa de la matriz para hallar 
#el vector solución que contiene x1 y x2.

sol=iA%*%b;sol #Se obtiene el mismo resultado del punto anterior.
##            [,1]
## [1,]  0.8461538
## [2,] -0.6153846

12.) Genere la siguiente matriz X:

\[\begin{bmatrix}1&0&6\\1&2&3\\4&5&-2\end{bmatrix}\]

X=matrix(c(1,1,4,0,2,5,6,3,-2),nrow = 3);X
##      [,1] [,2] [,3]
## [1,]    1    0    6
## [2,]    1    2    3
## [3,]    4    5   -2

13.) Extraiga una submatriz de las filas 2 a 3 y las columnas 1 a 2 de la matriz X creada en el ejercicio 12.

X[c(2,3),c(1,2)]
##      [,1] [,2]
## [1,]    1    2
## [2,]    4    5

14.) Extraiga la segunda columna de la matriz X del ejercicio 12.

X[,2]
## [1] 0 2 5

15.) Extraiga la primera fila de la matriz X del ejercicio 12.

X[1,]
## [1] 1 0 6

16.) Extraiga el elemento en la fila 1 columna 3 de la matriz X del ejercicio 12.

#R cuenta los elementos por columnas, la primera columna tiene los primeros 3 
#elementos que se diferencian según las filas, luego como dicho elemento se
#encuentra en la 3 columna y en la fila 1 buscamos el séptimo elemento de la matriz.
X[7] 
## [1] 6

17.) Genere un vector fila x con valores enteros de 1 a 9.

x=1:9;x
## [1] 1 2 3 4 5 6 7 8 9

18.) grafique la función \(y=x^3-2\) para el rango de los valores de x en el ejercicio 17.

y=x^3-2
plot(x,y)

19.) Genere un cuadro mágico 4x4. ¿Cual es la suma de cada fila, columna y la diagonal de esta matriz?

Un cuadro mágico es aquel cuya suma de filas, columnas y diagonal debe ser igual, se crea el siguiente cuadro.

cmagico=matrix(c(4,9,5,16,14,7,11,2,15,6,10,3,1,12,8,13),nrow = 4);cmagico
##      [,1] [,2] [,3] [,4]
## [1,]    4   14   15    1
## [2,]    9    7    6   12
## [3,]    5   11   10    8
## [4,]   16    2    3   13
rowSums(cmagico)  #Suma de cada una de sus filas.
## [1] 34 34 34 34
colSums(cmagico)  #Suma de cada una de sus columnas.
## [1] 34 34 34 34
sum(diag(cmagico))#Suma de su diagonal. 
## [1] 34

Nos damos cuenta que cada una de las sumas que se obtienen de las filas, columnas y diagonal dan como resultado 34, esto cumple las propiedades de cuadro mágico.

Ejercicios 2

1.) Haga la operación 2*3+7 y guarde el resultado en la variable w.

w=2*3+7;w
## [1] 13

2.) Defina tres variables a, b y c igual a 4, -10 y 3.2 respectivamente.

a=4;a
## [1] 4
b=-10;b
## [1] -10
c=3.2;c
## [1] 3.2

3.) Defina las variables \(y\) y \(Y\) igual a 10 y a 100. ¿Son las dos variables idénticas?

y=10;
Y=100;
y;Y;
## [1] 10
## [1] 100

R hace diferencia entre las mayúsculas y minúsculas, por lo tanto las dos variables las toma como diferentes.

4.) Sea \(x=5.5\) y \(y=-2.6\) calcule el valor de \(z=2*x-3*y\).

x=5.5;x
## [1] 5.5
y=-2.6;y
## [1] -2.6
z=2*x-3*y;z
## [1] 18.8

5.) De los valores del ejercicio anterior 4. Calcule el valor de \(w=3y-z+\frac{x}{y}\).

w=3*y-z+(x/y);w
## [1] -28.71538

6.) Sea \(r=6.3\) y \(s=5.8\). Calcule el valor de la variable “final” definida por “final=r+s-rs”.

r=6.3;r
## [1] 6.3
s=5.8;s
## [1] 5.8
final=r+s-r*s;final
## [1] -24.44

7.) En el ejercicio anterior 6, calcule el valor de la variable “this_is_the_result” definida por “\(this\_is\_the\_result=r^2-s^2\)”.

this_is_the_result=r^2-s^2;this_is_the_result
## [1] 6.05

8.) Defina las tres variables width, Width y WIDTH iguales a 1.5, 2 y 4.5 respectivamente. ¿Son esas variables identicas?

width=1.5;
Width=2;
WIDTH=4.5
width;Width;WIDTH
## [1] 1.5
## [1] 2
## [1] 4.5

Por lo dicho anteriormente R distingue las mayúsculas de las minúsculas, por lo tanto las variables no son idénticas.

9.) Escriba el siguiente comentario en R STUDIO: Esta linea no va a ser ejecutada.

#Esta línea no va a ser ejecutada.

10.) Asigne el valor 3.5 a la variable s, después agregue un comentario sobre esta asignación en las misma línea.

s=3.5;s #Suponemos que la variable s toma el valor de 3.5. 
## [1] 3.5

11.) Defina los valores de la variable \(y_1\) y \(y_2\) igual a 7 y 9 luego haga el cálculo \(y_3=y_1-\frac{y_2}{3}\).

y1=7;y1
## [1] 7
y2=9;y2
## [1] 9
y3=y1-y2/3;y3
## [1] 4

12.) Haga la operación \(2*m-5\), ¿tiene algún error?¿por qué?

2*m-5
## Error in eval(expr, envir, enclos): objeto 'm' no encontrado

Si se obtiene un error porque no se ha establecido un valor para m.

13.) Defina las variables “cost” y “profit” iguales a 175 y 25 respectivamente, después calcule la variable “sale_price” definida por “sale_price=cost+profit”.

cost=175;cost
## [1] 175
profit=25;profit
## [1] 25
sale_price=cost+profit;sale_price
## [1] 200

14.) Defina la variable “centigrade” igual a 28, luego calcule la variable “fahrenheit” definida por "fahrenheit=(centigrade*9/5)+32".

centigrade=28;centigrade
## [1] 28
fahrenheit=(centigrade*9/5)+32;fahrenheit
## [1] 82.4

15.) Use los comandos “format short” y “format long” para escribir los valores de \(\frac{14}{9}\) en cuatro decimales y dieciséis dígitos, respectivamente.

No encontré una maneta que los comandos sugeridos pero se hace lo mismo colocando la cantidad de dígitos que se quieren visualizar.

format(14/9,digits = 5) #Formato corto presentando 4 decimales. 
## [1] "1.5556"
format(14/9,digits = 16) #Formato largo presentando 16 dígitos.
## [1] "1.555555555555556"

16.) lleve a cabo el comando “who” para obtener la lista de las variables guardadas en esta sesión.

En R se usa el comando ls() para ver todas las variables creadas hasta el momento.

ls()  #Comando que guarda todas las variables creadas en este taller.
##  [1] "a"                  "A"                  "b"                 
##  [4] "c"                  "centigrade"         "cmagico"           
##  [7] "cost"               "fahrenheit"         "final"             
## [10] "iA"                 "profit"             "r"                 
## [13] "s"                  "sale_price"         "sol"               
## [16] "this_is_the_result" "w"                  "width"             
## [19] "Width"              "WIDTH"              "x"                 
## [22] "X"                  "y"                  "Y"                 
## [25] "y1"                 "y2"                 "y3"                
## [28] "z"

17.) Lleve a cabo el comando “whos” para obtener la lista de variables guardadas en la sesión con detalles.

ls.str() #Variables creadas en el taller detalladas por el tipo de objeto.
## a :  num 4
## A :  num [1:2, 1:2] 5 1 2 3
## b :  num -10
## c :  num 3.2
## centigrade :  num 28
## cmagico :  num [1:4, 1:4] 4 9 5 16 14 7 11 2 15 6 ...
## cost :  num 175
## fahrenheit :  num 82.4
## final :  num -24.4
## iA :  num [1:2, 1:2] 0.2308 -0.0769 -0.1538 0.3846
## profit :  num 25
## r :  num 6.3
## s :  num 3.5
## sale_price :  num 200
## sol :  num [1:2, 1] 0.846 -0.615
## this_is_the_result :  num 6.05
## w :  num -28.7
## width :  num 1.5
## Width :  num 2
## WIDTH :  num 4.5
## x :  num 5.5
## X :  num [1:3, 1:3] 1 1 4 0 2 5 6 3 -2
## y :  num -2.6
## Y :  num 100
## y1 :  num 7
## y2 :  num 9
## y3 :  num 4
## z :  num 18.8

18.) Borre todas las variables guardadas en la sesión usando un comando de limpieza.

rm(list = ls()) #Borrar todas las variables.

19.) Calcule el área y perímetro de un rectángulo de lados 5 y 7. No se especifican las unidades en este ejercicio.

El perímetro de un rectángulo es la suma de cada uno de sus lados, dos lados menores y dos lados mayores. El área es la multiplicación del lado menor con el lado mayor, así su perímetro y área son respectivamente:

Pr=2*5+2*7;Pr  #Perímetro del rectángulo.
## [1] 24
Ar=5*7;Ar      #Área del rectángulo.
## [1] 35

20.) Calcule el área y el perímetro de un círculo de radio 6.45. No se especifican las unidades en este ejercicio.

El área del cículo es \(Área=\pi r^2\), donde r es el radio, y el perímetro es la derivada respecto al radio, es decir, \(Perímetro=2\pi r\). Entonces:

Pc=2*pi*6.45;Pc  #Perímetro del círculo.
## [1] 40.52655
Ac=pi*6.45^2;Ac  #Área del círculo.
## [1] 130.6981

21.) Defina las variables simbólicas \(x\) y \(z\) con los valores \(\frac{4}{5}\) y \(\frac{14}{17}\).

x=4/5;x
## [1] 0.8
z=14/17;z
## [1] 0.8235294

22.) Del ejercicio anterior, calcule simbólicamente el valor de la variable \(y\) definida por \(y=2x-z\).

y=2*x-z;y
## [1] 0.7764706

23.) Calcule simbólicamente el área del cículo de radio \(\frac{2}{3}\) sin obtener el valor numérico, no se usan unidades de medida en este ejercicio.

Ac_2=(2/3)^2*pi  #No se muestra el valor numérico.

24.) calcule simbólicamente el volumen de una esfera de radio \(\frac{2}{3}\) sin obtener un valor numérico, no se usan unidades de medida en este ejercicio.

El volumen de una esfera es \(Volumen=\frac{4}{3}\pi r^3\). Así:

Ve=(4/3)*pi*(2/3)^3

25.) En el ejercicio 23 de arriba, use el comando double para obtener el valor numérico de la respuesta.

as.double(Ac_2)
## [1] 1.396263

26.) En el ejercicio 24 de arriba, use el comando double para obtener el valor numérico de la respuesta.

as.double(Ve)
## [1] 1.241123

27.) Defina las variables \(y\) y date sin asignar ningún valor numérico en ellas.

#no se asigna valor numérico a ninugna de las siguientes variables.
y="valor"; y 
## [1] "valor"
date="10/01/22";date 
## [1] "10/01/22"

Ejercicios 3

1.) Calcule la raiz cuadrada de 10.

sqrt(10)
## [1] 3.162278

2.) Calcule el factorial de 7.

factorial(7)
## [1] 5040

3.) Calcule el coseno de un angulo de 45 donde 45 está en radianes.

La función coseno está dada para ingresar valores en radianes, sabemos que \(1rad=\frac{180}{\pi}\), luego \(45rad=\frac{180*45}{\pi}=2578.31\) ingresamos este valor en la función de cos() en R.

cos(2578.31)
## [1] -0.5917498

4.) Haga el coseno del ángulo de 45 donde 45 está en grados.

cos(pi/4)
## [1] 0.7071068

5.) Calcule el seno del ángulo de 45 donde 45 está en grados.

sin(pi/4)
## [1] 0.7071068

6.) Calcule la tangente del ángulo de 45 donde 45 está en grados.

tan(pi/4)
## [1] 1

7.) Calcule la inversa de la tangente de 1.5.

atan(1.5)
## [1] 0.9827937

8.) Calcule la inversa de la tangente de \(\frac{3 \pi}{2}\).¿Encuentra algún error?¿por qué?

atan(3*pi/2)
## [1] 1.361692

No se encuentra ningún error ya que la función inversa de la tangente es creciente y continua, luego en \(\frac{3 \pi}{2}\) toma un valor.

9.) Calcule el valor de la función exponencial \(e^3\).

exp(3)
## [1] 20.08554

10.) Calcule el valor del logaritmo natural \(ln(3.5)\).

log(3.5)
## [1] 1.252763

11.) Calcule el valor del logaritmo \(log_{10}3.5\).

log10(3.5)
## [1] 0.544068

12.) Use la función round de Rstudio para redondear el valor de 2.43.

round(2.43,1)
## [1] 2.4

13.) Use la función remainder de Rstudio para obtener el residuo cuando se divide 5 en 4.

5%%4   #Donde %% representa el módulo o residuo de dividir 5 entre 4.
## [1] 1

14.) Calcule el valor absoluto de -3.6.

abs(-3.6)
## [1] 3.6

15.) Calcule el valor de la expresión \(1.5-2\sqrt{\frac{6.7}{5}}\).

1.5-2*sqrt(6.7/5)
## [1] -0.8151674

16.) Calcule el valor de \(sin^2(\pi)+cos^2(\pi)\).

sin(pi)^2+cos(pi)^2
## [1] 1

17.) Calcule el valor \(log_{10}0\). ¿Encuentra un error?¿por qué?

log10(0)
## [1] -Inf

Porque la función logaritmo es asintótica en cero, nunca toma dicho valor.

18.) Sea \(x=\frac{3\pi}{2}\) y \(y=2\pi\), calcule el valor de la expresión \(2sin(x)cos(y)\).

x=3*pi/2;x
## [1] 4.712389
y=2*pi;y
## [1] 6.283185
2*sin(x)*cos(y)
## [1] -2

19.) Calcule el valor de \(\sqrt{45}\) simbólicamente y simplifique el resultado.

a=45    #Valor simbólico de 45
sqrt(a) #resultado 
## [1] 6.708204

Simplificando el resultado es \(\sqrt{45}=\sqrt{3^2*5}=3\sqrt{5}\).

3*sqrt(5)
## [1] 6.708204

20.) Calcule el valor de \(\sqrt{45}\) numéricamente.

sqrt(45)
## [1] 6.708204

21.) Calcule el seno del ángulo de 45 (grados) simbólicamente.

x=pi/4;
  sin(x)
## [1] 0.7071068

22.) Calcule el coseno del ángulo de 45 (grados) simbólicamente.

cos(x)
## [1] 0.7071068

23.) Calcule el tangente del ángulo de 45 (grados) simbólicamente.

tan(x)
## [1] 1

24.) Calcule el valor de \(e^{\pi/2}\) simbólicamente.

x=pi/2
exp(x)
## [1] 4.810477

25.) Calcule el valor de \(e^{\pi/2}\) numéricamente.

exp(pi/2)
## [1] 4.810477

Ejercicios 4

1.) Guarde el vector [2 4 -6 0] en la variable w.

w=c(2,4,-6,0);w
## [1]  2  4 -6  0

2.) Del punto 1 (anterior), tome el segundo elemento del vector w.

w[2]
## [1] 4

3.) Del ejercicio 1, genere el vector z donde \(z=\frac{\pi w}{2}\).

z=pi/2*w;z
## [1]  3.141593  6.283185 -9.424778  0.000000

4.) Del ejercicio 3, tome el cuarto elemento del vector z.

z[4]
## [1] 0

5.) Del ejercicio 3, tome los primeros tres elementos del vector z.

z[-4]
## [1]  3.141593  6.283185 -9.424778

6.) Del ejercicio 3, encuentre la longitud del vector z.

length(z)
## [1] 4

7.) Del ejercicio 3, encuentre la suma total de los elementos del vector z.

sum(z)
## [1] 0

8.) Del ejercicio 3, encuentre el número mínimo y máximo de los elementos del vector z.

min(z);
## [1] -9.424778
max(z)
## [1] 6.283185

9.) Genere un vector r con valores reales de 0 a 10 y un incremento de 2.5.

r=seq(0,10,2.5);r
## [1]  0.0  2.5  5.0  7.5 10.0

10.) Genere un vector s con valores reales de 10 números que están igualmente espaciados entre 0 y 100.

s=seq(0,100,10);s
##  [1]   0  10  20  30  40  50  60  70  80  90 100

11.) Forme un nuevo vector juntando los dos vectores [9 3 -2 5 0] y [1 2 -4].

x=c(9,3,-2,5,0)
y=c(1,2,-4)
new_vector=c(x,y);new_vector
## [1]  9  3 -2  5  0  1  2 -4

12.) Forme un nuevo vector uniendo el vector [9 3 -2 5 0] con el número 4.

x=c(9,3,-2,5,0)
new_vector=c(x,4);new_vector
## [1]  9  3 -2  5  0  4

13.) Sume los dos vectores [0.2 1.3 -3.5] y [0.5 -2.5 1.0].

x=c(0.2,1.3,-3.5)
y=c(0.5,-2.5,1.0)
x+y
## [1]  0.7 -1.2 -2.5

14.) Reste los dos vectores del ejercicio anterior.

x-y
## [1] -0.3  3.8 -4.5

15.) Intente multiplicar los dos vectores del ejercicio anterior.¿encuentra un mensaje de error?¿por qué?

x%*%y #Producto punto entre vectores.
##       [,1]
## [1,] -6.65

Debería haber un error de dimensionalidad ya que los dos vectores son de dimensiones 3x1 y 3x1, pero R hace la operación de producto punto.

16.) Multiplique los dos elementos del ejercicio 13, elemento por elemento.

x*y
## [1]  0.10 -3.25 -3.50

17.) Divida los elementos del ejercicio 13, elemento por elemento.

x/y
## [1]  0.40 -0.52 -3.50

18.) Encuentre el producto punto entre los dos vectores del ejercicio 13.

t(x)%*%y  #El primer vector transpuesto hace que la dimensionalidad sea la 
##       [,1]
## [1,] -6.65
          #correcta para operar.

19.) Intente sumar los dos vectores [1 3 5] y [3 6]. ¿Encuentra algún mensaje de error?¿por qué?

x=c(1,3,5)
y=c(3,6)
x+y
## Warning in x + y: longitud de objeto mayor no es múltiplo de la longitud de uno
## menor
## [1] 4 9 8

Existe un error y es que las dimensionalidades son diferentes, para el tercer número del primer vector no se encuentra un número del segundo vector con el cual se pueda realizar la operación.

20.) Intente restar los dos vectores del ejercicio de arriba 19, ¿Encuentra algún mensaje de error?¿por qué?

x-y
## Warning in x - y: longitud de objeto mayor no es múltiplo de la longitud de uno
## menor
## [1] -2 -3  2

Se encuentra el mismo problema de dimensionalidad.

21.) Sea el vector w=[0.1 1.3 -2.4]. Desarrolle la operación escalar 5+w.

w=c(0.1,1.3,-2.4);
5+w
## [1] 5.1 6.3 2.6

22.) Del vector w en el ejercicio anterior 21, haga la operación escalar de la resta -2-w.

-2-w
## [1] -2.1 -3.3  0.4

23.) Del vector w en el ejercicio anterior 21, haga la operación escalar de la multiplicación 1.5*w.

1.5*w
## [1]  0.15  1.95 -3.60

24.) Del vector w en el ejercicio anterior 21, haga la operación escalar de la división w/10.

w/10
## [1]  0.01  0.13 -0.24

25.) Del vector w en el ejercicio anterior 21, haga la operación 3-2*w/5.

3-2*w/5
## [1] 2.96 2.48 3.96

26.) Defina el vector b como b\(=[0 \ \ \pi/3 \ \ 2\pi/3 \ \ \pi ]\), evalue los tres vectores sin(b), cos(b) y tan(b).

b=c(0,pi/3,2*pi/3,pi)
#se redondean los valores en los tres vectores para mejor visualización.
sin_b=sin(b);round(sin_b,2) 
## [1] 0.00 0.87 0.87 0.00
cos_b=cos(b);round(cos_b,2)
## [1]  1.0  0.5 -0.5 -1.0
tan_b=tan(b);round(tan_b,2)
## [1]  0.00  1.73 -1.73  0.00

27.) Con el vector b del ejercicio 26, evalue el vector \(e^b\) (elemento por elemento).

exp(b)
## [1]  1.000000  2.849654  8.120527 23.140693

28.) Con el vector b del ejercicio 26, evalue el vector \(\sqrt{b}\) (elemento por elemento).

sqrt(b)
## [1] 0.000000 1.023327 1.447203 1.772454

29.) Intente evaluar el vector \(3^b\) ¿Encuentra algún error?¿por qué?

No se encuentra ningún error ya que R calcula la expresión como elemento por elemento, pero teóricamente esta operación no se puede hacer.

30.) ¿Se puede hacer la operación del ejercicio 29 elemento por elemento?

3^b
## [1]  1.000000  3.159659  9.983445 31.544281

31.) Genere un vector de 1´s con una longitud de 4 elementos.

replicate(1,n = 4)
## [1] 1 1 1 1

32.) Genere un vector de 0´s con una longitud de 6 elementos.

replicate(0,n=6)
## [1] 0 0 0 0 0 0

33.) Organice los elementos del vector [0.35 -1 0.24 1.3 -0.03] en orden ascendente.

c=c(0.35,-1,0.24,1.3,-0.03);c #sin ordenar
## [1]  0.35 -1.00  0.24  1.30 -0.03
sort(c)                       #ordenado
## [1] -1.00 -0.03  0.24  0.35  1.30

34.) Genere un vector de permutación aleatoria con 5 elementos.

V<-rep(1:10);V  #Vector con 10 números
##  [1]  1  2  3  4  5  6  7  8  9 10
#Genera un vector con 5 número tomados aleatoriamente del 1 al 10.
sample(V,5)     
## [1]  1  8  7  6 10

Note que las muestras se pueden hacer con los intervalos de números enteros que se quieran.

35.) Forme el vector [2 4 -3 0 1 5 7] determine el rango, la media y la mediana.

v=c(2,4,-3,0,1,5,7);v #Vector propuesto.
## [1]  2  4 -3  0  1  5  7
qr(v)$rank  #rango del vector.
## [1] 1
mean(v)  #media del vector.
## [1] 2.285714
median(v) #mediana del vector.
## [1] 2

36.) Defina el vector simbólico x=[r s t u v].

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.0.5
## Warning: package 'ggplot2' was built under R version 4.0.5
## Warning: package 'tidyr' was built under R version 4.0.5
r=sym('r')
s=sym('s')
t=sym('t')
u=sym('u')
v=sym('v')
x=c(r,s,t,u,v);x
## [[1]]
## r
## 
## [[2]]
## s
## 
## [[3]]
## t
## 
## [[4]]
## u
## 
## [[5]]
## v
class(x)
## [1] "list"

37.) En el ejercicio 36 de arriba, realice la operación adición de los dos vectores x y [1 0 -2 3 5] para obtener un nuevo vector simbólico y.

z=c(1,0,-2,3,5);z
## [1]  1  0 -2  3  5
y=x+z
## Error in x + z: argumento no-numérico para operador binario

R arroja error en esta operacion por la clase de los datos, dado que el vector x es una lista y el vector y es numérico.

Ejercicios 5.

1.) Genere la siguiente matriz rectángular en Rstudio. ¿Cual es el tamaño de esa matriz?

\[A=\begin{bmatrix}3&0&-2\\1&3&5\end{bmatrix}\]

A=matrix(c(3,1,0,3,-2,5),nrow = 2);A
##      [,1] [,2] [,3]
## [1,]    3    0   -2
## [2,]    1    3    5
dim(A)  #Es una matriz de dimensiones 2x3.
## [1] 2 3

2.) De la matriz A del ejercicio 1 de arriba, tome el elemento en la segunda fila y segunda columna de la matriz A.

A[2,2]
## [1] 3

3.) De la matriz A del ejercicio 1 de arriba, genere una nueva matriz B con el mismo tamaño muliplicando la matriz a por \(\frac{3\pi}{2}\).

B=A*3*pi/2;B
##           [,1]     [,2]      [,3]
## [1,] 14.137167  0.00000 -9.424778
## [2,]  4.712389 14.13717 23.561945

4.) De la matriz B del ejercicio 3 de arriba, tome el elemento de la primera fila y la tercera columna.

B[1,3]
## [1] -9.424778

5.) De la matriz B del ejercicio 3 de arriba, extraiga una submatriz de los elementos entre la primera y segunda fila y la segunda y tercera columna de la matriz B. ¿Cual es el tamaño de esta nueva submatriz?

subB=B[c(1,2),c(2,3)];subB
##          [,1]      [,2]
## [1,]  0.00000 -9.424778
## [2,] 14.13717 23.561945
dim(subB)   #Esta es una matriz de dimensión 2x2.
## [1] 2 2

6.) De la matriz B del ejercicio 3 de arriba, determine el tamaño de la matriz B usando el comando “dim” de Rstudio.

dim(B) #vemos que esta matriz es de tamaño 2x3.
## [1] 2 3

7.) De la matriz B del ejercicio 3 de arriba, determine el número más largo de filas y columnas usando el comando de Rstudio “length”.

length(B) #Longitud del vector B.
## [1] 6

8.) De la matriz B del ejercicio 3 de arriba, determine el número de elementos en la matriz B.

El número de elementos viene dado por la longitud de la matriz B, por el punto 7 anterior se tiene que dicha matriz tiene 6 elementos.

9.) De la matriz B del ejercicio 3 de arriba, determine la suma de cada unas de las columnas de la matriz B, determine también el valor mínimo y máximo de cada una de las columnas de dicha matriz.

colSums(B) #Suma de las columnas de la matriz B.
## [1] 18.84956 14.13717 14.13717
min(B[,1]) #mínimo de la columna 1.
## [1] 4.712389
min(B[,2]) #mínimo de la columna 2.
## [1] 0
min(B[,3]) #mínimo de la columna 3.
## [1] -9.424778
max(B[,1]) #máximo de la columna 1.
## [1] 14.13717
max(B[,2]) #máximo de la columna 2.
## [1] 14.13717
max(B[,3]) #máximo de la columna 3.
## [1] 23.56194

10.) Combine los tres vectores [1 3 0 -4], [5 3 1 0] y [2 2 -1 1] para obtener una nueva matriz de tamaño 3x4.

new_matrix=rbind(c(1,3,0,-4),c(5,3,1,0),c(2,2,-1,1))
new_matrix  #Nueva matriz 3x4.
##      [,1] [,2] [,3] [,4]
## [1,]    1    3    0   -4
## [2,]    5    3    1    0
## [3,]    2    2   -1    1

11.) Realice las operaciones de suma y resta matricial de las siguientes dos matrices.

\[R=\begin{pmatrix}1&2&0\\7&5&-3\\3&1&1\end{pmatrix}\ \ \ , \ \ \ S=\begin{pmatrix}1&3&-2\\3&5&7\\2&3&0\end{pmatrix}\]

R=matrix(c(1,7,3,2,5,1,0,-3,1),nrow = 3);
S=matrix(c(1,3,2,3,5,3,-2,7,0),nrow = 3);
R+S  #Suma matricial.
##      [,1] [,2] [,3]
## [1,]    2    5   -2
## [2,]   10   10    4
## [3,]    5    4    1
R-S  #Resta la matriz R a la matriz S.
##      [,1] [,2] [,3]
## [1,]    0   -1    2
## [2,]    4    0  -10
## [3,]    1   -2    1

12.) De las matrices del ejercicio anterior, multiplique la matris R y S elemento por elemento.

R*S
##      [,1] [,2] [,3]
## [1,]    1    6    0
## [2,]   21   25  -21
## [3,]    6    3    0

13.) De las matrices del ejercicio anterior 11, divida la matriz R y S elemento por elemento.

round(R/S,2)
##      [,1] [,2]  [,3]
## [1,] 1.00 0.67  0.00
## [2,] 2.33 1.00 -0.43
## [3,] 1.50 0.33   Inf

14.) Desarrolle la multiplicación matricial de R y S. ¿Obtiene algún error?¿por qué?

R%*%S
##      [,1] [,2] [,3]
## [1,]    7   13   12
## [2,]   16   37   21
## [3,]    8   17    1

No se obtiene ningún error, ya que la dimensionalidad de R y S concuerdan, dado que ambas son matrices 3x3.

15.) Sume el número 5 a cada elemento de la matriz X dada abajo.

\[X=\begin{bmatrix}1&-2&0&1\\2&3&6&2\\-3&5&2&1\\5&-2&4&4\end{bmatrix}\]

X=matrix(c(1,2,-3,5,-2,3,5,-2,0,6,2,4,1,2,1,4),nrow = 4);
X+5
##      [,1] [,2] [,3] [,4]
## [1,]    6    3    5    6
## [2,]    7    8   11    7
## [3,]    2   10    7    6
## [4,]   10    3    9    9

16.) En la matriz X del ejercicio 15, reste 3 a cada elemento.

X-3
##      [,1] [,2] [,3] [,4]
## [1,]   -2   -5   -3   -2
## [2,]   -1    0    3   -1
## [3,]   -6    2   -1   -2
## [4,]    2   -5    1    1

17.) En la matriz X del ejercicio 15, multiplique por -3 cada elemento.

-3*X
##      [,1] [,2] [,3] [,4]
## [1,]   -3    6    0   -3
## [2,]   -6   -9  -18   -6
## [3,]    9  -15   -6   -3
## [4,]  -15    6  -12  -12

18.) En la matriz X del ejercicio 15, divida cada elemento por el número 2.

X/2
##      [,1] [,2] [,3] [,4]
## [1,]  0.5 -1.0    0  0.5
## [2,]  1.0  1.5    3  1.0
## [3,] -1.5  2.5    1  0.5
## [4,]  2.5 -1.0    2  2.0

19.) En la matriz X del ejercicio 15, realice la siguientes operaciones escalares.

(-3*X/2.4)+5.5
##       [,1]  [,2] [,3] [,4]
## [1,]  4.25  8.00  5.5 4.25
## [2,]  3.00  1.75 -2.0 3.00
## [3,]  9.25 -0.75  3.0 4.25
## [4,] -0.75  8.00  0.5 0.50

20.) Determine el seno, coseno y tangente de la matriz B dada abajo (elemento por elemento).

\[B=\begin{bmatrix}\frac{\pi}{3}&\frac{2 \pi}{3}\\\frac{2 \pi}{3}&\pi\end{bmatrix}\]

B=matrix(c(pi/3,2*pi/3,2*pi/3,pi),nrow = 2);B
##          [,1]     [,2]
## [1,] 1.047198 2.094395
## [2,] 2.094395 3.141593
 #Seno de la matriz B.
round(sin(B),2)
##      [,1] [,2]
## [1,] 0.87 0.87
## [2,] 0.87 0.00
#Coseno de la matriz B.
round(cos(B),2)  
##      [,1] [,2]
## [1,]  0.5 -0.5
## [2,] -0.5 -1.0
#Tangente de la matriz B.
round(tan(B),2)  
##       [,1]  [,2]
## [1,]  1.73 -1.73
## [2,] -1.73  0.00

21.) De la matriz B del ejercicio 20, determine la raiz cuadrada. (elemento por elemento).

Se calcula la raiz cuadrada a cada elemento de la matriz B y se muestra la matriz resultante.

sqrt(B)
##          [,1]     [,2]
## [1,] 1.023327 1.447203
## [2,] 1.447203 1.772454

22.) De la matriz B del ejercicio 20, determine la verdadera raiz cuadrada.

chol(B)
## Error in chol.default(B): la submatriz de orden 2 no es definida positiva

La descomposicón de cholesky es una forma de sacar “la raíz cuadrada matricial” pero así como en la raiz cuadrada escalar tiene la condición de que el escalar sea igual o mayor a cero, en la descomposición cholesky la matriz que se va a descomponer debe ser definida positiva, como B no es una matriz definida positiva obtenemos el error que muestra el cálculo en R.

23.) De la matriz B del ejercicio 20, determine la función exponencial. (elemento por elemento.)

exp(B)
##          [,1]      [,2]
## [1,] 2.849654  8.120527
## [2,] 8.120527 23.140693

24.) De la matriz B del ejercicio 20, determine la verdadera función exponencial.

Teniendo en cuenta que se calcula \[e^A=\sum_{k=0}^{\infty}\frac{A^k}{k!}\], donde \(A^0\) está definida como la matriz identidad de igual tamaño que la matriz A, entonces una librería que maneja ese cálculo es expm:

library(expm)
library(Matrix)
Z= expm::expm(B);Z
##         [,1]    [,2]
## [1,] 23.9028 37.4119
## [2,] 37.4119 61.3147

25.) De la matriz B del ejercicio 20, determine el logaritmo natural. (elemento por elemento)

log(B)
##           [,1]      [,2]
## [1,] 0.0461176 0.7392648
## [2,] 0.7392648 1.1447299

26.) De la matriz B del ejercicio 20, determine el verdadero logaritmo natural.

En este caso como dijimos atrás la matriz B es definida negativa, por lo tanto el logaritmo natural de esta matriz no existe en el espacio real ya que la matriz debe ser definida positiva, sin embargo lo comprobamos usando la función logm de la libreria expm.

det(B)  #determinante negativo.
## [1] -1.096623
expm::logm(B)  #Logaritmo no existente.
## Warning in sqrt(S[ij, ij]): Se han producido NaNs
## Warning in logm.Higham08(x): NA/NaN from  || Tr - I ||  after 1 step.
## The matrix logarithm may not exist for this matrix.
##      [,1] [,2]
## [1,]  NaN  NaN
## [2,]  NaN  NaN

27.) De la matriz B del ejercicio 20, calcule la operación exponencial \(4^B\).

Una forma de hallar este resultado es encontrando la matriz diagonal de valores propios A de la matriz B y del cálculo de ecuaciones diferenciales se tiene que si A es una matriz diagonal entonces \(e^{tA}=diag[e^{tA_1},e^{tA_2},...,e^{tA_n}]\) con t una constante. De igual manera se calcula para \(4^B=diag[4^{tA_1},4^{tA_2},...,4^{tA_n}]\) en este caso.

lambda=eigen(B);lambda #Cálculo de vectores y valores propios
## eigen() decomposition
## $values
## [1]  4.4360000 -0.2472098
## 
## $vectors
##           [,1]       [,2]
## [1,] 0.5257311 -0.8506508
## [2,] 0.8506508  0.5257311
V=lambda$vectors;V #Matriz de vectores propios
##           [,1]       [,2]
## [1,] 0.5257311 -0.8506508
## [2,] 0.8506508  0.5257311
inV=solve(V);inV   #Inversa de la matriz de vectores propios
##            [,1]      [,2]
## [1,]  0.5257311 0.8506508
## [2,] -0.8506508 0.5257311
A=solve(V)%*%B%*%V;A  #Matriz diagonal de valores propios.
##              [,1]          [,2]
## [1,]  4.43600e+00 -6.661338e-16
## [2,] -2.63678e-16 -2.472098e-01
#Valor aproximado de la operación exponencial 4^B.
e4B=V%*%(4^A)%*%inV;e4B #V es la matriz de vectores propios o cambio de base.
##          [,1]     [,2]
## [1,] 129.1179 208.7687
## [2,] 208.7687 340.1227

28.) Del ejercicio anterior 27, realice la misma operación pero esta vez elemento por elemento.

4^B
##           [,1]     [,2]
## [1,]  4.270471 18.23692
## [2,] 18.236920 77.88023

29.) De la matriz B del ejercicio 20, haga la operación \(B^4\).

B%*%B%*%B%*%B
##          [,1]     [,2]
## [1,] 107.0297 173.1717
## [2,] 173.1717 280.2015

30.) Genere una matriz rectangular de 1’s de tamaño 2x3.

matrix(rep(1,6),nrow=2)
##      [,1] [,2] [,3]
## [1,]    1    1    1
## [2,]    1    1    1

31.)Genere una matriz rectangular de 0’s de tamaño 2x3.

matrix(rep(0,6),nrow=2)
##      [,1] [,2] [,3]
## [1,]    0    0    0
## [2,]    0    0    0

32.) Genere una matriz rectangular identidad de tamaño 2x3.

diag(1,nrow = 2,ncol = 3)
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0

Esta matriz no es considerada identidad porque no es cuadrada.

33.) Genere una matriz cuadrada de 1’s de tamaño 4.

matrix(rep(1,4),nrow=2)
##      [,1] [,2]
## [1,]    1    1
## [2,]    1    1

34.) Genere una matriz cuadrada de 0’s de tamaño 4.

matrix(rep(0,4),nrow=2)
##      [,1] [,2]
## [1,]    0    0
## [2,]    0    0

35.) Genere una matriz identidad cuadrada de tamaño 4.

diag(1,nrow = 2,ncol = 2)
##      [,1] [,2]
## [1,]    1    0
## [2,]    0    1

36.) Determine la transpuesta de la siguiente matriz.

\[ C=\begin{bmatrix}1&2&-3&0\\2&5&2&-3\\1&3&7&-2\\2&3&-1&3\end{bmatrix}\]

C=matrix(c(1,2,1,2,2,5,3,3,-3,2,7,-1,0,-3,-2,3),nrow = 4);C
##      [,1] [,2] [,3] [,4]
## [1,]    1    2   -3    0
## [2,]    2    5    2   -3
## [3,]    1    3    7   -2
## [4,]    2    3   -1    3
t(C)
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    1    2
## [2,]    2    5    3    3
## [3,]   -3    2    7   -1
## [4,]    0   -3   -2    3

37.) De la matriz C del punto 36, haga la operación C+C.¿Obtiene una matriz simétrica?

C+C
##      [,1] [,2] [,3] [,4]
## [1,]    2    4   -6    0
## [2,]    4   10    4   -6
## [3,]    2    6   14   -4
## [4,]    4    6   -2    6

No se obtiene una matriz simétrica.

38.) De la matriz C del punto 36, extraiga su diagonal.

diag(C)
## [1] 1 5 7 3

39.) De la matriz C del punto 36, extraiga la parte triangular superior y la triangular inferior.

#números que se encuentran en la parte triangular superior de la matriz C
C[upper.tri(C)] 
## [1]  2 -3  2  0 -3 -2
#números que se encuentran en la parte triangular inferior de la matriz C
C[lower.tri(C)] 
## [1]  2  1  2  3  3 -1

40.) De la matriz C del punto 36, determine el determinante y la traza de la matriz C.¿Obtiene escalares?

det(C) #Determinante de la matriz C.
## [1] -13
sum(diag(C)) #Traza de la matriz C.
## [1] 16

El resultado del determinante y la traza de la matriz son escalares.

41.) De la matriz C del punto 36, determine la inversa de la matriz C.

solve(C)
##             [,1]        [,2] [,3]        [,4]
## [1,] -10.5384615  6.38461538   -6  2.38461538
## [2,]   5.3076923 -3.07692308    3 -1.07692308
## [3,]  -0.3076923  0.07692308    0  0.07692308
## [4,]   1.6153846 -1.15384615    1 -0.15384615

42.) Multiplique la matriz C por la matriz inversa obtenida en el punto anterior, ¿Obtuvo la matriz identidad?

round(C%*%solve(C),2)
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    0    0
## [2,]    0    1    0    0
## [3,]    0    0    1    0
## [4,]    0    0    0    1

Si se obtiene la matriz identidad. R arroja valores muy cercanos a cero, para visualizar mejor se usa la función “round” para redondear el resultado a dos cifras.

43.) De la matriz C del punto 36, determine la norma.

Se define la norma de una matriz como \(|A|= \sqrt{tr(AA^t)}\) donde tr es la traza de una matriz.

normC=sqrt(sum(diag(A%*%t(A))));normC
## [1] 4.442883

44.) De la matriz C del punto 36, determine los valores propios de la matriz C. 45.) De la matriz C del punto 36, determine los coeficientes del polinomio característico de la matriz C. 46.) De la matriz C del punto 36, determine el rango de la matriz C.

qr(C)$rank  
## [1] 4

El rango de la matriz es 4, eso quiere decir que todos los vectores columnas (filas) de la matriz son linealmente independientes.

47.) Genere una matriz cuadrada aleatoria de tamaño 5.

vectormuestra=1:100; #genera números aleatorios del 1 al 100.
#Matriz que toma 25 números del 1 al 100 aleatorios con reemplazo. 
matrix(c(sample(vectormuestra,replace = TRUE)),nrow = 5,ncol = 5) 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   37   65   31   86   93
## [2,]   85   61   21   27   99
## [3,]   16   20   83   29   79
## [4,]   23   65   73  100   59
## [5,]   68   94   58   72   37

48.) Genere una matriz mágica de tamaño 7. ¿Cuanto da la suma de cada fila, columna o diagonal en esta matriz?

c_mag=matrix(c(22,5,30,13,38,21,46,47,23,6,31,14,39,15,16,48,24,7,32,8,40,41,17,
         49,25,1,33,9,10,42,18,43,26,2,34,35,11,36,19,44,27,3,4,29,12,37,20,
         45,28),nrow=7);c_mag #cuadrado mágico 7x7
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,]   22   47   16   41   10   35    4
## [2,]    5   23   48   17   42   11   29
## [3,]   30    6   24   49   18   36   12
## [4,]   13   31    7   25   43   19   37
## [5,]   38   14   32    1   26   44   20
## [6,]   21   39    8   33    2   27   45
## [7,]   46   15   40    9   34    3   28
rowSums(c_mag) #Suma de cada fila.
## [1] 175 175 175 175 175 175 175
colSums(c_mag) #Suma de cada columna. 
## [1] 175 175 175 175 175 175 175
sum(diag(c_mag))    #Suma de la diagonal.
## [1] 175

Como se ve en el código la suma de cada fila, cada columna y su diagonal es igual a 175.

Ejercicios 6.

1.) Escriba un script de cuatro lineas como las siguientes: La primera línea debe ser un comentario, la segunda y la tercera debe tener los asignamientos cost=200 y sale_price=250, respectivamente. La cuarta línea debe tener el cálculo profit=saleprice-cost, guarde el script en un archivo de comandos llamado example8.Finalmente corra el archivo de comandos.

source(
'C:/Users/Sebastian franco/Desktop/estadistica/Computacion estadistica/aprendaResol/example8.R'
,echo = TRUE)
## 
## > cost = 200
## 
## > sale_price = 250
## 
## > profit = sale_price - cost
## 
## > profit
## [1] 50

2.) Escriba una función de tres lineas que calcule el volumen de una esfera de radio r. La primera línea deberá tener el nombre de la función la cual es volume(r), la segunda linea debe ser un comentario. la tercera linea deberá tener el cálculo del volumen de la esfera el cual es \(\frac{4}{3}\pi r^3\). Guarde la función en un archivo llamado volume.m luego corra la función con el valor del radio igual a 2 (no son usadas las unidades en este ejercicio).

source(
'C:/Users/Sebastian franco/Desktop/estadistica/Computacion estadistica/aprendaResol/volume.r'
,echo = TRUE,encoding = 'UTF-8')
## 
## > volume = function(r) {
## +     pi * r^3 * 4/3
## + }
volume(2) #Se corre la función del script creado con anterioridad.
## [1] 33.51032

3.) Escriba una función con dos argumentos para calcular el área de un rectángulo de lados a y b. La función debería tener 3 líneas. La primera línea debería incluir el nombre de la función la cual es RectangleArea(a,b), la segunda línea debe ser un comentario. La tercera línea debería incluir el cálculo del área del rectángulo el cual es el producto a*b. Guarde la función en un archivo llamado RectangleArea. Luego corra la función dos veces como sigue: La primera ejecución con 3 y 6 mientras que la segunda ejecución con 2.5 y 5.5.

source(
'C:/Users/Sebastian franco/Desktop/estadistica/Computacion estadistica/aprendaResol/RectangleArea.R'
, encoding = 'UTF-8', echo=TRUE)
## 
## > RectangleArea = function(a, b) {
## +     a * b
## + }
#Se corre la función del script creado para hallar el área del rectángulo
RectangleArea(3,6)     
## [1] 18
RectangleArea(2.5,5.5)
## [1] 13.75

4.) Escriba un script que contenga un bucle For para calcular el vector x que tiene los valores \(x(n)=n^3\), donde n es el rango entre 1-7. Incluya una línea de comentario en el comienzo. Guarde el script en un archivo llamado example9 luego corra el script y muestre los valores de los elementos del vector x.

source(
'C:/Users/Sebastian franco/Desktop/estadistica/Computacion estadistica/aprendaResol/example9.R'
, encoding = 'UTF-8', echo=TRUE)
## 
## > for (n in 1:7) {
## +     x[n] = n^3
## + }
x  # se muestra el vector x generado en el loop pedido.
## [[1]]
## [1] 1
## 
## [[2]]
## [1] 8
## 
## [[3]]
## [1] 27
## 
## [[4]]
## [1] 64
## 
## [[5]]
## [1] 125
## 
## [[6]]
## [1] 216
## 
## [[7]]
## [1] 343

5.) Escriba un script que tenga dos bucles For anidados para calcular la matriz y que tiene los valores \(y(m,n)=m^2-n^2\) donde cada uno de los dos tiene un rango de 1 hasta 4. Incluya un comentario al comienzo. Guarde el script en un archivo llamado example10 luego corra el script y muestre los valores de la matriz y creada.

source(
'C:/Users/Sebastian franco/Desktop/estadistica/Computacion estadistica/aprendaResol/example10.R'
, encoding = 'UTF-8', echo=TRUE)
## 
## > Y = matrix(0, nrow = 4, ncol = 4)
## 
## > for (m in 1:4) {
## +     for (n in 1:4) {
## +         Y[m, n] = m^2 - n^2
## +     }
## + }
Y
##      [,1] [,2] [,3] [,4]
## [1,]    0   -3   -8  -15
## [2,]    3    0   -5  -12
## [3,]    8    5    0   -7
## [4,]   15   12    7    0

6.) Escriba un script que contenga el bucle while usando las dos variables tol y n. Antes deentrar al bucle while empiece las dos variables usando la asignación tol= 0.0 y n =3, después use los dos cálculos \(n=n+1\) y \(tol=tol+0.1\) dentro del bucle while. Haga que el bucle termine cuando el valor de tol sea mayor o igual a 1.5. Incluya un comentario al comienzo. Guarde el script en un archivo llamado example11 luego corra el script y muestre los valores de las dos variables tol y n.

source(
'C:/Users/Sebastian franco/Desktop/estadistica/Computacion estadistica/aprendaResol/example11.R'
, echo=TRUE)
## 
## > tol = 0
## 
## > n = 3
## 
## > while (tol < 1.5) {
## +     n = n + 1
## +     tol = tol + 0.1
## +     print(c(n = n, tol = tol))
## + }
##   n tol 
## 4.0 0.1 
##   n tol 
## 5.0 0.2 
##   n tol 
## 6.0 0.3 
##   n tol 
## 7.0 0.4 
##   n tol 
## 8.0 0.5 
##   n tol 
## 9.0 0.6 
##    n  tol 
## 10.0  0.7 
##    n  tol 
## 11.0  0.8 
##    n  tol 
## 12.0  0.9 
##   n tol 
##  13   1 
##    n  tol 
## 14.0  1.1 
##    n  tol 
## 15.0  1.2 
##    n  tol 
## 16.0  1.3 
##    n  tol 
## 17.0  1.4 
##    n  tol 
## 18.0  1.5

7.) Escriba una función llamada price(items) que contenga un if como sigue. El precio de los items son determinados por el cálculo \(price=items*130\) a menos que el valor de la variable item sea mayor que 5 en ese caso el cálculo cambia a \(price=items*160\). Incluya un comentario al comienzo. Guarde la función en un archivo llamado price, luego corra la función dos veces con los valores 3 y 9 para la variable items. Asegurese que la función arroje resultado para la variable price.

source(
'C:/Users/Sebastian franco/Desktop/estadistica/Computacion estadistica/aprendaResol/price.R'
, encoding = 'UTF-8', echo=TRUE)
## 
## > price = function(items) {
## +     if (items <= 5) {
## +         items * 130
## +     }
## +     else {
## +         items * 160
## +     }
## + }
price(3)
## [1] 390
price(9)
## [1] 1440

8.) Escriba una función llamada price2(items) que contenga un if else como sigue. Si el valor de la variable items es menor que 3 calcule la variable price2 multiplicando items por 130. En un segundo caso si el valor de la variable items es menor que 5 calcule la variable price2 multiplicando items por 160. En el último caso, si el valor de la variable es mayor que 5, calcule la variable price2 multiplicando items por 200. incluya un comentario al comienzo. Guarde la función en un archivo llamado price2.m luego corra la función tres veces con los valores 2,4 y 6. asegurese que la función muestre los resultados de la variable price2.

source(
  'C:/Users/Sebastian franco/Desktop/estadistica/Computacion estadistica/aprendaResol/price2.R'
  ,echo = TRUE, encoding = 'UTF-8')
## 
## > price2 = function(items) {
## +     if (items < 3) {
## +         items * 130
## +     }
## +     else {
## +         if (items < 5) {
## +             items * 160
## +  .... [TRUNCATED]
price2(2) #según las condiciones, se halla el precio de 2 items.
## [1] 260
price2(4) #según las condiciones, se halla el precio de 4 items.
## [1] 640
price2(6) #según las condiciones, se halla el precio de 6 items.
## [1] 1200

Ejercicios 7.

1.) grafique un plano de dos dimensiones de los dos vectores \(x=\)[1 2 3 4 5 6 7] y \(y=\)[10 15 23 43 30 10 12] usando el comando “plot”.

x=c(1,2,3,4,5,6,7)
y=c(10,15,23,43,30,10,12)
plot(x,y)

2.) En el ejercicio 1 de arriba, agregue al gráfico un título adecuado nombrando también el eje x y el eje y.

plot(x,y,main = "Relación entre cigarrillos y tintos tomados en un mes",
     xlab = "Cantidad de cigarrillos fumados al mes",
     ylab = "cantidad de tintos tomados al mes")

3.) Grafique una función matemática \(y=2x^3+5\) con el rango de x entre -6 a 6. Incluya un título para la gráfica que concuerde con el nombre de los ejes x y \(y\).

x=-6:6
y=2*x^3+5
plot(x,y,xlab = "Comparativo de dinero respecto al mes anterior",
     ylab="Cantidad de clientes respecto al mes anterior",
     main ="Resultados de 12 empresas en un mes" )

4.) Repita el plano del ejercicio anterior pero muestre una curva con una linea discontinua azul con símbolos circulares en el punto trazado.

x=-6:6
y=2*x^3+5
plot(x,y,xlab = "Comparativo de dinero respecto al mes anterior",
     ylab="Cantidad de clientes respecto al mes anterior",
     main ="Resultados de 12 empresas en un mes" ,type="b",col="cyan2")

5.) Dibuje las dos funciones matemáticas \(y=2sen(\frac{x}{3})\) y \(z=2cos(\frac{x}{3})\) tal que las dos curvas aparezcan en el mismo diagrama. Tome el rango de X entre 0 y \(3\pi\) con incrementos de \(\frac{\pi}{4}\). Distinga las dos curvas dibujando una con lineas entrecortadas y otra con una linea punteada, incluya la información de los ejes y el título así como una cuadrícula y una leyenda.

x=seq(0,3*pi,pi/4); #Dominio de la función.
y=2*sin(x/3)        #Rango de la función y.
z=2*cos(x/3)        #Rango de la función z.
#Gráfica de y.
plot(x,y,xlim = c(0,3*pi),ylim = c(-2,2),ylab ="Rango de las funciones" ,xlab ="Dominio de las funciones" ,main = "Gráfica de funciones",lty=3,col=2,lwd=4)
#Curva z anexada a la gráfica y.
curve(2*cos(x/3),0,3*pi,add = TRUE,lty=2,col=3,lwd=4) 
grid(nx = NULL, ny = NULL,
     lty = 2, col = "gray", lwd = 2)
#leyenda anezada en la esquina superior derecha.
legend(x = "topright",         # Posición
       legend = c("y", "z"), # Textos de la leyenda
       lty = c(3, 2),          # Tipo de líneas
       col = c(2, 3),          # Colores de las líneas
       lwd = 4) 

6.) Grafique cada uno de las 4 funciones matemáticas con su respectivo comando de diagrama. Las funciones son \(y=2x^3-4\),\(z=x+1,\) \(w=2-\sqrt{x}\) y \(v=x^2+3\). Use el vector \(x=\)[1 2 3 4 5 6 7 8 9] como el rango de x. No es necesario que muestre el título o la información de los ejes.

x=c(1,2,3,4,5,6,7,8,9)
y=2*x^3-4
z=x+1
w=2-sqrt(x)
v=x^2+3
plot(x,y) #Gráfico para y.

plot(x,z) #Gráfico para y.

plot(x,w) #Gráfico para y.

plot(x,v) #Gráfico para y.

7.) Use el comando plot3d para mostrar una curva tridimensional de la ecuación \(z=2sen(xy)\). Use el vector x=[1 2 3 4 5 6 7 8 9 10] para ambos x y y. No es necesario mostrar la información del título y los ejes.

library(plot3D)  #Librería para graficar en 3d.
## Warning: package 'plot3D' was built under R version 4.0.5
x=c(1,2,3,4,5,6,7,8,9,10) #Vector x
y=c(1,2,3,4,5,6,7,8,9,10) #vector y
z=2*sin(y*x)
plot3D::scatter3D(x,z,y)

plot3D::lines3D(x,y,z)

8.) trazar una superficie de malla tridimensional de elementos de la matriz M abajo. No es necesario mostrar información de los ejes ni título. \[M=\begin{pmatrix}0.1&0.2&0.5&0.7&0.3\\0.2&0.8&0.5&0.6&0.3\\ 0.5&0.9&0.9&0.4&0.4\\0.4&0.4&0.5&0.7&0.9\\0.1&0.3&0.4&0.6&0.8\end{pmatrix}\]

#Creación de la matriz M.
M=matrix(c(0.1,0.2,0.5,0.4,0.1,0.2,0.8,0.9,0.4,0.3,0.5,0.5,0.9,0.5,0.4,0.7,0.6,
           0.4,0.7,0.6,0.3,0.3,0.4,0.9,0.8),nrow = 5);
#Malla tridimensional de los elementos de la matriz M.
persp(M,theta = 40,phi=5,ticktype = "detailed",expand = 0.7,shade = 0.3)