You are on page 1of 15

Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

UFRN - ENGENHARIA DE COMPUTAO

TPICOS ESPECIAIS EM ENGENHARIA DE COMPUTAO


PROFESSOR: ADRIO DUARTE DORIA NETO

ALUNOS: VITOR RAMOS GOMES DA SILVA E ANDRESSA STFANY SILVA DE OLIVEIRA

LISTA 1

1) Considere o seguinte problema envolvendo uma sequncia de experimentos. O problema consiste de duas
urnas contendo bolas rotulados com os nmeros 0 ou 1. A urna 1 contm 3 bolas sendo duas rotulados com 0 e
uma rotulada com 1, a urna 2 contm seis bolas sendo cinco rotulados com 1 e uma rotulada com 0. O
experimento consiste em retirar uma bola de uma das urnas, vericar se zero ou um e repor a bola e repetir o
experimento. A escolha da urna se faz por um experimento tipo cara ou coroa.

a) Gere um diagrama em trelia que reproduza a sequncia de eventos

b) Calcule a probabilidade de se gerar a sequncia 001110

Observe que as sequncias geradas obedecem a seguinte propriedade P[sn |sn1 , sn2 , . . . , s1 , s0 ] = P[sn |sn1 ] ,
isto , a probabilidade do evento presente de s do ltimo evento passado. Esta propriedade caracteriza uma cadeia uma
Markov.

a) Diagrama em trelia:

2/3
0 0,5*2/3
0
0,5
0,5*1/3
1/3

1/6
...
0,5*1/6
0,5

5/6 0,5*5/6

1 1
b)

P(001110) = P(0) P(0|0) P(1|00) P(1|001). . .


= P(0) P(0) P(1) P(1) P(1) P(0)
= P(0)3 P(1)3
= (0.5 2/3 + 0.5 1/6)3 (0.5 1/3 + 0.5 5/6)3 = 0.014358750750171465

2) Um canal de comunicaes transmite smbolos ternrios 0,1,2, gerados por uma determinada forte digital com
as seguintes probabilidades P[0]=1/2, P[1]=1/4 e P[2]=1/4. A probabilidade de receber o smbolo transmitido
0,99 e probabilidade receber um smbolo diferente 0,01.

a) Calcule a probabilidade de ter um erro na recepo

b) Supondo que foi recebido o smbolo 0, calcule a probabilidade de ter sido transmitido um 0, ou 1 ou 2.

1 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

rvora da fonte:
00
9
0 ,9 01
0 ,5
0,01
0,5
02
5
0, 11
0 ,9 9 10
0 ,5
0,25 0,01
0,5
0, 12
25
0 ,9 9 22

0 ,0 1 20
0,5
0 ,5

21

a)

P(erro)= P(Transmitir X e receber Y)

= 0.5 0.01 + 0.25 0.01 + 0.25 0.01 = 0.01

b) P(Receber | transmitido)
(0.50.99)
P(0|0) = 0.50.99+0.250.011/2+0.250.011/2
= 0.9949748743718594
(0.250.011/2)
P(0|1) = 0.50.99+0.250.011/2+0.250.011/2
= 0.0025125628140703522
(0.250.011/2)
P(0|2) = 0.50.99+0.250.011/2+0.250.011/2
= 0.0025125628140703522

3) Considere o problema de deciso caracterizado por uma sequncia de eventos que podem ser apresentados
por um grco conhecido como rvore de deciso. O problema em questo consiste das escolhas e das
decises por parte de uma empresa de petrleo. Uma determinada empresa petrolfera obteve a concesso para
explorar uma certa regio. Os estudos anteriores (testes preliminares) estimam a probabilidade de existir
petrleo nessa regio em 0,20. A companhia pode optar por um novo teste, que custa USS 500.000,00, sendo
que, se realmente existe petrleo, esse teste dir com uma probabilidade de 0,80 que existe, e se realmente no
existe, dir com probabilidade 0,70 que no existe. Considerando que o custo de perfurao ser de USS
3.000.000,00 e que, se for encontrado petrleo, a companhia receber USS 150.000.000,00. Considere, portanto
os seguintes eventos e os seus complementos: (i) Evento T (a companhia faz o teste); (ii) Evento F (o teste
favorvel existncia de petrleo; (iii) Evento P (a companhia perfura o poo); (iv) Evento E (existe
petrleo).

a) Construa a rvore indicando os ns de decises e os ns ao acaso (probabilidades). Simbolize os dois de forma


