Você está na página 1de 12

UNIVERSIDADE FEDERAL DO PARÁ

CAMPUS CASTANHAL
FACULDADE DE MATEMÁTICA
CURSO DE LICENCIATURA EM MATEMÁTICA
Avaliação de Matemática Numérica
Alunos: Andreza Magalhães, Débora Thaíssa, Fabíola Monteira, Fabiane Silva e Marcelo
Victor.

PRIMEIRA AVALIAÇÃO
4.1 Desenvolvendo as equações do sistema dado, temos o seguinte:

 8i1 − 4i2 − 2i3 = 10
−4i1 + 6i2 − 2i3 = 0
−2i1 − 2i2 + 10i3 = 4

Reescrevendo esse sistema em forma de matrizes, na forma Ax = b:


     
8 −4 −2 i1 10
−4 6 −2 · 12  =  0 
−2 −2 10 i3 4

a) A matriz A é quadrada e inversível, portanto é possível resolver usando a decomposição


LU.

b) A matriz A também é simétrica, ou seja, At = A, então é possível resolver pelo método


de Cholesky.

c)Para resolver esse sistema usando a eliminação de Gauss, vamos usar a seguinte função
em Python:

1 def e l i m G a u s s (A, b ) :

2 import numpy as np

3 m, n = A . s h a p e

4 Aamp = np . c o n c a t e n a t e ( ( A , b ) , a x i s =1)

5 for j in range (n = 1) :
6 for i in r a n g e ( j +1 , n ) :

7 fat = Aamp [ i , j ] / Aamp [ j , j ]

8 Aamp [ i , j : ] = Aamp [ i , j : ] = fat * Aamp [ j , j : ]

9 newA = Aamp [ : , : n ]

10 newb = Aamp [ : , =1]

1
11 x = r e t r o s u b s ( newA , newb )

12 return x

Chamando a função com a matriz A e b:


1 import numpy as np

2
3 A = np . a r r a y ( [ [ 8 , =4 , = 2 ] , [ =4 , 6, =2] , [ = 2 , =2 , 10]])

4 b = np . a r r a y ( [ [ 1 0 ] , [0] , [4]])

5
6 Aes = e l i m G a u s s (A, b)

7
8 p r i n t ( Aes )

9
10 # Como saida , temos :

11
12 Aes = [2.8125 2.375 1.5]

Portanto, i1 = 2, 8125, i2 = 2, 375, i3 = 1, 5.


4.8 Vamos escrever a tabela na forma matriz e Ax = b:
     
1 0 2 3 2 x1 27
1 1 1 2 1 x2  23
     
 · x3  = 31
1 2 1 1 2    

0 1 2 2 3 x4  31
2 1 0 1 1 x5 22

Sendo x1 , x2 , x3 , x4 e x5 os números de cada tipo de caminhão. Para encontrar esses


valores, vamos usar a decomposição LU com o seguinte programa:
1
2 # Para nao ficar muito extenso , colocamos apenas a ultima subrotina chamada

, as demais foram as mesmas criadas em sala de aula .

3
4 def s o l L U (A , b ) :

5 L, U = decompLU (A)

6 y = s u b s d i r e t a (L , b )

7 x = r e t r o s u b s (U , y )

8 return x

9
10 import numpy as np

11
12 # Matriz das quantidades de maquinas por caminhao ( cada linha representa um

tipo de maquina ) :

13 mq = np . a r r a y ( [ [ 1 , 0, 2, 3, 2] , [1 , 1, 1, 2, 1] , [1 , 2, 1, 1, 2] , [0 , 1, 2,

2, 3] , [2 , 1, 0, 1, 1]])

14
15 # Matriz das quantidades totais de cada tipo de maquina :

16 mqtot = np . a r r a y ( [ [ 2 7 ] , [23] , [31] , [31] , [22]])

17
18

2
19 # Matriz das respostas :

20 cam = s o l L U ( mq , mqtot )

