Você está na página 1de 35

Universidade de São Paulo

Instituto de Física

Lista I e II de:

Cálculo Numérico

Felipe Adrian Barbosa da Silva


Prof. ministrante: Eduardo Colli

4 de dezembro de 2023
Conteúdo
1 Exercício 1 1
1.1 Resolução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Método de Euler explícito . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Método de Euler implícito . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Método dos Trapézios explícito . . . . . . . . . . . . . . . . . . . . 4
1.1.4 Método de Taylor de ordem 2 . . . . . . . . . . . . . . . . . . . . . 6
1.1.5 Runge-Kutta de ordem 4 . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Exercício 2 9
2.1 Resolução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1 Método de Euler explícito . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.2 Método de Trapézios explícito . . . . . . . . . . . . . . . . . . . . . 12

3 Exercício 8 15
3.1 Resolução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4 Exercício 9 16
4.1 Resolução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5 Exercício 21 18
5.1 Resolução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

6 Exercício 30 22
6.1 Resolução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

7 Exercício 45 26
7.1 Resolução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

8 Exercício 49 28
8.1 Resolução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

9 Exercício 55 30
9.1 Resolução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

10 Exercício 58 32
10.1 Resolução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

i
Todo o comando como também gráficos se encontram em Link do Colab - Lista I de
Calc. Num.

1 Exercício 1
Considere a equação diferencial

x′ = x2 − x sin(t) (1)

com a condição inicial x(0) = 1. Para cada método, obtenha uma aproximação da solução
no intervalo [0, 0.6] com passo h = 0.1

1. Método de Euler explicito


2. Método de Euler implícito
3. Método dos Trapézios explícito
4. Método de Taylor de ordem 2
5. Runge-Kutta de ordem 4

1.1 Resolução
1.1.1 Método de Euler explícito
O método de Euler explícito é dado por

xn = xn−1 + h · f (tn−1 , xn−1 ) (2)

Onde
tn = n ∗ h (3)

Será feito um cálculo exemplo para demonstrar como é feito e, à posteriori, omitir-se-à
as contas colocando-se apenas os resultados numéricos. Sendo

f (t, x) = x2 − x · sin(t)

. Para x1 , com x0 = 1:

x1 = x0 + h · f (t0 , x0 )
x1 = 1 + 0.1 · ((1)2 − (1) · sin(0)) = 1.1

Os demais cálculo são feitos computacionalmente , admitindo 3 algarismos significati-


vos.
A saber, o código usado fora:

''' pacotes usados '''


import numpy as np
import matplotlib . pyplot as plt

1
''' Metodo de Euler explicito para n =6 e t =[0 ,0.6] , tal que
h =( T [1] - T [0]) /6 = 0.1. De forma que temos que calcular 6 pontos '''
t = np . linspace (0 ,0.6 ,7)
x = np . asarray ([0.0] * len ( t ) )
x_0 = 1
x [0] = x_0
h = 0.1

''' A f u n o f (t , x ) = x ^2 - x sin ( t ) '''

def f (t , x ) :
func = x **2 - x * np . sin ( t )
return func
k = 1
while k < len ( t ) :
x [ k ] = x [k -1] + h * f ( t [k -1] , x [k -1])
k += 1

''' para a mudanca de numeros significativos '''

x_3sig = []
for i in range ( len ( x ) ) :
aux = round ( x [ i ] ,2)
x_3sig . append ( aux )

e os valores resultantes via Cálculo do Python fora:

Tabela 1: Exercício 1: Método de Euler explícito - Python

Número tn xn
0 0.1 1.0
1 0.1 1.10
2 0.2 1.21
3 0.3 1.33
4 0.4 1.47
5 0.5 1.63
6 0.5 1.82

A saber esses valores são ligeiramente diferente se avaliar por outra calculadoras além
do Python, seja por exemplo o Desmos
Note que há diferenças sutis quando se compara ambas as calculadoras.

1.1.2 Método de Euler implícito


O método de Euler implícito é dado por

xn = xn−1 + h · f (tn , xn ) (4)


e similarmente
tn = h ∗ n (5)

2
Tabela 2: Exercício 1: Método de Euler explícito - Desmos

Número tn xn
0 0.1 1.00
1 0.1 1.10
2 0.2 1.21
3 0.3 1.33
4 0.4 1.47
5 0.5 1.63
6 0.5 1.81

utilizando a equação (4)

x2n − xn sin(tn )

xn = xn−1 + h ·

xn−1 + hx2n − hxn sin(tn ) − xn = 0

hx2n − xn (h sin(tn ) + 1) + xn−1 = 0

q
h sin(tn ) + 1 ± ( h sin(tn ) + 1)2 − 4hxn−1
xn =
2h
como x(0) > 1 é normal que se assuma que um tempo posterior seja maior que 0, mas
neste caso, se o sinal for positivo a função "explode"para x2 , tomando o sinal negativo a
função é comportada de forma que:
q
h sin(tn ) + 1 − ( h sin(tn ) + 1)2 − 4hxn−1
xn = (6)
2h
O calculo exemplo, para t1 = h e considerando 3 números significativos
q
h sin(t1 ) + 1 − ( h sin(t1 ) + 1)2 − 4hx0
x1 = =
2h
q
(0.1) sin(0.1) + 1 − ( (0.1) sin(0.1) + 1)2 − 4(0.1) · 1
= = 1.10
2(0.1)

Esclarecido o erro sutil numérico quando se comparam duas calculadoras diferentes,


usar-se-à o python, pela praticidade.

3
''' pacotes usados '''
import numpy as np
import matplotlib . pyplot as plt

''' Metodo de Euler implicito para n =6 e t =[0 ,0.6] , tal que


h =( T [1] - T [0]) /6 = 0.1. De forma que temos que calcular 6 pontos '''

t2 = np . linspace (0 ,0.6 ,7)


x2 = np . asarray ([0.0] * len ( t2 ))
x_0 = 1
x2 [0] = x_0
h = 0.1

''' a formula ja fora introduzida no pdf , a saber '''

def f2 (t , x ) :
global h
func = ( h * np . sin ( t ) + 1 - np . sqrt (( h * np . sin ( t ) + 1) **2 - 4 * x * h ) )
/ (2 * h )
return func