diferente.

b) Determine o lucro =receita - despesas em cada percurso da rvore.

c) Usando o critrio do melhor valor esperado, determine o valor esperado em cada n de deciso.

d) Qual o valor esperado do lucro da companhia se forem tomadas as melhores decises?

2 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

a) e b)
Perf u
ra -500k-3M+150M
!Pe
l rf u
0,8 ve ra
or -500k
v
Fa
-500k !Fa 0,2
r vor
sta
ve
l
-500k-3M+150M
Te ra
Perf u
!Pe
!Tes rf u
ra
tar
8
Perf u
ra -500k
0, te
is -3M+150M
Ex !Perf ura
0

-500k ra -3M
Perf u
!E
0, te
xi

!Perf ura
2

0
s

r
sta -500k-3M
!Te a
f ur
Per
Te !Perf u
sta
r 0,7 vel ra
or -500k
Fav

!Fa 0,
vo 3
r a -500k-3M
ve f ur
l Per
!Perf u
ra
-500k

3 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

In[1]: pTeste= 500*10**3 # depesas teste


pPerfura= 3*10**6 # despesas perfura
Lucro= 150*10**6 # lucro se tem

Pe= 0.2 # existe petroleo


Tf_e= 0.8 # se existe teste da favoravel
Td_ne= 0.7 # se nao existe teste dar falso
pTeste= 500*10**3 # depesas teste
pPerfura= 3*10**6 # despesas perfura
Lucro= 150*10**6 # lucro se tem

ETFP= Pe*Tf_e*(-pTeste-pPerfura+Lucro)
ETF_P= Pe*Tf_e*(-pTeste)
ET_FP= Pe*(1-Tf_e)*(-pTeste-pPerfura+Lucro)
ET_F_P= Pe*(1-Tf_e)*(-pTeste)
E_TP= Pe*(-pPerfura+Lucro)
E_T_P=0
_ETFP= (1-Pe)*(Td_ne)*(-pTeste-pPerfura)
_ETF_P= (1-Pe)*(Td_ne)*(-pTeste)
_ET_FP= (1-Pe)*(1-Td_ne)*(-pTeste-pPerfura)
_ET_F_P= (1-Pe)*(1-Td_ne)*(-pTeste)
_E_TP= (1-Pe)*(-pPerfura)
_E_T_P= 0

print("c)")
print("Lucro esperado se no fizer o teste e perfurar ", E_TP+_E_T
P) #!TP
print("Lucro esperado se fizer o teste e perfurar ", ETFP+ET_F
P+_ETFP+_ET_FP) #TP
print("Lucro esperado se fizer o teste perfurando ou no ", ETFP+ETF_
P+ET_FP+ET_F_P+_ETFP+_ETF_P+_ET_FP+_ET_F_P) #T
print("Lucro esperado se teste favorvel e perfurar ", ETFP+_ETF
P) #TFP
print("Lucro esperado se teste no favorvel e perfurar ", ET_FP+_ET
_FP) #T_FP
print("Lucro esperado se teste no favorvel e no perfurar ", ET_F_P+_E
T_F_P) #T_F_P
print("Lucro esperado se teste favorvel e no perfurar ", ETF_P+_ET
F_P) #TF_P
print("Lucro esperado se no perfurar fazendo ou no o teste", ETF_P+ET_
F_P+E_T_P+_ETF_P+_ET_F_P+_E_T_P) #!P
print("Lucro esperado se fizer o teste e no perfurar ", ETF_P+ET_
F_P+_ETF_P+_ET_F_P) #T!P
print("Lucro esperado se no fizer o teste e no perfurar ", E_T_P+_E_
T_P) #!T!P

