Está en la página 1de 12

1

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE CIENCIAS

CARRERA DE INGENIERÍA MATEMÁTICA

SIMULACIÓN

Nombres:

• Samanta Guayasamı́n

• Oliver Jaramillo

• Mélani Montaño

• Daniel Narvaéz

• John Orellana

• Giovanella Peña

Capitulo 3: Números Aleatorios


EJERCICIOS.

Ejercicio 1. Si x0 = 5 y

xn = 3xn−1 mód150

determine x1 , . . . , x10 .

Solución

l = 10; cantidad de numero aleatorios

x = rep(0, l); un vector de l ceros

xi = 5; semilla

x[1] = (3 ∗ xi)mód150; método congruencial multiplicativo


2

f or(j in 2 : l)

x[j] = (3 ∗ x[j − 1])mód150;

np1 = x/150;

Resultado

x1 = 0,1 x2 = 0,3 x3 = 0,9 x4 = 0,7 x5 = 0,1 x6 = 0,3 x7 =


0,9 x8 = 0,7 x9 = 0,1 x10 = 0,3

Ejercicio 2. Si x0 = 3 y

xn = 5xn−1 + 7mód200

determine x1 , . . . , x10 .

Solución

y = rep(0, l);

yi = 3;

y[1] = (5 ∗ yi + 7)mód200;

f or(j in 2 : l)

y[j] = (5 ∗ y[j − 1] + 7)mód200;

np2 = y/200

Resultado

x1 = 0,110 x2 = 0,585 x3 = 0,960 x4 = 0,835 x5 = 0,210 x6 =


0,085 x7 = 0,460 x8 = 0,335 x9 = 0,710 x10 = 0,585

En los ejercicios 3-9, emplee la simulación para aproximar las si-


guientes integrales. Compare su estimación con la respuesta exac-
ta, si esta se conoce.
R1
Ejercicio 3. 0 exp(ex )dx
3

Solución

Valor simulado: g1 = f unction(z)exp(exp(z));;

k1 = 1000;;

U 1 = runif (k1, min = 0, max = 1);;

S1 = sum(g1(U 1))/k1;;

S1;;

Valor real de la integral integrate(g1, 0, 1);;

Resultado

g1 = 6,316564 con error de 7e − 14.

S1 = 6,317503.

R1
Ejercicio 4. 0 (1 − x2 )3/2 dx

Solución

Valor simulado: g2 = f unction(z)(1 − z 2 )( 3/2);;

k2 = 1000;;

U 2 = runif (k2, min = 0, max = 1);;

S2 = sum(g2(U 2))/k2;;

S2;;

Valor real de la integral integrate(g2, 0, 1);;

Resultado

g2 = 0,5890486 con error de 1,3e − 05.


4

S2 = 0,6125244.

R2 x+x2
Ejercicio 5. −2 e dx

Solución

Valor simulado: g3 = f unction(z)exp(z + z 2 );;

k3 = 2000;;

U 3 = runif (k3, min = 0, max = 1);;

a3 = −2;;

b3 = 2;;

S3 = sum((b3 − a3) ∗ g3(a3 + (b3 − a3) ∗ U 3))/k3;;

S3;;

Valor real de la integral integrate(g3, −2, 2);;

Resultado

g3 = 93,16275 con error de 1,3e − 05.

S3 = 93,55919.

R∞
Ejercicio 6. 0 x(1 + x2 )−2 dx

Solución

g4 = f unction(z);

z ∗ (1 + z 2 )( − 2);;

k4 = 1000;;

U 4 = runif (k4, min = 0, max = 1);;


5

S4 = sum(g4(1/U 4 − 1)/U 42 )/k4;;

S4;;

Valor real de la integral integrate(g4, 0, ∞);;

Resultado

g4 = 0,5 con error de 3,3e − 09.

S4 = 0,5161623.

R∞ −x2
Ejercicio 7. −∞ e dx

Solución

g5 = f unction(z)exp(−z 2 );

k5 = 1000;;

U 5 = runif (k5, min = 0, max = 1);

S5 = sum(g5(1/U 5 − 1)/U 52 )/k5;

S5 ∗ 2;

Valor real de la integral integrate(g5, −∞, +∞);;

Resultado

g5 = 1,772454 con error de 4,3e − 06.

S5 = 1,752321.

R1R1 2
Ejercicio 8. 0 0 e(x+y) dy dx

Solución
6

k = 9000000;;

U = runif (k, min = 0, max = 1);;

u = runif (k, min = 0, max = 1);;

g < −f unction(u, U )u < −exp((u + U )2 )return(u);

g1 = g(u, U );

S = sum(g1[seq(1, length(g1), 1)]);

Sk = S/k;

R∞Rx
Ejercicio 9. 0 0 e−(x+y) dy dx

Solución

k = 9000000;;

U = runif (k, min = 0, max = 1);;

g < −f unction(U )U < −exp(−(1/U − 1)) ∗ (−exp(−(1/U − 1)) + 1)/U 2 return(U )