k = 1
while k < len ( t2 ) :
x2 [ k ] = f2 ( t [ k ] , x2 [k -1])
k += 1

''' para a mudanca de numeros significativos '''

x2_3sig = []
for i in range ( len ( x2 ) ) :
aux = round ( x2 [ i ] ,2)
x2_3sig . append ( aux )

e os valores resultantes via Cálculo do Python fora:


Tabela 3: Exercício 1: Método de Euler implícito - Python

Número tn xn
0 0.1 1.00
1 0.1 1.10
2 0.2 1.24
3 0.3 1.40
4 0.4 1.59
5 0.5 1.83
6 0.5 2.19

1.1.3 Método dos Trapézios explícito


O método geral dos trapézios é dado por:
 
1
xn = xn−1 + h ( f (tn , xn ) + f (tn−1 , xn−1 )) (7)
2

4
Aplicando a função, tem-se que:

h
x2n−1 − xn−1 sin(tn−1 ) + x2n − xn sin(tn )

xn = xn−1 +
2
aplicando método de trapézios explícito, quando

xn ≈ xn−1 + hf (tn−1 , xn−1 ) → xn = xn−1 − h((xn−1 )2 − xn−1 sin(tn−1 )) (8)

de forma que

h
xn = xn−1 + (x2n−1 − xn−1 sin(tn−1 ) + (xn−1 + h((xn−1 )2 − xn−1 sin(tn−1 )))2 +
2
+ xn−1 − h((xn−1 )2 − xn−1 sin(tn−1 )) sin(tn ))


Para o cálculo exemplo:

h
x20 − x0 sin(t0 ) + (x0 + h(x20 − x0 sin(t0 )))2 − (x0 + h(x20 − x0 sin(t0 ))) sin(t1 )

x1 = x0 +
2
x1 = 1.11

e o código usado fora:

''' pacotes usados '''


import numpy as np
import matplotlib . pyplot as plt

''' M t o d o dos trapezios explicito para n =6 e t =[0 ,0.6] , tal que


h =( T [1] - T [0]) /6 = 0.1. De forma que temos que calcular 6 pontos '''

t3 = np . linspace (0 ,0.6 ,7)


x3 = np . asarray ([0.0] * len ( t3 ))
x_0 = 1
x3 [0] = x_0
h = 0.1

def f3 (t , x ) :
func = x **2 - x * np . sin ( t )
return func

def f_intermed (t , x ) :
global h
func = x + h *( x **2 - x * np . sin ( t ) )
return func

k = 1
while k < len ( t3 ) :
x3 [ k ] = x3 [k -1] + ( h /2) *( f3 ( t3 [k -1] , x3 [k -1]) +
( f_intermed ( t3 [k -1] , x3 [k -1]) ) **2 -
( f_intermed ( t3 [k -1] , x3 [k -1]) ) * np . sin ( t3 [k -1] + h ) )

5
k += 1

x3_3sig = []
for i in range ( len ( x3 ) ) :
aux = round ( x3 [ i ] ,2)
x3_3sig . append ( aux )

e os valores resultantes via Cálculo do Python fora:

Tabela 4: Exercício 1: Método dos trapézios explícito - Python

Número tn xn
0 0.1 1.00
1 0.1 1.11
2 0.2 1.22
3 0.3 1.36
4 0.4 1.51
5 0.5 1.70
6 0.5 1.93

1.1.4 Método de Taylor de ordem 2


O método de Taylor de ordem 2 é dado por
 
h
xn+1 = xn + h f (tn , xn ) + ( ft (tn , xn ) + fx (tn , xn ) · f (tn , xn )) (9)
2

da equação (1), tem-se que:

ft = −x cos(t) (10)

fx = 2x − sin(t) (11)

das equações (10, 11), aplicada em (9), tem-se:

 
2 h
(x2n

xn+1 = xn +h ((xn ) − xn sin(tn )) + (−xn cos(tn )) + (2xn − sin(tn )) · − xn sin(tn ))
2
(12)
como calculo exemplo:

 
2 h
(x20

x1 = x0 + h ((x0 ) − x0 sin(t0 )) + (−x0 cos(t0 )) + (2x0 − sin(t0 )) · − x0 sin(t0 ))
2

6
 
2 (0.1) 2

x1 = 1+h (1 − 1 sin(0)) + (−1 cos(0)) + (2(1) − sin(0)) · (1 − 1 sin(0)) = 1.11
2

e o código usado fora:

''' pacotes usados '''


import numpy as np
import matplotlib . pyplot as plt

''' M t o d o da s r i e de Taylor para n =6 e t =[0 ,0.6] , tal que


h =( T [1] - T [0]) /6 = 0.1. De forma que temos que calcular 6 pontos '''

t4 = np . linspace (0 ,0.6 ,7)


x4 = np . asarray ([0.0] * len ( t4 ))
x_0 = 1
x4 [0] = x_0
h = 0.1

''' as equacoes f , df / dx e df / dt sao , respectivamente : '''

def f4 (t , x ) :
func_normal = x **2 - x * np . sin ( t )
func_derx = 2* x - np . sin ( t )
func_dert = -x * np . cos ( t )
return func_normal , func_derx , func_dert

k = 1
while k < len ( t4 ) :
x4 [ k ] = x4 [k -1] + h *( f4 ( t4 [k -1] , x4 [k -1]) [0] +
( h /2) *( f4 ( t4 [k -1] , x4 [k -1]) [2] +
( f4 ( t4 [k -1] , x4 [k -1]) [1]) *( f4 ( t4 [k -1] , x4 [k -1]) [0]) ) )
k += 1

''' para a m u d a n a de n m e r o s significativos '''

x4_3sig = []
for i in range ( len ( x4 ) ) :
aux = round ( x4 [ i ] ,2)
x4_3sig . append ( aux )

7
e os valores resultantes via Cálculo do Python fora:

Tabela 5: Exercício 1: Série de Taylor de ordem 2 - Python

Número tn xn
0 0.1 1.00
1 0.1 1.10
2 0.2 1.22
3 0.3 1.36
4 0.4 1.51
5 0.5 1.69
6 0.5 1.92

1.1.5 Runge-Kutta de ordem 4