c)
Lucro esperado se no fizer o teste e perfurar 27000000.0
Lucro esperado se fizer o teste e perfurar 26500000.000000004
Lucro esperado se fizer o teste perfurando ou no 26000000.000000004
Lucro esperado se teste favorvel e perfurar 21480000.000000004
Lucro esperado se teste no favorvel e perfurar 5019999.999999999
Lucro esperado se teste no favorvel e no perfurar -140000.00000000003
Lucro esperado se teste favorvel e no perfurar -360000.0
Lucro esperado se no perfurar fazendo ou no o teste -500000.0
Lucro esperado se fizer o teste e no perfurar -500000.0
Lucro esperado se no fizer o teste e no perfurar 0

d) A melhor deciso perfurar no fazendo o teste, sendo o lucro de 27 milhes de reais.

4 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

4) Considere nesta questo os conceitos bsicos de conabilidade, tempo mdio de falhas, taxa de falhas e
clculo da conabilidade de sistemas. Seja T o tempo de vida de um componente, dene-se a conabilidade
R (t)
como sendo R(t) = P[T > t] = 1 FT (t) a funo taxa mdia de falha denida como sendo r(t) = R(t)
Considere tambm que um determinado sistema seja composto por subsistemas em serie ou em paralelo. Sob
estas condies solucione as seguintes questes:


a) Demonstre que o tempo mdio de vida (MTTF) denido por MTTF= E[T] = 0 tft (t)dt = 0 R(t)dt sendo R(t)
funo densidade de probabilidade da V.A. T.

R(t) = 1 Ft (t)
R (t) = ft (t)

E[T] = 0 tft (t)dt = 0 tR (t)dt
u = t, dv = R (t)
du = dt, v = R(t)

0 tR (t)dt = tR(t)|
0 + 0 R(t)dt = (0 R(0) limt tR(t)) + 0 R(t)dt = 0 R(t)dt

b) Considerando que a funo taxa de falhas seja constante e igual e que R(0)=1, mostre que fT (t) = et e t , isto ,
T possui uma distribuio exponencial.

R (t)
= R(t)
R(t) + R (t) = 0
R (t) + R (t) = 0
f (t) f (t) = 0
x+=0
x =
f (t) = cet

0 cet dt = 1 = c (e 1)
c=
f (t) = et

c) Para um sistema composto por n subsistemas independentes em srie e que cada um tem taxa de falhas i , calcule a
conabilidade deste sistema.

Rs (t) = Ri (t) = ei t

d) Calcule a conabilidade na questo c para o caso em que os sistemas estejam em paralelo.

Rp (t) = 1 (1 R(t)) = 1 (1 ei t )

e) Para n=2 subsistemas e 1 = 2 = , calcule a razo entre a conabilidade dos subsistemas em paralelo e
conabilidade do subsistemas em srie.

Rp (t) 1(1et )2 11+2et e2t


Rs (t)
= = e2t
= 2et 1
(et )2

5 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

5) Um certo tipo de chip de uma determinada marca tem uma durao de vida que segue uma distribuio
exponencial com vida mdia de 100 horas. Cada chip tem um custo de 10 reais e, se durar menos de 200 horas,
existe um custo adicional de 8 reais.

a) Qual a probabilidade de um chip durar mais de 150 horas?


t

e
f (t) =
100
100
t 150
F(t) = 1 e 100 P(t > 150) = 1 P(t <= 150) = 1 F(150) = e 100 = 0.223
Ento, a probabilidade de um chip durar mais de 150 horas de 22,3%.

b) Foi proposta a compra de uma outra marca que tem tempo de vida mdia de 200 horas e um custo mdio de 15 reais
e existe tambm a incidncia do custo adicional de 8 reais se durar menos de 200 horas. Considerando o custo mdio
decida se deve ser feita a troca de marcas.

Fabricante atual = 100


P(t <= 200) = F(200)
E(t) = F(200) (10 + 8) + (1 F(200)) 10 = 16.9
Novo Fabricante = 200
P(t <= 200) = F(200)
E(t) = F(200) (15 + 8) + (1 F(200)) 15 = 20.05
Logo, no trocar de fabricante a melhor opo.

