Você está na página 1de 10

Bacharelado em Engenharia Civil

Cálculo Numérico Computacional


Semestre: 2023/01
Professor Aldair Forster

Avaliação 7 – Integração numérica – Parte 1


Estudantes: Brenda Borges e Gabriel Silva
1. Resolva a questão abaixo usando um algoritmo computacional.


10
1
Dada a integral ∫ ln ( x ) +2
dx , encontre uma aproximação para seu valor usando a regra
4 x
dos trapézios e a regra de 1/3 de Simpson. Use um número de intervalos n ≥ 10 que seja
aplicável às duas regras. Dê a diferença percentual entre os valores das aproximações.

REGRA DOS TRAPÉZIOS:


import numpy as np

n = 11 # Colocar aqui número de partições

a = 4 ## Limite inferior da integral


b = 10 ## Limite superior

x = np.linspace(a,b,n)

y = np.sqrt(np.log(x) + (1/x**2))

soma = np.sum(y[1:n-1])

h = x[1] - x[0]

#### Calcular a área

area= h/2 * (y[0] + 2*soma+y[n-1] )

print('A área é aproximadamente : ',area)

A área é aproximadamente: 8.334665314071637

REGRA 1/3 DE SIMPSON:


import numpy as np

n = 11 # Colocar aqui número de partições


a = 4 ## Limite inferior da integral
b = 10 ## Limite superior

x = np.linspace(a,b,n)

y = np.sqrt(np.log(x) + (1/x**2))

soma = np.sum(y[1:n-1])

h = x[1] - x[0]

#### Calcular a área

somaimpar = np.sum(y[1:n-1:2])

somapar = np.sum(y[2:n-1:2])

area = (h/3) * (y[0] + 4*somaimpar + 2*somapar + y[n-1])

print('A área é aproximadamente : ',area)

A área é aproximadamente: 8.336417685443914

2. Resolva a questão abaixo manualmente usando arredondamentos com 4 casas decimais.

Em Estatística, a Função de Densidade da Distribuição Normal Padrão é dada por


1 −0 ,5 z
2

f ( z )= e . A probabilidade da variável aleatória contínua Z assumir valores entre a e