Há diversas escolhas de parâmetros para o método de Runge-Kutta de ordem 4, a mais
famosa entre elas é o Runge-Kutta de quarta ordem (1/6). A saber:


 xn = xn−1 + h6 ( k1 + 2k2 + 2k3 + k4 )

 k1 = f (tn−1 , xn−1 )


k2 = f (n−1 + h2 , xn−1 + h2 k1 ) (13)
k3 = f (tn−1 + h2 , xn−1 + h2 k2 )





k4 = f (tn−1 + h, xn−1 + hk3 )

Para o cálculo exemplo:



 k1 = f (tn−1 , xn−1 ) = 12 − sin(0) = 1
  2  
(0.1)
h h
1 + (0.1) sin( (0.1)

 k
 2

 = f (tn−1 + 2
, xn−1 + k
2 1
) = 1+ 2
− 2 2
) = 1.10
 2  
 k3 = f (tn−1 + h2 , xn−1 + h2 k2 ) = 1 + (0.1)·(1.10)
2
− 1 + (0.1)·(1.10)
2
sin( (0.1)
2
) = 1.10

k4 = f (tn−1 + h, xn−1 + hk3 ) = ( 1 + (0.1) · (1.10))2 − ( 1 + (0.1) · (1.10)) sin((0.1)) = 1.12




x1 = x0 + h6 ( k1 + 2k2 + 2k3 + k4 ) = 1 + (0.1)

( 1 + 2 · (1.10) + 2 · (1.10) + 1.12) = 1.11

2

a saber, o código usado fora

''' pacotes usados '''


import numpy as np
import matplotlib . pyplot as plt

''' Metodo RK4 (1/6) para n =6 e t =[0 ,0.6] , tal que h =( T [1] - T [0]) /6 = 0.1.
De forma que temos que calcular 6 pontos '''

t5 = np . linspace (0 ,0.6 ,7)


x5 = np . asarray ([0.0] * len ( t5 ))
x_0 = 1
x5 [0] = x_0
h = 0.1

8
def f5 (t , x ) :
func = x **2 - x * np . sin ( t )
return func

k = 1
while k < len ( t5 ) :
k1 = f5 ( t5 [k -1] , x5 [k -1])
k2 = f5 ( t5 [k -1] + ( h /2) , x5 [k -1] + ( h /2) * k1 )
k3 = f5 ( t5 [k -1] + ( h /2) , x5 [k -1] + ( h /2) * k2 )
k4 = f5 ( t5 [k -1] + h , x5 [k -1] + h * k3 )
x5 [ k ] = x5 [k -1] + ( h /6) *( k1 + 2* k2 + 2* k3 + k4 )
k += 1

''' para a mudanca de numeros significativos '''

x5_3sig = []
for i in range ( len ( x5 ) ) :
aux = round ( x5 [ i ] ,2)
x5_3sig . append ( aux )

e os valores resultantes via Cálculo do Python fora:

Tabela 6: Exercício 1: Runge-Kutta de quarta ordem (1/6) - Python

Número tn xn
0 0.1 1.00
1 0.1 1.11
2 0.2 1.22
3 0.3 1.36
4 0.4 1.51
5 0.5 1.70
6 0.5 1.94