21
22 # Como o numero que queremos deve ser inteiro , usaremos esse loop para o

python arredondar cada valor da matriz :

23
24 for i in r a n g e ( l e n ( cam ) ) :

25 p r i n t ( np . r o u n d ( cam [ i , ] , 0) )

26
27 # Como saida , temos :

28 cam = [4. 6. 2. 3. 5.]

Então, x1 = 4, x2 = 6, x3 = 2, x4 = 3 e x5 = 5.

4.10 Com os dados da tabela, podemos montar o seguinte produto de matrizes:


 
  x1  
1 2 4 3 1 1 5 x2  60
2 0 2 1 2 0 3   40
  x3   
4 1 3 2 0 1 2
 · x4  = 40
   

2 2 1 3 3 0 2
 x5  50
   

4 2 5 2 1 4 3   70
x6 
5 2 3 2 2 3 2 60
x7

Vamos a eliminação gaussiana para resolver:


  
1 2 4 3 1
1 5 60 2 4 3 1 1 5 60 1
2
 0 2 1 2
0 3 40 −4 −6 −5 0 −2 −7 −80  0
 
4 1 3 2 0
1 2 40 −7 −13 −10 −4 −3 −18 −200 0
 pivô = a11
 = 1:  
2
 2 1 3 3
0 2 50 −2 −7 −3 1 −2 −8 −70  0
 
4 2 5 2 1
4 3 70 −6 −11 −10 −3 0 −17 −170 0
5 2 3 2 2
3 2 60 −8 −17 −13 −3 −2 −23 −240 0
 
−4 0
−4 −2 −4 0 −6 −80
 0 −4
−6 −5 0 −2 −7 −80
 
10 5 16 −2 23 240 
0 0
pivô = a22 = −4:   pivô = a33 = 10:
16 2 −4 4
0
 0 18 120 
8 10 12 −12 26 200 
0 0
20 12 12 −8 36 320
0 0
 
10 0 0 0 −6 2 −8 −40
 0 10 0
 5 −24 8 −17 −160 
 0 0 10 5
 16 −2 23 240 
 pivô = a44 = 15:
 0 0 0 15
 74 −18 47 660 

 0 0 0 −15 2 26 −19 −20 
0 0 0 −5 50 10 25 400

3
 
15 0 0 0 −9 3 −12 −60
 0 15 0 0 −73 21 −49 −570
 
 0 0 15 0 −13 6 11 30  pivô = a55 = 144:


 0 0 0 15 74 −18 47 660 
 
 0 0 0 0 114 12 42 960 
0 0 0 0 112 6 61 930
 
114 0 0 0 0 30 −66 120
 0 114 0
 0 0 218 −168 340  
 0 0 114 0 0 56 120 1060 
  pivô = a66 = −44
 0
 0 0 114 0 −196 150 280 

 0 0 0 0 114 12 42 960 
0 0 0 0 0 −44 150 −100
 
−44 0 0 0 0 0 −14 −20
 0 −44 0 0 0 0 −222 60 
 
 0
 0 −44 0 0 0 −120 −360 

 0
 0 0 −44 0 0 200 −280 
 0 0 0 0 −44 0 −32 −360
0 0 0 0 0 −44 150 −100

Multiplicando a matriz escalonada pelas incógnitas, podemos montar o seguinte sistema:



−44x1 − 14x7 = −20
 −44x2 − 222x7 = 60

 −44x3 − 120x7 = −360

 −44x4 + 200x7 = −280

 −44x5 − 32x7 = −360
−44x6 + 150x7 = −100

Simplicando as equações::

5 7x7
x1 = −
11 22
−15 111x7
x2 = −
11 22
90 30x7
x3 = −
11 11
70 50x7
x4 = +
11 11
90 8x7
x5 = −
11 11
25 75x7
x6 = +
11 22
x7 = x 7