√2 π
b
b é dada por: P ( a ≤ Z ≤b )=∫ f (z) dz .
a
a) Construa um algoritmo em que o usuário dê como entrada os valores iniciais e finais do
intervalo z e como saída dê o valor da distribuição normal nesse intervalo. Use a regra
de 1/3 de Simpson com, pelo menos 20 partições no intervalo de z.
b) import numpy as np
c)
d) n = 20 # Colocar aqui número de partições
e)
f) a = float(input(" digite o limite inferior da integral : ")) ##
Limite inferior da integral
g) b = float(input(" digite o limite superior da integral : ")) ##
Limite superior
h)
i) x = np.linspace(a,b,n)
j)
k) y = (1/np.sqrt(2*3.141592654))*(np.exp(-0.5*x**2))
l) gb
m) soma = np.sum(y[1:n-1])
n)
o) h = x[1] - x[0]
p)
q) #### Calcular a área
r)
s) somaimpar = np.sum(y[1:n-1:2])
t)
u) somapar = np.sum(y[2:n-1:2])
v)
w) area = (h/3) * (y[0] + 4*somaimpar + 2*somapar + y[n-1])
x)
y) print('A intervalo da distribuição normal é aproximadamente :
',area)

digite o limite inferior da integral: 1.23


digite o limite superior da integral: 9
A intervalo da distribuição normal é aproximadamente: 0.10929397566951089

B - Use a tabela da distribuição normal para encontrar a P(1 , 2< z< 2 ,5) e compare seu
resultado com o obtido pelo seu algoritmo.
Primeiramente é importante levar em consideração que na distribuição normal
P(1 , 2< z< 2 ,5) = P(z <2 , 5) - P(1 , 2< z), assim sendo, dado z(2,5) = 0,0062 e z(1,2) =
0,1151. Com isso, podemos deduzir que, a (1 , 2< z< 2, 5) é igual a 0,1151-0,0062 =~ 0,108.
É importante lembrar que os valores de z(2,5) não está com seu valor completo, dito isso,
o valor que vamos obter será uma aproximação.

import numpy as np

n = 20 # Colocar aqui número de partições

a = float(input(" digite o limite inferior da integral : ")) ##


Limite inferior da integral
b = float(input(" digite o limite superior da integral : ")) ##
Limite superior

x = np.linspace(a,b,n)

y = (1/np.sqrt(2*3.141592654))*(np.exp(-0.5*x**2))

soma = np.sum(y[1:n-1])
h = x[1] - x[0]

#### Calcular a área

somaimpar = np.sum(y[1:n-1:2])
7
somapar = np.sum(y[2:n-1:2])

area = (h/3) * (y[0] + 4*somaimpar + 2*somapar + y[n-1])

print('A intervalo da distribuição normal é aproximadamente :


',area)
digite o limite inferior da integral: 1.2

digite o limite superior da integral: 2.5

A intervalo da distribuição normal é aproximadamente: 0.10842602766127214


4 4 ,5
3. Considerando a tabela abaixo, calcule ∫ f (x )dx e ∫ f ( x)dx usando o melhor método
1 1
possível. Compare os resultados

*Aldair, pedir ajuda para fazer, pois não sei qual interpretação temos q ter
REGRA DOS TRAPÉZIOS:
import numpy as np

x = np.array([1,1.5,2,2.5,3,3.5,4])
y = np.array([2.95,3.03,3.37,3.69,4.4,5.55,6.8])

n = len(x)

h = x[1] - x[0]

#### Calcular a área

soma = np.sum(y[1:n-1])

area= h/2 * (y[0] + 2*soma+y[n-1] )

print('A área é aproximadamente : ',area)


A área é aproximadamente: 12.4575

REGRA 1/3 DE SIMPSON:


import numpy as np
x = np.array([1,1.5,2,2.5,3,3.5,4])
y = np.array([2.95,3.03,3.37,3.69,4.4,5.55,6.8])

n = len(x)

h = x[1] - x[0]

#### Calcular a área

somaimpar = np.sum(y[1:n-1:2])

somapar = np.sum(y[2:n-1:2])

area = (h/3) * (y[0] + 4*somaimpar + 2*somapar + y[n-1])

print('A área é aproximadamente : ',area)


A área é aproximadamente: 12.395

 Deu uma diferença de 6,25%



REGRA DOS TRAPÉZIOS:

import numpy as np

x = np.array([1,1.5,2,2.5,3,3.5,4,4.5])
y = np.array([2.95,3.03,3.37,3.69,4.4,5.55,6.8,7.77])

n = len(x)

h = x[1] - x[0]

#### Calcular a área

soma = np.sum(y[1:n-1])

area= h/2 * (y[0] + 2*soma+y[n-1] )

print('A área é aproximadamente : ',area)


A área é aproximadamente: 16.1
REGRA 1/3 DE SIMPSON:
import numpy as np

x = np.array([1,1.5,2,2.5,3,3.5,4,4.5])
y = np.array([2.95,3.03,3.37,3.69,4.4,5.55,6.8,7.77])

n = len(x)
h = x[1] - x[0]

#### Calcular a área

somaimpar = np.sum(y[1:n-1:2])

somapar = np.sum(y[2:n-1:2])

area = (h/3) * (y[0] + 4*somaimpar + 2*somapar + y[n-1])

print('A área é aproximadamente : ',area)


A área é aproximadamente: 14.823333333333332

 Deu uma diferença de 128 %

4. Em engenharia, um problema que surge no estudo de hidráulica, ao procurar saber a


vazão de água em seção transversal de um canal, é saber a área dessa seção transversal.
Imagine que um levantamento topobatimétrico tenha sido realizado em uma seção
transversal de um rio e os dados foram armazenados na tabela a seguir.

Nível
0 0
0
0 10 12 14 16 19 21.5 22 23 24
-1 -0.8 -1.5 -0.5

-2
Profundidade

-2.9
-3.1
-3
-4
-4
-4.6
-5 -5.2

-6

Distânci 2
a 0 10 12 14 16 19 21,5 22 23 4
Nível 0 -0,8 -1,5 -3,1 -5,2 -4,6 -4 -2,9 -0,5 0

Explique se é possível usar a regra 1/3 de Simpson para calcular a área dessa seção. Se for
possível usar, use-a, se não faça uma aproximação usando a regra dos trapézios.
A regra 1/3 de Simpson não é adequada para calcular diretamente a área dessa seção
transversal, pois os dados fornecidos são alturas (profundidades) e não uma função
contínua que descreve o perfil da seção. A regra 1/3 de Simpson requer que a função seja
aproximada por um polinômio de segundo grau em cada subintervalo, o que não é possível
com os dados de altura do rio.
import numpy as np

x = np.array([0,10,12,14,16,19,21.5,22,23,24])
y = np.array([0,0.8,1.5,3.1,5.2,4.6,4,2.9,0.5,0])

n = len(x)

h = x[1] - x[0]

#### Calcular a área

soma = np.sum(y[1:n-1])

area= h/2 * (y[0] + 2*soma+y[n-1] )

print('A área é aproximadamente : ',area)


A área é aproximadamente: 226.0

5. O telhado abaixo tem densidade de 2500 kg/m³.

a) Calcular a massa do telhado usando a regra de 1/3 de Simpson com mais do que
30 partições.

# Usando a regra do 1/3 de Simpssom

import numpy as np

n = 35 # Colocar aqui número de partições


a = 1 ## Limite inferior da integral
b = 5.5 ## Limite superior

x = np.linspace(a,b,n)

y = 2500*(np.sqrt(1 + ((np.cos(x))**2)))

soma = np.sum(y[1:n-1])

h = x[1] - x[0]

#### Calcular a área

somaimpar = np.sum(y[1:n-1:2])
7
somapar = np.sum(y[2:n-1:2])

area = (h/3) * (y[0] + 4*somaimpar + 2*somapar + y[n-1])

print('A intervalo da distribuição normal é aproximadamente :


',area)
A intervalo da distribuição normal é aproximadamente: 13183.907626819464 kg

b) Encontrar as coordenadas x e y do centro de massa com o mesmo método.

import numpy as np

n = 31 # Colocar aqui número de partições

a = 0 ## Limite inferior da integral


b = 1 ## Limite superior

x = np.linspace(a,b,n)

y = (1/13183.907626819464)*(2500*x*4.5)*(np.sqrt((np.cos(x))**2 +
(1)))

soma = np.sum(y[1:n-1])

h = x[1] - x[0]

#### Calcular a área

somaimpar = np.sum(y[1:n-1:2])
7
somapar = np.sum(y[2:n-1:2])
area = (h/3) * (y[0] + 4*somaimpar + 2*somapar + y[n-1])

print('A intervalo da distribuição normal é aproximadamente :


',area)

é aproximadamente: 0.5386950998127817

import numpy as np

n = 31 # Colocar aqui número de partições

a = 1 ## Limite inferior da integral


b = 5.5 ## Limite superior

x = np.linspace(a,b,n)

y = (1/13183.907626819464)*(2500*x)*(np.sqrt((np.cos(x))**2 + (1)))

soma = np.sum(y[1:n-1])

h = x[1] - x[0]

#### Calcular a área

somaimpar = np.sum(y[1:n-1:2])
7
somapar = np.sum(y[2:n-1:2])

area = (h/3) * (y[0] + 4*somaimpar + 2*somapar + y[n-1])

print('A intervalo da distribuição normal é aproximadamente :


',area)
é aproximadamente: 3.2509053139719803

Você também pode gostar