2 Exercício 2
Considere o sistema de equações diferenciais
(
ẋ = x2 + y
1
ẏ = 1+x
Se x(0) = −0.5 e y(0) = 0.2, estime t > 0 necessário para que a solução (x(t), y(t)) cruze
o eixo y, usando passo h = 0.1
1. Método de Euler explícito
2. Método de Trapézios explícito

9
2.1 Resolução
2.1.1 Método de Euler explícito
Para o método de Euler explícito para um sistema 2 × 2 é feito via matricialmente
por:

u = (x, y), uk = (xk , y k ), F = (f1 (x, y), f2 (x, y)) (14)

" #
k+1 k 2
   k
x x (x ) + y
= k +h 1 (15)
y k+1 y 1+xk

concluí-se que:

( 2
xn+1 = xn + h(x
 n + yn )
1 (16)
yn+1 = yn + h 1+xn

o cálculo exemplo:

x1 = x0 + h(x20 + y0 ) = (−0.5) + 0.1((−0.5)2 + 0.2) = −0.455

   
1 1
y1 = y0 + h = 0.2 + 0.1 = 0.400
1 + x0 1 + (−0.5)

A saber o código usado fora:

import numpy as np
from IPython . display import display , HTML

''' o metodo de euler explcito para um sistema de n e q u a es dado da


forma convencional , a d i f e r e n a e ' que retorna um vetor , e na 'o um
ponto . Sendo assim : '''

t6 = np . linspace (0 ,10 ,101)


x6 = np . asarray ([0.0]* len ( t6 ) )
y6 = np . asarray ([0.0] * len ( t6 ) )
h = 0.1
x_0 = -0.5
y_0 = 0.2
x6 [0] = x_0
y6 [0] = y_0

''' fx funcao de x ', e fy de y ' '''

def f_2a (t ,x , y ) :
fx = x **2 + y
fy = 1/(1+ x )
return fx , fy

10
k = 1
while k < len ( t6 ) :
y6 [ k ] = y6 [k -1] + h * f_2a ( t6 [k -1] , x6 [k -1] , y6 [k -1]) [1]
x6 [ k ] = x6 [k -1] + h * f_2a ( t6 [k -1] , x6 [k -1] , y6 [k -1]) [0]
k += 1

# As tres listas separadas


tempos = t6 # Substitua pelos valores reais
x_valores = x6 # Substitua pelos valores reais
y_valores = y6 # Substitua pelos valores reais

# Criando uma lista de dicionarios para os dados


dados = []
for tempo , x , y in zip ( tempos , x_valores , y_valores ) :
linha = { " Tempo " : tempo , " x( t ) " : x , " y ( t ) " : y }
dados . append ( linha )

# Construindo a tabela HTML


table_content = " < table > < tr > < th > Tempo </ th > < th > x ( t ) </ th > < th > y ( t ) </ th > </ tr > "
for linha in dados :
table_content += (
f " <tr > < td >{ linha [ ' Tempo ']} </ td > < td >{ linha [' x ( t ) ']} </ td > < td >{ linha [' y ( t ) ']} </ td > <
)
table_content += " </ table > "

# Exibindo a tabela usando a funcao display ()


display ( HTML ( table_content ) )

que gera a tabela em forma de display:

Figura 1: Tabela de resultados - exercício 2 - item a)

11
constata-se que u = (x(t), y(t)) cruza o eixo y quando

0.6 < t < 0.7

Não consigo imaginar uma maneira de resolver essa situação sem que seja calculando
x1 , y1 , x2 , y2 , . . . até achar.

2.1.2 Método de Trapézios explícito


Realizando o exercício na forma matricial, onde

1 1
u = (xk , y k ), uk+1 = (xk+1 , y k+1 ), f k+1 = ((xk+1 )2 +y k+1 , ), f k = ((xk )2 +y k , )
1 + xk+1 1 + xk
(17)
de forma que na forma dos trapézios fica:
 
k+1 k 1 k 1 k+1
u =u +h f + f
2 2
" ! !#
k+1 k 2 k k+1 2 k+1
   k
x x 1 (x ) + y 1 (x ) +y
= +h 1 + 1
y k+1 y k
2 1+xk 2 1+xk+1

de forma que:

(
xk+1 = xk + h2  (xk )2 + y k + (x k+1 2 k+1

 ) +y (18)
1
y k+1 = y k + h2 1+x 1
k + 1+xk+1

Aplicando o método de trapézios explícito quando

xk+1 ≈ xk + h · f (t, xk , y k ) (19)

y k+1 ≈ y k + h · f (t, xk , y k ) (20)


de forma que (18) fica:

   
k+1 k h k 2 k k k 2 2 k 1

 x = x + 2
(x ) + y + (x + h · ((x ) + y)) + y + h · 1+xk
(21)
 
 y k+1 = y k + h2 1+x
 1
k +
1
1+( xk +h·((xk )2 +y k ))

como cálculo exemplo:

   
 x1 = x0 + h x20 + y0 + ( x0 + h(x20 + y0 ))2 + y0 + h 1
= −0.447
2 1+x0
  (22)
 y1 = y0 + h 1 1
2 1+x0
+ 1+( x0 +h·((x0 )2 +y0 )) = 0.392

E para esse programa, o código usado fora:

12
''' pacotes usados '''
import numpy as np
import matplotlib . pyplot as plt
from IPython . display import display , HTML

''' Metodo dos trapezios explicito para n =6 e t =[0 ,0.6] , tal que
h =( T [1] - T [0]) /6 = 0.1. De forma que temos que calcular 6 pontos '''

t7 = np . linspace (0 , 10 , 101) # Corrigindo o intervalo de tempo


x7 = np . zeros ( len ( t7 ) )
y7 = np . zeros ( len ( t7 ) )
h7 = 0.1
x7 [0] = -0.5
y7 [0] = 0.2

def intermed (x , y ) :
global h7
func = h7 / (2 * (1 + ( x + h7 * ( x **2 + y ) ) ) )
return func

def f7x (x , y ) :
global h7
func = x + ( h7 / 2) * ( x **2 + y + ( x + h7 * ( x **2 + y ) ) **2 + y + ( h7 /
(1 + y ) ) )
return func

def f7y (x , y):


global h7
func = y + ( h7 / 2) * (1 / (1 + x ) )
return func

k = 1
while k < len ( t7 ) :
x7 [ k ] = f7x ( x7 [ k - 1] , y7 [ k - 1])
y7 [ k ] = f7y ( x7 [ k - 1] , y7 [ k - 1]) + intermed ( x7 [ k - 1] , y7 [ k - 1])
k += 1

# As tres listas separadas


tempos_n = t7
x_valores_n = x7
y_valores_n = y7

# Criando uma lista de d i c i o n r i o s para os dados


dados = []
for tempo , x , y in zip ( tempos_n , x_valores_n , y_valores_n ) :
linha = { " Tempo " : tempo , " x( t ) " : x , " y ( t ) " : y }
dados . append ( linha )

# Construindo a tabela HTML


table_content = " < table > < tr > < th > Tempo </ th > < th > x ( t ) </ th > < th > y ( t ) </ th > </ tr > "
for linha in dados :
table_content += (
f " <tr > < td >{ linha [ ' Tempo ']} </ td > < td >{ linha [' x ( t ) ']} </ td > < td >{ linha [' y ( t ) ']}
</ td > </ tr > "
)
table_content += " </ table > "

13
# Exibindo a tabela usando a f u n o display ()
display ( HTML ( table_content ) )

# Creating figure
fig = plt . figure ( figsize = (10 , 7) )
ax = plt . axes ( projection = " 3 d " )

# Creating plot
ax . scatter3D ( t7 , x7 , y7 , color = " green " )
plt . title ( " simple 3 D scatter plot " )

# show plot
plt . show ()

que gera a tabela em forma de display:

Figura 2: Tabela de resultados - exercício 2 - item b)

onde é possível perceber que cruza o eixo y quando

0.6 < x < 0.7

A resolução doravante, senão por explicação explícita, será toda feita em


maneira manual, excluindo a parte programacional.

14
3 Exercício 8
Resolva o sistema linear a seguir pelo método de eliminação de Gauss com condensação
pivotal e aritmética de ponto flutuante com 2 algarismos significativos:

     
1.00 0.50 0.33 x1 1.0
0.50 0.33 0.25 · x2  = 1.0
0.33 0.25 0.20 x3 1.0

3.1 Resolução
Realizando então o escalonamento da matriz aumentada:

   
1.00 0.50 0.33 1.00 1.00 0.50 0.33 1.00
0.50 0.33 0.25 1.00 L2 = L2 − m21 · L1 = 0 → m21 = 0.50 0.50 0.080 0.085 0.5 
0.33 0.25 0.20 1.00 0.33 0.25 0.20 1.00
(23)

   
1.00 0.50 0.33 1.00 1.00 0.50 0.33 1.00
L3 =L3 −m31 ·L1 =0→m31 =0.33
0.50 0.080 0.085 0.5  −−−−−−−−−−−−−−−−−→ 0.50 0.080 0.085 0.5  (24)
0.33 0.25 0.20 1.00 0.33 0.085 0.091 0.67

   
1.00 0.50 0.33 1.00 1.00 0.50 0.33 1.00
P2 =3
0.50 0.080 0.085 0.5  −
−−→ 0.33 0.085 0.091 0.67 (25)
0.33 0.085 0.091 0.67 0.50 0.080 0.085 0.5

   
1.00 0.50 0.33 1.00 1.00 0.50 0.33 1.00
L3 =L3 −m32 ·L2 =0→m32 =0.94
0.33 0.085 0.091 0.67 −−−−−−−−−−−−−−−−−→ 0.33 0.085 0.091 0.67 
0.50 0.080 0.085 0.5 0.50 0.94 −0.00054 −0.13
(26)
E temos portanto a matriz aumentada escalonada. De forma que o conjunto solução
é:

0.13
x3 · (−0.00054) = −0.13 =⇒ x3 = = 2, 4 · 102 (27)
0.00054
0.67 − 0.091 · x3
0.085 · x2 + 0.091 · x3 = 0.67 =⇒ x2 = = −2, 5 · 102 (28)
0.085

1.00 · x1 + 0.50 · x2 + 0.33 · x3 = 1 → x1 = 1.00 − 0.50 · x2 − 0.33 · x3 = 0, 46 · 102 (29)

15
de forma que:
0, 46 · 102
   
x1
x2  = −2, 5 · 102  (30)
x3 2, 4 · 102
e    
p1 1
p2  = 3 (31)
p3 3

4 Exercício 9
Resolvendo o sistema:
     
1.00 0.50 0.33 x1 1.0
0.50 0.33 0.25 · x2  = 1.0 (32)
0.33 0.25 0.20 x3 1.0

pelo método de eliminação de Gauss com condensação pivotal e aritmética de ponto


flutuante com 3 algarismos significativos obtivemos a matriz triangular a seguir (com os
multiplicadores em suas respectivas posições):

 
1.00 0.50 0.33
0.33 0.085 0.091  (33)
0.50 0.941 −0.0006
o vetor de permutações p1 = 1 e p2 = 3 3 (i.e no primeiro passo não houve troca de
linhas e no segundo passo foram permutadas a segunda e terceira linha) e a solução x =
(41.2, −224, 217) Calcule 1 passo de refinamento desta solução, utilizando as informações
de escalonamento fornecidas.

4.1 Resolução
Primeiro, chamemos o sistema da equação (32) do tipo

AS = b (34)

precisamos calcular o resíduo da solução dada pela aproximação desse sistema. Seja o
resíduo S (0) , sabe-se que uma vez que o resíduo é incerto, se somarmos uma matriz que a
corrija, este valor será "exato", isto é:

S (0) + c(0) = S (35)


A(S (0) + c(0) ) = AS
mas
AS = b
que é a solução exata.
A(S (0) + c(0) ) = b
Ac(0) ) = b − AS (0)