6) O nmero de chamadas telefnicas que chegam a uma central de comutao durante um intervalo de tempo
uma varivel aleatria com distribuio de Poisson. Considere um intervalo de dez minutos com = 2 .
Determine a probabilidade de mais de trs chamadas chegam durante o intervalo de 10 minutos.

e x
P(x) = x!
e2 20 e2 21 e
P(x > 3) = 1 P(x <= 3) = 1 P(x = 0) P(x = 1) P(x = 2) P(x = 3) = 1 0!
1!

Assim, h a probabilidade de 14,29% de mais de trs chamadas chegarem durante o intervalo de 10 minutos.

7) Em um determinado projeto de construo, so identicadas pela experincia dos construtores 16 atividades


crticas independentes. Os tempos de execuo das atividades so variveis aleatrias com valores mdios e
varincias conhecidas mostrados na tabela abaixo. Considerando que o tempo do projeto possa ser dado pela
soma dos tempos de cada uma das atividades individuais independentes, calcule:

a)O tempo esperado para concluir o projeto

b)A probabilidade do tempo de concluso do projeto de construo no exceda 50 semanas

c)O tempo do projeto que corresponda a uma probabilidade de 0,90 de concluir o projeto

Observao: Faa uso nas consideraes para soluo do problema o teorema do limite central.

6 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

In[2]: import numpy as np


import scipy.stats

med= np.array([[2.7,3.2,4.6,2.1,3.6,5.2,7.1,1.5,3.1,4.2,3.6,0.5,2.1,1.5,
1.2,2.8],
[1.0,1.3,1.0,1.2,0.8,2.1,1.9,0.5,1.2,0.8,1.6,0.2,0.6,0.7,
0.4,0.7]])
mu=sum(med[0])
sx=np.math.sqrt(sum(med[1]))
print("a) Tempo esperado:", mu)
#print("Desvio padrao ", sx)

print("b) Probabilidade de terminar antes de 50 semanas:", scipy.stats.n


orm(mu,sx).cdf(50))

p90= scipy.stats.norm(mu,sx).ppf(0.9)
print("c) 90% de certeza terminar antes de", p90, "semanas")

a) Tempo esperado: 49.0


b) Probabilidade de terminar antes de 50 semanas: 0.598706325683
c) 90% de certeza terminar antes de 54.1262062622 semanas

8) Uma distribuio bidimensional contnua (X,Y) tem a funo densidade de probabilidade

xex(y+1) , x > 0, y > 0


f (x, y) =
0, casocontrrio

determine:

a) As distribuies marginais;

Distribuio em X: 0 xex(y+1) dy = 0 xex exy dy
1 xy
xex x e |0 = ex [0 1] = ex

Distribuio em Y: 0 xex(y+1) dx

u = x > du = dx
ex(y+1)
dv = ex(y+1) dx > v = (y+1)
e x(y+1) ex(y+1)
uv vdu = x (y+1) |
0 0 y+1
x(y+1)
e 1 1
x (y+1) (y+1) x(y+1)
ex(y+1)
x(y+1)
x ey+1 1
ex(y+1) |
0 = 1
(y+1)2 (y+1)2

7 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

COV(X,Y)
b) O coeciente de correlao x,y = x y ;

E(XY) = y x xyex(y+1) dxdy

u = x 2 > du = 2xdx
etx
dv = etx , onde t = y + 1 > v = t
tx
etx
uv vdu = x 2 e t + t 2xdx

u = 2x > du = 2x;
e tx etx
dv = t >v= t2
tx 2xetx etx tx
2xetx 2etx
x2 e t + ( t2
+ t2
2dx) = x 2 e t t2
t3 0
|
2
0 x 2 etx dx =
(y+1)3

2y
0 0 xyex(y+1) dxdy = 0 dy
(y+1)3
2y A B C
= y+1
+ +
(y+1)3 (y+1)2 (y+1)3
C = 2
A(y+1)2 +B(y1)2 2y
= =
(y+1)3 (y+1)3

= A(y2 + 2y + 1) + By + 1 2 = 2y > A = 0
2A + B = 2 > B = 2
2y 2 2
0 dy = 0 dy
(y+1)3 (y+1)2 (y+1)3
1 2
= 2 1
2
| = 1
| =1
y+1 1 (y+1)2 2 0 y+1 (y+1)2 0