4
Para resolver o problema, é necessário encontrar valores que satisfaçam as relações acima.
Mas o sistema a ser resolvido é possível e indeterminado, ou seja, admite innitas solu-
ções. Sabendo disso, a resposta ao problema é o conjunto de todos os inteiros e não nulos
x1 , x2 , x3 , x4 , x5 , x6 e x7 que satisfazem as relações encontradas e que não estrapolam os
limites de matéria prima apresentados na questão.

5.4 Vamos nomear os pontos internos da malha como a, b, c, d, e, f, g, h, i, j, k, l, m, n, o e p.


Aplicando a relação dada ao ponto a, temos a = f rac40 + 20 + b + e4, que, simplicando,
é o mesmo que 4a − b − e = 60.
Repetindo esse processo para os outros 15 pontos, obtemos: 4b − a − c − f = 40; 4c − b −
d−g = 40; 4d−c−h = 60; 4e−a−f −i = 20; 4f −b−e−g −j = 0; 4g −c−f −h−k = 0;
4h − d − g − l = 20; 4i − e − j − m = 20; 4j − f − i − k − n = 0; 4k − g − j − l − o = 0;
4l − h − k − p = 20; 4m − i − n = 30; 4n − j − m − o = 10; 4o − k − n − p = 10;
4p − l − o = 30.
Agora, queremos fazer com que as outras incógnitas apareçam em todas as equações,
porque assim, poderemos escrever as equações como sendo um sistema 16x16. Pra isso,
podemos escrever as incógnitas que faltam como múltipos de zero Fazendo isso com a
primeira equação teríamos o seguinte: 4a − b + 0c + 0d − e + 0f + 0g + 0h + 0j + 0k +
0l + 0 + 0n + 0o + 0p = 60.
Repetindo esse processo para todas as equações, conseguimos montar um sistema 16x16
e, consequentemente, um produto matricial do tipo Ax = b. Para resolver esse problema,
vamos usar um programa em python para fazer eliminação Gaussiana.
1 import numpy as np

2
3 def e l i m G a u s s (A, b ) :

4 import numpy as np

5 m, n = A . s h a p e

6 Aamp = np . c o n c a t e n a t e ( ( A , b ) , a x i s =1)

7 for j in range (n = 1) :
8 for i in r a n g e ( j +1 , n ) :

9 fat = Aamp [ i , j ] / Aamp [ j , j ]

10 Aamp [ i , j : ] = Aamp [ i , j : ] = fat * Aamp [ j , j : ]

11 newA = Aamp [ : , : n ]

12 newb = Aamp [ : , =1]


13 x = r e t r o s u b s ( newA , newb )

14 return x

15
16 A = np . z e r o s ( ( 1 6 , 16) )