g1 = g(U );

S = sum(g1[seq(1, length(g1), 1)]);

Sk = S/k;

[Sugerencia: Sea
(
1 si y < x
Iy (x) =
0 si y ≥ x
utilice esta función para igualar esta integral a otra cuyos térmi-
nos vayan de 0 a ∞.]

Ejercicio 10. Utilice la simulación para aproximar Cov(U, eU ),


donde U es uniforme en (0, 1). Compare su aproximación con la
7

respuesta exacta.

Solución

k = 1000000;;

U = runif (k, min = 0, max = 1);;

g10 = f unction(z);

z ∗ exp(z);;

g11 = f unction(z);

exp(z);;

S = sum(g10(U ))/k;;

S1 = sum(U )/k;;

S2 = sum(g11(U ))/k;;

E = S − S1 ∗ S2;;

Respuesta exacta x = cov(U, exp(U ));;

x;;

Ejercicio 11. Sea U uniforme en (0, 1). Utilice simulación para


aproximar lo siguiente:

(a) Cov(U, 1 − U 2 ).

(b) Cov(U 2 , 1 − U 2 ).

Solución

k = 1000000;;

U = runif (k, min = 0, max = 1);;

g12 = f unction(z);
8

z ∗ sqrt(1 − z 2 );;

g13 = f unction(z);

sqrt(1 − z 2 );;

S = sum(g12(U ))/k;;

S1 = sum(U )/k;;

S2 = sum(g13(U ))/k;;

E = S − S1 ∗ S2;;

Valores reales x = cov(U, sqrt(1 − U 2 ));;

x;;

k = 1000000;;

U = runif (k, min = 0, max = 1);;

g14 = f unction(z);

z 2 ∗ sqrt(1 − z 2 );;

S = sum(g14(U ))/k;;

S1 = sum(U 2 )/k;;

S2 = sum(g13(U ))/k;;

E = S − S1 ∗ S2;;

Valores reales y = cov(U 2 , sqrt(1 − U 2 ));;

y;;

Ejercicio 12. Para U1 , U2 , . . . variables aleatorias uniformes en


9

(0, 1), definimos


( n
)
X
N = M inimo n : Ui > 1
i=1

Es decir, N es igual a la cantidad de numeros aleatorios que deben


sumarse para exceder a 1.

(a) Estime E[N ] generando 100 valores de N .

(b) Estime E[N ] generando 1000 valores de N .

(a) Estime E[N ] generando 10000 valores de N .

(d) ¿Cual cree que sea el valor de E[N ]?

Solución

k12 = 1000;;

U 12 = runif (k12, min = 0, max = 1);;

suma = 0;;

i = 1;;

while(suma <= 1){;

suma = suma + U 12[i];;

i = i + 1; };

N = i − 1;;

(a) a = 100;;

N a = rep(0, a);;

f or(jin1 : a);

{U 12 = runif (k12, min = 0, max = 1);;


10

suma = 0;;

i = 1;;

while(suma <= 1){;

suma = suma + U 12[i];;

i = i + 1; };

N a[j] = i − 1; };

E = sum(N a)/a;

(b) b = 1000;;

N b = rep(0, b);;

f or(jin1 : b);

{U 12 = runif (k12, min = 0, max = 1);;

suma = 0;;

i = 1;;

while(suma <= 1){;

suma = suma + U 12[i];;

i = i + 1; };

N b[j] = i − 1; };

E = sum(N b)/b;

(c) c = 10000;;

N c = rep(0, c);;

f or(jin1 : c);
11

{U 12 = runif (k12, min = 0, max = 1);;

suma = 0;;

i = 1;;

while(suma <= 1){;

suma = suma + U 12[i];;

i = i + 1; };

N c[j] = i − 1; };

E = sum(N c)/c;

(d) El valor de E(N) es el promedio de los resultados anteriores.


Resultado

Ejercicio 13. Sean Ui , i ≥ 1, numeros aleatorios. Defina N como

N = M aximo n : Πni=1 Ui ≥ e−3




donde
Π0i=1 Ui ≡ 1.
(a) Determine E[N ] por simulación.

(b) Determine P (N = i), para i = 0, 1, 2, 3, 4, 5, 6, por simula-


ción.

Solución

n = 1000;

a = 1000;;

U 2 = rep(0, a);;

U 3 = rep(0, n);;

f or(jin1 : a){;
12

U 1 = runif (n, 0, 1);;

U 3 = cumprod(U 1);

k = 1;

while(U 3[k] >= exp(−3)){;

U 2[j] = k;

k = k + 1;

};

};

E = sum(U 2)/a;

E;

para la parte b), tenemos P = rep(0, 7);;

P [1] = (30 /f actorial(0)) ∗ exp(−3);

f or(iin1 : 6){;

P [i + 1] = (3i /f actorial(i)) ∗ exp(−3)};

P;

También podría gustarte