16
por definição
r(0) := b − AS (0) (36)
∴ r(0) = Ac(0) (37)
Então precisamos calcular, antes de tudo, r(0)

−0.01
       
1.0 1.00 0.50 0.33 41.4
r(0) = 1.0 − 0.50 0.33 0.25 · −224 =  −0.03  (38)
1.0 0.33 0.25 0.20 217 −0.062
agora precisamos passar o resíduos da solução S (0) ´para a forma da matriz, assim:

−0.01 −0.01 −0.01 −0.01


       
p1 =1 p2 =3 p3 =3
r(0) =  −0.03  −−−→  −0.03  −−−→ −0.062− −−−→ −0.062− (39)
−0.062 −0.062 −0.03 −0.03

e formulando as colunas

−0.01 −0.01
   
1a coluna
−0.062− − −−−−→ −0.062 − (0.33) · (−0.01) = −0.0587 (40)
−0.03 −0.03 − (0.5) · (−0.01) = −0.025
−0.01 −0.01
   
2a coluna
−0.062 − (0.33) · (−0.01) = −0.0587 − −−−−→  −0.0587 
−0.03 − (0.5) · (−0.01) = −0.025 −0.025 − (0.941) · (−0.0587) = 0.0302
(41)

−0.01
 

∴ r(0) = −0.0587 (42)


0.0302
e então

r(0) = Ac(0)
−0.01
     
1.00 0.50 0.33 c1
−0.0587 = 0.33 0.085 0.091  · c2  (43)
0.0302 0.50 0.941 −0.0006 c3

(−0.0006)
c3 = = −50.3
0.0302
−0.0587 − 0.091 · (−50.3)
0.085 · c2 + 0.091 · c3 = −0.0587 → c2 = = 53.2
0.085
c1 + 0.50 · c2 + 0.33 · c3 = −0.01 → c1 = −0.01 − 0.50 · c2 − 0.33 · c3 = −10

17
−10
   
c1
c(0) = c2  =  53.2  (44)
c3 −50.3
então, pela equação (35). Note que a solução "exata"a ser calculada agora ainda é a
aproximação de um refinamento, de forma que ela ainda não é de certeza ainda a solução
exata, mas um refinamento que chamaremos de S (1)

−10
     
41.4 31.4
S (1) = S (0) + c(0) = −224 +  53.2  = −171 (45)
217 −50.3 167

5 Exercício 21
a) Aproxime ex por a + bx em [0, 1] com pesos uniforme (i.e. ajuste contínuo em [0,1]
com p(x) = 1)
b) Como ficaria o coeficiente de determinação, R2 , no caso contínuo? Obtenha R2 no
ajuste em a)
c) Ajuste agora a + bx + cx2 e obtenha R2 para a função ajustada. Que tal?

5.1 Resolução
a) Queremos minimizar ˆ 1
(a, b) 7→ [ ex − a − bx]2 dx (46)
0

Seja

S = [ ex − a − bx]2 (47)

Os candidatos a ponto de mínimo da função (47) são aqueles para os quais são nulos
as derivadas parciais de S em relação a cada um de seus parâmetros, isto é:

∂S
= −2(ex − a − bx) = 0

∂a
∂S (48)
∂b
= −2x(ex − a − bx) = 0

de forma que temos que:


( ´1 ´1 ´1
a 0 dx + b 0 xdx = 0 ex dx
´1 ´1 ´2 (49)
a 0 xdx + b 0 x2 dx = 0 xex dx

a + 2b = e − 1

a (50)
2
+ 3b = 1

que é equivalente ao sistema:

18
     
1 1/2 a e−1
· = (51)
1/2 1/3 b 1
     
a 4 −6 e−1
= · (52)
b −6 12 1
   
a 4e − 10
∴ = (53)
b 18 − 6e

e a função do tipo g(x) = a + bx então fica:

g(x) = 4e − 10 + (18 − 6e)x (54)

a saber, a comparação delas no intervalo [0, 1] fica

Figura 3: Comparação entre as funções

b) O R2 é definido por:

SSE
R2 = 1 − (55)
SST
onde

ˆ b
1
SSE = (f (x) − g(x))2 dx (56)
b−a a

ˆ b
1
SST = (f (x) − g(x))2 dx (57)
b−a a

19
ˆ b
1
g(x) = g(x)dx (58)
b−a a

Sendo f (x) a função original e g(x) a função a ser modelada


Assim:

ˆ 1
SSE = (ex − (a + bx))2 dx ≈ 0.0040 (59)
0

ˆ 1   2
b
SST = x
e − a+ dx ≈ 0.2420 (60)
0 2

e então

0.0040
2
Rg(x) =1− ≈ 0.9835 = 98.35% (61)
0.2420
c) Agora queremos ajustar a função

g2 (x) = a + bx + c2 (62)

de maneira similar à feita no item a), obtemos o sistema a seguir


 ´1 ´1 ´1 2 ´1 x
 a ´0 dx + b 0´ xdx + c 0 ´x dx = 0 ´e dx

1 1 1 1
a 0 xdx + b 0 x2 dx + c 0 x3 dx = 0 xex dx (63)
´ ´ ´ ´
 a 1 x2 dx + b 1 x3 dx + c 1 x4 dx = 1 x2 ex dx

0 0 0 0

b c

 a+ 2 + 3 =e−1
a
+b+c =1 (64)
 a2 3b 4c
3
+ 4 + 5 =e−2

e−1
     
1 1/2 1/3 a
1/2 1/3 1/4 ·  b  =  1  (65)
1/3 1/4 1/5 c e−2

−36 e−1 39e − 105


       
a 9 30
 b  = −36 192 −180 ·  1  = 588 − 216e (66)
c 30 −180 180 e−2 210e − 570

de forma que a equação (62) fica:

g2 (x) = (39e − 105) + (588 − 216e)x + (210e − 570)x2 (67)

e o gráfico de comparação é:

20
Figura 4: Comparação entre as funções

e para R2 , de maneira análoga às equações (55,56, 57 e 58), obtém-se que:

Rg22 (x) = 0.9999 = 99.99% (68)

concluí-se que um ajuste com grau maior é mais preciso do que com graus menores.

21
6 Exercício 30
Em bioquímica, é bastante conhecida a cinética de Michaelis-Mentem. uma fórmula
que relaciona a taxa de reação enzimática (y) com a concentração do substrato (x), dada
por

β1 x
y(x) = (69)
β2 + x
Dados experimentais dessas duas grandezas foram coletados, gerando o seguinte grá-
fico:

Figura 5: Gráfico dos dados coletados

e a tabela de valores de x e y respectivos é:

Tabela 7: Dados obtidos

x y
1 1.375
2 2.625
3 3.5
4 4.0
5 4.25

a) Pelos valores dados e pelo gráfico, faça uma estimativa heurística dos valores que se
espera para β1 e β2 , a fim de se ter uma referência para os resultados de um ajuste
de MMQ
b) Mostre como você determinaria β1 e β2 usando M M Q linear, mas pare antes de
você precisar saber que pesos vai dar aos dados

22
c) Use pesos (3, 3, 2, 2, 1), respectivamente, e determine β1 e β2 segundo o que você
prescreveu em b), usando 4 algarismos significativos. Compare com os valores heu-
rísticos "obtidos"em a)

6.1 Resolução
a) Plotando os pontos da tabela (9) e fitando os valores de βi e variando βj , sendo
βi ̸= βj ambos β1 e β2 , percebemos que β1 permanece no intervalo [5, 10] e β2 em
[2, 5].

Doravante serão feitos dois métodos de MMQ linear e compararemos seus


resultados

b) Os casos são:
Caso 2) Seja o ajuste agora:

β1 x
y= → yx = β1 x − β2 y (70)
β2 + x
que gera o sistema normal:


β1 ⟨x, x⟩ + β2 ⟨x, −y⟩ = ⟨x, yx⟩
(71)
β1 ⟨−y, x⟩ + β2 ⟨−y, −y⟩ = ⟨−y, yx⟩

Caso 2) O ajuste do modelo de Michaelis-Mentem 1


geralmente é feito com o ajuste de
1
y′ =
y
1
x′ =
x
isto é:

1 β2 + x β2 1 1
= = + (72)
y β1 + x β1 x β1
e então

1 β2 1 1 β2 ′ 1
= + =⇒ y ′ = a′ x′ + b′ a′ = ,b = (73)
y β1 x β1 β1 β1
que gera o sistema normal

a’ ⟨x, x⟩ + b′ ⟨x, 1⟩ = ⟨x, y⟩



(74)
a’ ⟨1, x⟩ + b′ ⟨1, 1⟩ = ⟨1, y⟩
1
Aula de Bioquímica I

23
c) De acordo com a técnica passada no item b)
Caso 1) Então

5
X
⟨−y, −y⟩ = pi yi2 = 100.9
i=1
5
X
⟨x, x⟩ = pi yi2 = 90.00
i=1
5
X
⟨x, −y⟩ = pi yi2 = −94.13
i=1
5
X
⟨x, xy⟩ = pi yi2 = 332.9
i=1
5
X
⟨−y, xy⟩ = pi yi2 = −338.8
i=1

de forma que nosso sistema normal, em (71), com 4 algarismos significativos,


fica


90β1 − 94.13β2 = 332.9 β = 7.681
=⇒ 1 (75)
−94.13β1 + 100.9β2 = −338.8 β2 = 3.807

Caso 2) Da nossa transformação

x y p x’ y’ p’
1 1.375 3 1 0.7273 3
2 2.625 3 0.5 0.3810 3
=⇒
3 3.5 2 0.3333 0.2857 2
4 4.0 2 0.25 0.25 2
5 4.25 1 0.20 0.2353 1

então queremos minimizar

5
X 2
S= p i ( y i − a′ x i − b ′ ) (76)
i=1

os candidatos dos coeficientes são dados no sistema normal da equação (74),


ou seja:

∂S
= −2xi 5i=1 pi ( yi −′ −b′ ) = 0
 P