17 A[ 0 , :] = [4 , =1 , 0, 0, =1 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

18 A[ 1 , :] = [ =1 , 4, =1 , 0, 0, =1 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

19 A[ 2 , :] = [0 , =1 , 4, =1 ,
=1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
0, 0,

20 A[ 3 , : ] = [0 , 0 , =1 , 4 , 0 , 0 , 0 , =1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0]

21 A[ 4 , : ] = [ = 1 , 0 , 0 , 0 , 4 , =1 , 0 , 0 , =1 , 0 , 0 , 0 , 0 , 0 , 0 , 0]

22 A[ 5 , : ] = [ 0 , =1 , 0 , 0 , =1 , 0 , =1 , 0 , 0 , =1 , 0 , 0 , 0 , 0 , 0 , 0]

23 A[ 6 , : ] = [0 , 0 , =1 , 0 , 0 , =1 , 4 , =1 , 0 , 0 , =1 , 0 , 0 , 0 , 0 , 0]

24 A[ 7 , : ] = [0 , 0 , 0 , =1 , 0 , 0 , =1 , 4 , 0 , 0 , 0 , =1 , 0 , 0 , 0 , 0]

25 A[ 8 , : ] = [0 , 0 , 0 , 0 , =1 , 0 , 0 , 0 , 4 , =1 , 0 , 0 , =1 , 0 , 0 , 0]

26 A[ 9 , : ] = [0 , 0 , 0 , 0 , 0 , =1 , 0 , 0 , =1 , 4 , =1 , 0 , 0 , =1 , 0 , 0]

27 A[ 1 0 , : ] = [0 , 0 , 0 , 0 , 0 , 0 , =1 , 0 , 0 , =1 , 4 , =1 , 0 , 0 , =1 , 0 ]

28 A[ 1 1 , : ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , = 1 , 0 , 0 , = 1 , 4 , 0 , 0 , 0 , = 1]

5
29 A[ 1 2 , :] = [0 , 0, 0, 0, 0, 0, 0, 0, =1 , 0, 0, 0, 4, =1 , 0, 0]

30 A[ 1 3 , :] = [0 , 0, 0, 0, 0, 0, 0, 0, 0, =1 , 0, 0, =1 , 4, =1 , 0]

31 A[ 1 4 , :] = [0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, =1 , 0, 0, =1 , 4, = 1]
32 A[ 1 5 , :] = [0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, =1 , 0, 0, =1 , 4]

33
34 b = np . z e r o s ( ( 1 6 , 1) )

35 b[: , 0] = [60 , 40 , 40 , 60 , 20 , 0, 0, 20 , 20 , 0, 0, 20 , 30 , 10 , 10 , 30]

36
37 sol = e l i m g a u s s (A, b)

38
39 # Loop para aproximar os resultados para 3 casas decimais :

40 for i in range ( len ( s o l ) ) :

41 p r i n t ( np . r o u n d ( s o l [ i ] , 3) )

42
43 # Resultado :

44 sol [: , 0] = [28.636 , 31.174 , 31.174 , 28.636 , 23.371 , 24.886 , 24.886 ,

23.371 , 19.962 , 20.113 , 20.113 , 19.962 , 16.363 , 15.492 , 15.492 , 16.363]

Ou seja, as temperaturas aproximadas em casa ponto são, respectivamente, 28.636°,


31.174°, 31.174°, 28.636°, 23.371°, 24.886°, 24.886°, 23.371°, 19.962°, 20.113°, 20.113°,
19.962°, 16.363°, 15.492°, 15.492°, 16.363°.

SEGUNDA AVALIAÇÃO
8.9 Usando o método dos mínimos quadrados, vamos obter um polinômio que aproxime os
pontos dados na tabela. Vamos fazer isso usando a função M inQuadp ol, construída em
sala:
1 import numpy as np

2
3 def MinQuad_pol ( xd , yd , g r a u ) :

4 import sympy as sym

5 from matplotlib import pyplot as plt

6 n = l e n ( xd )

7 if n != l e n ( yd ) : return p r i n t ( ' Os dados sao de dimensoes distintas ! ')

8 if g r a u >= n : return p r i n t ( f 'O grau pode ser de no maximo {n =1}! ' )


9 u = np . o n e s ( ( n , g r a u +1) )

10 b = np . z e r o s ( ( g r a u + 1 , 1 ) )

11 b[0 ,0] = np . sum ( yd )

12 for i in r a n g e ( 1 , g r a u +1) :

13 u[: , i ] = np . f l o a t _ p o w e r ( xd , i )

14 b[ i ,0] = np . d o t ( yd , u [ : , i ] )

15 A = np . z e r o s ( ( g r a u +1 , g r a u +1) )

16 for i in r a n g e ( 0 , g r a u +1) :

17 A[ i , i ] = np . d o t ( u [ : , i ] , u [ : , i ] )

18 for j in r a n g e ( i +1 , g r a u +1) :

19 A[ i , j ] = np . d o t ( u [ : , i ] , u [ : , j ] )

20 A[ j , i ] = A[ i , j ]

21 sol = np . l i n a l g . s o l v e ( A , b )

22 # criacao do polinomio com o proprio numpy

23 p = np . p o l y 1 d ( s o l [ = 1 : = ( g r a u +2) : = 1 , 0 ] , v a r i a b l e = 'x ' )

24
25 #c r i a n d o visualizacao grafica :

6
26 xi = xd [ 0 ] = 0.5; xf = xd [ =1] + 0.5

27 x = np . l i n s p a c e ( x i , x f , 1 0 0 )

28 y = p(x)

29 plt . plot (x , y , ' =b ' , label = ' M in im os Quadrados ' )

30 p l t . p l o t ( xd , yd , ' o r ' , label = ' Dados ' )

31 p l t . l e g e n d ( frameon = False )

32 p l t . g r i d ( True )

33 p l t . show ( )

34 p l t . x l a b e l ( ' Dominio dos dados ' )

35 p l t . y l a b e l ( ' Contra =d o m i n i o dos dados ' )

36 p l t . t i t l e ( ' Aproximacao de Mi ni mo s Quadrados Polinomial ' )

37 p = sym . s y m p i f y ( p )

38 print (p)

39
40 # Agora chamando a function com os dados da tabela da questao :

41 from functions import MinQuad_pol as mq

42
43 lamb = [0.01 , 0.02 , 0.025 , 0.038 , 0.05 , 0.07]

44 eps = [45 * 1 0 . e =6 , 59 * 1 0 . e =6 , 69 * 1 0 . e =6 , 87 * 1 0 . e =6 , 101 * 1 0 . e =6 , 112 * 1 0 . e =6]


45
46 func = mq( lamb , eps , 2)

47
48 #s a i d a : =0.1245 x ^2 + 0.02147 x + 0.0002329

a) Pelo método dos mínimos quadrados, temos como aproximação para os pontos o função
do segundo grau ϵ(λ) = −0.1245λ2 + 0.02147λ + 0.0002329
b) O gráco retornado pelo programa foi:

Aproximando mais dos pontos:

7
Pelo gráco obtido, observamos que o polinômio obtido é uma boa aproximação para os
pontos dados no problema.
10.2 Dada a trajetória do projétil, temos três pares ordenados dados no plano cartesiano: (0,
0), (10, 6) e (20, 4). Vamos usar um programa em python para fazer a interpolação:
1
2 # Essa funcao realiza a interpol . pelo polinomio de Lagrange

3 def I n t e r p _ L a g r a n ( xd , yd , x i t p ) :

4 # Input :

5 # xd : abscissas dos dados

6 # yd : ordenadas dos dados

7 # xitp : abscissa da qual se deseja obter o valor de coordenada pelo

polinomio

8 import numpy as np

9 import sympy as sym

10 from sympy . u t i l i t i e s . a u t o w r a p import ufuncify

11 import matplotlib . pyplot as plt

12
13 n = l e n ( xd )

14 if n != l e n ( yd ) : return p r i n t ( ' Os dados tem dim distintas ! ')

15 L = sym . o n e s ( n , 1 )

16 x = sym . Symbol ( ' x ' )

17 for i in range (0 , n) :

18 for j in range (0 , n) :

19 if j != i :

20 L[ i ] *= (x = xd [ j ] ) / ( xd [ i ] = xd [ j ] )

21 L[ i ] *= yd [ i ]

22 p = L[0]

23 for i in range (1 , n) :

24 p += L [ i ]

25
26 myf = sym . e x p a n d ( p ) #e x p a n d i n d o todas potencias

27
28 f = sym . l a m b d i f y ( x , p , ' numpy ' )

29
30

8
31 #c r i a n d o visualiz . grafica :

32 xi = xd [ 0 ] = 0.1; xf = xd [ =1] + 0.1

33 xt = np . l i n s p a c e ( x i , x f , 1 0 0 )

34 yt = f ( xt )

35 p l t . p l o t ( xt , yt , ' =g ' , label = ' Lagrange ' )

36 p l t . p l o t ( xd , yd , ' o r ' , label = ' Dados ' )

37 p l t . l e g e n d ( frameon = False )

38 p l t . g r i d ( True )

39 p l t . x l a b e l ( ' Dominio dos dados ' )

40 p l t . y l a b e l ( ' Contra =d o m i n i o dos dados ' )

41 plt . t i t l e ( ' Interpol . de Lagrange ' )

42 plt . ion

43 p l t . show ( )

44 return myf , f l o a t ( f ( xitp ) )

45
46 # Vamos entrar com todos os 3 pontos que temos e com uma abscissa que

queremos descobrir a imagem . Como a letra c) pede a altura a 5 metros do