E(X) = 0 xex dx = xex + 0 ex dx = xex ex |
0 = 1
y 1 1 1
E(Y) = 0 dy = 0 y+1
dy = ln(y + 1) + y+1
= indef inido
(y+1)2 (y+1)2
y A B
= y+1
+ > A(y + 1) 1 = Y; A = 1, B = 1.
(y+1)2 (y+1)2

x =
x e dx E(X )2 = 1
2 x
0

y =
dy E(Y )2 = indef inido
y2
0 Y+1

1E(Y)
COV(fx,y (X, Y)) = = indef inido
E(Y )E(Y )
2 2

x
c) A mdia condicional E[X|Y]. xf (x|y
y )dx
x f (x,y) xex(y+1)
f (x|y
y) = f (y)
= 1 = x(y + 1)2 ex(y+1)
(y+1)2
2
E(X|Y) = 0 x (y + 1)2 ex(y+1) dx =
2
y+1

8 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

Trabalho: Experimentos Computacionais

1) Utilizando os mtodos de gerao de nmeros aleatrios, desenvolva um software que possibilite gerar as
seguintes distribuies de probabilidades.

a) Exponencial

b) Normal (Gaussiana)

c) t-Student

d) Rayleight

e) Qui-quadrado

Apresente os resultados deste software sob forma de grcos, tabelas e compare com os resultados analticos.

In[19]: import numpy as np


import matplotlib.pyplot as plt

ft= lambda t,l: l*np.exp(-l*t)


Ft= lambda t,l: 1-np.exp(-l*t)
Fti= lambda t,l: -np.log(1-t)/l

# Utilizando o metodo da inversa


def expDist(l, Nsamples):
data= np.array(Fti(np.random.random(Nsamples),l))
return data

l=1/100
Nsamples= 99999
data= expDist(l, Nsamples)
plt.figure(figsize=(20,10))
plt.hist(data, bins=100,normed=True)

x1= np.linspace(data.min(),data.max(),1000)
y1= ft(x1,l)
plt.plot(x1,y1,'r')

plt.title('Expodencial')
plt.legend(['Teorica','Gerada'])
plt.show()

9 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

In[29]: import numpy as np


import matplotlib.pyplot as plt

fx= lambda x,mu,std: np.exp(-(x-mu)**2/(2*std**2))/np.sqrt(2*np.pi*std**


2)

#utilizando o metodo da rejeicao


def normalDist(mu, std, Nsamples):
data= np.array([])
while len(data) < Nsamples:
u1= np.random.random(Nsamples)*20-10
u2= np.random.random(Nsamples)*1
index= np.where(u2<=fx(u1,mu,std))[0]
data= np.append(data, u1[index])
#if(u2<=fx(u1,mu,std)):
# data= np.append(data, u1)
data.resize(Nsamples)
return data

mu= 0
std= 1
Nsamples= 99999
data= normalDist(mu, std, Nsamples)

plt.figure(figsize=(20,10))
plt.hist(data,normed=1,bins=100)

x= np.linspace(data.min(),data.max(),1000)
y= fx(x,mu,std)
plt.plot(x,y)

plt.title('Gaussiana')
plt.legend(['Teorica','Gerada'])
plt.show()

10 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

In[30]: import numpy as np


import matplotlib.pyplot as plt

fe= lambda t,l: l*np.exp(-l*t)


flang= lambda x,k,l: ((l**k)*(x**(k-1))*np.exp(-l*x))/np.math.factorial(
k-1)

# somando varias distribuicoes expodenciais com o metodo da inversa


def erlangDist(k, l, Nsamples):
data= np.array([])
x= np.random.random((Nsamples,k))
data= np.array(-1/l*np.log(np.prod(x,axis=1)))
#for i in range(0,Nsamples):
# x=np.random.random(k)
# data= np.append(data, -1/l*np.log(np.prod(x)))
return data

Nsamples= 99999
K= 25
l= 1/15
data= erlangDist(K,l,Nsamples)
plt.figure(figsize=(20,10))
plt.hist(data, bins=100,normed=True)