∂a′ (77)
∂S
= −2 5i=1 pi ( yi − a′ xi − b′ ) = 0
P
∂b′

24
a′ 5i=1 pi x2i + b′ 5i=1 pi xi = 5i=1 pi xi yi
 P P P
(78)
a′ 5i=1 pi xi + b′ 5i=1 pi = 5i=1 pi yi
P P P

a′ 5i=1 pi x2i + b′ 5i=1 pi xi = 5i=1 pi xi yi


 P P P
(79)
a′ 5i=1 pi xi + b′ 5i=1 pi = 5i=1 pi yi
P P P

e então

5
X
pi x′2
i = 4.297
i=1

5
X
pi x′i = 6.667
i=1

5
X
pi x′i yi′ = 3.304
i=1

5
X
pi = 15
i=1

5
X
pi yi′ = 5.573
i=1

de forma que temos um sistema que pode ser representado por

   ′  
4.297 6.667 a 3.304
· ′ = (80)
6.667 15 b 5.573
desta equação, escalonando temos

 
4.297 6.667 3.304
(81)
−1.552 4.623 0.445
e logo
b′ = 0.445
4.623
= 0.09626
(82)
′ 3.304−b·(6.667)
a = 4.297
= 0.4935

e de acordo com a equação (73)

1
β1 = b′
= 10.39
(83)

β2 = a · β1 = 5.117

25
Como conclusão de ambos os casos, temos o gráfico dos ajustes

Figura 6: Comparação dos casos - função Michaelis-Mentem

E podemos notar que o primeiro ajuste trabalhou de maneira muito melhor.

O método de comparação ficou subjetivo (i.e. não diz se deve ser pelo R2 , outros
métodos ou apenas uma comparação se caiu dentro do esperado). Para o caso
assertivo, caso 1) então, em nossa comparação constata-se que o valor caiu dentro
do esperado com a análise prévia feita no item a)

7 Exercício 45
Seja f (x) = sin(2x) Suponha que, que para cada n, escolhamos n + 1 pontos distintos
x0 , · · · , xn em [0, π] ] e obtenhamos o polinômio interpolador pn = pf [x0 , x1 , · · · , xn ].
Mostre que existe uma sequência de valores bn , tendendo a zero quando n vai a infinito,
tal que |f (x) − pn (x)| ≤ bn , para qualquer x ∈ [0, π] (de fato, os bn’s nem precisam
depender dos pontos escolhidos).

7.1 Resolução
Sabemos que a estimativa do erro de interpolação é dada por

26
Mn+1
|Rn (f ; x)| = |f (x) − pn (x)| ≤ |(x − x0 ) · (x − x1 ) · · · (x − xn )| (84)
(n + 1)!

e podemos fazer

|(x − x0 ) · (x − x1 ) · · · (x − xn )|
|Rn (f ; x)| ≤ max f (n+1) (t) (85)
(n + 1)! (a≤t≤b)

dado que f (x) = sin(2x)

f (x) = sin(2x)
f ′ (x) = 2 cos(2x)
f ′′ (x) = 22 (− sin(2x)) (86)
..
.
f (n+1) (x) = 2n+1 (±(cos(2x)) ∨ (sin(2x)))

de qualquer forma

max f (n+1) (x) = 2n+1 (87)


0≤x≤π

E o termo máximo que poderíamos obter da sequencia |(x − x0 ) · (x − x1 ) · · · (x − xn )|


sendo x, x0 , x1 · · · xn ∈ [0, π] é

max (x − xi ) = π x, xi ∈ [0, π] ∀i = 0, 1, · · · , n (88)

de forma que

2n+1 n+1
|Rn (f ; x)| ≤ π (89)
(n + 1)!

para provarmos que esse erro converge conforma n aumenta, seja

2n+1 n+1
bn = π (90)
(n + 1)!
e
?
lim bn = 0 (91)
n→∞

O teorema do massacre nos diz que há funções que dominam o limite quando crescem
mais rapidamente que outras funções, por exemplo: exponencial cresce mais rapidamente
que logaritmo, de forma que no limite a função exponencial domina, isto é:

log(xn)
lim = 0, x ∈ N+ (92)
n→∞ en

27
No nosso caso, sabemos que a função exponencial cresce mais rapidamente ao infinito
que qualquer exponencial, de forma o fatorial "domina"o limite, isto é

2n+1 n+1
lim π =0 (93)
n→∞ (n + 1)!

e logo bn converge.
Ou, de maneira mais tradicional:

2n 2π n π
bn (n+1)n! 2π
rn = = 2n π n = (94)
bn−1 n!
n+1

e como

lim rn = 0 (95)
n→∞

portanto bn converge

8 Exercício 49
Seja f uma função pelo menos 3 vezes diferenciável, em que f ′′′ tem um máximo em
[1, 1] (para poder usar a fórmula de erro de interpolação de grau 2). Com tal hipótese,
para cada h ∈ (0, 1), é possível estimar a diferença entre f e pf [h, 0, h] usando a fórmula
de erro da interpolação polinomial.
a) Mostre que existe uma constante c > 0 tal que

|f (x) − pf [−h, 0, h](x)| ≤ ch3 , ∀x ∈ [−h, h] (96)

b) Agora considere a função

x2 x ∈ [−h, 0]

f (x) = (97)
2x2 x ∈ [0, h]
i) Use a tabela das diferenças para calcular pf [−h, 0, h](x)
ii) Calcule explicitamente
   
h h
f − pf [−h, 0, h]
2 2

iii) O resultado é coerente ou contraditório com o item (a)? Explique

28
8.1 Resolução
a) Da fórmula do erro, sabemos que

|(x − x0 ) · (x − x1 ) · · · (x − xn )|
|f (x) − pn | ≤ max f (n+1) (t) (98)
(n + 1)! (a≤t≤b)

Calculando do lado direito da expressão, vemos que

max (x − h) (x − 0) (x + h) = 4h3 x ∈ [−h, h] (99)


| {z } | {z } | {z }
2h h 2h

f ′′′ (x) = f n+1 (x) =⇒ n = 2 (100)

de forma que

|(x − x0 ) · (x − x1 ) · · · (x − xn )| 4h3
|f (x) − pn | ≤ max f (n+1) (x) = max f ′′′ (x)
(n + 1)! (−h≤x≤h) 3! (−h≤x≤h)
(101)
Sabemos que max−h≤x≤h f ′′′ (x) é uma constante. Seja