ponto de partida , vamos entrar com 5.

47
48 x = np . a r r a y ( [ 0 , 10 , 20])

49 y = np . a r r a y ( [ 0 , 6, 4])

50 xp = 5

51
52
53 f , fp = Interp_lagran (x , y, xp )

54
55 print ( f )

56 print ( fp )

57
58 # Saidas :

59 # =x ** 2 / 2 5 + x

60 # 4.0

Agora para encontrar os valores de v0 e ψ , vamos manipular a equação dada. Para


1
simplicar a expressão, vamos fazer tan(ψ) = a e 2 2 = b. Usando a aceleração da
v0 cos ψ
gravidade g = 9.86m/s2 . Agora, vamos substituir dois pontos que conhecemos na equação
para montar o seguinte sistema:

10a − 50gb = 6
20a − 200gb = 4

Esse sistema é trivial e suas soluçoes são a = 1 b = 0, 0081136.


1
Como tg(ψ) = 1, então ψ = 45°. Já para a expressão 2 2 = b, temos:
v0 cos ψ
1
= 0, 0081136
v02 cos2 45

2
= v02
0, 0081136
v02 ≈ 246, 5

9
v0 ≈ 15, 7

Por m:
−x2
a) O polinômio interpolador encontrado foi + x.
25
b) O ângulo de lançamento é ψ = 45° e a velocidade inical é v0 ≈ 15, 7km/h.
c) A altitude do projétil a 5 metros de distância do lançamento é de 4 metros.