x1= np.linspace(data.min(),data.max(),1000)
y1= flang(x1,K,l)
plt.plot(x1,y1,'r')

plt.title('Erlang')
plt.legend(['Teorica','Gerada'])
plt.show()

11 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

In[32]: import numpy as np


import matplotlib.pyplot as plt
import scipy.stats
from scipy.stats import chi2

Nsamples= 99999
df= 21

# ulizando a erlang com parametro lambda=1/2 e com graus de liberdade di


vidido por 2
# e somando a normal padrao ao quadrado no caso do numero de graus de li
berdade impa
def chi2Dist(df, Nsamples):
data= erlangDist(int(df/2),1/2,Nsamples)
if(df%2!=0):
data= data+normalDist(0,1,len(data))**2
#data=data+np.random.normal(0,1,len(data))**2
return data

data= chi2Dist(df, Nsamples)

plt.figure(figsize=(20,10))
plt.hist(data, normed=1, bins= 100)

x= np.linspace(data.max(), data.min(), 200)


plt.plot(x,scipy.stats.chi2.pdf(x, df))

plt.title('Chi2')
plt.legend(['Teorica', 'Gerada'])
plt.show()

12 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

In[35]: import numpy as np


import matplotlib.pyplot as plt
import scipy.stats
from scipy.stats import chi2

Nsamples= 99999
gl= 30

# Normal(0,1)/sqrt(Chi2(gl)/gl)
data= normalDist(0,1,Nsamples)/np.sqrt(chi2Dist(gl,Nsamples)/(gl))
#data= normalDist(0,1,Nsamples)/np.sqrt(np.random.chisquare(gl,Nsamples)
/gl)

plt.figure(figsize=(20,10))
plt.hist(data, normed=1, bins= 100)
x= np.linspace(data.max(), data.min(), 200)
plt.plot(x,scipy.stats.t.pdf(x,gl))
plt.title('T-student')
plt.legend(['Teorica', 'Gerada'])
plt.show()

13 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

In[10]: import numpy as np


import matplotlib.pyplot as plt
import scipy.stats
from scipy.stats import rayleigh

Nsamples= 99999
#Metodo da inversa
data= np.sqrt(-2*np.log(np.random.random(Nsamples)))

plt.figure(figsize=(20,10))
plt.hist(data, normed=1, bins= 100)
x= np.linspace(data.max(), data.min(), 200)
plt.plot(x,scipy.stats.rayleigh.pdf(x))
plt.title('Rayleigh')
plt.legend(['Teorica', 'Gerada'])
plt.show()

2) Utilizando mtodo de Monte Carlo calcule as seguintes integrais denidas. Compare os resultados com
valores tabelados e ou solues analticas se existirem.

1 2
a) I = 2
3 sin2 (x)e(x1) dx
3

2 2 2
+y2 )
b) I = 0 0 xye(x dydx

14 de 15 29/08/2017 22:05
Lista1TopicosEspeciais http://localhost:8888/nbconvert/html/Lista1Topi...

In[117]: import numpy as np

fx1= lambda x : np.sin(x)**2*np.exp(-(x-1)**2)


fx2= lambda x,y : x*y*np.exp(-(x**2+y**2))

def monteCarlo(Nsamples, a, b, f):


xi= (b-a)*np.random.random(Nsamples)+a
#xi= np.linspace(a,b,Nsamples)
I1= (b-a)*sum(fx1(xi))/len(xi)
return I1

def monteCarlo2(Nsamples, a1, b1, a2, b2, f):


xi1= (b1-a1)*np.random.random(Nsamples)+a1
xi2= (b2-a2)*np.random.random(Nsamples)+a2
#xi= np.linspace(a,b,Nsamples)
soma= 0
for i in range(0,len(xi1)):
soma= soma+f(xi1[i],xi2[i])
I2= (b1-a1)*(b2-a2)*soma/len(xi1)
return I2

I1= monteCarlo(99999, -np.pi/3, np.pi/3, fx1)


print("a)",I1)
I2= monteCarlo2(99999, 0, 2, 0, 2, fx2)
print("b)",I2)

a) 0.296733721198
b) 0.241494099042

15 de 15 29/08/2017 22:05

You might also like