4
c= max f ′′′ (x) (102)
3! (−h≤x≤h)
e logo

|f (x) − pn | ≤ ch3 (c.q.d.) (103)

b) i) O polinômio interpolador de pf [−h, 0, h] é


−h f (−h)
f (0)−f (h) 3
0 f (x1 ) h
= −h 2
f (h)−f (0)
h f (h) h
= 2h
de forma que o polinômio fica

3
pf [−h, 0, h] = h2 − h(x + h) + (x + h)x (104)
2
ii) O módulo então fica
h2 h2 3 h2 3 2
   
h h
f − pf [−h, 0, h] = − h2 + + h2 − − h (105)
2 2 2 2 2 4 4

h2
   
h h
∴ f − pf [−h, 0, h] = (106)
2 2 8

29
iii) Note que da f (x) o nosso f ′′′ (x) não existe em x = 0, de forma que a função não
existe em todos os pontos e viola a hipótese. O resultado é contraditório!

9 Exercício 55
´6
a) Para obter a precisão de 10−5 na integral 1
arctan xdx usando o método de simpson,
quantas células seriam suficientes?
b) Use 4-Simpson para obter uma estimativa dessa integral. Estime o erro dessa inte-
gração

9.1 Resolução
a) Fazendo as derivadas, temos

d 1
dx
(arctan(x)) 1+x2
d2 −2
dx2
(arctan(x)) (1+x2 )2
d3 −2(1−3x2 )
dx3
(arctan(x)) (1+x2 )3 (107)
d4 24x(1−x2 )
dx4
(arctan(x)) (1+x2 )4
d4 24(1−10x2 +5x4 )
dx4
(arctan(x)) (1+x2 )5

Agora lembrando a fórmula do erro

(b − a)5 max1≤x≤6 f (4) (x)


erro ≤ (108)
2880 · n4
o máximo em módulo da quarta derivada de f (x) é

max f (4) (x) =⇒ f 5 (x) = 0 (109)


1≤x≤6

5x4 − 10x2 + 1 = 0 (110)


x = ± k =⇒ 5k 2 − 10k + 1 = 0 (111)

(
k+ k = 1 + √2
5
(112)
k− k = 1 − √2
5

Como k+ > k−
s
√ 2
x = ± k =⇒ x = 1+ √ (113)
5
q
note que k = − 1 + √2
5
não pertence ao intervalo 1 ≤ x ≤ 6

30
q
então o ponto que maximiza a max f (4)
é x= 1+ √2
5

assim

q q  
√2 − √2 √2
s
24( 1 + 1+ 1+
!
2 5 5 5
f (4) 1+ √ = ≈ 0.421 (114)
5 (1 + 1 + √2 )4
5

Retornando à equação (108) agora fazendo os valores pedidos

(6 − 1)5 (0.421)
10−5 ≤ (115)
2880n4

1/4
(6 − 1)5 (0.421)

n≤ ≈ 14.6 (116)
2880 · 10−5
então n ≥ 15 já é suficiente.
b) Usando o método de 4-simpson, temos que o passo é dado por

(b − a
S4 = ( f (x0 ) + 4f (m1 ) + 2f (x1 ) + 4f (m2 ) + 2f (x3 ) + 4f (m3 ) + f (x4 ))
6n
(117)

6−1
h= = 1.25 (118)
4

Tabela 8: Dados obtidos

xi f (xi )
x0 = 1 0.785
x1 = 2.25 1.15
x2 = 3.5 1.30
x3 = 4.75 1.36
x4 = 6 1.41

Tabela 9: Dados obtidos

mi f (mi )
m1 = 1.625 1.02
m2 = 2.875 1.24
m3 = 4.125 1.33
m4 = 5.3755 1.39

tal que

31
S4 ≈ 6.1893 (119)

e o valor da integral de forma convencional

ˆ 6  6
1
I= arctan(x)dx = x arctan(x) − ln 1 + x2 ≈ 6.1896 (120)
1 2 1
o e o erro da integral é

error = |I − Sn | = 0.00046908 (121)

10 Exercício 58
A função ϕ(t) é solução do problema da cauchy

x′ = f (t, x)

(122)
x(t0 ) = x0

se, e somente se:

ˆ t
ϕ(t) = x0 + f (s, ϕ(s))ds (123)
t0

a) Aplique o Método dos Trapézios com 1 repetição no intervalo [t0 , t0 + h] para obter
uma fórmula de aproximação para ϕ(t0 + h). Esse é um dos métodos de integração
numérica de EDO’s
b) Tente fazer o mesmo com Simpson. Perceba que isso leva a um método de passo
duplo.

10.1 Resolução
a) o método de trapézios é dada por

ˆ b
h b−a
f (x)dx ≈ [ f (a) + f (b)] h= (124)
a 2 n

onde n é o número de subdivisões entre a e b.


Então da equação (123), temos que

ˆ t
t − t0
f (s, ϕ(s))ds = [ f (t, ϕ(t)) + f (t0 , ϕ(t0 ))] (125)
t0 2

de tal forma que

32
t − t0
ϕ(t) = x0 + [ f (t, ϕ(t)) + f (t0 , ϕ(t0 ))] (126)
2
e então

h
ϕ(t0 + h) = x0 + [ f (t0 + h, ϕ(t0 + h)) + f (t0 , ϕ(t0 ))] (127)
4
b) Para o método de Simpson

ˆ b      
h t − t0 t − t0 b−a
f (x)dx ≈ f (t0 , ϕ(t0 )) + 4f ,ϕ + f (t, ϕ(t)) h=
a 6 2 2 n
(128)
de forma que

     
t − t0 t − t0 t − t0
ϕ(t) = x0 + f (t0 , ϕ(t0 )) + 4f ,ϕ + f (t, ϕ(t))
6 2 2
(129)
e

     
h h h
ϕ(t0 + h) = x0 + f (t0 , ϕ(t0 )) + 4f ,ϕ + f (t0 + h, ϕ(t0 + h))
6 2 2
(130)
e é um método de passo duplo, pois temos uma parte andada até f (t0 ) e outra até
f (t0 + h)

33

Você também pode gostar