10.8 Vamos usar o mesmo processo da questão anterior, usando a interpolação de Lagrange:
1
2 # Dados da tabela ( velocidade e consumo ) :

3 velo = np . a r r a y ( [ 5 5 , 70 , 85 , 100 , 115 , 130])

4 cons = np . a r r a y ( [ 1 4 . 0 8 , 13.56 , 13.28 , 12.27 , 11.30 , 10.40])

5
6 vel1 = 80

7 vel2 = 105

8
9 from InterpQuad import Interp_Lagran as il

10
11 pol , con_1 = i l ( velo , cons , vel1 )

12
13 print ( pol )

14 p r i n t ( con_1 )

15 # Saida 1 = 13.466159122085047

16
17 pol , con_2 = i l ( velo , cons , vel_2 )

18 p r i n t ( con_2 )

19 # Saida 2 = 11.901700960219474

a) O consumo com o veículo a 80km/h é aproximadamente 13, 47km/l.


b) Já para 105km/h, o consumo do veículo é aproximadamente 11, 90km/l

11.2 Vamos usar a primeira regra de simpson combinada para calcular a quadratura que que-
remos. Vamos usar o seguinte código:
1
2 def SimpsonI_comb ( xd , yd , q s= ' F a l s e ' ) :

3 n = l e n ( xd )

4 if (n = 1) % 2 != 0:

5 s y s . e x i t ( 'A I regra de Simpson combinada admite somente um numero

impar de abscissas ! ' )

6 if n != l e n ( yd ) :

7 s y s . e x i t ( 'O numero de abscissas deve ser igual ao de dados ! ' )

8 h = xd [ 1 ] = xd [ 0 ]

9 # for i in range (2 , n) :

10 # if a b s ( ( xd [ i ] = xd [ i =1]) = h) > 1e =15:


11 # s y s . e x i t ( ' As abscissas devem ser igualmente espacadas ! ' )

12 if np . any ( a b s ( np . d i f f ( xd ) =h ) > 1e = 15) : s y s . e x i t ( ' As abscissas nao sao

igualmente espacadas ! ' )

13 s = yd [ 0 ] + yd [ =1]
14 for i in range (1 , n , 2 ) :

15 s += 4 * yd [ i ]

16 for i in range (2 , n =1 ,2) :


17 s += 2 * yd [ i ]

10
18 # quadratura numerica :

19 q = h * s / 3

20 # Integracao simbolica com o sympy :

21 if qs == T r u e :

22 myf = input ( ' Entre com a expressao string do integrando : ')

23 import sympy as sym

24 x = sym . Symbol ( ' x ' )

25 f = sym . s y m p i f y ( myf )

26 I = f l o a t ( sym . i n t e g r a t e ( f , ( x , xd [ 0 ] , xd [ =1]) ) )
27 errel = abs ( ( I =q ) / I )
28 return q, errel

29 else :

30 return q

31
32 # Chamando essa function com os valores da tabela :

33
34 temp = [0 , 5, 10 , 15 , 20 , 25 , 30 , 35 , 40]

35 vel = [23 , 25 , 30 , 35 , 40 , 45 , 47 , 52 , 60]

36
37 quad = SimpsonI_comb ( temp , vel )

38
39 p r i n t ( quad )

40
41 # Saida : 1575.0

Mas a quadratura é a área sob os pontos indicados. Pensando nisso, podemos aproximar
a forma obtida sob os pontos com um trapézio. Temos a informação da medida de três
lados do trapézio e a área. Observando isso, a distância percorrida aproximada seria a
medida do outro lado resultante, ou seja, aproximadamente 55,3 km.
11.8 Vamos usar a regra do trapézio para encontrar a quadratura. Usaremos mais um programa
Python:
1 def t r a p e z i o ( xd , yd , q s= ' F a l s e ' ) :

2 n = l e n ( xd )

3 if n != 2: s y s . e x i t ( 'A regra dos trapezios admite somente duas

abscissas ! ' )

4 h = xd [ 1 ] = xd [ 0 ]

5 # quadratura numerica :

6 q = h * ( yd [ 0 ] + yd [ 1 ] ) / 2

7 # Integracao simbolica com o sympy :

8 if qs == T r u e :

9 myf = input ( ' Entre com a expressao string do integrando : ')

10 import sympy as sym

11 x = sym . Symbol ( ' x ' )

12 f = sym . s y m p i f y ( myf )

13 I = f l o a t ( sym . i n t e g r a t e ( f , ( x , xd [ 0 ] , xd [ =1]) ) )
14 errel = abs ( ( I =q ) / I )
15 return q, errel

16 else :

17 return q

18
19 # vamos admitir a velocidade inicial igual a zero .

20 # Para saber o quanto o paraquedista se moveu em 2 segundos , vamos entrar

com velocidade e tempo aos segundos 0 e 2:

11
21
22 temp0= [0 , 2]

23 veloc0 = [0 , 16.4]

24 quad0 = t p ( temp0 , veloc0 )

25 p r i n t ( quad0 )

26 # Saida 1: 16.4

27
28
29 temp1 = [2 , 10]

30 veloc1 = [16.4 , 44.8]

31 quad1 = t p ( temp1 , veloc1 )

32 p r i n t ( quad1 )

33 # Saida 2: 244.8

Como o paraquedista saltou de 3000m, aos 2s a sua altura seria 3000 − 16, 4 = 2983, 6m.
Como dos 2s aos 10s o paraquedista se deslocou 244, 8m, a sua altura nesse instante seria
2983, 6 − 244, 8 = 2738, 8m.

12

Você também pode gostar