Você está na página 1de 174

UNIVERSIDADE DA BEIRA INTERIOR

Departamento de Matemática

Sebenta de
Matemática Computacional
Matemática Computacional

José Duque 2
Conteúdo

Conteúdo 3

1 Generalidades 7
1.1 Mudança de Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Sistema de Ponto Flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Definição de Erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Polinómio de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 Diferenciação Numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6 Propagação dos erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.7 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2 Zeros de funções 23
2.1 Localização dos zeros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2 Método da bissecção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3 Método da Falsa posição (Corda Falsa) . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4 Método de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.5 Método da Secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.6 Método do ponto fixo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.7 Método de Muller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.8 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3 Extremos de Funções 45
3.1 Método da secção dourada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 Método da interpolação quadrática . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3 Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.4 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4 Resolução de sistemas 53
4.1 Método de Eliminação de Gauss e de Gauss-Jordan (revisão) . . . . . . . . . . . . 53
4.2 Factorização de uma Matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.1 Método LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.2 Método de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3
Matemática Computacional CONTEÚDO

4.3 Normas Matriciais e condicionamento de matrizes . . . . . . . . . . . . . . . . . . 64


4.4 Métodos Iterativos de Jacobi e Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . 66
4.5 Método de Newton-Rapson para Sistemas de Equações . . . . . . . . . . . . . . . 73
4.6 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5 Interpolação Polinomial 81
5.1 Método dos Coeficientes Indeterminados . . . . . . . . . . . . . . . . . . . . . . . 82
5.2 Polinómio Interpolador de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.3 Polinómio Interpolador de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.4 Polinómio Interpolador de Hermite . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.5 Spline Cúbico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.6 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

6 Integração 103
6.1 Integrais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.2 Métodos de primitivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.3 Fórmulas de Newton-Cotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.4 Fórmulas de Newton-Cotes Compostas . . . . . . . . . . . . . . . . . . . . . . . . 113
6.5 Método de Romberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.6 Quadratura de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.7 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

7 Método dos Mı́nimos Quadrados 125


7.1 Método dos mı́nimos quadrados linear . . . . . . . . . . . . . . . . . . . . . . . . 125
7.2 Polinómios Ortogonais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
7.3 Método dos mı́nimos quadrados não linear . . . . . . . . . . . . . . . . . . . . . . 132
7.4 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

8 Equações Diferenciais com Condições Iniciais 137


8.1 Existência e Unicidade de Solução . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
8.2 Transformada de Laplace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
8.3 Método de Picard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
8.4 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

9 Métodos numéricos para problemas de condição inicial 145


9.1 Métodos de passo simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
9.1.1 Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
9.1.2 Métodos de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
9.1.3 Métodos de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
9.2 Métodos de passo múltiplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
9.3 Métodos Estimador-Corrector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

José Duque 4
CONTEÚDO Matemática Computacional

9.4 Sistemas de equações diferenciais . . . . . . . . . . . . . . . . . . . . . . . . . . . 156


9.5 Equações diferenciais de ordem superior . . . . . . . . . . . . . . . . . . . . . . . 159
9.6 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

Bibliografia 165

A Anexos 167
A.1 Formulário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

5 José Duque
Matemática Computacional CONTEÚDO

José Duque 6
Capı́tulo 1

Generalidades

Ao longo dos tempos têm existido vários sistemas de numeração, por exemplo: O sistema romano,
(XXII) que deixou de se usar em cálculos pois era pouco prático; A numeração árabe, (12.13)
trouxe algumas inovações que a tornaram muito popular; E outras como a medição do tempo,
(2h 30min 12seg). Uma das novidades da notação árabe é o ponto decimal que divide a parte
inteira da parte decimal. Os romanos para indicar partes decimais tinham de dizer qualquer
coisa como “ uma quarta parte de ...”. Com a notação árabe surgiu também a notação posicional.
Enquanto os dois I’s valem uma unidade cada um na numeração romana, os dois 1’s da numeração
árabe representam valores diferentes por estarem em posições diferentes em relação ao ponto
decimal. O algarismo zero é uma invenção recente.
O último sistema é diferente dos anteriores pois utiliza uma base diferente. O árabe, por exemplo,
utiliza a base 10, 10 unidades são uma dezena, 10 dezenas são uma centena, e assim sucessivamente.
O terceiro tem base 60, 60 segundos representam um minuto e 60 minutos uma hora. Com a era
dos computadores surgiu outra base de numeração privilegiada. Como os computadores lêem
impulsos enviados por componentes eléctricas, os estados possı́veis são “on” e “off”. Então é mais
conveniente representar os números nos computadores utilizando base 2.
Uma vez que iremos trabalhar com calculadoras e computadores, vamos utilizar a notação árabe
mas com várias bases diferentes. Para nos entendermos bem com as máquinas temos de saber
como mudar de base, ou seja, como representar o mesmo número nas diversas bases.

1.1 Mudança de Base


Normalmente os números reais são representados por uma sequência ordenada de sı́mbolos ( vamos
chamar dı́gitos ) e um ponto. Por exemplo

x = an an−1 . . . a1 a0 .a−1 a−2 . . . a−m

No sistema decimal ( base 10 ) a posição de cada dı́gito, em relação ao ponto decimal, indica a
potência de 10 correspondente ( unidades, dezenas, centenas, ...) e o dı́gito representa a quantidade

7
Matemática Computacional Generalidades

de cada uma dessas potências. Assim, os números decimais, podem ser colocados da forma

x = an × 10n + an−1 × 10n−1 + · · · + a1 × 101 + a0 × 100 + a−1 × 10−1 + · · · + a−m × 10−m

Neste caso os sı́mbolos ak são elementos do conjunto {0, 1, 2, . . . , 9}. Por exemplo no sistema
binário, base 2, processa-se tudo da mesma forma à excepção de os ak só serem 0 e 1 e as potências
são de base 2.
Como há dı́gitos comuns a várias bases temos de indicar qual a base que estamos a trabalhar. Por
exemplo
x = 11.01

pode estar escrito em qualquer base, por isso vamos indicar qual a base, da forma

x = (11.01)2

Assim sabemos que está na base 2. No caso de não ser indicada a base, vamos assumir que o
número está na base 10.
Para convertermos o número

y = ∗(cn cn−1 . . . c0 , c−1 . . . c−m )b , ck ∈ {0, . . . , b − 1} e ∗ ∈ {+, −}

que está escrito na base b, para a base decimal basta calcular a quantidade

y = ∗(cn bn + cn−1 bn−1 + · · · + c0 b0 + c−1 b−1 + · · · + c−m b−m )10

na nossa base usual. De uma forma mais compacta


n
X
y=∗ c i bi .
i=−m

Por exemplo
(11.01)2 = 1 × 21 + 1 × 20 + 0 × 2−1 + 1 × 2−2 = 3.25

Agora temos de saber converter um número em decimal para a representação noutra base b. Neste
processo há que distinguir dois casos distintos.
Se o número for inteiro, isto é,

y = ∗(cn cn−1 . . . c0 )b = ∗(cn × bn + cn−1 × bn−1 + · · · + c1 × b1 + c0 × b0 )10

então o problema é obtermos os dı́gitos cn , . . . , c0


Se dividirmos y por b obtemos cn × bn−1 + cn−1 × bn−2 + · · · + c1 e o resto é c0 . Dividindo de novo,
por b, o quociente encontrado obtém-se, por resto, c1 e assim por diante. O quociente de n-ésima
e última divisão é cn .

José Duque 8
1.2 Sistema de Ponto Flutuante Matemática Computacional

Exemplo 1 Converter 1989 para hexadecimal ( base 16 ).


Resposta
O processo de divisões sucessivas pode ser feito da forma.

1989 16
5 124 16 , 12 ≡ C
12 7

Logo (1989)10 = (7C5)16 

Chama-se atenção para o facto de para os ck se utilizar usualmente os dı́gitos {0, . . . , b − 1}.
Por exemplo a base 5 utiliza os dı́gitos {0, 1, 2, 3, 4, 5}. Quando a base é inferior a 10 não surgem
problemas. Mas se a base for superior a 10 é necessário utilizar mais sı́mbolos. (12)16 poderia
ser entendido por 1 × 161 + 2 × 160 ou 12 × 160 que são valores distintos. Uma solução simples
é utilizar as primeiras letras maiúsculas do alfabeto. Por exemplo a base 16 utiliza os sı́mbolos
{0, . . . , 9, A, B, C, D, E, F }.
O segundo caso é quando o número tem parte inteira nula.

y = ∗(0.c−1 . . . c−m )b = ∗(c−1 × b−1 + c−2 × b−2 + · · · + c−m × b−m )10

Neste caso é necessário calcular c−1 , . . . , c−m .


Se multiplicarmos y por b verificamos que c−1 é a parte inteira e c−2 × b−1 + c−3 × b−2 + · · · +
c−m × b−m+1 é a parte fraccionária. Multiplicando esta última novamente por b e tomando a parte
inteira do resultado obtemos c−2 e assim sucessivamente.

Exemplo 2 Converter 0.8125 para octal ( base 8 ).


Resposta
Fazendo as multiplicações obtemos
0.8125 0.5
×8 ×8
6 .5 4 .0
Logo (0.8125)10 = (0.64)8 

No caso geral do número real basta separar a parte inteira da parte fraccionária, tratar cada
uma independentemente e depois juntar os dois resultados.

1.2 Sistema de Ponto Flutuante


Nas aplicações cientı́ficas há necessidade de recorrer a números muito grandes e números muito
pequenos. Por exemplo
Massa de um electrão: m0 = 0.000000000000000000000000000911 g
Velocidade da luz: c = 29980000000 cm/seg

9 José Duque
Matemática Computacional Generalidades

A representação destas constantes obriga a um grande número de dı́gitos, a maioria dos quais são
zeros que só servem para indicar a posição do ponto. Uma forma de optimizar este problema é
usar a chamada notação cientifica. Esta notação consiste em exprimir um número real x da forma

x = ±m × be

em que m é um número real não negativo designado por mantissa, b > 1 é um inteiro positivo que
representa a base e e é um inteiro que designaremos por expoente.
Assim as constantes podem ser escrita da forma
Massa de um electrão: m0 = 9.11 × 10−28 g
Velocidade da luz: c = 2.998 × 1010 cm/seg
Fixada a base b esta representação não é única. Por exemplo x = 12.45 pode ser representado por
x = 1.245 × 101 ;
x = 0.1245 × 102 ;
x = 0.01245 × 103
Para resolver esta ambiguidade é usual optar por uma representação que satisfaça a seguinte
convenção (
m = 0, x = 0
b−1 ≤ m < 1, x 6= 0
Diz-se neste caso que se trata de uma representação normalizada.
É claro que a notação cientı́fica, tal como acabámos de apresentar, não pode ser implementada
em computador. Para representar todos os números reais a mantissa e o expoente exigiriam um
número infinito de dı́gitos. Assim a notação cientı́fica é modificada de forma a exigirmos que a
mantissa só tenha no máximo t dı́gitos, e o expoente ε dı́gitos. Obtém-se a representação em
ponto ( ou vı́rgula ) flutuante. Vamos utilizar a notação F P (b, t, ε) para designar o sistema de
representação em ponto flutuante de base b, cuja mantissa ocupa t dı́gitos (escritos na base b) e
cujo expoente pode utilizar no máximo ε dı́gitos ( base b ).
Assim o número real x está representado no sistema de ponto flutuante F P (b, t, ε) se tiver a forma

x = ±(m)b × b±(e)b , sendo m = m1 m2 . . . mt , e = cε−1 cε−2 . . . c1 c0 e mi , ci ∈ {0, 1, . . . , b − 1}

Os números b ( base da representação ), t ( número de dı́gitos disponı́veis para a mantissa ) e


ε ( número máximo de dı́gitos no expoente ) determinam univocamente o tamanho e o possı́vel
conteúdo da caixa

± m1 m2 . . . mt ± cε−1 . . . c0

ou de forma equivalente
x = ±(.m1 m2 . . . mt )b × b±(cε−1 ...c1 c0 )b
Pela secção anterior, podemos mudar para a base 10, da forma
t
!
X Pε−1 i
± mj b−j × b± i=1 ci b
j=1

José Duque 10
1.3 Definição de Erros Matemática Computacional

Uma vez que esta representação é limitada temos de resolver como tratar os números que não ”ca-
bem”na caixa. O número 0.1 × 10100 não é representável em F P (10, 6, 2) pois o expoente ocupa
3 dı́gitos e só são permitidos 2. Neste caso diz-se que ocorre um erro de overf low. O número
π = 3.14159... também não é representável nesse sistema pois a mantissa tem infinitos dı́gitos,
muito mais que os 6 permitidos. A questão pertinente neste momento é:
”Dado um número real x, que não origina overflow, qual o número em F P (b, t, ε), que denotare-
mos por F L(x), que representa x?”
Se x tiver representação exacta em F P (b, t, ε), então F l(x) = x. Se não for possı́vel a repre-
sentação exacta, existem basicamente duas técnicas para determinar F L(x), a truncatura e o
arredondamento.

Truncatura: desprezam-se simplesmente os dı́gitos do número real x que não cabem na mantissa,
isto é, os dı́gitos da mantissa além dos t primeiros são desprezados.

Arredondamento: o número real x é representado pelo número do sistema F P (b, t, ε) que lhe
está mais próximo.

Para indicar o tipo de técnica que é escolhida, empregamos as notações F P (b, t, ε, T ) e F P (b, t, ε, A)
para truncatura e arredondamento, respectivamente.

Exemplo 3 Represente, na forma normalizada, a = 372.526 em F P (10, 5, 2, A) e em F P (10, 5, 2, T ).


Resposta
Movendo o ponto decimal para o inicio do número fica

a = 0.372526 × 103

Como só podemos ter 5 dı́gitos na mantissa ficamos com

F L(a) = 0.37253 × 103


j5
j jjjjjj
jjj
jjjjjjj F P (10,5,2,A)
a = 0.372526 × 103 TjTTT
TTTT
TFTTPT(10,5,2,T )
TTTT
TTT)
F L(a) = 0.37252 × 103


1.3 Definição de Erros


Nesta cadeira vamos trabalhar com aproximações obtidas através de diversos cálculos envolvendo
números, cálculos numéricos. Antes de discutirmos os erros associados aos métodos numéricos,
é útil, tratar primeiro os erros associados aos próprios números. Um erro já identificado é a
aproximação feita no sistema de ponto flutuante. Contudo quando vamos utilizar um número
devemos assegurar que pode ser utilizado com confiança. Por exemplo, a figura 1.1. Podemos

11 José Duque
Matemática Computacional Generalidades

Figura 1.1: Velocı́metro

afirmar que o carro viaja a 90 km/h mas não é exacto pois o ponteiro está entre 89 km/h e 90
km/h. Uma vez que não há mais subdivisões não é possı́vel precisar mais. Se fosse necessário
indicar um valor com uma casa decimal poderı́amos afirmar 89.5 km/h, no entanto outra pessoa
poderia dizer 89.6 km/h. Desta forma, devido às limitações do instrumento de medida os dois
primeiros dı́gitos são exactos, ou seja, podem ser utilizados com confiança. Estimativa do terceiro
dı́gito e seguintes são aproximações. No entanto, o terceiro dı́gito, embora estimado, é importante
pois indica algo significativo. Se alguém dissesse que o carro viajava a 89.55728 km/h era óbvio
que os últimos quatro dı́gitos não tinham qualquer significado, nem exactidão. Por isso, os três
primeiros dı́gitos dizem-se significativos. Este conceito de dı́gito significativo foi introduzido para
marcar num número os algarismos em que temos confiança.
Em qualquer das situações descritas, trabalha-se com valores aproximados dos dados do problema.
Surge, então, a necessidade de se distinguir a categoria do valor aproximado e de se fazer o estudo
da propagação desses erros, ao longo do processo numérico, e em que irão influenciar o resultado
final.
Seja x o valor exacto e x̄ o seu valor aproximado, que será usado nos cálculos. A diferença

e = x − x̄

chama-se erro absoluto do valor x̄. É uma quantidade que pode ser positiva se x̄ < x e diz-se que
x̄ aproxima por defeito, pode ser negativa se x̄ > x e x̄ aproxima por excesso, ou pode ser ainda
nula se x̄ = x. Na maioria das vezes não interessa se a aproximação é por defeito ou excesso logo
vamos considerar o erro absoluto em módulo

Ea (x̄) = |x − x̄|

José Duque 12
1.3 Definição de Erros Matemática Computacional

Como para a maior parte dos problemas x é desconhecido, não é possı́vel calcular o erro absoluto.
Geralmente conhece-se a quantidade não negativa ∆x, tal que

|x − x̄| ≤ ∆x,

a que se chama limite superior do erro absoluto. Desta relação pode-se concluir que o valor exacto
pertence ao intervalo

x ∈ [x̄ − ∆x; x̄ + ∆x] ⇔ x̄ − ∆x ≤ x ≤ x̄ + ∆x.

À quantidade não negativa, Er (x̄) definida por

|x − x̄|
Er (x̄) =
|x|

chama-se erro relativo de x̄. Se ∆x for pequeno quando comparado com x̄, então

|x − x̄| ∆x
Er (x̄) ≈ ≤ .
|x̄| |x̄|

O erro relativo não tem dimensão e, em geral, só é conhecido o limite superior do seu valor. A
quantidade Er (x̄) × 100% chama-se percentagem do erro.

Exemplo 4 Sejam x1 = 1.1 e x2 = 100.1.


Calcule os erros absoluto e relativo que se comete ao considerar x̄1 = 1 e x̄2 = 100.
Resposta

Ea (x̄1 ) = |x1 − x̄1 | = |1.1 − 1| = 0.1

Ea (x̄2 ) = |x2 − x̄2 | = |100.1 − 100| = 0.1

O erro absoluto é igual para os dois casos mas o segundo parece ser mais grave atendendo à grandeza dos
valores, para isso vamos calcular o erro relativo.

|x1 − x̄1 | |1.1 − 1| 0.1


Er (x̄1 ) = = = = 0.090909
|x1 | 1.1 1.1

|x2 − x̄2 | |100.1 − 100| 0.1


Er (x̄2 ) = = = = 0.000999.
|x2 | 100.1 100.1


Podemos utilizar a definição dos erros para definir os algarismos correctos e significativos.

Definição 5 Seja x̄ uma aproximação de x.


Diz-se que x̄ tem k casas decimais correctas se Ea (x̄) ≤ 0.5 × 10−k .
Diz-se que x̄ tem k algarismos significativos correctos se Er (x̄) ≤ 5 × 10−k .

13 José Duque
Matemática Computacional Generalidades

1.4 Polinómio de Taylor


O teorema de Taylor e a fórmula associada, polinómio de Taylor, têm bastante importância no
estudo e análise de métodos numéricos. Basicamente o polinómio de Taylor fornece um meio de
estimar o valor de uma função num ponto sabendo o valor da função e das suas derivadas noutro
ponto distinto. Em particular o teorema mostra que qualquer função suave pode ser aproximada
por um polinómio.

Teorema 6 Se a função f e as suas n + 1 primeiras derivadas existem e são contı́nuas num


intervalo contendo x e a então existe um ξ entre x e a tal o valor de f em x pode ser dado por
f 00 (a) f 000 (a) f (n) (a)
f (x) = f (a) + f 0 (a)(x − a) + (x − a)2 + (x − a)3 + · · · + (x − a)n + Rn (x)
2! 3! n!
onde Rn (x) é chamado resto de ordem n e é obtido por
f (n+1) (ξ)
Rn (x) = (x − a)n+1
(n + 1)!
É de salientar que o segundo membro da fórmula, se ignorarmos o resto, é um polinómio de grau
n. Então podemos considerar
f (x) = Pn (x) + Rn (x)

Exemplo 7 Calcule o polinómio de Taylor, de f (x) = cos(x) de grau 4, considerando a = 0.


Resposta

f 00 (0) f 000 (0) f (4) (0)


P4 (x) = f (0) + f 0 (0)(x − 0) + (x − 0)2 + (x − 0)3 + (x − 0)4
2! 3! 4!
f (0) = 1
f 0 (x) = −sin(x), f 0 (0) = 0
f 00 (x) = −cos(x), f 00 (0) = −1
f 000 (x) = sin(x), f 000 (0) = 0
f (4) (x) = cos(x), f (4) (0) = 1
então
1 1
P4 (x) = 1 − x2 + x4
2 24
Se utilizarmos o polinómio para estimar o valor da função o erro que cometemos é o valor do resto de
ordem 4. 

1.5 Diferenciação Numérica


Uma das aplicações do teorema de Taylor é a aproximação de derivadas. Quando não se sabe a
expressão analı́tica da função ou simplesmente é bastante difı́cil de derivar é muito útil estimar o
valor da derivada num ponto apenas sabendo o valor da função em pontos próximos.
Se considerarmos a = xi e aplicarmos o teorema com xi+1 = xi + h obtemos
f 00 (xi ) f (n) (xi ) f (n+1) (ξ)
f (xi+1 ) = f (xi )+f 0 (xi )(xi+1 −xi )+ (xi+1 −xi )2 +· · ·+ (xi+1 −xi )n + (xi+1 −xi )n+1
2! n! (n + 1)!

José Duque 14
1.5 Diferenciação Numérica Matemática Computacional

Uma vez que xi+1 = xi + h ⇔ xi+1 − xi = h e a série pode ser simplificada da forma

0 f 00 (xi ) 2 f (n) (xi ) n f (n+1) (ξ) n+1


f (xi+1 ) = f (xi ) + f (xi )h + h + ··· + h + h
2! n! (n + 1)!
Se a série for truncada em n = 1 obtemos
f 00 (ξ) 2
f (xi+1 ) = f (xi ) + f 0 (xi )h + h, ξ ∈]xi , xi+1 [
2!
logo a primeira derivada pode ser estimada em xi através da fórmula
1 f 00 (ξ)
f 0 (xi ) = (f (xi+1 ) − f (xi )) − h
h 2!
Em geral não sabemos o valor exacto da derivada pois ξ não é conhecido. Se soubermos o valor
de f (xi+1 ) e f (xi ) podemos aproximar a derivada em xi ignorando o último termo. Á parcela

f 00 (ξ)
h
2!
f 00 (ξ)
chamamos erro de truncatura. Costuma dizer-se que o erro é da ordem de h, O(h), pois 2!
são
constantes, só h varia. Quando xi+1 se aproxima de xi , h diminui e o erro tende para zero.
A série de Taylor também pode ser utilizada para pontos anteriores xi−1 = xi − h ⇔ xi−1 − xi = h.
f 00 (ξ) 2
f (xi−1 ) = f (xi ) − f 0 (xi )h + h, ξ ∈]xi−1 , xi [
2!
Donde resulta
1 f 00 (ξ)
f 0 (xi ) =
(f (xi ) − f (xi−1 )) + h
h 2!
outra estimativa da derivada. Esta agora utiliza os valores de f em um ponto antes e no próprio
ponto.
Outra forma de obter uma estimativa para o valor da derivada é utilizar o polinómio de Taylor
de graus mais elevados e vários pontos. Consideremos por exemplo

0 f 00 (xi ) 2 f 000 (ξ1 ) 3


f (xi+1 ) = f (xi ) + f (xi )h + h + h, ξ1 ∈]xi , xi+1 [
2! 3!
f 00 (xi ) 2 f 000 (ξ2 ) 3
f (xi−1 ) = f (xi ) − f 0 (xi )h + h − h, ξ2 ∈]xi−1 , xi [
2! 3!
Subtraindo a segunda à primeira

h2 000
f (xi+1 ) − f (xi−1 ) = 2f 0 (xi )h + f (ξ)
6
Logo
1 h2
[−f (xi−1 ) + f (xi+1 )] − f 000 (ξ)
f 0 (xi ) =
2h 6
2
Neste caso o erro de truncatura é da ordem de h o que indica que o erro tende mais depressa
para zero quando xi+1 e xi−1 tendem para xi . De uma forma semelhante podemos deduzir

1 h2
f 0 (xi ) = [−3f (xi ) + 4f (xi+1 ) − f (xi+2 )] + f 000 (ξ)
2h 3
15 José Duque
Matemática Computacional Generalidades

1 h2
f 0 (xi ) =
[f (xi−2 ) − 4f (xi−1 ) + 3f (xi )] + f 000 (ξ)
2h 3
Para a segunda derivada podemos obter os resultados

1 h2 (4)
f 00 (xi ) = [f (x i−1 ) − 2f (x i ) + f (x i+1 )] − f (ξ)
h2 12
1 h4 (4)
f 00 (xi ) = [f (x i−2 ) + 16f (x i−1 ) − 30f (x i ) + 16f (x i+1 ) − f (x i+2 )] + f (ξ)
12h2 90
Exemplo 8 Uma partı́cula move-se sobre o eixo dos xx, tendo-se registado as seguintes posições
ao longo do tempo t:

t 0.0 0.2 0.4 0.6 0.8 1.0


x 0.0 0.1987 0.3894 0.5646 0.7174 0.8415

Determine a velocidade e a aceleração da partı́cula no instante t = 0.4.


Resposta
Pela Fı́sica sabe-se que a velocidade é a derivada do deslocamento e a aceleração a segunda derivada.
Uma vez que temos pontos suficientes podemos utilizar as fórmulas com 3 pontos, vamos utilizar a cen-
trada pois é a que dá melhor aproximação.
Seja x2 = 0.4, então x1 = 0.2 e x3 = 0.6, logo h = 0.4 − 0.2 = 0.6 − 0.4 = 0.2, então as aproximações
são:
1 1
x0 (0.4) = (−x(0.2) + x(0.6)) = (−0.1987 + 0.5646) = 0.91475
2 × 0.2 0.4
1 1
x00 (0.4) = 2
(x(0.2) − 2x(0.4) + x(0.6)) = (0.1987 − 2 × 0.3894 + 0.5646) = −0.3875
0.2 0.04


1.6 Propagação dos erros


Suponhamos que vamos calcular f (x), não no valor exacto x mas num valor aproximado x̄. Será
possı́vel prever o erro que vamos obter no fim. De uma forma mais precisa, vamos querer estimar

Ea (f (x̄)) = |f (x) − f (x̄)|

Se não soubermos x também não saberemos f (x). Mas utilizando o teorema de Taylor obtemos

f 00 (ξ)
f (x) = f (x̄) + f 0 (x̄)(x − x̄) + (x − x̄)2
2
f 00 (ξ)
0
f (x) − f (x̄) = f (x̄)(x − x̄) + (x − x̄)2
2
Tomando o módulo e desprezando o último termo

|f (x) − f (x̄)| ≤ |f 0 (x̄)||(x − x̄)|

ou seja
Ea (f (x̄)) ≤ |f 0 (x̄)|Ea (x̄), ∆f (x) = |f 0 (x̄)|∆x

José Duque 16
1.6 Propagação dos erros Matemática Computacional

Em termos práticos pode dizer-se que o erro final depende da derivada da função, se a derivada
for bastante elevada o erro vai ser ampliado, se for reduzida o erro é diminuı́do.
No caso de funções com várias variáveis é semelhante. Assim consideremos uma função de n
variáveis f (x1 , . . . , xn ) e que são utilizados valores aproximados x̄1 , . . . , x̄n . Se os erros absolutos
de cada uma das variáveis forem limitados por ∆xi então o limite superior do erro absoluto de
f (x̄1 , . . . , x̄n ) pode ser obtido por
n
X ∂f
Ea (f (x̄1 , . . . , x̄n )) = |f (x1 , . . . , xn ) − f (x̄1 , . . . , x̄n )| ≤ | (x̄1 , . . . , x̄n )|∆xi
i=1
∂x i

No caso do erro relativo, podemos utilizar mais uma vez o teorema de Taylor.

f (x) ≈ f (x̄) + f 0 (x̄)(x − x̄)

logo
f (x) − f (x̄) f 0 (x̄)(x − x̄) f 0 (x̄)x x − x̄ f 0 (x̄)x̄ x − x̄
≈ = × ≈ ×
f (x) f (x) f (x) x f (x̄) x
então tomando módulos 0
f (x̄)x̄
Er (f (x̄)) ≤ Er (x̄)
f (x̄)
0
Ao valor cond(f, x̄) = ff(x̄)x̄ vamos chamar número de condição de f em x̄. O número de

(x̄)
condição de uma função indica a medida na qual o erro de x̄ se propaga por f (x̄). De um modo
grosseiro pode-se afirmar que ao aplicarmos f a x̄ o erro relativo de x̄ é multiplicado pelo número
de condicionamento. Um número de condicionamento maior que 1 vai fazer crescer o valor do erro
de x̄. No caso contrário se cond(f, x̄) < 1 então o erro de x̄ vai ser atenuado ao calcularmos f (x̄).
Exemplo 9 Considere a função f (x) = ln(x). A aproximação ā = 1.01 do número a = 1.009
enferma de um erro relativo inferior a 0.1%. Qual o erro relativo cometido ao aproximar f (a) por
f (ā). Explique a situação.
Resposta

f (x) = ln(x), a = 1.009, ā = 1.01, Er (ā) < 0.1%



ā ∂f (ā) 1.01 1
Er (f (ā)) < ∂a Er (ā) = 1.01
0.001 = 100.4992 × 0.001 = 0.1 = 10%

f (ā) ln(1.01)

Um erro relativo inicial deu origem a um erro relativo final 100× superior.
1
1.009 1.00.9
cond(ln, 1.009) = = 111.6
ln(1.009)
Como cond(f, a) = 111.6, qualquer erro cometido com a é ampliado mais de 100 vezes, logo a função é
mal condicionada neste ponto. 

No caso de f ter várias variáveis e o erro relativo de cada variável for majorado por δxi o
majorante do erro relativo de f (x̄1 , . . . , x̄n ) é dado por
∂f
n
x̄i ∂xi (x̄1 , . . . , x̄n )
X
Er (f (x̄1 , . . . , x̄n )) ≤ δxi
f (x̄1 , . . . , x̄n )

i=1

17 José Duque
Matemática Computacional Generalidades

Exemplo 10 Seja f (x, y) = x + y, se Ea (x̄) ≤ ∆x e Ea (ȳ) ≤ ∆y, então



∂f ∂f
|f (x, y) − f (x̄, ȳ)| ≤ (x̄.ȳ) ∆x + (x̄.ȳ) ∆y = ∆x + ∆y

∂x ∂y

ou seja o erro absoluto da soma é menor que a soma dos erros absolutos das parcelas.
Seja agora f (x, y) = x.y, então
∂f
x̄ ∂f (x̄, ȳ) ȳ (x̄, ȳ)
x̄.ȳ

ȳ.x̄
∂x ∂y
Er (f (x̄, ȳ)) ≤ Er (x̄) + Er (ȳ) = Er (x̄) + Er (ȳ) = Er (x̄) + Er (ȳ)

f (x̄, ȳ) f (x̄, ȳ) x̄.ȳ x̄.ȳ

No caso de um problema mais complicado ( não uma só função ) o problema diz-se bem con-
dicionado se pequenos erros nos dados iniciais originam apenas pequenas alterações na solução do
problema. Por sua vez se pequenos erros nos dados iniciais provocarem grandes erros na solução,
o problema diz-se mal condicionado.

Exemplo 11 A equação
x2 − 2.029x + 1.0285 = 0

tem as soluções
x1 = 0.9878494841 e x2 = 1.041150516.

No entanto se o termo independente for arredondado para 1.029 estamos a introduzir um erro
relativo inicial de aproximadamente 0.05%. Mas as soluções passam a ser

x̄1 = 1 e x2 = 1.029

que sofreram um erro relativo de aproximadamente 1.2%, que é muito superior ao inicial. Então
podemos dizer que o problema é mal condicionado.

Um problema comum ao usarmos computadores e calculadoras é o cancelamento subtractivo.


Este erro surge quando se pretende calcular a subtracção de duas quantidades muito próximas
uma da outra. O resultado desta operação origina uma perda de algarismos significativos no re-
sultado

√ √
Exemplo 12 Calcule a diferença 9876 − 9875.
Resposta
Usando uma máquina de calcular cujo mostrador apresenta 10 algarismos, tem-se
√ √
9876 − 9875 = 0.9937806599 × 102 − 0.9937303457 × 102 = 0.00503142 = 0.503142 × 10−2

Verificando-se que os dados do problema foram fornecidos com 10 algarismos significativos, o resultado
aparece com 6 algarismos e apenas 5 são significativos. 

José Duque 18
1.7 Exercı́cios Matemática Computacional

O problema que surgiu aqui denomina-se cancelamento subtractivo. Este problema deve-se ao
facto de estarmos a calcular a diferença entre dois valores muito próximos. Uma forma de o evitar
é tentar substituir a subtracção multiplicando e dividindo pelo conjugado.
No exemplo anterior ficava
√ √
√ √ √ √ 9876 + 9875 1
9876 − 9875 = ( 9876 − 9875) × √ √ =√ √ =
9876 + 9875 9876 + 9875
1
= = 0.5031403493 × 10−2
0.9937806599 × 102 + 0.9937303457 × 102
que é muito mais exacto.

1.7 Exercı́cios
1. Converta os seguintes números para a sua forma decimal.
a = (101101)2 ; b = (110101011)2 ; c = (0.1101)2 ; d = (0.101010 . . . )2
e = (6)8 ; f = (232)8 ; g = (15.04)8 ; h = (2.32)8 ;
k = (9F 6)16 ; l = (E5B)16 .

2. Converta os seguintes números decimais para binários.


m = 23 ; n = 0.8125 ; p = 22.75.

3. Qual a representação octal dos seguintes números?


q = 2003 ; r = 0.390625 ; s = 31.375.

4. Obtenha a representação na base hexadecimal de:


t = 2003 ; u = 1000 ; v = 0.1.

5. Represente os valores a = 0.01234 e b = 345.6789 no sistema F P (10, 4, 2).

6. Quantos números reais de ]0.111; 2.30[ pertencem o sistema F P (10, 3, 2)?

7. Escreva o número x = 123456.78 nos sistemas F P (10, 4, 2) e F P (2, 6, 3).

8. Qual o valor máximo e o valor mı́nimo que se pode representar no sistema F P (3, 4, 2)?
Qual a sua representação decimal?

9. Quais são os dois números x− e x+ do sistema F P (2, 8, 2, A) mais próximos de x = 23 ?


Qual a deles é F L(x)?

10. Qual o menor número positivo que se pode representar no sistema F P (3, 4, 2)?

11. Os números x1 = 0.52 × 10−4 , x2 = 0.61 × 105 , x3 = −0.37 × 10−3 , x4 = −0.61 × 105 vão
ser adicionados em aritmética de ponto flutuante F P (10, 2, 1). Diga, explicando convenien-
temente qual dos seguintes resultados tem menor erro.

s1 = (x1 + x2 ) + (x3 + x4 )

19 José Duque
Matemática Computacional Generalidades

s2 = (x1 + x3 ) + (x2 + x4 )

12. No sistema F P (10, 4, 2), qual é o número imediatamente a seguir ao 1?

13. Calcule o valor do polinómio

P (x) = x3 − 5x2 + 6x + 0.55

em x = 2.73, utilizando a aritmética de ponto flutuante F P (10, 3, 2). Compare com o valor
exacto.

14. Repita o exercı́cio anterior mas reescrevendo o polinómio da forma

P (x) = ((x − 5) + 6) x + 0.55

15. Considere a função f (x) = sin(x).

(a) Calcule a aproximação de f ( π8 ) e de f ( 10π


9
) , obtida através do polinómio de Taylor de
f , de grau 4, em torno de 0.
(b) Determine um majorante para o erro absoluto das aproximações, calculadas na alı́nea
anterior, usando o termo do erro da fórmula de Taylor e compare-o com o valor exacto
do erro.
(c) Determine um majorante para o erro |f (x) − P4 (x)|, para x ∈ − π4 ; π4 .
 

(d) Pretende-se aproximar a função seno pelo seu polinómio de Taylor de grau n, em torno
de zero.
Qual é o valor mı́nimo de n necessário para que o polinómio aproxime a função com
erro menor que 10−6 , no intervalo 0; π2 ?
 

(e) Determine um valor aproximado de sin( π8 ), com 9 casas decimais correctas usando o
polinómio de Taylor, em torno de zero.

16. O polinómio P2 (x) = 1 − 0.5x2 vai ser usado para aproximar a função cosseno em [−0.5; 0.5].
Determine um majorante para o erro máximo de qualquer aproximação.

17. Calcule a derivada de primeira ordem da função g(x) = esin(x) no ponto x = 0.5 utilizando
as diferenças finitas ( progressivas, regressivas e centrais) de primeira ordem com h = 0.01.
De entre as fórmulas utilizadas qual é a que permite obter melhor estimativa?

18. Utilize as fórmulas da diferenças progressivas e regressivas para determinar aproximações


que completem a tabela:

x f (x) f 0 (x)
0.0 −1 ...
0.2 −0.2839867 ...
0.4 0.2484244 ...

José Duque 20
1.7 Exercı́cios Matemática Computacional

Sabendo que f (x) = xcos(x) − 2x2 + 3x − 1, calcule o erro efectivamente cometido em cada
aproximação e compare-o com o majorante teórico.

19. A distância percorrida em metros por um foguete em cada segundo apresenta os seguintes
valores:

t 0 1 2 3 4 5
y 0.0 2.5 7.8 18.2 51.9 80.3

Use a diferenciação numérica para aproximar a velocidade e a aceleração em cada ponto.

20. A tabela seguinte foi obtida enquanto se enchia um grande petroleiro

t, min 0 15 30 45 60 90 120
V, barris 0.50 0.65 0.73 0.88 1.03 1.14 1.30

dV
Calcule a taxa de fluxo Q ( ou seja dt
) em cada instante com erro da ordem de h2 .

4
21. Calcule os erros absoluto e relativo na representação do número x = 3
, por F L(x), no
sistema F P (2, 3, 1, A).

22. Um rectângulo mede 19cm ± 0.2 de largura e 31cm ± 0.5 de comprimento.

(a) Calcule a área deste rectângulo mostrando o intervalo dos valores possı́veis.
(b) Determine uma estimativa do valor da área deste rectângulo e calcule uma estimativa
do limite superior do erro absoluto da área do rectângulo.

23. Seja s = 0.5gt2 . Determine o limite superior para o erro relativo de s, sabendo unicamente
que tanto g como t estão afectados de erros relativos não superiores a 1%.

24. Suponha que x̄ = 2.475 tem 3 casas decimais correctas relativamente ao seu valor x.

(a) Determine uma estimativa para o limite superior do erro relativo.



(b) Dada a função f (x) = x − 2, determine uma estimativa para o limite superior do erro
relativo de f (x̄).

25. Obtenha um limite superior para o erro de que vem afectado o determinante de uma matriz
quadrada de ordem 2, sabendo que os seus elementos se encontram afectados de um erro
∆aij = .

26. A equação que modela a velocidade de um paraquedista em queda é dada por


gm
1 − e−(c/m)t

v(t) =
c
onde g é a aceleração devido à gravidade, c é o coeficiente de atrito e m a massa do para-
quedista. Estime o erro de v, avaliado em t = 6, se g ≈ 9.8, m = 50 ± 0.5 e c = 12.5 ± 2.

21 José Duque
Matemática Computacional Generalidades

27. A fórmula de Manning para um canal rectangular pode ser escrita da forma

1 (BH)5/3
Q= 2/3
S 1/2
n (B + 2H)

onde Q = f luxo, n = coef iciente de rugosidade, B = largura, H = prof undidade e


S = declive. Esta fórmula vai ser aplicada numa corrente em que se sabe que a largura é
20 m e a profundidade 0.3 m. Infelizmente a rugosidade e o declive só são conhecidos com
a precisão de ±0.01. Sabe-se que a rugosidade é aproximadamente 0.03 e o declive 0.0003.
Analise a precisão do cálculo do fluxo relativamente a estes dois factores. Qual das duas
grandezas devemos medir com mais precisão?

π
28. Sejam a = π, ā = 3.14, b = 2
e b̄ = 1.57.

(a) Determine os erros relativos das aproximações sin(3.14) e sin(1.57), dos valores exactos
sin(a) e sin(b), respectivamente.
(b) Qual dos números de condicionamento cond(sin, 3.14) e cond(sin, 1.57) será maior?

1− 1+x2
29. Pretende-se calcular valores da expressão x
, para x na vizinhança de zero.
Como deve ser reescrita a expressão de modo a evitar a perda de dı́gitos significativos devido
ao cancelamento subtractivo?
p
30. Considere a função real h(x, y) = x2 + y − x.
Mostre que o cálculo de valores desta função é um problema bem condicionado se y > 0 e
mal condicionado se y ≈ −x2 .

x + y = 1
31. O sistema é ou não bem condicionado?
1.1x + y = 2

José Duque 22
Capı́tulo 2

Zeros de funções

O deslocamento, num dado instante, de uma estrutura em oscilação pode ser calculado pela
expressão
y = 10e−0.5t cos(2t).

Se pretendermos saber o tempo necessário para o deslocamento ser igual a quatro, temos de
resolver a equação
10e−0.5t cos(2t) = 4

que é o mesmo que encontrar os zeros da função

f (t) = 10e−0.5t cos(2t) − 4.

Os métodos analı́ticos estudados até agora não permitem saber o valor exacto da solução. Neste
capı́tulo iremos abordar alguns métodos numéricos que permitem calcular o valor (aproximado)
das soluções de uma equação não linear. Antes de procurarmos essa aproximação devemos pri-
meiro garantir que existe, pois uma equação não linear pode não ter solução, ter uma única,
várias soluções ou até infinitas soluções. A maior parte dos métodos estudados exigem um estudo
preliminar da função para estabelecer a existência de soluções e fornecer localizações (grosseiras)
delas.
Os métodos seguintes são métodos numéricos, ou seja, constroem uma sucessão x0 , x1 , ..., a qual,
caso exista convergência, irá convergir para o zero desejado.
A utilização dum método iterativo implica vários problemas que devem ser resolvidos:

• Construção da fórmula de recorrência xn+1 = F (xn , xn−1 , ...);

• Estudo da convergência da sucessão x0 , x1 , ...;

• Estudo da velocidade de convergência.

Uma vez que é impraticável realizar um número infinito de iterações é necessário parar num
determinado termo xn . Este facto leva-nos obrigatoriamente a escolher um critério para decidirmos
em qual termo parar. O critério mais simples é indicar um número máximo de iterações, ou seja,
à partida é estipulado o número n de iterações. Como nem sempre sabemos a velocidade de

23
Matemática Computacional Zeros de funções

convergência este critério pode tornar-se pouco eficiente, no caso geral. Um critério mais eficiente
é o erro absoluto da estimativa. O principal problema reside no cálculo do erro, pois o valor exacto
não é conhecido, obviamente. Esse problema pode ser contornado através de uma estimativa do
erro absoluto da forma
Ea (xn ) ≈ |xn − xn−1 |.
Assim podemos estipular de inı́cio qual o erro absoluto máximo que é permitido para a estimativa
desejada.
Da mesma forma, podemos considerar uma estimativa do erro relativo da forma
|xn − xn−1 |
Er (xn ) ≈ .
|xn |
Como qualquer um destes critérios pode fornecer uma solução ainda longe do pretendido existe
ainda outro critério de paragem que é quando o valor da função é suficientemente próximo de zero,
isto é, |f (xn )| < tol.
Depois de garantida a convergência, podemos analisar a velocidade. Para classificarmos os métodos
em função da velocidade precisamos da seguinte definição.

Definição 13 Consideremos en = x∗ − xn .
Diz-se que um método numérico tem ordem de convergência p ≥ 1 se existir uma constante K > 0
tal que
|en+1 |
lim =K
n→∞ |en |p

Ao valor K chamamos factor de convergência.

Se p = 1 dizemos que a convergência é linear.


Se p = 2 denomina-se convergência quadrática.
No caso geral se p > 1 diz-se convergência supra linear.
Assim se um método tem uma elevada ordem de convergência vai fornecer uma ”boa”estimativa
com poucas iterações. No caso de dois métodos com a mesma ordem de convergência, será mais
rápido aquele que tiver um factor de convergência inferior.

2.1 Localização dos zeros


Antes de aplicarmos um método numérico, temos de determinar um intervalo onde se localiza o
zero que se pretende aproximar. A escolha desse intervalo depende de várias condições impostas
pelo método em causa. Geralmente os métodos exigem que o intervalo seja escolhido de forma a
garantir uma única solução nesse intervalo.
A localização das raı́zes de uma equação consiste em determinar tantos intervalos disjuntos quantas
as raı́zes reais e distintas, de tal modo que, no interior de cada intervalo só exista uma raiz. O
método mais simples para localizar as raı́zes de f (x) = 0 consiste em representar graficamente a
função f e identificar os pontos de intersecção de f com o eixo OX.

José Duque 24
2.1 Localização dos zeros Matemática Computacional

Exemplo 14 Localize os zeros de f (x) = ex + sin(x) − 2.


Resposta
O gráfico de f é mostrado na figura 2.1.

Figura 2.1: Gráfico de f

Então podemos afirmar que f tem um zero no intervalo [0, 1]. 

Por vezes o gráfico de funções é algo complicado de desenhar e analisar adequadamente. Pode
tornar-se mais vantajoso representar duas funções, que estejam relacionadas com f , se tiverem
expressões mais simples ou os gráficos forem conhecidos. Assim, se f é separada em duas funções

f (x) = g(x) − h(x)

desta forma
f (x) = 0 ⇔ g(x) = h(x)

e os zeros reais de f são os pontos de intersecção das duas funções g e h.

Exemplo 15 Localizar os zeros de f (x) = ex + sin(x) − 2.


Resposta
Podemos considerar g(x) = ex e h(x) = −sin(x) + 2. Os dois gráficos são fáceis de desenhar, como
mostra a figura 2.2. Donde se conclui que a intersecção se verifica no intervalo [0, 1]. 

A representação gráfica, geralmente, não é muito rigorosa, por isso é necessário uma confirmação
analı́tica. Para provar a existência de solução vamos utilizar o corolário seguinte.

Corolário 16 (Do teorema de Bolzano) Se f é contı́nua em [a, b] e f (a) × f (b) < 0 então
∃x∗ ∈ [a, b] : f (x∗ ) = 0.

Para a unicidade podemos utilizar o corolário do teorema de Rolle.

25 José Duque
Matemática Computacional Zeros de funções

Figura 2.2: Gráficos de g e h

Corolário 17 (Do teorema de Rolle) Seja f diferenciável em [a, b] então

• se f 0 > 0 ∀x ∈ [a, b] então f é crescente em [a, b].

• se f 0 < 0 ∀x ∈ [a, b] então f é decrescente em [a, b].

Pegando neste corolário para provar a unicidade de um zero basta garantir que f é monótona, ou
seja, f 0 (x) não se anula no intervalo desejado.

Exemplo 18 Considere a função


f (x) = x − tg(x)
Localize a maior raiz negativa de f .
Resposta
Como f (x) = 0 ⇔ x = tg(x) representando graficamente estas duas funções:

José Duque 26
2.1 Localização dos zeros Matemática Computacional

Logo concluı́mos que a raiz x∗ ∈ [− 3π


2 , −π] ≈ [−4.71; −3.14]. Como um desenho pode enganar, vamos
fazer a confirmação algébrica ou analı́tica.
Para mostrarmos a existência de uma raiz da equação f (x) = 0 no intervalo [a, b] utilizamos um corolário
do teorema de Bolzano.
Observe-se que em [− 3π 3π
2 , −π] não se pode verificar as condições do teorema de Bolzano porque f (− 2 )
não se pode calcular.
Então teremos de reduzir a amplitude do intervalo que contêm a raiz procurada, ampliando a zona da
intersecção temos:

Suponhamos que x∗ ∈ [−4.6; −4.4]


A função identidade é contı́nua em todo o R, e a função tg é contı́nua em todo o seu domı́nio, que é
R \ { π2 Z
+ kπ, k ∈ }, como [−4.6; −4.4] ⊂ Dtg , então f é um função contı́nua em [−4.6; −4.4], por ser a
subtracção de duas funções contı́nuas.

f (−4.6) = −4.6 − tg(−4.6) = 4.260174896

f (−4.4) = −4.4 − tg(−4.4) = −1.303676219

logo
f (−4.6) × f (−4.4) < 0

Assim pelo Corolário do teorema de Bolzano ∃x∗ ∈ [−4.6; −4.4] : f (x∗ ) = 0.


Há que garantir que o intervalo [a, b] contém uma única raiz da equação f (x) = 0. Para garantir a
unicidade da raiz x∗ no intervalo [a, b] basta mostrar que f 0 não muda de sinal nesse intervalo.
Vamos então estudar o sinal de
1
f 0 (x) = 1 −
cos2 (x)
Primeiro vamos calcular os zeros de f 0 .

f 0 (x) = 0 ⇔ 1 −
1
cos2 (x)
= 0 ⇔ cos2 (x) = 1 ⇔ cos(x) = 1 ∨ cos(x) = −1 ⇔ x = kπ, k ∈ Z
27 José Duque
Matemática Computacional Zeros de funções

Como nenhum deste valores pertence ao intervalo considerado, f 0 toma sempre valores positivos ou ne-
gativos nesse intervalo, logo não muda de sinal e então a raiz é única. 

2.2 Método da bissecção


O corolário do teorema de Bolzano sugere um processo bastante simples para obter uma apro-
ximação do zero de uma função. Supondo que só existe um zero da função f no interior do
a+b
intervalo [a, b] o processo consiste em aproximar o zero pelo ponto médio desse intervalo c = 2
.
Se f (c) = 0 então encontrámos a solução. Caso contrário, temos o intervalo dividido em 2 subin-
tervalos [a, c] e [c, b]. Como o zero é único ele tem de estar num dos dois subintervalos. Para saber
qual basta aplicar de novo o corolário. O processo é repetido para o novo intervalo até se atingir
o critério prefixado.
Uma vez que o intervalo resultante vai ter metade da amplitude do anterior e o zero está sempre
no interior deste, a convergência é garantida. Para a sucessão resultante podemos deduzir que
1
|xn+1 − x∗ | ≈ |xn − x∗ |
2
Então
|en+1 | 1
lim =
n→∞ |en | 2
Logo a convergência é linear.
Uma vez que em cada passo o intervalo é bissectado ( dividido ao meio ), baptizamos este método
como método da Bissecção.
Vamos de seguida descrever, de uma forma resumida o método da Bissecção.
Começando com o intervalo I0 = [a0 , b0 ], a estimativa xk da raiz x∗ da equação f (x) = 0 é ponto
ak +bk
médio do intervalo Ik = [ak , bk ], k = 0, 1, 2, . . . , ie, xk = 2
.
O intervalo Ik+1 é determinado a partir de Ik = [ak ; bk ] da forma

f (ak ) × f (xk ) < 0 ⇒ Ik+1 = [ak , xk ]


f (ak ) × f (xk ) > 0 ⇒ Ik+1 = [xk , bk ]

A medida do erro absoluto |x∗ − xk | < ∆x = b−a


2k+1
, e do erro relativo Er (xk ) ≈ ∆x
|xk |

Exemplo 19 Utilizando o método da bissecção encontre uma aproximação xk , com 3 casas deci-
mais correctas, da maior raiz negativa de f (x) = x − tg(x).
Resposta
Antes de iniciar a determinação das estimativas da raiz procurada há que encontrar um intervalo [a, b]
que contém a única raiz da equação f (x) = 0 que procuramos. Como isso já foi feito no exemplo 18
vamos agora calcular as estimativas da raiz pretendida, considerando I0 = [−4.6, −4 − 4].
A aproximação inicial da raiz x∗ é

−4.6 + (−4.4)
x0 = = −4.5
2

José Duque 28
2.3 Método da Falsa posição (Corda Falsa) Matemática Computacional

Tem-se que f (x0 ) ≈ 0.137 logo x0 não é a raiz pedida.


De seguida bissecta-se o intervalo I0 em 2 subintervalos de igual amplitude [−4.6, x0 ] e [x0 , −4.4].
A raiz x∗ tem de estar contida num deles. Como

f (−4.6) × f (x0 ) > 0

então a raiz está em


I1 = [x0 , −4.4] = [−4.5, −4.4]

A primeira aproximação da raiz x∗ é


−4.5 + (−4.4)
x1 = = −4.45
2
e voltamos repetir o processo.
A tabela seguinte presenta os intervalos Ik , as sucessivas estimativas xk da raiz procurada, o valor de
f (xk ) e estimativas dos limites superiores do erro absoluto.

k Ik xk f (xk ) ∆x
0 [a, b] −4.5 1.3733205455118469 × 10−1 0.1
1 [x0 , b] −4.45 −7.2673142705204175 × 10−1 0.05
2 [x0 , x1 ] −4.475 −3.4193309600374455 × 10−1 0.025
3 [x0 , x2 ] −4.4875 −1.1607846046461390 × 10−1 0.0125
4 [x0 , x3 ] −4.49375 6.8868525229932587 × 10−3 0.00625
5 [x4 , x3 ] −4.490625 −5.5491255627766911 × 10−2 0.003125
6 [x4 , x5 ] −4.4921875 −2.4530830955612259 × 10−2 0.0015625
7 [x4 , x6 ] −4.49296875 −8.8797572271701597 × 10−3 0.00078125
8 [x4 , x7 ] −4.493359375 −1.0109716401869306 × 10−3 0.000390625

como querı́amos com 3 casas decimais correctas temos de ter ∆x < 0.5 × 10−3 . Para a estimativa x7
o erro é ∆x = b−a
28
= 0.78125 × 10−3 > 0.5 × 10−3 e para x8 é ∆x = b−a
29
= 0.390625 × 10−3 < 0.5 × 10−3
logo a estimativa pedida é x8 = −4.493359375. 

2.3 Método da Falsa posição (Corda Falsa)


A convergência do método da bissecção é bastante lenta e não depende de f (x). Apenas o sinal
de f (x) é considerado. Usando os valores de f (x) podem obter-se métodos mais rápidos. Por
exemplo, se f (a) for mais próximo de zero que f (b) é mais provável que a solução esteja mais
próxima de a que de b. Um método alternativo que explora esta observação é unir os pontos
(a, f (a)) e (b, f (b)) por uma linha recta. Se forem satisfeitas as condições do corolário então essa
recta intersecta o eixo OX entre a e b. Esse ponto de intersecção é a nossa estimativa do zero.
Estamos a substituir a função por um corda que nos dá uma falsa posição do zero, daı́ o nome
método da Falsa Posição (ou corda falsa).
A recta que contém os pontos (a, f (a)) e (b, f (b)) tem a equação
f (b) − f (a) f (b) − f (a)
y= x + f (b) − b
b−a b−a

29 José Duque
Matemática Computacional Zeros de funções

A intersecção dessa recta com o eixo da abcissas é

b−a
x = b − f (b)
f (b) − f (a)

Assim o método da falsa posição divide o intervalo em 2: [a, x] e [x, b] com x obtido pela equação
anterior. À semelhança do método da bissecção vamos agora escolher qual o intervalo onde se
encontra o zero pretendido, aplicando o corolário do teorema de Bolzano.
De uma forma geral a estimativa xk pertence ao intervalo Ik = [ak , bk ] e é tal que

b k − ak
xk = bk − f (bk )
f (bk ) − f (ak )

e o intervalo Ik+1 é tal que

f (ak ) × f (xk ) < 0 ⇒ Ik+1 = [ak , xk ]


f (ak ) × f (xk ) > 0 ⇒ Ik+1 = [xk , bk ]

Uma estimativa do limite superior do erro absoluto pode ser dado por ∆x = max{xk −ak , bk −xk }.
No entanto esta fórmula para o erro é pouco prática, pois não tende para zero. Este método não
possui um desempenho muito grande atendendo à série de testes realizados em cada iteração.
No entanto pode ser melhorado se impusermos a condição f 00 (x) 6= 0 ∀x ∈ [a, b]. Se isto se
verificar podemos fixar um dos extremos e retirar a parte que decide qual o intervalo seguinte.
Se f 00 (x) × f (a) > 0 fixamos o extremo a, caso contrário fixamos o b. Em qualquer dos casos
anteriores podemos afirmar que a convergência é linear.

Exemplo 20 Determine, utilizando o método da corda falsa uma aproximação xk da maior raiz
negativa da equação f (x) = x − tg(x) = 0, tal que |f (xk )| < 10−3 e defina um limite superior do
erro absoluto da última aproximação.
Resposta
Já verificámos que x∗ ∈ [−4.6; −4.4] = I0 . Logo a aproximação inicial é

−4.4 − (−4.6)
x0 = −4.4 − f (−4.4) = −4.446862369
f (−4.4) − f (−4.6)

Tem-se f (x0 ) = −0.769689209.


Como f (−4.6) × f (x0 ) < 0 então I1 = [−4.6; x0 ]
A primeira aproximação é
x0 − (−4.6)
x1 = x0 − f (x0 )
f (x0 ) − f (−4.6)

−4.446862369 − (−4.6)
x1 = −4.446862369 − f (−4.446862369) = −4.470296080
f (−4.446862369) − f (−4.6)

José Duque 30
2.4 Método de Newton-Raphson Matemática Computacional

A tabela seguinte contém as restantes iterações

k Ik xk f (xk )
0 [a0 , b0 ] −4.446862369 −0.769689209
1 [a0 , x0 ] −4.470296080 −0.420665082
2 [a0 , x1 ] −4.481952516 −2.19447009 × 10−1
3 [a0 , x2 ] −4.487735407 −1.11575111 × 10−1
4 [a0 , x3 ] −4.490600606 −5.59710345 × 10−2
5 [a0 , x4 ] −4.492019279 −2.78858715 × 10−2
6 [a0 , x5 ] −4.492721493 −1.38455910 × 10−2
7 [a0 , x6 ] −4.493069019 −6.86268958 × 10−3
8 [a0 , x7 ] −4.493240996 −3.39865853 × 10−3
9 [a0 , x8 ] −4.493326098 −1.68243176 × 10−3
10 [a0 , x9 ] −4.493368209 −8.32677114 × 10−4

A estimativa pedida é x10 = −4.493368209. 

2.4 Método de Newton-Raphson


O método de Newton, que iremos estudar, é talvez um dos métodos mais conhecidos e usados na
determinação de aproximações numéricas de raı́zes de equações não lineares. Para o definir iremos
começar por efectuar uma abordagem analı́tica fazendo depois a sua interpretação geométrica.
Seja f ∈ C 2 ([a, b]), isto é, f é derivável duas vezes e a segunda derivada é contı́nua, e consideremos
x∗ ∈ [a, b] a única raiz de f (x) = 0 nesse intervalo.
Pela fórmula de Taylor temos que

f 00 (ξ)
f (xi+1 ) = f (xi ) + f 0 (xi )(xi+1 − xi ) + (xi+1 − xi )2
2
onde ξ pertence ao intervalo formado por xi e xi+1 contido em [a, b]. Se ignorarmos o erro obtemos

f (xi+1 ) ≈ f (xi ) + f 0 (xi )(xi+1 − xi )

Se xi+1 for uma aproximação da solução x∗ então f (xi+1 ) ≈ 0. Logo

0 = f (xi ) + f 0 (xi )(xi+1 − xi )

pode ser resolvido da forma


f (xi )
xi+1 = xi − (2.1)
f 0 (xi )
A fórmula (2.1) é a fórmula usual do método de Newton-Raphson.
Pela fórmula de Taylor também podemos obter uma estimativa do erro.
Se supusermos xi+1 = x∗ obtemos

f 00 (ξ) ∗
0 = f (xi ) + f 0 (xi )(x∗ − xi ) + (x − xi )2
2
31 José Duque
Matemática Computacional Zeros de funções

Recordemos que
0 = f (xi ) + f 0 (xi )(xi+1 − xi )

Subtraindo estas duas equações resulta

f 00 (ξ) ∗
0 = f 0 (xi )(x∗ − xi+1 ) + (x − xi )2
2

−f 00 (ξ) ∗
x∗ − xi+1 = (x − xi )2
2f 0 (xi )
Tomando módulos obtemos 00

−f (ξ) ∗
|x − xi+1 | = 0 |x − xi |2
2f (xi )
Donde se conclui que
|ei+1 | −f 00 (x∗ )

lim = 0 ∗
i→∞ |ei |2 2f (x )
Se f 0 (x) e f 00 (x) não se anularem em [a, b], a sucessão {xi } é monótona e limitada logo convergente.
Além disso converge para x∗ e a convergência é quadrática.
Vamos agora estabelecer, de uma forma exacta, as condições que deverão ser impostas para a
sucessão de aproximações geradas pelo método de Newton convergir para a raiz x∗ ∈ [a.b]

Teorema 21 Se

• f ∈ C 2 ([a, b])

• f (a) × f (b) < 0

• f 0 (x) 6= 0, ∀x ∈ [a, b]

• f 00 não muda de sinal em [a, b]



f (a) f (b)
• 0 ≤ b − a e 0 ≤ b − a ou existir x0 ∈ [a, b] tal que f (x0 )f 00 (x0 ) > 0
f (a) f (b)

a sucessão gerada pelo método de Newton converge para a única raiz x∗ de f (x) = 0 em [a, b].

É de notar que a quinta condição serve para escolher qual a estimativa inicial. No primeiro caso
qualquer x0 ∈ [a, b] serve. No segundo caso já é indicada a estimativa para iniciar o método.
A interpretação geométrica é bastante simples.
A estimativa xi+1 é a intersecção com o eixo OX da recta tangente de f em xi .
O método de Newton-Raphson possui vantagens e desvantagens em relação ao método da bis-
secção. As grandes desvantagens residem no facto deste poder divergir e de haver necessidade de
calcular a derivada da função. Por outro lado o método de Newton converge muito rapidamente
o que faz com que seja um dos métodos mais eficazes para este tipo de problemas.

José Duque 32
2.4 Método de Newton-Raphson Matemática Computacional

Exemplo 22 Pretende-se determinar, utilizando o método de Newton uma aproximação da maior


raiz negativa da função
f (x) = x − tg(x)

com um erro relativo inferior a 10−5 .

1. Verifique as condições de convergência do método, quando aplicado a este problema.


Resposta
Já foi encontrado um intervalo [−4.6; −4.4] onde as condições (a) e (b) são satisfeitas.
Já vimos também que f 0 existe e não muda de sinal no intervalo dado.
Como f 0 (x) = −tg 2 (x)
1
f 00 (x) = −2tg(x)
cos2 (x)

Visto que [−4.6; −4.4] ⊂] − 2 , −π[ qualquer ângulo x ∈ [−4.6; −4.4] tem extremidade no segundo
quadrante, pelo que tg(x) < 0 e cos(x) 6= 0, ∀x ∈ [−4.6; −4.4].
Assim f 00 (x) > 0, ∀x ∈ [−4.6; −4.4]
Logo verificam-se todas as condições. 

2. Aplique o referido método para obter a estimativa pretendida.


Resposta
A estimativa inicial é x0 = −4.6 porque

f (−4.6) × f 00 (−4.6) > 0

Então a primeira estimativa x1 da raiz procurada é

f (x0 ) −4.6 − tg(−4.6)


x1 = x0 − = −4.6 − = −4.545732122
f 0 (x0 ) tg 2 (−4.6)

|x1 − x0 | | − 4.545732122 − (−4.6)|


Er (x1 ) ≈ = = 0.01193820413
|x1 | | − 4.545732122|
Como esta ainda não é a estimativa procurada continuamos os cálculos.
A tabela seguinte presenta as sucessivas estimativas xk e as estimativas do limite do erro relativo
de cada uma.
k xk Er
0 −4.6 − − −−
1 −4.545732122 1.193820413 × 10−2
2 −4.506145588 8.785009988 × 10−3
3 −4.49417163 2.664330378 × 10−3
4 −4.493412197 1.690103126 × 10−4
5 −4.493409458 6.09580478 × 10−7

Então a aproximação procurada é x5 = −4.493409458. 

33 José Duque
Matemática Computacional Zeros de funções

2.5 Método da Secante

A desvantagem que o método da Newton-Raphson apresenta ao ser necessário calcular a derivada


de uma função pode ser contornada pelo método da secante. Este método consiste em substituir
a derivada por uma aproximação numérica ( ver capı́tulo 1). Seja

f (xk ) − f (xk−1 )
f 0 (xk ) ≈
xk − xk−1

Substituindo na fórmula 2.1 obtemos

xk − xk−1
xk+1 = xk − f (xk ) (2.2)
f (xk ) − f (xk−1 )

Esta transformação faz com que seja necessário mais uma aproximação inicial para aproximar a
primeira derivada. Os critérios de convergência são os mesmos do método de Newton à excepção
da última condição que pode ser adaptada para a escolha de duas estimativas iniciais. Se

f (a) f (b)
f 0 (a) ≤ b − a e f 0 (b) ≤ b − a

então qualquer x0 , x1 ∈ [a, b] podem ser utilizados para iniciar o método. Por outro lado se
existirem x0 , x1 ∈ [a, b] tais que f (x0 )f 00 (x0 ) > 0 e f (x1 )f 00 (x1 ) > 0, então esses valores podem
ser estimativas iniciais. A simplificação prática tem uma consequência teórica. A convergência do
método da secante não é quadrática, mas sim de ordem

1+ 5
p= ≈ 1.618
2

Exemplo 23 Determine, com um erro relativo inferior a 10−5 e utilizando o método da secante
uma aproximação da maior raiz negativa da função

f (x) = x − tg(x)

Resposta
Já se verificou que no intervalo [−4.6, −4.4] se encontra uma única raiz e que são satisfeitas as condições
de convergência deste método.
Como f (−4.6) × f 00 (−4.6) > 0 então x0 = −4.6. Tem-se também que f (−4.58) × f 00 (−4.58) > 0 logo
podemos considerar x1 = −4.58
Assim

x1 − x0 −4.58 − (−4.6)
x2 = x1 − f (x1 ) = −4.58 − f (−4.58) = −4.535978494
f (x1 ) − f (x0 ) f (−4.58) − f (−4.6)

A tabela seguinte apresenta as sucessivas aproximações xk da raiz procurada, o valor da função calculada

José Duque 34
2.6 Método do ponto fixo Matemática Computacional

em xk e estimativa do limite superior do erro relativo em xk .

k xk f (xk ) Er (xk )
0 −4.6 4.260174896 − − −−
1 −4.58 2.929317456 − − −−
2 −4.535978494 1.073692909 9.704963561 × 10−3
3 −4.510506973 3.754039 × 10−1 5.647213751 × 10−3
4 −4.496813347 6.984767113 × 10−2 3.045184432 × 10−3
5 −4.493683095 5.532070857 × 10−3 6.965893976 × 10−4
6 −4.493413848 8.864096938 × 10−5 5.992036547 × 10−5
7 −4.493409464 1.2298022 × 10−7 9.756511253 × 10−7

Então a estimativa pedida é x7 = −4.493409464. 

2.6 Método do ponto fixo


Todos os métodos estudados até este momento se reportavam à equação f (x) = 0. Nesta secção
vamos abordar a solução de equações escritas na forma

x = g(x) (2.3)

É bom reconhecer que este modo de escrever a equação não constitui qualquer restrição relativa-
mente ao caso f (x) = 0, pois é sempre possı́vel transformar esta equação numa da foram x = g(x),
pondo, por exemplo
x = x + f (x)
| {z }
g(x)

Esta é apenas uma das transformações possı́veis, não sendo, portanto, a única nem necessariamente
a melhor.
A expressão 2.3 sugere imediatamente o seguinte esquema iteractivo

xk+1 = g(xk ) (2.4)

O ponto x∗ solução de (2.3) é um ponto que a função g transforma nele próprio, ou, por outras
palavras, um ponto fixo de g. Por esta razão, os métodos baseados nas expressões (2.3) e (2.4)
são conhecidos genericamente por métodos do ponto fixo.
A função g é chamada função de iteração do método.
A questão que se coloca neste momento é a seguinte: dada uma equação f (x) = 0 com raiz
x∗ ∈ [a, b], como escolher a função de iteração g de forma a que as aproximações dadas por (2.4)
converjam para x∗ ?
Em geral interessa que g(x) varie pouco com x. O caso ideal seria que g fosse constante. Para
responder a esta questão, consideremos o seguinte teorema

Teorema 24 Se

35 José Duque
Matemática Computacional Zeros de funções

• g é contı́nua e derivável em [a, b]

• g(x) ∈ [a, b], ∀x ∈ [a, b]

• |g 0 (x)| ≤ K < 1, ∀x ∈ [a, b]

então o ponto fixo é único e a sucessão gerada por (2.4) converge para esse ponto qualquer que
seja a aproximação inicial x0 ∈ [a, b].

Sobre a convergência não se consegue encontrar uma ordem de convergência, pois a convergência
depende da função g escolhida, embora no caso geral a convergência seja linear. Para justificar a
afirmação anterior podemos considerar

g(xn−1 ) − g(x∗ )
= g 0 (ξ)
xn−1 − x∗

|g(xn−1 ) − g(x∗ )| = |g 0 (ξ)||xn−1 − x∗ |

|xn − x∗ | = |g 0 (ξ)||xn−1 − x∗ |
|en+1 |
lim = |g 0 (x∗ )|
n→∞ |en |

Logo se g 0 (x∗ ) 6= 0 a convergência é linear, para a convergência ser supra linear temos de
garantir que g 0 (x∗ ) = 0
Podemos no entanto afirmar que se g1 e g2 são duas funções de iteração tais que

|g10 (x)| ≤ |g20 (x)| < 1, ∀x ∈ [a, b]

então a sucessão definida por xk+1 = g1 (xk ) converge mais rapidamente que a sucessão definida
por xk+1 = g2 (xk ). Assim seria preferı́vel escolher g1 , para aplicar o método, em vez de g2 .

Exemplo 25 Determine, utilizando o método do ponto fixo uma aproximação da maior raiz ne-
gativa da função
f (x) = x − tg(x)
com um erro relativo inferior a 10−5 .
Resposta
Já foi encontrado um intervalo [−4.6; −4.4] onde a 1a condição é satisfeita.
Vamos agora procurar a função de iteração.
Como f (x) = 0 ⇔ x = tg(x) uma possı́vel função de iteração é g(x) = tg(x). Mas
1
|tg 0 (x)| =
cos2 (x)
e
−4.6 ≤ x ≤ −4.4
cos(−4.4) ≤ cos(x) ≤ cos(−4.6)
cos2 (−4.6) ≤ cos2 (x) ≤ cos2 (−4.4)
1 1 1
cos2 (−4.4)
≤ cos2 (x)
≤ cos2 (−4.6)

José Duque 36
2.6 Método do ponto fixo Matemática Computacional

logo
1 1 1
10.58722095 = ≤ ≤ = 79.50269918
cos2 (−4.4) 2
cos (x) 2
cos (−4.6)
Assim |tg 0 (x)| > 10, ∀x ∈ [−4.6, −4.4] e não temos garantia de convergência da sucessão gerada por
(2.4), com g = tg.
A transformação da equação f (x) = 0 em x = arctg(x) também não funciona pois a possı́vel função de
iteração g(x) = arctg(x) tem contradomı́nio ] − π/2; π/2[ ∼
= ] − 1.57; 1.57[, logo não pode satisfazer a 2a
condição pretendida.
Tentemos procurar uma função de iteração da forma

0 = f (x) ⇔ x = x + pf (x), p ∈ R
Agora determina-se que valor atribuir a p de modo que a função de iteração

g(x) = x + pf (x)

satisfaça a condição
|g 0 (x)| ≤ M < 1, ∀x ∈ [−4.6; −4.4]

Mas |g 0 (x)| < 1 ⇔ −1 < g 0 (x) < 1 ⇔ −1 < 1 + pf 0 (x) < 1 ⇔ −2 < pf 0 (x) < 0.
Como f 0 (x) = −tg 2 (x) < 0, ∀x ∈ [−4.6; −4.4] então

pf 0 (x) < 0 ⇔ p > 0

Por outro lado


−2
−2 < pf 0 (x) ⇔ >p
f 0 (x)
Para termos
−2
p< , ∀x ∈ [−4.6; −4.4]
f 0 (x)
devemos tomar
−2
p< min
x∈[−4.6;−4.4] f 0 (x)

Considerando
−2 −2
h(x) = 0
=
f (x) −tg 2 (x)

−4 − 4tg 2 (x)
h0 (x) =
tg 3 (x)
Para x ∈ [−4.6; −4.4] o numerador é sempre negativo e o denominador é sempre negativo, então derivada
é positiva no intervalo dado, logo a função é crescente e o mı́nimo é obtido no extremo inferior do
intervalo, ie,
2 2
min = = 0.0254768321
x∈[−4.6;−4.4] tg 2 (x) tg 2 (−4.6)
Logo p < 0.0254768321
Desta forma a sequência de aproximações produzidas pela fórmula

xk+1 = xk + p (xk − tg(xk )) , k = 0, 1, 2, . . . (2.5)

37 José Duque
Matemática Computacional Zeros de funções

com 0 < p < 0.0254768321 converge para a raiz procurada.


Consideremos p = 0.025, x0 = −4.6 e apliquemos a fórmula (2.5)
x1 = x0 + 0.025(x0 − tg(x0 )) = −4.6 + .025(−4.6 − tg(−4.6)) = −4.493495628
|x1 − x0 | | − 4.493495628 − (−4.6)|
Er (x1 ) ≈ = = 0.02370189741
|x1 | | − 4.493495628|
Como esta ainda não é a aproximação procurada
x2 = x1 + 0.025(x1 − tg(x1 )) = −4.493495628 + .025(−4.493495628 − tg(−4.493495628)) = −4.493452114

|x2 − x1 | | − 4.493452114 − (−4.493495628)|


Er (x2 ) ≈ = = 9.683868637 × 10−6
|x2 | | − 4.493452114|
Logo a aproximação pedida é x2 = −4.493452114 

2.7 Método de Muller


Os métodos da corda falsa e secante têm como caracterı́stica comum aproximar a função por uma
recta. Esta ideia pode ser generalizada no sentido de usar polinómios de grau superior para aproxi-
mar f . É claro que, sendo necessário determinar analiticamente a intersecção do polinómio com o
eixo OX, não há grande margem de escolha, já que os únicos candidatos viáveis são os polinómios
de grau 2. O método de Muller consiste precisamente em interpolar f por uma parábola passando
por três pontos e tomar a intersecção desta com o eixo OX como a nova aproximação do zero.
Vamos procurar a parábola que contém os pontos (x0 , f (x0 )), (x1 , f (x1 )) e (x2 , f (x2 )). A cons-
trução é mais simples se escrevermos a parábola da forma

P2 (x) = a(x − x2 )2 + b(x − x2 ) + c

Como tem de conter os pontos (x0 , f (x0 )), (x1 , f (x1 )) e (x2 , f (x2 )) os coeficientes a, b e c podem
ser obtidos pelas equações.
f (x0 ) = a(x0 − x2 )2 + b(x0 − x2 ) + c
f (x1 ) = a(x1 − x2 )2 + b(x1 − x2 ) + c
f (x2 ) = a(x2 − x2 )2 + b(x2 − x2 ) + c
A última equação permite concluir que c = f (x2 ). Com algumas manipulações matemáticas
podemos concluir que
b = f12 + f02 − f01 e a = f012
onde
f (xj ) − f (xi ) f12 − f01
fij = e f012 =
xj − xi x2 − x0
Os zeros do polinómio são obtidos com a fórmula resolvente. Para tornar mais estável vai ser
ligeiramente alterada da forma
−2c
x − x2 = √
b ± b2 − 4ac
ou seja a estimativa seguinte é
2f (x2 )
x3 = x2 − p
b± b2 − 4f012 f (x2 )

José Duque 38
2.7 Método de Muller Matemática Computacional

Esta expressão fornece dois valores, um correspondente ao sinal + e o outro ao sinal -, pelo que
se põe naturalmente a questão de saber qual deles se deve tomar. É usual escolher o sinal que
minimiza |x3 − x2 |. Se b for real escolhendo o mesmo sinal de b obtemos o resultado desejado.
Se durante a pesquisa de zeros reais aparecerem iterações intermédias com valores complexos, é
corrente, para evitar ter de implementar o algoritmo em aritmética complexa, desprezar simples-
mente a parte imaginária.
O aparecimento de valores complexos pode, no entanto, constituir uma vantagem do método de
Muller quando se pretende obter zeros complexos de funções reais, pois permite o aparecimento de
aproximações complexas durante as iterações mesmo que se tenha partido de estimativas iniciais
reais, mais fáceis de estabelecer.
Pode demonstrar-se que, se os valores iniciais x0 , x1 e x2 estiverem suficientemente próximos do
zero procurado, o método de Muller converge, e a ordem de convergência é p ≈ 1.84, quase idêntica
à do método de Newton com a vantagem adicional de não recorrer a derivadas.

De uma forma resumida consideremos

w = fk−1,k + fk−2,k − fk−2,k−1 , k = 2, 3, . . .

então a estimativa é obtida por


2f (xk )
xk+1 = xk − p , k = 2, 3, . . .
w ±∗ w2 − 4fk−2,k−1,k f (xk )
em ∗ escolhe-se o sinal de w.
(A fi,j e fi,j,k vamos chamar diferenças divididas.)
f (xj ) − f (xi ) fk−1,k − fk−2,k−1
fi,j = , fk−2,k−1,k =
xj − xi xk − xk−2

Exemplo 26 Determine, utilizando o método de Muller, melhor aproximação possı́vel do zero da


função
f (x) = x − tg(x),
contido no intervalo [−4.6, −4.4].
Resposta
Para este método são precisas 3 aproximações iniciais. Podemos considerar por exemplo x0 = −4.6, x1 =
−4.4 e x2 = −4.5.
Vamos agora procurar a parábola que passa pelos pontos

(x0 , f (x0 )); (x1 , f (x1 )); (x2 , f (x2 ))

ou seja, pelos pontos

(−4.6, 4.260174896), (−4.4, −1.303676219), (−4.5, 0.137332055)

39 José Duque
Matemática Computacional Zeros de funções

Pelas fórmulas atrás


f (x1 ) − f (x0 ) −1.303676219 − 4.260174896
f01 = = = −27.81925558
x1 − x0 −4.4 + 4.6
f (x2 ) − f (x1 ) 0.137332055 + 1.303676219
f12 = = = −14.41008274
x2 − x1 −4.5 + 4.4
f (x2 ) − f (x0 ) 0.137332055 − 4.260174896
f02 = = = −41.22842841
x2 − x0 −4.5 + 4.6
f12 − f01 −14.41008274 + 27.81925558
f012 = = = 134.0917284
x2 − x0 −4.5 + 4.6

w = f12 + f02 − f01 = −14.41008274 − 41.22842841 + 27.81925558 = −27.81925557


Logo a parábola que aproxima a função é da forma

P (x) = f (x2 ) + w(x − x2 ) + f012 (x − x2 )2 = 0.137332055 − 27.81925557(x + 4.5) + 134.0917284(x + 4.5)2

e o zero de P (x) mais próximo de x2 é


2f (x2 )
x3 = x2 − p
w + w2 − 4f012 f (x2 )
2 × 0.137332055
= −4.5 − p
−27.81925557 − (−27.81925557)2 − 4 × 134.0917284 × 0.137332055

= −4.4949400056
Para a seguinte iteração já temos
f (x2 ) − f (x1 )
f12 = = −14.41008274
x2 − x1
mas é preciso voltar a calcular as constantes

f (x3 ) − f (x2 )
f23 = = −20.98906559
x3 − x2
f (x3 ) − f (x1 )
f13 = = −14.05944429
x3 − x1
f23 − f12
f123 = = 69.29621302
x3 − x1

w = f23 + f13 − f12 = −20.63842714

2f (x3 )
x4 = x3 − p
w− w2 − 4f123 f (x3 )

= −4.4934240592
Os resultados de todas as iterações são

x3 =−4.4949400056
x4 =−4.4934240592
x5 =−4.4934094546
x6 =−4.4934094579
x7 =−4.4934094579


José Duque 40
2.8 Exercı́cios Matemática Computacional

2.8 Exercı́cios
1. Mostre que as equações seguintes têm pelo menos uma solução nos intervalos dados.

(a) (x − 2)2 − ln(x) = 0 , [1, 2] e [e, 4].


(b) 2xcos(2x) − (x − 2)2 = 0 , [2, 3] e [3, 4].

2. Considere a função
f (x) = x3 − x − 1.

Mostre f tem um único zero no intervalo [1, 2].

3. Localize graficamente as raı́zes reais das equações:

(a) cos(x) = x3
(b) ln(x) + x3 = 0
(c) |x| − ex = 0

4. Use o método da bissecção para aproximar a solução, com erro inferior a 10−1 , da equação
x + 0.5 + 2cos(πx) = 0, no intervalo [0.5, 1.0].

5. Quantas vezes terı́amos que aplicar o método da bissecção na pergunta anterior se quiséssemos
determinar xk de modo que |x∗ − xk | < 10−5 ?

6. Determine o número de iterações necessárias para aproximar, pelo método da bissecção e


com uma precisão 10−4 , a solução de x3 − x − 1 = 0, no intervalo [1, 2]. Determine tal
aproximação com a precisão indicada.

7. Localize graficamente as raı́zes da equação seguinte e determine um valor aproximado de


uma delas com uma casa decimal correcta, utilizando o método da bissecção.
3
ln(x) = 3 − x
2

8. Pretende-se construir um tanque cúbico com a capacidade de 25000 l. Calcule uma apro-
ximação para o comprimento do lado do tanque usando o método da bissecção 4 vezes e
indique a precisão do resultado.

9. Pretende-se calcular o zero de

f (x) = ln(x) − 10sin(x)

que se encontra no intervalo [3, π]

(a) Prove que realmente se encontra uma e uma só raiz de f (x) = 0 no intervalo [3, π]
(b) Encontre uma solução aproximada da raiz pretendida com erro absoluto inferior a 0.01,
utilizando o método da falsa posição.

41 José Duque
Matemática Computacional Zeros de funções

10. Considere a função f (x) = ln(4 − x2 ) − x.

(a) Faça a localização gráfica das raı́zes reais de f (x) = 0.


(b) Utilizando o método de Newton-Rapson aproxime, verificando as condições de con-
vergência, o valor da maior raiz real da equação f (x) = 0, com um erro não superior a
10−2 .
(c) Repita as alı́neas anteriores com f (x) = xcos(x) − ex

11. Localize graficamente a raiz real positiva, r, da equação ex + 2x2 − 2 = 0 e obtenha um valor
aproximado de r aplicando o método de Newton 2 vezes.

12. Seja a função g(x) = cos(x2 ) − 0.1x.

(a) Verifique que as condições de convergência do método de Newton-Rapson são satisfeitas


no intervalo [1.20, 1.22].
(b) Determine, usando o método referido, a melhor aproximação do zero pretendido e defina
uma estimativa do limite superior do erro relativo dessa aproximação.

13. Num escoamento com superfı́cie livre pode definir-se uma camada junto ao fundo (designada
por camada limite) onde as caracterı́sticas do escoamento são significativamente diferentes
das que se verificam acima dessa camada. Pode provar-se que a espessura da camada limite
é δ = 5z, sendo z, para um escoamento com determinadas caracterı́sticas, dado por

|z|log10 |75z| = 2.

(a) Localize graficamente as raı́zes reais desta equação.


(b) Determine a segunda aproximação dada pelo método de Newton para a espessura da
camada limite, δ.
(c) Indique um limite superior para o erro cometido na aproximação obtida na alı́nea
anterior.

14. Localize graficamente as raı́zes das equações seguintes e determine um valor aproximado de
uma delas com uma casa decimal correcta, utilizando o método da secante.

(a) ln(x) = 3 − 32 x
(b) |x| − ex−1 = 0

15. Considere a função g(x) = cos(x2 ) − 0.1x que tem um zero em [1.20, 1.22].
Defina uma estimativa para o zero de g, recorrendo ao método da secante e estime o erro
cometido.

16. Pretende-se calcular as raı́zes da equação

x3 − 2.2x2 + 1.45x − 0.264 = 0.

José Duque 42
2.8 Exercı́cios Matemática Computacional

(a) Verifique que as raı́zes da equação estão no intervalo [0, 2] e separe-as.

(b) Recorra ao método da secante para determinar estimativas xk das raı́zes, tais que
|xk − xk−1 | < 10−3 .

17. Pretende-se determinar a raiz da equação x2 − x − 2 = 0, contida em [1.5; 3] recorrendo ao


método do ponto fixo.

(a) Diga para cada uma das seguintes funções se podem ser usadas como função de iteração
do método referido, com garantia de haver convergência.
√ 2
g(x) = x2 − 2, g(x) = x + 2, g(x) = 1 +
x

(b) Determine uma estimativa da raiz pretendida efectuando quatro iterações, com cada
função de iteração e determine estimativas do limite superior do erro absoluto.

18. Obtenha uma aproximação xk da raiz positiva da equação x3 + x2 + 10x − 20 = 0, pela


iteração do ponto fixo, de modo que |xk − xk−1 | < 0.15.

19. A excentricidade da órbita de Vénus é dada por E = 0.007. Resolva a equação de Kepler

f (x) = x − E sin(x) − z = 0 ⇔ x − 0.007sin(x) − z = 0

para z = 0.7
Resolva a mesma equação para E = 0.5 e z = 0.7

20. A função f (x) = x − cotg(x) tem um zero em [0.8, 0.9].

(a) Transforma a equação f (x) = 0 noutra equivalente x = g(x) de modo que seja satisfeita
a condição |g 0 (x)| < 1, ∀x ∈ [0.8, 0.9].

(b) Aplique 5 vezes o método do ponto fixo para obter uma aproximação da raiz pretendida,
partindo de x0 = 0.8 e defina uma estimativa do erro dessa aproximação.

21. Encontre uma aproximação da raiz de x3 − x − 1 = 0, contida no intervalo [0, 2], utilizando
o método de Muller.

22. Pretende-se encontrar as raı́zes de x3 + 2x2 − 0.75x + 6.75. Utilize o método de Muller para
as obter. Resolva o mesmo problema utilizando o método de Newton.

23. A equação de Kepler, usada para calcular as órbitas dos satélites, é

M = x − Esin(x).

Dado E = 0.2, resolva a equação, usando um método à sua escolha, para M = 0.5, com
quatro casas decimais correctas.

43 José Duque
Matemática Computacional Zeros de funções

24. DeSantis(1976) deduziu uma relação para o factor de compressibilidade dos gases reais da
forma
1 + y + y2 − y3
z= ,
(1 − y)3
b
onde y = 4v
, sendo b a correcção de van der Waals e v o volume molar. Considerando
z = 0.892, calcule, através de um método à sua escolha, o valor de y.

25. O deslocamento de uma estrutura sujeita a oscilação pode ser definido por

y = 8e−kt cos(wt)

onde k = 0.5 e w = 3.

(a) Use o método gráfico para calcular uma estimativa inicial do tempo necessário para
que o deslocamento seja 4.
(b) Utilize o método de N ewton para melhorar a estimativa inicial até atingir o erro relativo
inferior a 0.01.
(c) Obtenha outra estimativa, com erro relativo inferior a 0.01, utilizando o método da
secante.

26. A concentração de uma bactéria poluente num lago decresce segundo

c(t) = 70e−1.5t + 25e−0.075t .

Determine o tempo necessário para que a concentração seja 9. Utilize o método da corda
falsa até obter um erro absoluto inferior a 10−3 .

27. A velocidade de ascensão de um foguetão pode ser calculada pela fórmula seguinte
 
m0
v = u ln − gt
m0 − qt

onde v é a velocidade de ascensão, u é a velocidade, em relação ao foguetão, à qual o


combustı́vel é expelido, m0 é a massa inicial do foguetão, q é a razão à qual o combustı́vel é
consumido e g é a aceleração descendente devido à gravidade ( que se supõe constante igual
a 9.8 m/s2 ).
Se u = 2200 m/s, m0 = 160000 kg e q = 2680 kg/s, calcule o instante em que v = 1000 m/s.
Determine a aproximação com erro relativo inferior a 1%, através do método do ponto fixo.

José Duque 44
Capı́tulo 3

Extremos de Funções

O crescimento de uma levedura utilizada para produzir um antibiótico depende da concentração


do substrato sobre o qual é cultivada. Supondo que a concentração do substrato é um valor c, que
por simplicidade vamos considerar sem unidades, então o crescimento g é dado por
2c
g(c) = .
4 + 0.8c + c2 + 0.2c3
Para optimizar o processo de obtenção do antibiótico o ideal é que o crescimento seja o máximo
possı́vel. Representando graficamente estas duas grandezas observa-se que existe um valor de c
para o qual g é máximo, mas não permite obter esse valor com bastante precisão.

Este capı́tulo pretende descrever técnicas para encontrar o valor mı́nimo ou máximo de uma
função f . Para começar vamos definir o que são máximos e mı́nimos.

Definição 27 Se a é um ponto do domı́nio de f tal que f (x) ≤ f (a) ( f (x) ≥ f (a) ) para todo x
pertencente ao domı́nio, então diz-se que f tem um máximo ( mı́nimo ) absoluto em x = a, que
vale f (a).
Se isto se verificar apenas num subintervalo do domı́nio contendo a, então diz-se que f tem um
máximo ( mı́nimo ) relativo em x = a, que vale f (a).

Prova-se facilmente que os extremos de uma função são pontos onde a derivada é nula ou des-
contı́nua. Aos valores onde a derivada é nula ou descontı́nua vamos chamar pontos crı́ticos, pois

45
Matemática Computacional Extremos de Funções

vão ser os candidatos a pontos extremos. Para decidirmos se são ou não pontos extremos aplicamos
o teorema seguinte.

Teorema 28 Seja f uma função derivável, possuindo um ponto crı́tico x = a, então:

• Se a derivada de f é positiva à esquerda de x = a e é negativa à direita de x = a, então


x = a é um ponto de máximo de f .

• Se a derivada de f é negativa à esquerda de x = a e é positiva à direita de x = a, então


x = a é um ponto de mı́nimo para f .

Exemplo 29 Encontre os extremos locais e globais de

f (x) = −3x4 − 4x3 + 12x2 + 5

utilizando métodos analı́ticos.


Resposta
Para calcularmos os extremos de uma função vamos primeiro calcular os candidatos a extremantes. Esses
candidatos são os zeros e pontos extremos do domı́nio da função derivada.

f 0 (x) = −12x3 − 12x2 + 24x

f 0 (x) = 0 ⇔
−12x3 − 12x2 + 24x = 0 ⇔
x(−12x2 − 12x + 24) = 0 ⇔
x = 0 ∨ −12x2 − 12x + 24 = 0 ⇔
x = 0 ∨ x = −2 ∨ x = 1
Agora vamos construir uma tabela de sinal da função derivada.

x −∞ −2 0 1 +∞
x − − − 0 + + +
−12x2 − 12x + 24 − 0 + + + 0 −
f 0 (x) + 0 − 0 + 0 −
max 5 max
f (x) % 37 & min % 10 &

Podemos então concluir que f tem:


um máximo absoluto igual a 37, em x = −2
um máximo relativo em x = 1 que vale 10
um mı́nimo relativo igual a 5, para x = 0. 

Esta técnica é bastante exacta, mas só é praticável com um conjunto de funções muito restrito.
A função tem de ter uma derivada relativamente fácil de calcular e analisar e os zeros da derivada
devem ser possı́veis de calcular analiticamente. Quando alguma destas condições falha é preferı́vel
utilizar métodos numéricos.

José Duque 46
3.1 Método da secção dourada Matemática Computacional

3.1 Método da secção dourada

O método da secção dourada utiliza o espı́rito do método da bissecção. Por simplicidade vamos
analisar apenas o caso de calcular o máximo. Primeiro é necessário obter um intervalo [a, b] onde a
função tenha um e só um máximo. O passo seguinte é encontrar um intervalo mais pequeno onde
ainda esteja o máximo. Em vez de usar o valor da função num só ponto como faz o método da
bissecção, é necessário dois pontos para detectar a localização do máximo. Para evitar o cálculo
da função em muitos pontos temos de escolher cuidadosamente os pontos intermédios de forma a
manter alguns de uma iteração para a outra. Este resultado é obtido utilizando a razão de ouro,

5−1
número conhecido desde a antiguidade. Seu valor é φ = 2
. Então os dois pontos interiores c e
d são obtidos por

c = b − φ(b − a), d = a + φ(b − a)

Avaliando a função nestes dois pontos podem ocorrer dois casos, como mostram as figuras 3.1 e
3.2:

• Se f (c) < f (d) então o valor aproximado do maximizante é d e o valor exacto do maximizante
tem de estar no intervalo [c, b]. Logo c converte-se em a e d é o valor de c na iteração seguinte.
Ficamos com um novo intervalo mas de menor amplitude.

• Caso contrário, isto é, se f (c) ≥ f (d) o valor aproximado do maximizante é c e o valor exacto
do maximizante está no intervalo [a, d]. Na iteração seguinte c converte-se em d e d em b.

Figura 3.1: f (c) < f (d) Figura 3.2: f (c) ≥ f (d)

À medida que as iterações se vão repetindo o intervalo contendo o extremante vai sendo reduzido
rapidamente, o que garante a convergência.
Da mesma forma como para o método da bissecção vamos deduzir um majorante do erro. Con-
sideremos por exemplo o primeiro caso. Como a estimativa é d e o valor exacto está em [c, b], o

47 José Duque
Matemática Computacional Extremos de Funções

valor máximo para o erro é max{d − c, b − d}

d − c = a + φ(b − a) − b + φ(b − a) b − d = b − a − φ(b − a)


= (a − b) + 2φ(b − a) = (b − a) − φ(b − a)
= (2φ − 1)(b − a) = (1 − φ)(b − a)
≈ 0.236(b − a) ≈ 0.382(b − a)

Então o erro máximo é ∆ = (1 − φ)(b − a). Para o segundo caso os cálculos são idênticos pois os
intervalos são simétricos.
No caso de pretendermos minimizar a única coisa que se altera são as desigualdades dos testes
para a escolha do novo intervalo.
De um modo geral temos √
5−1
φ=
2
Ik = [ak , bk ], ck = bk − φ(bk − ak ) , dk = ak + φ(bk − ak ), k = 0, 1, . . .

M aximizar M inimizar
f (ck ) < f (dk ) ⇒ Ik+1 = [ck , bk ], xk = dk f (ck ) < f (dk ) ⇒ Ik+1 = [ak , dk ], xk = ck
f (ck ) ≥ f (dk ) ⇒ Ik+1 = [ak , dk ], xk = ck f (ck ) ≥ f (dk ) ⇒ Ik+1 = [ck , bk ], xk = dk
Uma estimativa do erro pode ser calculada por

Ea (xk ) ≤ (1 − φ)(bk − ak )

Exemplo 30 Seja a função


f (x) = −1.5x6 − 2.4x4 + 12x

1. Utilize métodos analı́ticos para provar que a função é côncava para todo x ∈ R.
Resposta
Para determinarmos as concavidades temos de analisar a segunda derivada de f .
f 0 (x) = −9x5 − 9.6x3 + 12
f 00 (x) = −45x4 − 28.8x2
f 00 (x) = 0 ⇔ x2 (−45x2 − 28.8) = 0 ⇔ x = 0 ∨ x2 = −0.64 ⇔ x = 0
Falta agora construir um quadro de sinais da segunda derivada.

x −∞ 0 +∞
f 00 (x) − 0 −
T T
f (x)

Podemos então concluir que a função tem sempre a concavidade voltada para baixo. 

2. Calcule uma estimativa do valor de x ∈ [0, 2] que maximiza f (x) utilizando o método da
secção dourada e efectuando 3 iterações. Calcule uma estimativa do erro cometido.
Resposta
a0 = 0, b0 = 2
primeira iteração

José Duque 48
3.2 Método da interpolação quadrática Matemática Computacional

c0 = b0 − φ(b0 − a0 ) = 2 − φ(2 − 0) = 0.7639320225


d0 = a0 + φ(b0 − a0 ) = 0 + φ(2 − 0) = 1.236067977
f (c0 ) = 8.051653276 e f (d0 ) = 3.880434609 logo
f (c0 ) > f (d0 ) então a1 = a0 e b1 = d0 .

segunda iteração
c1 = b1 − φ(b1 − a1 ) = 1.236067977 − φ(1.236067977 − 0) = 0.4721359548
d1 = a1 + φ(b1 − a1 ) = 0 + φ(1.236067977 − 0) = 0.7639320225
f (c1 ) = 5.529760903 e f (d1 ) = 8.051653276 logo
f (c1 ) < f (d1 ) então a2 = c1 e b2 = b1 .

terceira iteração
c2 = b2 − φ(b2 − a2 ) = 1.236067977 − φ(1.236067977 − 0.4721359548) = 0.7639320225
d2 = a2 + φ(b2 − a2 ) = 0.4721359548 + φ(1.236067977 − 0.4721359548) = 0.9442719096
f (c2 ) = 8.051653276 e f (d2 ) = 8.359826234 logo
f (c2 ) < f (d2 ) então estimativa pedida é 0.9442719096
Erro Ea ≤ (1 − φ)(b2 − a2 ) = (1 − φ)(1.236067977 − 0.4721359548) = 0.2917960674 

3.2 Método da interpolação quadrática


A interpolação quadrática aproveita o facto de as funções contı́nuas se comportarem, junto aos
extremos, de uma forma semelhante a uma parábola. Assim para determinarmos uma aproximação
de um extremo vamos aproximar a função por um polinómio de grau 2. Para definirmos um
polinómio de grau 2 necessitamos de 3 pontos. Sejam eles x0 , x1 e x2 . Calculando a expressão do
polinómio, derivando, igualando a zero e resolvendo em função do extremo obtemos a fórmula
f (x0 )(x21 − x22 ) + f (x1 )(x22 − x20 ) + f (x2 )(x20 − x21 )
x3 =
2f (x0 )(x1 − x2 ) + 2f (x1 )(x2 − x0 ) + 2f (x2 )(x0 − x1 )
Assim obtemos x3 que é uma aproximação do extremo de f , como mostra a figura 3.3 Para en-
contrarmos outras aproximações repetimos o processo. Uma vez que para definir uma parábola
só necessitamos de 3 pontos temos de eliminar um. Aqui pode-se fazer um raciocı́nio semelhante
ao utilizado no método da razão de ouro ou mais simplesmente eliminamos o x0 e assim sucessi-
vamente. A fórmula iterativa neste último caso é:
f (xk−2 )(x2k−1 − x2k ) + f (xk−1 )(x2k − x2k−2 ) + f (xk )(x2k−2 − x2k−1 )
xk+1 = k = 2, 3, . . .
2f (xk−2 )(xk−1 − xk ) + 2f (xk−1 )(xk − xk−2 ) + 2f (xk )(xk−2 − xk−1 )
Exemplo 31 Seja a função
f (x) = −1.5x6 − 2.4x4 + 12x
Calcule uma estimativa do valor de x ∈ [0, 2] que maximiza f (x) aplicando 3 vezes o método da
interpolação quadrática com x0 = 0, x1 = 1 e x2 = 2. Indique uma estimativa do erro absoluto da
última aproximação.

49 José Duque
Matemática Computacional Extremos de Funções

Figura 3.3: Primeira iteração do método da interpolação quadrática

Resposta
Sejam então x0 = 0, x1 = 1 e x2 = 2 como no enunciado e apliquemos a fórmula anterior
f (x0 ) = f (0) = 0, f (x1 ) = f (1) = 8.1 e f (x2 ) = f (2) = −110.4
f (x0 )(x21 − x22 ) + f (x1 )(x22 − x20 ) + f (x2 )(x20 − x21 )
x3 = =
2f (x0 )(x1 − x2 ) + 2f (x1 )(x2 − x0 ) + 2f (x2 )(x0 − x1 )
f (0)(12 − 22 ) + f (1)(22 − 02 ) + f (2)(02 − 12 )
= =
2f (0)(1 − 2) + 2f (1)(2 − 0) + 2f (2)(0 − 1)
= 0.5639810427
f (x3 ) = 6.476690893

f (x1 )(x22 − x23 ) + f (x2 )(x23 − x21 ) + f (x3 )(x21 − x22 )


x4 = =
2f (x1 )(x2 − x3 ) + 2f (x2 )(x3 − x1 ) + 2f (x3 )(x1 − x2 )
f (1)(22 − 0.56398104272 ) + f (2)(0.56398104272 − 12 ) + f (0.5639810427)(12 − 22 )
= =
2f (1)(2 − 0.5639810427) + 2f (2)(0.5639810427 − 1) + 2f (0.5639810427)(1 − 2)
= 0.8038617411
f (x4 ) = 8.239438718

f (x2 )(x23 − x24 ) + f (x3 )(x24 − x22 ) + f (x4 )(x22 − x23 )


x5 = =
2f (x2 )(x3 − x4 ) + 2f (x3 )(x4 − x2 ) + 2f (x4 )(x2 − x3 )
= 0.7334478809
f (x5 ) = 7.873338234
Erro |x5 − x4 | = |0.7334478809 − 0.8038617411| = 0.0704138602. 

3.3 Método de Newton


Este método utiliza o método de Newton, dado anteriormente, para calcular o zero da função
derivada de f , que deverá ser o extremante de f . Assim a fórmula é idêntica mas aplicada à

José Duque 50
3.4 Exercı́cios Matemática Computacional

derivada
f 0 (xk )
xk+1 = xk − , k = 0, 1, 2, . . .
f 00 (xk )
Ao aplicarmos o método à função g(x) = f 0 (x) ganhamos a velocidade de convergência, mas
também carregamos a desvantagem de poder divergir e a necessidade de calcular mais uma deri-
vada.

Exemplo 32 Seja a função


f (x) = −1.5x6 − 2.4x4 + 12x

Defina uma estimativa do máximizante de f (x) em [0, 2] utilizando o método de Newton com
x0 = 2 e iterando 3 vezes. Calcule uma estimativa do erro absoluto da última estimativa.
Resposta
Aplicando este método ao problema proposto vem x0 = 2
f 0 (x) = −9x5 − 9.6x3 + 12, f 0 (x0 ) = f 0 (2) = −352.8
f 00 (x) = −45x4 − 28.8x2 , f 00 (x0 ) = f 00 (2) = −835.2
Logo
f 0 (x0 ) −352.8
x1 = x0 − 00
=2− = 1.577586207
f (x0 ) −835.2

f 0 (x1 ) −113.6364812
x2 = x1 − 00
= 1.577586207 − = 1.2532882
f (x1 ) −350.4075841

f 0 (x2 ) −34.7273369
x3 = x2 − 00
= 1.2532882 − = 1.031048776
f (x2 ) −156.2609202
A aproximação pedida é então x3 = 1.031048776 com f (x3 ) = 7.858296798.
Erro |x3 − x2 | = 0.222239454 

3.4 Exercı́cios
1. Encontre uma estimativa do mı́nimo de f (x), que se encontra no intervalo [−0.5, 1], sendo

f (x) = −3x4 − 4x3 + 12x2 + 5

e utilizando o método da secção dourada com Ea < 0.05.

2. Calcule uma estimativa do valor de x que minimiza a função

1
f (x) = x +
x

utilizando o método da interpolação quadrática.


(nota: considere x0 = 0.1, x1 = 0.5, x2 = 1.0)

3. O circuito da figura contêm três resistências fixas e uma resistência ajustável.

51 José Duque
Matemática Computacional Extremos de Funções

Os valores dos parâmetros são V = 80 V , R1 = 8 Ω, R2 = 12 Ω e R3 = 10 Ω.


A potência transferida entre os terminais 1 e 2 (Ra ) pode ser derivada, através das leis de
Kirchoff, como sendo h i2
V R3 Ra
R1 (Ra +R2 +R3 )+R3 Ra +R3 R2
P (Ra ) =
Ra
Determine o valor com que se deve ajustar a resistência Ra para que a potência transferida
seja máxima.

4. O arrasto total de uma superfı́cie de sustentação pode ser estimado por


 2
2 0.95 W
D = 0.01σV +
σ V

onde D = arrasto, σ = razão entre a densidade do ar ao nível do mar e a altura de voo,


W = peso e V = velocidade. Se σ = 0.5 e w = 15000 determine o arrasto mı́nimo e a
velocidade a que isso acontece.

5. No circuito eléctrico que se apresenta em baixo a energia à saı́da da resistência R é dada por

104 R
P =
(R + 20)2

Determine o valor de R que maximiza a energia de saı́da, utilizando o método de Newton,


começando com R0 = 15.

José Duque 52
Capı́tulo 4

Resolução de sistemas

A figura (a) mostra um sistema de 4 molas e três pesos antes


de ser liberto. A figura (b) mostra o mesmo sistema quando
atinge o repouso após ser liberto. x1 , x2 e x3 são os desloca-
mentos dos pesos relativamente à posição inicial. Para conhecer
os deslocamentos temos de resolver as seguintes equações

 3kx1 − 2kx2 = m1 g


−2kx1 + 3kx2 − kx3 = m2 g ,

 −kx + kx = m g

2 3 3
onde m1 = 2kg, m2 = 3kg, m3 = 2.5kg, k = 10kg/s2 e g = 9.8m/s2 .

Este tipo de problemas é bastante frequente. Neste capı́tulo vamos estudar métodos para re-
solver sistemas de equações.

Começamos por rever um dos métodos mais conhecidos, o método de eliminação de Gauss.

4.1 Método de Eliminação de Gauss e de Gauss-Jordan


(revisão)
Exemplo 33 Resolva o seguinte sistema, aplicando o método de eliminação de Gauss (simples,
com escolha parcial e com escolha total de pivot).



4x1 + 2x2 + 3x3 + 0.5x4 = 1


2x1 + x2 + 2x3 + x4 = 2




0.5x2 + 4x3 + 2x4 = −3


x1 + 3x3 + 3x4 = 4

Resposta
Método de Gauss sem escolha de pivot:

53
Matemática Computacional Resolução de sistemas

Passamos o sistema para a forma matricial Ax = b.


    
4 2 3 0.5 x1 1
    
 2 1 2 1 
  x2   2 
   
=

  
  x3   −3 
 0 0.5 4 2     

1 0 3 3 x4 4
Esconde-se a coluna das incógnitas e ficamos com a matriz ampliada
 
4 2 3 0.5 | 1
 
 2 1 2 1 | 2 
 
 
 0 0.5 4 2 | −3 
 
1 0 3 3 | 4

É nesta matriz que vamos realizar a condensação, para isso temos de encontrar um pivot. O pivot é o
primeiro elemento da diagonal principal da matriz activa. Se for nulo troca-se 2 linhas de modo que o
pivot seja não nulo. Se não for possı́vel encontrar nenhum elemento não nulo para pivot o sistema é
indeterminado.
Neste caso o pivot é 4. À custa deste pivot vamos eliminar todos os elementos da matriz que estão abaixo
dele.
Para realizarmos esta última operação e mantermos um sistema equivalente só podemos realizar algumas
operações que se farão para toda a linha. Essas operações são:

• Substituir uma linha por ela multiplicada por uma constante não nula.

• Substituir uma linha por ela somada com outra linha.

• Combinação das duas anteriores.

Assim para pormos um zero no lugar do 2 da segunda linha temos de substituir a segunda linha por ela
somada com a linha 1 multiplicada por − 12 . ( L2 → L2 − 12 L1 )
Para a terceira linha não é preciso fazer nada uma vez que já está um zero no lugar pretendido.
Para a quarta linha, multiplicamos a 1a linha por − 14 e somamos a linha 4. Finalmente substituı́mos a
linha 4 pelo resultado da soma.( L4 → L4 − 41 L1 )
A Matriz ampliada fica então com o aspecto
 
4 2 3 0.5 | 1
 
 0
 0 0.5 0.75 | 1.5 

 
 0 0.5
 4 2 | −3 
0 −0.5 2.25 2.875 | 3.75

Neste momento a primeira linha e a primeira coluna deixam de fazer parte da matriz activa e vamos
procurar o novo pivot na matriz activa. Como o primeiro elemento da diagonal principal da matriz activa
é nulo temos de trocar a linha 2 com a linha 3. (L2 ↔ L3 )
 
4 2 3 0.5 | 1
 
 0 0.5
 4 2 | −3  
 
 0
 0 0.5 0.75 | 1.5 
0 −0.5 2.25 2.875 | 3.75

José Duque 54
4.1 Método de Eliminação de Gauss e de Gauss-Jordan (revisão) Matemática Computacional

Agora o pivot é 0.5 e as operações que temos de efectuar para anular os elementos abaixo são
L3 → L3
L4 → L4 + L2
e a matriz fica  
4 2 3 0.5 | 1
 
 0 0.5
 4 2 | −3  
 
 0 0
 0.5 0.75 | 1.5 

0 0 6.25 4.875 | 0.75

A segunda linha e a segunda coluna deixam de fazer parte da matriz activa, logo o pivot é 0.5, e as
operações são:
L4 → L4 − 12.5L3
e a matriz é  
4 2 3 0.5 | 1
 
 0 0.5 4
 2 | −3  
 
 0 0 0.5 0.75 | 1.5 
 
0 0 0 −4.5 | −18

Agora o pivot seria -4.5 mas como já não há elementos para anular acabámos esta fase. Voltamos a
passar a matriz ampliada para o sistema que é da forma




 4x1 + 2x2 + 3x3 + 0.5x4 = 1


0.5x2 + 4x3 + 2x4 = −3

0.5x + 0.75x = 1.5




 3 4


−4.5x4 = −18

Como só se realizaram operações permitidas este sistema é equivalente ao primeiro e é mais fácil de
resolver uma vez que basta fazer substituições regressivas, assim

x4 = −18 = 4


 −4.5


x3 = 1.5−0.75×4 = −3

0.5
−3−4×(−3)−2×4



 x2 = 0.5 =2

x1 = 1−2×2−3×(−3)−0.5×4 = 1


4

Logo a solução do sistema é ~x = (1, 2, −3, 4)

Método de Gauss com escolha parcial de pivot:

Constrói-se a matriz ampliada aumentando a coluna do segundo membro à matriz dos coeficientes
 
4 2 3 0.5 | 1
 
 2 1
 2 1 | 2  
 
 0 0.5
 4 2 | −3  
1 0 3 3 | 4

55 José Duque
Matemática Computacional Resolução de sistemas

É nesta matriz que vamos realizar a condensação. Neste método o pivot é o maior elemento em módulo
da primeira coluna da matriz activa. Se não for possı́vel encontrar nenhum elemento não nulo para pivot
o sistema é indeterminado.
Neste caso o pivot é 4. À custa deste pivot vamos eliminar todos os elementos da matriz que estão abaixo
dele.
Para realizarmos esta última operação e mantermos um sistema equivalente só podemos realizar as
operações descritas atrás.
Assim para pormos um zero no lugar do 2 da segunda linha temos de fazer L2 → L2 − 12 L1
Para a terceira linha não é preciso fazer nada uma vez que já está um zero no lugar pretendido.
Para a quarta linha L4 → L4 − 41 L1
A Matriz ampliada fica então com o aspecto

 
4 2 3 0.5 | 1
 
 0
 0 0.5 0.75 | 1.5 

 
 0 0.5
 4 2 | −3 

0 −0.5 2.25 2.875 | 3.75

Neste momento a primeira linha e a primeira coluna deixam de fazer parte da matriz activa e vamos
procurar o novo pivot na matriz activa. Como o maior elemento da primeira coluna da matriz activa é
0.5 temos de trocar a linha 2 com a linha 3. (L2 ↔ L3 )

 
4 2 3 0.5 | 1
 
 0 0.5
 4 2 | −3  
 
 0
 0 0.5 0.75 | 1.5  
0 −0.5 2.25 2.875 | 3.75

Agora o pivot é 0.5 e as operações que temos de efectuar para anular os elementos abaixo são
L3 → L3
L4 → L4 + L2
e a matriz fica
 
4 2 3 0.5 | 1
 
 0 0.5
 4 2 | −3  
 
 0 0
 0.5 0.75 | 1.5 
0 0 6.25 4.875 | 0.75

A segunda linha e a segunda coluna deixam de fazer parte da matriz activa, logo o pivot é 6.25, pois é o
maior elemento entre 0.5 e 6.25. Assim temos de trocar a linha 3 com a 4 e fica

 
4 2 3 0.5 | 1
 
 0 0.5
 4 2 | −3  
 
 0 0 6.25 4.875 | 0.75 
 
0 0 0.5 0.75 | 1.5

José Duque 56
4.1 Método de Eliminação de Gauss e de Gauss-Jordan (revisão) Matemática Computacional

a operação é L4 → L4 − 0.08L3
e a matriz é
 
4 2 3 0.5 | 1
 
 0 0.5
 4 2 | −3  
 
 0 0 6.25 4.875 | 0.75 
 
0 0 0 0.36 | 1.44

Agora o pivot seria 0.36 mas como já não há elementos para anular acabámos esta fase. Voltamos a
passar a matriz ampliada para o sistema que é da forma




4x1 + 2x2 + 3x3 + 0.5x4 = 1


0.5x2 + 4x3 + 2x4 = −3

6.25x3 + 4.875x4 = 0.75







0.36x4 = 1.44

Como só se realizaram operações permitidas este sistema é equivalente ao primeiro e é mais fácil de
resolver uma vez que basta fazer substituições regressivas, assim

x4 1.44


 = 0.36 =4


0.75−4.875×4
x3 = = −3

6.25
−3−4×(−3)−2×4



x2 = 0.5 =2

1−2×2−3×(−3)−0.5×4

x1

= =1
4

Logo a solução do sistema é ~x = (1, 2, −3, 4)


Método de Gauss com escolha total de pivot:

Constrói-se a matriz ampliada


 
4 2 3 0.5 | 1
 
 2 1 2
 1 | 2 
 
 0 0.5 4
 2 | −3 

1 0 3 3 | 4

Neste método o pivot é o maior elemento em módulo de toda a matriz activa. Se não for possı́vel encon-
trar nenhum elemento não nulo para pivot o sistema é indeterminado.
Neste caso o pivot é 4. À custa deste pivot vamos eliminar todos os elementos da matriz que estão abaixo
dele.
Para realizarmos esta última operação e mantermos um sistema equivalente só podemos realizar as
operações descritas atrás.
Assim
L2 → L2 − 21 L1
L3 → L3
L4 → L4 − 41 L1

57 José Duque
Matemática Computacional Resolução de sistemas

A Matriz ampliada fica então com o aspecto


 
4 2 3 0.5 | 1
 
 0
 0 0.5 0.75 | 1.5  
 
 0 0.5
 4 2 | −3  
0 −0.5 2.25 2.875 | 3.75

Neste momento a primeira linha e a primeira coluna deixam de fazer parte da matriz activa e vamos
procurar o novo pivot na matriz activa. Como o maior elemento da matriz activa é 4 temos de trocar a
linha 2 com a linha 3 (L2 ↔ L3 ) mas também a coluna 2 com a 3 (C2 ↔ C3 ).
 
4 3 2 0.5 | 1
 
 0
 4 0.5 2 | −3 

 
 0 0.5
 0 0.75 | 1.5 

0 2.25 −0.5 2.875 | 3.75

Para condensarmos temos de L3 → L3 − 0.125L2


L4 → L4 − 0.5625L2
e resulta a matriz
 
4 3 2 0.5 | 1
 
 0 4
 0.5 2 | −3  
 
 0 0 −0.0625 0.5 | 1.875 
 
0 0 −0.78125 1.75 | 5.4375

O novo pivot é 1.75, logo temos de


(L3 ↔ L4 )
(C3 ↔ C4 )
logo
 
4 3 0.5 2 | 1
 
 0 4
 2 0.5 | −3  
 
 0 0 1.75 −0.78125 | 5.4375 
 
0 0 0.5 −0.0625 | 1.875

L4 → L4 − (2/7)L3 (L4 → L4 − 0.285714L3 )


 
4 3 0.5 2 | 1
 
 0 4
 2 0.5 | −3  
 
 0 0 1.75 −0.78125 | 5.4375 
 
0 0 0 9/56 | 9/28

Agora vamos voltar ao sistema, mas como fizemos trocas de colunas para o sistema ser equivalente temos
de trocar a ordem das variáveis.

C2 ⇔C3 C3 ⇔C4
(x1 , x2 , x3 , x4 ) / (x1 , x3 , x2 , x4 ) / (x1 , x3 , x4 , x2 )

José Duque 58
4.2 Factorização de uma Matriz Matemática Computacional

Assim o sistema fica 





4x1 + 2x3 + 0.5x4 + 3x2 = 1


4x3 + 2x4 + 0.5x2 = −3




1.75x4 − 0.78125x2 = 5.437


9/56x2 = 9/28

Agora basta fazer substituições regressivas, assim






 x2 = 9/28
9/56 = 2


x4 = 5.4375+0.78125×2 = 4

1.75
−3−2×4−0.5×2
x3 =


 4 = −3

x1 = 1−2×2−0.5×4−3×(−3) = 1


4

Logo a solução do sistema é ~x = (1, 2, −3, 4)




4.2 Factorização de uma Matriz


Quando se pretende resolver diversos sistemas, onde a matriz dos coeficientes se mantém constante,
mas o vector dos termos independentes vai sendo alterado, os métodos estudados atrás têm de ser
aplicados várias vezes sempre com as mesmas operações. Este facto leva ao consumo de muito
tempo desnecessariamente. A alternativa que propomos a seguir é dividir o sistema em dois mais
simples e que permitam que alguma operações sejam realizadas menos vezes.

4.2.1 Método LU
Neste método factorizamos a matriz A da forma A = LU onde L é uma matriz triangular inferior
e U é uma matriz triangular superior. Da condensação de Gauss resulta uma matriz triangular
superior que vai ser o U , as constantes que utilizámos para anular os elementos aij vão ser os
elementos lij da matriz L, e os elementos da diagonal são 1.
Sabendo as matrizes L e U da decomposição da matriz A podemos resolver o sistema Ax = b
em duas etapas. Ax = b ⇔ LU x = b se U x = y então Ly = b. Assim primeiro determinamos a
solução y do sistema Ly = b, depois obtemos a solução x do sistema U x = y. Este método é útil
quando se precisa solucionar vários sistemas da forma Ax = b para diferentes valores de b mas a
mesma matriz A, uma vez que a factorização só se faz uma vez.

Exemplo 34 Pretende-se resolver o seguinte sistema de equações lineares:


    
4 2 3 0.5 x1 1
    
 2 1 2 1   x2   2 
  = 
 0 0.5 4 2   x   −3 
  3   
1 0 3 3 x4 4

59 José Duque
Matemática Computacional Resolução de sistemas

1. Resolva o sistema utilizando a factorização LU.


Resposta
Vamos fazer a condensação de Gauss mas só à matriz dos termos independentes e não à matriz
ampliada. O primeiro pivot é então 4
   
4 2 3 0.5 / 4 2 3 0.5
   
1  (1)
 L2 → L2 − 2 L1
 2 1 2 1  0 0.5 0.75 
  2 
   
 L3 → L3 − 0L1
 0 0.5 4 2   (0) 0.5 4 2 
  
1 0 3 3 L4 → L4 − 14 L1 1
( 4 ) −0.5 2.25 2.875

Como o pivot não pode ser nulo temos de trocar 2 linhas.


   
4 2 3 0.5 4 2 3 0.5
/
   
 (1) 0 0.5 0.75   (0) 0.5 4 2 
 2   
   1 
 (0) 0.5 4 2  L2 ↔ L3  ( ) 0 0.5 0.75 
   2 
1 1
( 4 ) −0.5 2.25 2.875 ( 4 ) −0.5 2.25 2.875

Com o pivot igual a 0.5 vamos anular os elementos abaixo e substitui-los pelos anuladores.
   
4 2 3 0.5 / 4 2 3 0.5
   
 (0) 0.5 4 2   (0) 0.5 4 2 
   
 1   1 
 ( ) 0 0.5 0.75  L3 → L3 + 0L2  ( ) (0) 0.5 0.75 
 2   2 
1 1
( 4 ) −0.5 2.25 2.875 L4 → L4 + 1L2 ( 4 ) (−1) 6.25 4.875

O proximo pivot é 0.5


   
4 2 3 0.5 / 4 2 3 0.5
   
 (0) 0.5 4 2   (0) 0.5 4 2 
   
 1   1 
 ( ) (0) 0.5 0.75   ( ) (0) 0.5 0.75 
 2   2 
1 1
( 4 ) (−1) 6.25 4.875 L4 → L4 − 12.5L3 ( 4 ) (−1) (+12.5) −4.5

Finalmente separamos as duas matrizes da forma


   
1 0 0 0 4 2 3 0.5
   
 0 1 0  0  0 0.5 4 2 
L= 1 U =
   
 

 2 0 1 0 

 0 0 0.5 0.75



1
4 −1 +12.5 1 0 0 0 −4.5

Agora que já temos a factorização vamos resolver o sistema Ax = b, mas como trocámos linhas
vamos trocar também as linhas no b para ser um sistema equivalente.
O primeiro sistema é Ly = b ou seja
    
1 0 0 0 y1 1
    
  y2   −3 
 0 1 0 0   
L= 1 =

 

 2 0 1 0 
  y3   2 
   
1
4 −1 +12.5 1 y4 4

José Duque 60
4.2 Factorização de uma Matriz Matemática Computacional

por substituição podemos calcular    


y1 1
   
 y   −3 
 2  
=

 
 y3   1.5 
   
y4 −18
Finalmente resolvemos o sistema U x = y, ou seja
    
4 2 3 0.5 x1 1
    
 0 0.5 4 2   x2   −3 
=
    
  
 0 0 0.5 0.75   x3   1.5 
    
0 0 0 −4.5 x4 −18

Por substituição podemos concluir que a solução do sistema inicial é


   
x1 1
   
 x   2 
 2  
=

 
 x3   −3 
   
x4 4

2. Defina um vector solução do sistema, recorrendo agora ao método da factorização LU, com
escolha parcial do pivot.
Resposta
Vamos fazer a condensação de Gauss, com escolha parcial de pivot, da matriz dos termos inde-
pendentes. O primeiro pivot é então o maior elemento, em módulo, da primeira coluna da matriz
activa, logo 4
   
4 2 3 0.5 / 4 2 3 0.5
   
1  (1)
 L2 → L2 − 2 L1
 2 1 2 1  0 0.5 0.75 
  2 
   
 L3 → L3 − 0L1
 0 0.5 4 2   (0) 0.5 4 2 
  
1 0 3 3 L4 → L4 − 14 L1 ( 14 ) −0.5 2.25 2.875

Como o pivot é 0.5, pois é o maior elemento, em módulo, da primeira coluna da matriz activa,
temos de trocar a linha 2 com a 3.
   
4 2 3 0.5 4 2 3 0.5
/
   
 (1) 0 0.5 0.75   (0) 0.5 4 2 
 2   
   1 
 L2 ↔ L3
 (0) 0.5 4 2   ( ) 0 0.5 0.75 
  2 
1 1
( 4 ) −0.5 2.25 2.875 ( 4 ) −0.5 2.25 2.875

O pivot igual a 0.5, vamos anular os elementos abaixo e substitui-los pelos anuladores.
   
4 2 3 0.5 / 4 2 3 0.5
   
 (0) 0.5 4 2   (0) 0.5 4 2 
   
 1   1 
 ( )
 2 0 0.5 0.75  L3 → L3 + 0L2  ( 2 ) (0)
  0.5 0.75  
( 14 ) −0.5 2.25 2.875 L4 → L4 + 1L2 ( 14 ) (−1) 6.25 4.875

61 José Duque
Matemática Computacional Resolução de sistemas

O proximo pivot é 6.25, logo trocamos a linha 3 com a 4.


   
4 2 3 0.5 / 4 2 3 0.5
   
 (0) 0.5 4 2   (0) 0.5 4 2 
   
 1   1 
 ( ) (0)
 2 0.5 0.75  L3 ↔ L4  ( 4 ) (−1) 6.25 4.875 
 

( 14 ) (−1) 6.25 4.875 ( 12 ) (0) 0.5 0.75

Agora fazemos a condensação


   
4 2 3 0.5 / 4 2 3 0.5
   
 (0) 0.5 4 2   (0) 0.5 4 2 
   
 1   1 
 ( ) (−1) 6.25 4.875   ( ) (−1) 6.25 4.875 
 4   4 
( 12 ) (0) 0.5 0.75 L4 → L4 − 0.08L3 ( 12 ) (0) (0.08) 0.36

Finalmente separamos as duas matrizes da forma


   
1 0 0 0 4 2 3 0.5
   
 0 1 0 0   0 0.5 4 2 
L= 1  U =
   

 4 −1 1 0   0 0 6.25 4.875 
   
1
2 0 0.08 1 0 0 0 0.36

Agora que já temos a factorização vamos resolver o sistema Ax = b, mas como trocámos linhas
vamos trocar também as linhas no b para ser um sistema equivalente.
O primeiro sistema é Ly = b ou seja
    
1 0 0 0 y 1
  1   
 0 1 0 0   y2 
   −3 
L= 1 =
   
 
 4 −1 1 0 
  y3   4 
   

1
2 0 0.08 1 y4 2
por substituição podemos calcular    
y1 1
   
 y   −3 
 2  
=

 
 y3   0.75 
   
y4 1.44
Finalmente resolvemos o sistema U x = y, ou seja
    
4 2 3 0.5 x1 1
    
 0 0.5 4 2  x2   −3 
=
    
  
 0 0 6.25 4.875   x3   0.75 
 
  
0 0 0 0.36 x4 1.44

Por substituição podemos concluir que a solução do sistema inicial é


   
x1 1
   
 x   2 
 2  
=

 
 x3   −3 
   
x4 4

José Duque 62
4.2 Factorização de uma Matriz Matemática Computacional

4.2.2 Método de Cholesky


O método de Cholesky factoriza a matriz A da forma A = U T U , onde U é uma matriz triangular
superior. Esta factorização só é possı́vel se a matriz for simétrica e definida positiva. Neste caso
os elementos podem ser calculados pelas fórmulas
v !
u i−1 i−1
u X 1 X i = 1, . . . , n,
uii = taii − u2ki , uij = aij − uki ukj , uij = 0, i > j
k=1
u ii
k=1
j = i + 1, . . . , n

Depois de calculada a matriz U da decomposição da matriz A podemos resolver o sistema Ax = b


em duas etapas. Ax = b ⇔ U T U x = b se U x = y então U T y = b. Assim primeiro determinamos
a solução y do sistema U T y = b, depois obtemos a solução x do sistema U x = y. Este método é
melhor que o anterior uma vez que o cálculo da factorização é dada de uma forma explicita e há
uma necessidade menor de memória pois só utilizamos uma matriz.

Exemplo 35 Resolva pelo método de Cholesky o seguinte sistema



 x + x2 = 3
 1


x1 + 5x2 − 2x3 = 5



−2x + 2x = 2
2 3

Resposta
Primeiro vamos transformar o sistema na forma matricial
    
1 1 0 x1 3
    
 1 5 −2   x2  =  5 
    
0 −2 2 x3 2

Vamos agora factorizar a matriz seguindo as fórmulas do inı́cio.


√ √ 1 1 1 1
u11 = a11 = 1 = 1, u12 = (a12 ) = = 1, u13 = (a13 ) = × 0 = 0
u11 1 u11 1
1 1
q p
u22 = a22 − u212 = 5 − 12 = 2, u23 = (a23 − u12 u13 ) = (−2 − 1 × 0) = −1
u22 2
q p
u33 = a33 − (u213 + u223 ) = 2 − (02 + (−1)2 ) = 1

Os restantes elementos são todos nulos pois U é triangular superior. Então a matriz U é
 
1 1 0
 
U = 0 2 −1 

0 0 1

Uma vez que a factorização já está, falta só resolver os dois sistemas.
        
1 0 0 y1 3 y1 3
T
        
U y=b⇔ 1 2  0   y 2  =  5  ⇔  y2
      = 1 
  
0 −1 1 y3 2 y3 3

63 José Duque
Matemática Computacional Resolução de sistemas

        
1 1 0 x1 3 x1 1
        
Ux = y ⇔ 
 0 2 −1   x2  =  1  ⇔  x2  =  2 
       
0 0 1 x3 3 x3 3
A solução do sistema é então



x1 = 1

x2 = 2



x3 = 3

4.3 Normas Matriciais e condicionamento de matrizes


Seja x ∈ Rn então definimos
n
X
kxk1 = |xi | = |x1 | + |x2 | + · · · + |xn |
i=1
v
u n q
uX
kxk2 = t xi = x21 + x22 + · · · + x2n
2

i=1

kxk∞ = max{|xi | : i = 1, . . . n} = max{|x1 |, |x2 |, . . . , |xn |}

Se A é uma matriz n × m então define-se


( n )
X
kAk1 = max |aij |
1≤j≤m
i=1

( m )
X
kAk∞ = max |aij |
1≤i≤n
j=1
v
u n X
m
uX
kAkE = t a2ij
i=1 j=1

Consideremos um sistema possı́vel e determinado Ax = b e seja b̄ uma aproximação de b. Esta


situação é frequente quando os valores de b são obtidos por medição.
Sejam Ea (b̄) e Er (b̄) respectivamente os erros absoluto e relativo de b̄ ou seja

kb − b̄k
Ea (b̄) = kb − b̄k e Er (b̄) = .
kbk

Vamos agora analisar a forma como estes erros influenciam a solução do sistema. Consideremos
Ea (x̄) e Er (x̄) respectivamente os erros absoluto e relativo da solução x̄ de Ax̄ = b̄.
Como o sistema é possı́vel e determinado a matriz A é invertı́vel. Logo

x = A−1 b e x̄ = A−1 b̄.

José Duque 64
4.3 Normas Matriciais e condicionamento de matrizes Matemática Computacional

Então

Ea (x̄) = kx − x̄k = kA−1 b − A−1 b̄k = kA−1 (b − b̄)k ≤ kA−1 k × kb − b̄k = kA−1 k × Ea (b̄)

kx − x̄k kA−1 k × Ea (b̄)


Er (x̄) = ≤ −1
= kA−1 k × kAk × Er (b̄).
kxk kAk kbk
Assim podemos dizer que o erro relativo da solução é majorado pelo erro relativo de b̄ multiplicado
por kA−1 k × kAk. A kA−1 k × kAk chamamos número de condição da matriz A e é denotado por
cond(A).
Da mesma forma como definimos no capı́tulo 1 se o número de condição de A for pequeno ( menor
ou igual a 1) pequenas perturbações no vector dos termos independentes conduzem a pequenas
perturbações no vector solução. Neste caso dizemos que o sistema Ax = b é estável e que a matriz
A é bem condicionada. Se o número de condição for muito grande o sistema Ax = b diz-se instável
e a matriz A mal condicionada.

Exemplo 36 1. Ache as normas euclidiana, infinita e primeira do vector ~u = (2, 1, −3, 4)


Resposta

k~uk1 = |2| + |1| + | − 3| + |4| = 10


p √
k~uk2 = 22 + 12 + (−3)2 + 42 = 30

k~uk∞ = max{|2|, |1|, | − 3|, |4|} = 4

2. Calcule as normas ||.||1 , ||.||E e ||.||∞ da matriz.


 
1 2 3
 
B=  7 −9 0 

−5 4 2

Resposta

kBk1 = max{|1| + |7| + | − 5|; |2| + | − 9| + |4|; |3| + |0| + |2|} = max{13; 15; 5} = 15

kBk∞ = max{|1| + |2| + |3|; |7| + | − 9| + |0|; | − 5| + |4| + |2|} = max{6; 16; 11} = 16
p √ √
kBkE = 12 + 22 + 32 + 72 + (−9)2 + 02 + (−5)2 + 42 + 22 = 189 = 3 21 = 13.74772708


" #
−1 0
3. Indique se a matriz A = é bem ou mal condicionada relativamente à norma
16 0.5
infinita.

65 José Duque
Matemática Computacional Resolução de sistemas

Resposta
kAk∞ = 16.5, " #
−1 0
A−1 =
32 2
kA−1 k∞ = 34 Logo o numero condicionamento é

kA−1 k∞ × kAk∞ = 16.5 × 34 = 561

logo a matriz é muito mal condicionada.

4.4 Métodos Iterativos de Jacobi e Gauss-Seidel


Quando o sistema é bastante grande a condensação leva bastante tempo. Torna-se então vantajoso
utilizar processos que calculem uma boa aproximação em menos tempo.
Considerar
Ax = b ⇔ x = A−1 b

é bastante trabalhoso o cálculo de A−1 . Então vamos tentar decompor A da forma A = N − P ,


com N uma matriz invertı́vel ( mas mais fácil que A ). Então

Ax = b ⇔ (N − P )x = b ⇔ N x − P x = b ⇔ N x = P x + b ⇔ x = N −1 P x + N −1 b ⇔

x = Mx + c

Esta representação sugere o método do ponto fixo. Os métodos que iremos considerar pertencem
à classe dos métodos do ponto fixo. Para obtermos o valor x∗ ∈ Rn tal que Ax∗ = b partindo de
uma aproximação inicial x(0) da solução do sistema, vamos criar uma sucessão de vectores {x(k) }
que deverá convergir para x∗ . A sucessão é então obtida por

x(k+1) = M x(k) + c

Como em todos os métodos iterativos surge agora a questão da convergência.


O erro absoluto da iteração k pode ser obtido por

Ea (x(k) ) = kx∗ − x(k) k.

É evidente que o método converge se o erro tender para zero à medida que k vai aumentando, ou
seja,
lim Ea (x(k) ) = 0.
k→+∞

Falta agora encontrar critérios que nos indiquem em que condições é garantida a convergência.

Pegando na definição do erro


Ea (x(k) ) = kx∗ − x(k) k

José Duque 66
4.4 Métodos Iterativos de Jacobi e Gauss-Seidel Matemática Computacional

pela fórmula iterativa


= kx∗ − M x(k−1) − ck

como x∗ é solução do sistema


= kM x∗ + c − M x(k−1) − ck
= kM (x∗ − x(k−1) )k
≤ kM k × kx∗ − x(k−1) k
= kM k × Ea (x(k−1) )

Logo de uma forma recursiva podemos obter


Ea (x(k) ) ≤ kM kk × Ea (x(0) )
Se Ea (x(0) ) for finito ( é sempre ), uma condição suficiente para o método convergir é kM k < 1.
Uma vez que qualquer valor inicial x(0) ∈ Rn faz com que Ea(x(0)) seja finito, a convergência do
método não depende da estimativa inicial, mas simplesmente da matriz M .
De uma forma algo semelhante consegue-se obter a fórmula
kM kk
Ea (x(k) ) ≤ kx(1) − x(0) k
1 − kM k

É de notar que esta condição é apenas suficiente logo se ela não se verificar o método pode ou não
convergir.
Conforme a escolha das matrizes M e c assim obtemos um método diferente. De seguida vamos
estudar dois desses métodos.

Método de Jacobi
Decompõe-se a matriz A da forma A = D + L + U , onde a matriz D é uma matriz diagonal,
a matriz L é uma matriz triangular inferior e a matriz U é uma matriz triangular superior, da
forma.
       
a11 a12 . . . a1n a11 0 ... 0 0 0 ... 0 0 a12 . . . a1n
       
 a21 a22 . . . a2n   0 a22 . . . 0   a21 0 ... 0   0 0 . . . a2n 
A= = + +
       
.. .. .. .. .. .. . . .. .. .. . . ..  .. .. .. .. 

 . . . .  
  . . . .  
  . . . . 
 
 . . . . 

an1 an2 . . . ann 0 0 ... ann an1 an2 . . . 0 0 0 ... 0
| {z } | {z } | {z }
D L U

Para resolvermos Ax = b pomos (D + L + U )x = b ⇔ Dx + Lx + U x = b ⇔ Dx =


−Lx − U x + b ⇔ x = −D−1 (L + U )x + D−1 b.
Aplicando a iteração do ponto fixo fica

x(k+1) = −D−1 (L + U ) x(k) + D −1


| {z }b ⇔ x
(k+1)
= M x(k) + c, k = 0, 1, 2, . . .
| {z }
M c

Como provámos anteriormente, a sucessão de estimativas x(k) converge para a solução x(∗) se
kM k < 1.

67 José Duque
Matemática Computacional Resolução de sistemas

O método de Jacobi tem uma formulação alternativa mais simples em termos intuitivos. Primeiro
vamos considerar o sistema


 a11 x1 +a12 x2 + . . . +a1n xn = b1


 a x +a x + . . . +a2n xn = b2
21 1 22 2
aii 6= 0


 ...

an1 x1 +an2 x2 + . . . +ann xn = bn

Agora transforma-se o sistema de forma a pôr cada equação em função de uma variável distinta,
de modo que cada variável fique uma vez no primeiro membro. Depois aplica-se a iteração do
ponto fixo, ficando da forma:

(k+1) a12 (k) a1n (k) b1

 x1 = − x2 − · · · − xn +

 a11 a11 a11
a a a b2

 (k+1) 21 (k) 23 (k) 2n (k)
= − x1 − x3 − · · · −

 x
2 xn +
a22 a22 a22 a22 k = 0, 1, 2, . . .
...




 x(k+1) = − an1 x(k) − · · · − an,n−1 x(k) + bn



n
ann 1 ann n ann
ou de uma forma reduzida
n
(k+1) bi X aij (k)
xi = − x , k = 1, 2, . . . i = 0, 1, 2, . . . , n
aii j=1
aii j
j6=i

Tanto por um processo como por outro obtemos a matriz


 
0 − aa1112
. . . − aa1n11
 
 − a21 0 . . . − a2n 
M =  .a22 a22
 
 .. .
.. . .. .
..


 
− aann
n1
− aannn2
... 0
Para este método podemos deduzir um critério mais fácil de verificar e que garante a convergência.
Se calcularmos a norma ∞ de M obtemos
 
|a12 | + · · · + |a1n | |a21 | + |a23 | + · · · + |a2n | |an1 | + · · · + |an,n−1 |
kM k∞ = max , ,...,
|a11 | |a22 | |ann |
Para kM k∞ ser inferior a 1 basta que
n
X
|aii | > |aij |
j=1
j6=i

Às matrizes que satisfazem este critério dizemos que são estritamente diagonais dominantes por
linhas. De uma forma rigorosa, uma matriz diz-se estritamente diagonal dominante por linhas
se o módulo do elemento da diagonal principal for maior que a soma dos módulos dos restantes
elementos da mesma linha.
Utilizando a norma 1 chega-se a um resultado idêntico mas para as colunas.
n
X
|aii | > |aji |
j=1
j6=i

José Duque 68
4.4 Métodos Iterativos de Jacobi e Gauss-Seidel Matemática Computacional

Assim para a sucessão de estimativas x(k) convergir para a solução x(∗) basta que a matriz dos
coeficientes seja estritamente diagonal dominante por linhas ou por colunas.

Exemplo 37 Dado o sistema 




−8x + y + z = 1

x + 5y + z = 16 ,



x + y − 4z = 7

1. Mostre que se podem aplicar, com garantia de convergência, o método de Jacobi ao sistema
dado.
Resposta
A matriz A tem de ser estritamente diagonal dominante.
| − 8| > |1| + |1| ⇔ 8 > 2 P.V.
|5| > |1| + |1| ⇔ 5 > 2 P.V. Logo a matriz é estritamente diagonal por linhas, então o método
| − 4| > |1| + |1| ⇔ 4 > 2 P.V.
de Jacobi, convergem se aplicados ao sistema. 

2. Partindo da estimativa inicial x(0) = [0 0 0]T obtenha a segunda aproximação da solução


do sistema usando o método de Jacobi e indique uma estimativa do erro absoluto da última
aproximação.
Resposta
Para a forma de sistema vamos por cada equação em função de uma variável distinta, de modo
que cada variável fique uma vez no primeiro membro.

1−y−z


x= −8

16−x−z ,
y= 5


7−x−y

z=

−4
Agora aplica-se a iteração do ponto fixo, ie,

1−y (k) −z (k)


 x(k+1) = −8

16−x(k) −z (k)
y (k+1) = 5
,


 (k+1) 7−x(k) −y (k)

z = −4

Começando com [x(0) y (0) z (0) ] = [0 0 0] como estimativa inicial da solução, a primeira estimativa
é obtida por 
1−y (0) −z (0)
 x

 (1) =
−8 = 1−0−0 1
−8 = − 8 = −0.125
16−x(0) −z (0)
y (1) = 5 = 16−0−0
5 = 16
5 = 3.2
(0) (0)

7−x −y
 z (1) = = 7−0−0 7

−4 −4 = − 4 = −1.75
A segunda estimativa é então
1− 16 + 47

(2) = 1−y (1) −z (1) 9
 x

 −8 = −8 5
= 160 = 0.05625
1 7
(1)
16−x −z (1) 16+ +
y (2) = 5 = 5
8 4
= 143
40 = 3.575
1 16

 7−x(1) −y (1) 7+ 8 − 5
z (2) = = −4 = − 157 160 = −0.98125

−4

69 José Duque
Matemática Computacional Resolução de sistemas

A abordagem matricial é a seguinte.


Decompõe-se a matriz A da forma

       
−8 1 1 −8 0 0 0 0 0 0 1 1
       
A=
 1 51 = 0 5
 0  +
 
 1 0 0 + 0 0 1 
  
1 1 −4 0 0 −4 1 1 0 0 0 0
       
1
0 0 0 0 0 0 1 1 0 18 1

−1
 −8       8 
1
M = −D (L + U ) = − 
 0 5 0  
 
    1
1 0 0  +  0 0 1  =  − 5 0 − 15 

1 1 1
0 0 −4 1 1 0 0 0 0 4 4 0
    
1
−8 0 0 1 −1
  8 
c = D−1 b = 
 
1   16 
 0 5   16  =  5 
0  
1
0 0 −4 7 − 74
Então       
1 1
0 8 8 0 − 18 − 18
x(1) = M x(0) + c = 
      
1
 −5 0 − 51 
 0
 +
 
16
5
=
 
16
5


1 1
4 4 0 0 − 74 − 47
      
1 1 1
0 8 8   −8 − 81 9
160
x(2) = M x(1) + c = 
     
1
 −5 0 − 51   16
 5
+
 
16
5
=
 
143
40


1 1
4 4 0 − 74 − 74 157
− 160
Uma aproximação do erro absoluto de x(2) é
     
0.05625 −0.125 0.18125


kx(2) − x(1) k =
     
 3.575  −  3.2  =
 0.375  = 0.76875
     

−0.98125 −1.75 0.76875
∞ ∞

3. Calcule o no mı́nimo de iterações necessárias para o método de Jacobi obter uma estimativa
da solução deste problema com erro inferior a 10−5
Resposta

Um majorante do erro erro absoluto de x(k) é


kM kk
Ea (x(k) ) ≤ kx(1) − x(0) k
1 − kM k
pela pergunta anterior  
1 1
0 8 8
 
1
M =
 −5 0 − 15 

1 1
4 4 0
logo
kM k∞ = 0.5

e
kx(1) − x(0) k∞ = 3.2

José Duque 70
4.4 Métodos Iterativos de Jacobi e Gauss-Seidel Matemática Computacional

assim

0.5k
Ea (x(k) ) ≤ 3.2 = 0.64 × 0.5k ≤ 10−5 ⇔ 0.5k ≥ 1.5625 × 106 ⇔ k ≥ 19.28771238
1 − 0.5

Para o método de Jacobi obter uma estimativa da solução deste problema com erro inferior a 10−5
são necessárias 20 iterações.


Método de Gauss-Seidel
O método de Gauss-Seidel é um melhoramento do método de Jacobi uma vez que utiliza a apro-
(k)
ximação xi a partir do momento em que é calculada, o procedimento é bastante semelhante ao
do método de Jacobi, assim o processo iterativo é

(k+1) a12 (k) a1n (k) b1

 x1 = − x2 − · · · − xn +

 a11 a11 a11
a a a2n (k) b2

 (k+1) 21 (k+1) 23 (k)
= − x1 − x3 − · · · −

 x
2 xn +
a22 a22 a22 a22 k = 0, 1, 2, . . .
...




 x(k+1) = − an1 x(k+1) − · · · − an,n−1 x(k+1) + bn



n
ann 1 ann n ann

ou na forma compacta

i−1 n
(k+1) bi X aij (k+1) X aij (k)
xi = − xj − xj , k = 0, 1, 2, . . . i = 1, 2, . . . , n
aii j=1 aii j=i+1
a ii

e as condições de convergência são as mesmas que o método de Jacobi.


Para a abordagem matricial o que muda em relação ao método de Jacobi é a matriz M e a matriz
c que são da forma
M = −(D + L)−1 U e c = (D + L)−1 b

ou seja
x(k+1) = −(D + L)−1 U x(k) + (D + L)−1 b, k = 0, 1, 2, . . .

Exemplo 38 Dado o sistema





−8x + y + z = 1

x + 5y + z = 16 ,



x + y − 4z = 7

Partindo da estimativa inicial x(0) = [0 0 0]T obtenha a segunda aproximação da solução do


sistema usando o método de Gauss-Seidel e indique uma estimativa do erro absoluto da última
aproximação.
Resposta

71 José Duque
Matemática Computacional Resolução de sistemas

Vamos primeiro aplicar a abordagem em forma de sistema. Vamos por cada equação em função de
uma variável distinta, de modo que cada variável fique uma vez no primeiro membro.

1−y−z


x= −8

16−x−z ,
y= 5


7−x−y

z=

−4

Agora aplica-se a iteração



1−y (k) −z (k)


x(k+1) = −8

16−x(k+1) −z (k)
y (k+1) = 5
,


 (k+1) 7−x(k+1) −y (k+1)

z = −4

Começando com [x(0) y (0) z (0) ] = [0 0 0] como estimativa inicial da solução, a primeira estimativa é
obtida por
1−y (0) −z (0)


 x(1) = −8 = 1−0−0 1
−8 = − 8 = −0.125
1

16−x(1) −z (0) 16+ 8 −0
y (1) = 5 = 5 = 129
40 = 3.225
 1 129
7−x(1) −y (1) 7+ 8 − 40
= − 39

z (1) = = 40 = −0.975

−4 −4

A segunda estimativa é então

1− 129 + 39

(2) = 1−y (1) −z (1) 5
 x = = 32 = 0.15625
40 40
−8 −8


5 39
(2)
16−x −z (1) 16− +
y (2) = 5 = 32
5
40
= 2691
800 = 3.36375
5 2691

 7−x(2) −y (2) 7− 32 − 800 87
z (2) = = = − 100 = −0.87

−4 −4

Uma aproximação do erro absoluto de x(2) é


   
0.15625 −0.125


(2) (1)
   
kx − x k =  3.36375
  −  3.225 
   = 0.28125

−0.87 −0.975

.

Vamos agora resolver utilizando a abordagem matricial.


Aplicando as fórmulas fica

x(k+1) = −(D + L)−1 U x(k) + (D + L)−1 b ⇔ x(k+1) = M x(k) + c

Neste problema
       
−8 1 1 −8 0 0 0 0 0 0 1 1
       
A=
 1 5 1 = 0
 5 0 + 1 0 0 + 0 0 1 
   
1 1 −4 0 0 −4 1 1 0 0 0 0

M = −(D + L)−1 U =
 −1     
−8 0 0 0 1 1 − 81 0 0 0 1 1
      
= − 1 5 0   0 0 1  = − 1 1
0   0 0 1  =
    
  40 5
1 1 −4 0 0 0 − 41 1
20 − 14 0 0 0

José Duque 72
4.5 Método de Newton-Rapson para Sistemas de Equações Matemática Computacional

 
1 1
0 8 8
 
= 1 9 
 0 − 40 − 40 
1 1
0 40 − 40
    
− 18 0 0 1 − 81
c = (D + L)−1 b = 
    
1 1   129 
0    16  =  40 

 40 5
− 14 1
20 − 14 7 − 39
40
Então       
1 1
0 8 8 0 − 18 − 18
x(1) = M x(0) + c = 
      
1 9    129   129 
 0 − 40 − 40   0  +  40  =  40 
1 1 39 39
0 40 − 40 0 − 40 − 40
      
1 1
0 8 8 − 18 − 18 5
32
x(2) = M x(1) + c = 
      
1 9   129  +  129  =  2691 
 0 − 40 − 40   40   40   800 
1 1
0 40 − 40 − 39
40 − 39
40
87
− 100
Uma aproximação do erro absoluto de x(2) é
   
0.15625 −0.125


(2) (1)
   
kx − x k =  3.36375
  −  3.225 
   = 0.28125.

−0.87 −0.975



4.5 Método de Newton-Rapson para Sistemas de Equações


No caso de sistemas de equações não lineares o problema é bastante mais complicado. É necessário
garantir que existe solução e encontrar estimativas iniciais próximas das soluções pretendidas. O
mais habitual é adaptar os métodos existentes para uma equação não linear. O mais prático e
eficiente era o método de Newton. Assim nesta secção vamos apenas fazer uma breve referência a
esse método.
Se tivermos um sistemas de equações do tipo



 f1 (x1 , x2 , . . . , xn ) = 0


f2 (x1 , x2 , . . . , xn ) = 0




 ...


fm (x1 , x2 , . . . , xn ) = 0

Começando com um valor inicial x(0) o método de Newton define a sequência

J(x(k) ) ∗ d = −F (x(k) ), x(k+1) = x(k) + d

onde  
∂f1 ∂f1 ∂f1
∂x1
(x(k) ) ∂x2
(x(k) ) ... ∂xn
(x(k) )
 
∂f2 ∂f2 ∂f2
(k)

∂x1
(x(k) ) ∂x2
(x(k) ) ... ∂xn
(x(k) ) 
J(x ) = 
 
.. .. .. .. 

 . . . . 

∂fm ∂fm ∂fm
∂x1
(x(k) ) ∂x2
(x(k) ) ... ∂xn
(x(k) )

73 José Duque
Matemática Computacional Resolução de sistemas

e  
f1 (x(k) )
 f2 (x(k) )
 
(k)

F (x ) =  

 ... 

fm (x(k) )
O erro pode ser estimado por kx(k) − x(k−1) k = kdk

Exemplo 39 O sistema 
−x(x + 2) + 2y = 7
x2 + (y − 3)2 = 9

tem duas soluções. Localize-as graficamente e determine uma aproximação da solução de maior
abcissa usando o método de Newton e iterando duas vezes. Indique uma estimativa para o erro
cometido.
Resposta
Como só temos duas variáveis podemos representar graficamente as duas condições e procurar a inter-
secção. A primeira é uma parábola y = 12 (x + 1)2 + 3, e a segunda é uma circunferência de centro (0, 3)
e raio 3. Os gráficos ficam:

temos como aproximações P1 ≈ (−2.7, 4.4) e P2 ≈ (1.3, 5.7), a de maior abcissa é P2 .


Vamos então melhorar esta aproximação utilizando o método de Newton para sistemas.
  
−x(x + 2) + 2y = 7 −x(x + 2) + 2y − 7 = 0 f1 (x, y) = 0
⇔ ⇔
x2 + (y − 3)2 = 9 x2 + (y − 3)2 − 9 = 0 f (x, y) = 0
2

A matriz jacobiana é então


" # " #
∂f1 ∂f1
∂x (x, y) ∂y (x, y) −2x − 2 2
J(x, y) = ∂f2 ∂f2
=
∂x (x, y) ∂y (x, y) 2x 2y − 6
" # " #
f1 (x, y) −x(x + 2) + 2y − 7
e a função F (x, y) = = . Podemos considerar como valor inicial
f2 (x, y) x2 + (y − 3)2 − 9
" #
1.3
x(0) =
5.7

José Duque 74
4.6 Exercı́cios Matemática Computacional

Aplicando a primeira vez o método obtemos


" #" # " #
−4.6 2 d1 0.11
J(x(0) )d = −F (x(0) ) ⇔ J(1.3, 5.7)d = −F (1.3, 5.7) ⇔ =−
2.6 5.4 d2 −0.02
Pelo método de Gauss Simples calculamos
" # " #
d1 0.02110519308
d= =
d2 −0.00645805592
Então a a primeira aproximação é
" # " # " #
1.3 0.02110519308 1.321105193
x(1) = x(0) + d = + =
5.7 −0.00645805592 5.693541944

O erro da primeira aproximação pode ser estimado por kx(1) − x(0) k = kdk = 0.02110519308
A segunda aproximação é então
" #" # " #
(1) (1) −4.642210386 2 d1 −0.00044542917
J(x )d = −F (x )⇔ =−
2.642210366 5.387083888 d2 0.00048713566
Pelo método de Gauss Simples calculamos
" # " #
d1 −0.00011137567
d= =
d2 −0.00003580002
Logo " # " # " #
(2) (1) 1.321105193 −0.00011137567 1.320993817
x =x +d= + =
5.693541944 −0.00003580002 5.693506144
A estimativa do erro é
kx(2) − x(1) k = kdk∞ = 0.00011137567

4.6 Exercı́cios
1. O sistema 


3.03x − 12.1y + 14z = −119

−3.03x + 12.1y − 7z = 120



6.11x − 14.2y + 21z = −139

tem solução (0, 10, 1/7). Resolva-o, usando aritmética de ponto flutuante com 3 dı́gitos
significativos, recorrendo ao método de eliminação de Gauss (simples, com escolha parcial e
com escolha total de pivot).

2. Resolva pelo método de Gauss-Jordan o seguinte sistema



x1 + x2 + 2x3 = 4



2x1 − x2 − x3 = 0



x − x − x = −1
1 2 3

75 José Duque
Matemática Computacional Resolução de sistemas

3. Considere as seguintes matrizes:


     
1 1 1 3 2 4 2 1 6
     
A=  1 2 3 , B =  1 1 2 , C =  0 1 1 ,
    
2 5 11 4 3 2 1 0 2

(a) Faça a decomposição LU de cada matriz usando o método simples de eliminação de


Gauss.
(b) Recorrendo à decomposição LU de cada matriz resolva os sistemas:

A.~x = [0.5, 0, −0.5]T ; B.~y = [1, 2, 3]T ; C.~z = [14, 3, 5]T .

(c) Pretende-se diminuir o efeito da instabilidade induzida de que sofre o método utilizado.
Que outro método escolheria e em que fase da sua aplicação, para cada matriz, surgiria
a primeira alteração em relação à decomposição feita na primeira alı́nea?

4. Pretende-se resolver o sistema Ax = b com


   
1 1 −1 1
   
A= 1 2 −2  ,
 b=
 0 

−2 1 1 1
(a) Resolva o sistema utilizando o método da decomposição LU .
(b) Prove que não é possı́vel aplicar o método de Cholesky ao sistema dado.
(c) Aplique o método de Cholesky para resolver o sistema AT Ax = AT b.

5. Um problema comum em engenharia eléctrica é o de determinar a corrente e a voltagem


em vários pontos de um circuito. Estes problemas são resolvidos usando as leis de Kirchoff.
Consideremos o circuito da figura.

O problema de calcular as constantes ixy pode ser traduzido pela solução do sistema
    
1 1 1 0 0 0 i21 0
    
 0 −1 0 1 −1 0  i   0 
   52   
    
 0 0 −1 0 0 1   i32   0 
   
 = 
 0 0
 0 0 1 −1   i65   0 
  

    
 0 10 −10 0 −15 −5   i54   0 
    
5 −10 0 −20 0 0 i43 200
Resolva o sistema através de um método directo.

José Duque 76
4.6 Exercı́cios Matemática Computacional

6. Os três blocos da figura estão ligados por uma corda cujo peso é desprezável e situados num
plano inclinado, como mostra a figura.

O problema é calcular a tensão em cada secção e a aceleração de todo o grupo. Somando as


forças em cada bloco e usando as leis de Newton o problema transforma-se na resolução do
sistema seguinte 
 100a + T = 519.72


50a − T + R = 216.55

 25a − R = 108.27

Resolva o sistema e calcule a aceleração a e as tensões T e R.

7. Considere as seguintes matrizes:


 
" # −1 2 0
−1 0  
A= , B =  0 3 −4 

16 0.5 
0 0 7

(a) Calcule as normas ||.||1 , ||.||E e ||.||∞ de cada uma das matrizes.
(b) Indique se as matrizes são bem ou mal condicionadas relativamente à norma infinita.

8. Considere o sistema A.~x = ~b, onde


     
1 8 1 x1 10
~ 
     
A=  1 1 7  ~x =  x2  b =  9
  

9 1 1 x3 11

(a) Da observação da matriz A, que pode concluir acerca da convergência da sucessão de


estimativas obtidas por aplicaçãodo método de Gauss-Seidel à resolução do sistema
dado?

77 José Duque
Matemática Computacional Resolução de sistemas

(b) Reescreva o sistema por forma a garantir a convergência referida atrás.

(c) Partindo da estimativa inicial (0, 0, 1), aplique três vezes o método referido.

(d) Defina uma estimativa do limite superior do erro relativo da melhor aproximação da
solução.

9. Pretende-se resolver o sistema


    
4 1 −1 x1 10
    
 1 2 4   x2  =  9 
    
1 5 1 x3 11

através de um método iteractivo.

(a) Mostre que trocando duas linhas se obtém um sistema equivalente cuja matriz satisfaz
as condições de convergência do método de Jacobi.

(b) Usando o vector ~x(0) = [1, 1, 1]T como estimativa inicial, aplique duas vezes o método
ao sistema.

(c) Defina uma estimativa do limite superior do erro absoluto da última aproximação da
solução do sistema e compare com o valor exacto.

(d) Determine uma aproximação ~x(k) do vector solução, recorrendo ao método de Gauss-
(k)
Seidel, de modo que |xi − xi | < 10−5 , com i = 1, 2, 3.

10. A deflexão de uma placa rectangular suportada pelas extremidades e sujeita a uma carga
uniforme pode ser modelada pelo sistema seguinte
    
−4 1 0 1 0 0 x1 0.53
    

 1 −4 1 0 1
0 
 x2  
  0.53 

    

 0 1 −4 1 0 1 
 x3  
= 0.53 


 1 0 1 −4 1 0 

 x4  
  0.53 

    

 0 1 0 1 −4 1 
 x5  
  0.53 

0 0 1 0 1 −4 x6 0.53

onde xi é a deflexão do ponto Pi e bi ( segundo membro) é a carga imposta à placa, incluindo o


próprio peso, no ponto Pi . Determine os valores xi , i = 1, . . . , 6 usando um método iterativo.

11. Sistemas de pesos e molas têm inúmeras aplicações na engenharia. A figura mostra um
conjunto de quatro molas em série a serem comprimidas por um peso de 2000 Kg.

José Duque 78
4.6 Exercı́cios Matemática Computacional

No estado de equilı́brio podem ser deduzidas alguma equações que traduzem a iteração entre
as molas e o peso da seguinte forma

k2 (x2 − x1 ) = k1 x1
k3 (x3 − x2 ) = k2 (x2 − x1 )
k4 (x4 − x3 ) = k3 (x3 − x2 )
F = k4 (x4 − x3 )

Onde ki , i = 1 . . . 4 são constantes caracterı́sticas das molas e F é a força exercida. Uma


vez que a força é F = 2000 Kg × 9.8 m/s2 e supondo que k1 , k2 , k3 e k4 são iguais a 150,
50, 75 e 22 Kg/s2 respectivamente, calcule os valores de x.

12. Aplicando 3 vezes o método iteractivo de Newton, resolva os seguintes sistemas e indique
estimativas para o erro da última aproximação:

x2 − y − 1 = 0
, com (x0 , y0 ) = (1, 1);
xy − 1 = 0


2x3 − y 2 − 1 = 0
, com (x0 , y0 ) = (1.2, 1.7).
xy 3 − y − 4 = 0


x + y 3 − 5y 2 − 2y = 10
13. Considere o sistema .
x + y 3 + y 2 − 14y = 29

(a) Use o método de Newton para calcular a solução do sistema com aproximação inicial
x(0) = 1.5 e y (0) = −2.
(b) Calcule a solução do sistema explicitando x na primeira equação e substituindo na
segunda.

79 José Duque
Matemática Computacional Resolução de sistemas

José Duque 80
Capı́tulo 5

Interpolação Polinomial

Antes do advento dos modernos computadores digitais, o cálculo de certas funções como ln(x),
sin(x), ex , etc., era feita através da consulta de tabelas. Estas tabelas, laboriosamente construı́das
e resultando, por vezes, do trabalho de uma vida inteira de matemáticos, só podiam conter, como é
obvio, um número finito de dados. Tal facto levanta de imediato a questão de como determinar os
valores da função quando o argumento x não coincide com nenhum dos valores tabelados. Utilizar
o valor mais próximo? Qual o erro cometido? Haverá melhores técnicas? Desenvolveu-se então
bastante estudo sobre a interpolação e aproximação de funções.
O aparecimento dos computadores veio retirar importância ao cálculo por meio de tabelas. No
entanto o interesse pela interpolação e aproximação não diminuiu. Em parte porque é um meio
relativamente simples de obter estimativas de funções difı́ceis de avaliar. Por outro lado também
existem dados experimentais que resultam apenas em tabelas e precisam ser relacionados por uma
função.
Os dois problemas básicos podem resumir-se em

Interpolação: Dado um conjunto de pares (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) encontrar uma função
que contém exactamente todos os pontos.

Aproximação: Dado um conjunto de pares (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) encontrar uma


função que passa perto de todos os pontos.

A interpolação, que iremos abordar primeiro, é bastante útil para conjuntos reduzidos de pontos.
O segundo, abordado mais tarde, torna-se mais útil quando o número de pontos é elevado.
Existem várias funções que podem ser utilizadas para este processo. No entanto as funções resul-
tantes devem ser fáceis de obter, avaliar e derivar, além de outras propriedades especı́ficas de cada
caso. Devido a estes factores as mais utilizadas são funções: polinomiais, trigonométricas e expo-
nenciais. Por causa de serem mais fáceis de tratar vamos utilizar exclusivamente os polinómios.
O problema geral da interpolação aqui estudada consiste em dados n+1 pontos distintos x0 , x1 , . . . , xn
e n + 1 valores y0 , y1 , . . . , yn ( geralmente de uma função yi = f (xi ) ), determinar um polinómio
pn (x) de grau menor ou igual a n tal que

pn (xi ) = yi

81
Matemática Computacional Interpolação Polinomial

De seguida vamos construir um método bastante natural.

5.1 Método dos Coeficientes Indeterminados


O problema é encontrar o polinómio da forma

pn (x) = a0 + a1 x + · · · + an xn

que cujo gráfico contém os pontos


(x0 , y0 ), . . . , (xn , yn )

Para conhecermos o polinómio temos de obter os coeficientes a0 , . . . , an .


Como o polinómio contém os pontos dados, tem de satisfazer as condições

a0 + a1 x0 + · · · + an xn0 = y0

a0 + a1 x1 + · · · + an xn1 = y1

...

a0 + a1 xn + · · · + an xnn = y0

Recordando que as incógnitas são a0 , . . . , an as equações anteriores corresponde a um sistema


linear de n + 1 equações com n + 1 incógnitas da forma
    
1 x0 . . . xn0 a0 y0
 . . .
. . ...   ...  =  .. 
  
 .. .. .  (5.1)
    
n
1 xn . . . x n an yn

Prova-se que se os pontos x0 , . . . , xn forem todos distintos este sistema é possı́vel e determinado.
Resolvendo-o obtemos o polinómio desejado.
A observação anterior lembra-nos que ainda não provámos se o polinómio procurado existe e nesse
caso se existe mais que um. Os teoremas seguintes esclarecem essa questão.

Teorema 40 Se f é uma função contı́nua em [a, b] então para todo ε > 0 existe um polinómio
pn (x) tal que
|pn (x) − f (x)| < ε, ∀x ∈ [a, b]

( Nota: n pode depender de ε )

Teorema 41 Um polinómio de grau n que passa exactamente por n + 1 pontos é único.

Exemplo 42 Dada a tabela

xi 2.2 2.3 2.4 2.5 2.6


log(xi ) 0.34242 0.36173 0.38021 0.39794 0.41497

José Duque 82
5.2 Polinómio Interpolador de Lagrange Matemática Computacional

calcule um valor aproximado de log(2.45)


Resposta
Vamos calcular o polinómio interpolador de grau menor ou igual a 3. Vamos precisar 4 pontos. Os mais
próximos são 2.3, 2.4, 2.5 e 2.6. O polinómio é da forma

p3 (x) = a0 + a1 x + a2 x2 + a3 x3

De acordo com o que falámos antes o polinómio tem de satisfazer





 a0 + 2.3a1 + 2.32 a2 + 2.33 a3 = 0.36173

 a + 2.4a + 2.42 a + 2.43 a = 0.38021

0 1 2 3


 a0 + 2.5a1 + 2.52 a2 + 2.53 a3 = 0.39794

 a0 + 2.6a1 + 2.62 a2 + 2.63 a3 = 0.41497

Como o sistema é possı́vel e determinado o polinómio existe e é único. A solução do sistema é





 a0 = −0.33540


 a = 0.50502
1


 a2 = −0.09750

 a3 = 0.00833

Assim o polinómio pretendido é

p3 (x) = −0.33540 + 0.50502x − 0.09750x2 + 0.00833x3

Podemos então afirmar que log(2.45) ≈ p3 (2.45) = 0.38916. Comparando este valor com o valor exacto
log(2.45) = 0.38916608... verifica-se que o erro cometido é inferior a 0.7 × 10−5 

O facto do polinómio ser único não impede que haja mais que uma forma de o obter.
À matriz  
1 x0 . . . xn0
 . . .
. . ... 

 .. ..
 
n
1 xn . . . x n
chamamos matriz de Vandermond. Para um número muito elevado de pontos o sistema torna-
se bastante grande e além de ser trabalhoso também é mal condicionado, o que o torna pouco
utilizado em termos práticos.

5.2 Polinómio Interpolador de Lagrange


Uma via directa para construir o polinómio interpolador e que não sofre dos inconvenientes refe-
ridos baseia-se nos polinómios de Lagrange que passamos a construir.
Introduzamos o polinómio nodal
n
Y
Wn (x) = (x − xi ) = (x − x0 )(x − x1 ) . . . (x − xn )
i=0

83 José Duque
Matemática Computacional Interpolação Polinomial

cujo grau é n + 1 e que, como é óbvio, se anula em todos os nós. Por outro lado, o polinómio lk
dado por
n
Y
lk = (x − xi ) = (x − x0 ) . . . (x − xk−1 )(x − xk+1 ) . . . (x − xn )
i=0,i6=k

anula-se em todos os nós excepto no nó xk . O seu valor neste nó pode determinar-se por conti-
nuidade pela expressão
Wn (x)
= Wn0 (xk )
lk (xk ) = lim
x→xk x − xk

em que se recorreu simplesmente à regra de Cauchy. Então, o polinómio

lk (x) Wn (x)
Lk (x) = = 0
lk (xk ) Wn (xk )(x − xk )

anula-se em todos os nós excepto no nó xk , no qual assume o valor 1. Como iremos ver no desen-
volvimento, estes polinómios desempenham um papel de destaque na interpolação polinomial.

Definição 43 Os polinómios
n
Y x − xi
Lk (x) =
i=0,i6=k
xk − xi

designam-se por polinómios de Lagrange relativos aos nós x0 , x1 , . . . , xn .

Vamos ver que, recorrendo aos polinómios de Lagrange, a construção do polinómio interpolador
é uma tarefa trivial.

Teorema 44 O polinómio interpolador p de grau ≤ n que interpola os valores y0 , y1 , . . . , yn nos


nós distintos x0 , x1 , . . . , xn é dado por
n
X
pn (x) = Lk (x)yk .
k=0

Demonstração
Atendendo à forma como foram construı́dos, resulta imediatamente que os polinómios Lk satisfazem a
relação (
0, j 6= k
Lk (xj ) = δkj =
1, j = k
em que δkj é o delta de Kronecker. Nestas condições
n
X n
X
pn (xj ) = Lk (xj )yk = δkj yk = yj , j = 0, 1, . . . , n
k=0 k=0

Este polinómio pn , cujo grau é evidente ser menor ou igual a n, interpola os valores dados e é, pelo
teorema 41 o único polinómio interpolador nestes pontos. 
Apesar da sua simplicidade, a fórmula de Lagrange pode não ser a representação mais conve-
niente do polinómio interpolador. Uma das razões é a de que é possı́vel obter este polinómio com
menos operações aritméticas que as requeridas por esta fórmula. A outra razão advém do facto de

José Duque 84
5.2 Polinómio Interpolador de Lagrange Matemática Computacional

que os polinómios de Lagrange estão associados a um conjunto de nós, e uma mudança da posição
ou do número destes nós altera completamente estes polinómios. Ora, sucede frequentemente nas
aplicações que o número e a localização não são fixados a priori sendo estabelecidos por tentativas,
começando-se por utilizar poucos nós e aumentando-se progressivamente o seu número até se atin-
gir a precisão desejada. O polinómio interpolador construı́do numa tentativa não é aproveitado
nas tentativas seguintes.

Por definição, o polinómio interpolador coincide com a função num dado conjunto de pontos.
Interessa-nos saber, no entanto, se para os outros pontos do domı́nio da função, o polinómio
interpolador constitui uma boa ou má aproximação para a função. O teorema seguinte vai indicar
o caminho.

Teorema 45 Seja pn (x) o polinómio de grau menor ou igual a n interpolador de f (x) nos pontos
x0 , x1 , . . . , xn . Se f ∈ C n ([a, b]) e se f (n+1) for contı́nua em ]a, b[, então para cada x∗ ∈ [a, b]
existe ξ ∈ (a, b) tal que
f (n+1) (ξ)
f (x∗ ) − pn (x∗ ) = Wn (x∗ )
(n + 1)!
onde ξ pode depender de x∗ e Wn (x∗ ) o polinómio nodal.

Demonstração
Se x∗ = xi , i = 0, . . . , n o resultado é, obviamente, válido. Se x∗ 6= xi , definamos a função auxiliar
Wn (x)
F (x) = f (x) − pn (x) − (f (x∗ ) − pn (x∗ )) .
Wn (x∗ )
F (x) = 0 possui n + 2 raı́zes distintas em [a, b], pois F (xi ) = 0, i = 0, . . . , n e F (x∗ ) = 0. Por aplicação
do teorema de Rolle podemos concluir que F 0 (x) = 0 possui pelo menos n + 1 raı́zes distintas em ]a, b[,
F 00 (x) = 0 possui pelo menos n raı́zes distintas em ]a, b[ e, sucessivamente, F (n+1) (x) = 0 possui pelo
menos uma raiz em ]a, b[. Seja ξ essa raiz. Calculando as derivadas obtemos
(n + 1)!
F (n+1) (x) = f (n+1) (x) − (f (x∗ ) − pn (x∗ )) .
Wn (x∗ )
Substituindo x por ξ obtém-se
(n + 1)!
F (n+1) (ξ) = f (n+1) (ξ) − (f (x∗ ) − pn (x∗ )) = 0.
Wn (x∗ )
Logo
f (n+1) (ξ)
f (x∗ ) − pn (x∗ ) = Wn (x∗ )
(n + 1)!

Na prática um majorante do erro pode ser dado por
M
|f (x) − pn (x)| ≤ |(x − x0 ) . . . (x − xn )|
(n + 1)!
onde

M = max f (n+1) (x)
x∈[a,b]

85 José Duque
Matemática Computacional Interpolação Polinomial

Para se usar esta fórmula do erro é necessário conhecer a derivada de ordem n + 1 da função a
interpolar. No entanto, nem sempre a expressão da função é conhecida e mesmo quando o é a
obtenção de derivadas de ordem superior é muitas vezes trabalhosa.

Exemplo 46 Determine aproximações de cos( π8 ) usando os polinómios interpoladores de La-


grange de grau 2 e 4 no intervalo [0, π]. Compare os resultados obtidos e indique um majorante
para o erro.
Resposta
Seja f (x) = cos(x) Como queremos um polinómio de grau 2 temos de saber 3 pontos. Para aproximarmos
π
a função no ponto x = 8 com controle do erro temos de escolher pelo menos um ponto antes e um ponto
π
depois. Assim podemos escolher os pontos x0 = 0, x1 = 2 e x2 = π. O polinómio é da forma
p2 (x) = f (x0 )L0 (x) + f (x1 )L1 (x) + f (x2 )L2 (x) =
= f (0)L0 (x) + f ( π2 )L1 (x) + f (π)L2 (x)
onde

(x − x1 )(x − x2 ) (x − π2 )(x − π) 2x2 − 3πx + π 2


L0 (x) = = =
(x0 − x1 )(x0 − x2 ) (0 − π2 )(0 − π) π2

(x − x0 )(x − x2 ) (x − 0)(x − π) −4x2 + 4πx


L1 (x) = = π =
(x1 − x0 )(x1 − x2 ) ( 2 − 0)( π2 − π) π2

(x − x0 )(x − x1 ) (x − 0)(x − π2 ) 2x2 − πx


L2 (x) = = =
(x2 − x0 )(x2 − x1 ) (π − 0)(π − π2 ) π2
Substituindo no polinómio fica

2x2 − 3πx + π 2 −4x2 + 4πx 2x2 − πx 2


p2 (x) = 1 × 2
+ 0 × 2
+ (−1) × 2
=− x+1
π π π π
Logo
π π 2π
cos( ) ≈ p2 ( ) = − + 1 = 0.75
8 8 π8
π
Para um polinómio de grau 4 temos de saber 5 pontos. Para aproximarmos a função no ponto x = 8
com controle do erro temos de escolher pelo menos um ponto antes e um ponto depois. Assim podemos
escolher os pontos x0 = 0, x1 = π4 , x2 = π2 , x3 = 3π
4 e x4 = π. O polinómio é da forma
p4 (x) = f (x0 )L0 (x) + f (x1 )L1 (x) + f (x2 )L2 (x) + f (x3 )L3 (x) + f (x4 )L4 (x) =
= f (0)L0 (x) + f ( π4 )L1 (x) + f ( π2 )L2 (x) + f ( 3π
4 )L3 (x) + f (π)L4 (x)
onde

(x − x1 )(x − x2 )(x − x3 )(x − x4 )


L0 (x) =
(x0 − x1 )(x0 − x2 )(x0 − x3 )(x0 − x4 )
(x − π4 )(x − π2 )(x − 3π
4 )(x − π)
= π π 3π
(0 − 4 )(0 − 2 )(0 − 4 )(0 − π)
32x4 − 80πx3 + 70π 2 x2 − 25π 3 x + 3π 4
=
3π 4

(x − x0 )(x − x2 )(x − x3 )(x − x4 )


L1 (x) =
(x1 − x0 )(x1 − x2 )(x1 − x3 )(x1 − x4 )

José Duque 86
5.2 Polinómio Interpolador de Lagrange Matemática Computacional

(x − 0)(x − π2 )(x − 3π
4 )(x − π)
= π π π π 3π π
( 4 − 0)( 4 − 2 )( 4 − 4 )( 4 − π)

−128x4 + 288πx3 − 208π 2 x2 + 48π 3 x


=
3π 4
L2 (x) não é necessário calcular pois f (x2 ) = 0

(x − x0 )(x − x1 )(x − x2 )(x − x4 )


L3 (x) =
(x3 − x0 )(x3 − x1 )(x3 − x2 )(x3 − x4 )

(x − 0)(x − π4 )(x − π2 )(x − π)


=
( 3π 3π π 3π π 3π
4 − 0)( 4 − 4 )( 4 − 2 )( 4 − π)

−128x4 + 224πx3 − 112π 2 x2 + 16π 3 x


=
π4

(x − x0 )(x − x1 )(x − x2 )(x − x3 )


L4 (x) =
(x4 − x0 )(x4 − x1 )(x4 − x2 )(x4 − x3 )

(x − 0)(x − π4 )(x − π2 )(x − 3π


4 )
= π π 3π
(π − 0)(π − 4 )(π − 2 )(π − 4 )

128x4 − 192πx3 + 88π 2 x2 − 12π 3 x


=
3π 4
Substituindo no polinómio fica

32x4 − 80πx3 + 70π 2 x2 − 25π 3 x + 3π 4 2 −128x4 + 288πx3 − 208π 2 x2 + 48π 3 x
p4 (x) = 1 × + × +
3π 4 2 3π 4
√ !
2 −128x4 + 224πx3 − 112π 2 x2 + 16π 3 x 128x4 − 192πx3 + 88π 2 x2 − 12π 3 x
+ − × +(−1)× =
2 π4 3π 4

= 0.14249624500879x3 − 0.67149773472562x2 + 0.06657101107115x + 1


Logo
π π
cos( ) ≈ P4 ( ) = 0.93121843353823
8 8
Se calcularmos cos( π8 ) = 0.92387953251129 logo depreende-se que a segunda aproximação é melhor que
a primeira.

π π cos(3) (ξ) π π π π
f ( ) − p2 ( ) ≤ ( − 0)( − )( − π) =

8 8 3! 8 8 2 8

sin(ξ) 21π 3 1 21π 3



=
× ≤ × = 0.21195696949424
6 512 6 512

π π cos(5) (ξ) π π π π π π 3π π
f ( ) − p4 ( ) ≤ ( − 0)( − )( − )( − )( − π) =

8 8 5! 8 8 4 8 2 8 4 8

−sin(ξ) 105π 5 5

= × ≤ 1 × 105π = 0.00817160718344
120 32768 120 32768
Os valores exactos do erro são respectivamente 0.17387953251129 e 0.00733890102694 

87 José Duque
Matemática Computacional Interpolação Polinomial

5.3 Polinómio Interpolador de Newton


Nesta secção vamos apresentar uma outra forma de calcular o polinómio interpolador que exige
um menor esforço computacional e facilita a introdução de novos pontos. Para isso temos primeiro
de definir o conceito de diferença dividida.

Definição 47 Seja f uma função definida em [a, b] e x0 , x1 , . . . , xn pontos distintos desse inter-
valo. A
f (xi+1 ) − f (xi )
f [xi , xi+1 ] =
xi+1 − xi
chama-se diferença dividida de primeira ordem de f relativamente a xi e xi+1 . As diferenças
divididas de ordem superior são definidas recursivamente. Assim a diferença dividida de ordem k
relativamente a xi , xi+1 , . . . , xi+k é definida por
f [xi+1 , xi+2 , . . . , xi+k ] − f [xi , xi+1 , . . . , xi+k−1 ]
f [xi , xi+1 , . . . , xi+k ] =
xi+k − xi
Por simplicidade vamos denotar frequentemente por fi,...,i+j a diferença dividida f [xi , xi+1 , . . . , xi+j ].
Usualmente as diferenças divididas são calculadas utilizando uma tabela, chamada tabela das di-
ferenças divididas que se pode esquematizar da seguinte forma

xi f (xi ) fi,i+1 fi,i+1,i+2 fi,...,i+3 ... fi,...,i+n


x0 f0
f0,1
x1 f1 f0,1,2
f1,2 f0,...,3
x2 f2 f1,2,3 ...
f2,3 ... f0,...,n
x3 f3 ... ...
... fn−3,...,n
... ... fn−2,n−1,n
fn−1,n
xn fn

Se trocarmos os argumentos das diferenças divididas, por exemplo


f (xi ) − f (xi+1 ) −(f (xi+1 ) − f (xi )) f (xi+1 ) − f (xi )
f [xi+1 , xi ] = = = = f [xi , xi+1 ]
xi − xi+1 −(xi+1 − xi ) xi+1 − xi
o valor é o mesmo. Recursivamente pode concluir-se que o valor das diferenças divididas não se
altera se permutarmos os argumentos.
Utilizando as diferenças divididas podemos construir o polinómio interpolador de f nos pontos
x0 , x1 , . . . , xn da forma

pn (x) = f (x0 ) + f0,1 (x − x0 ) + f0,1,2 (x − x0 )(x − x1 ) + f0,...,3 (x − x0 )(x − x1 )(x − x2 ) + . . .

José Duque 88
5.3 Polinómio Interpolador de Newton Matemática Computacional

· · · + f0,...,n (x − x0 ) . . . (x − xn−1 )
ou seja
n
X
pn (x) = f (x0 ) + f0,...,k Wk−1 (x)
k=1

A este polinómio vamos chamar polinómio interpolador de Newton.


É de notar que os coeficientes da fórmula de Newton são os elementos da primeira diagonal da
tabela das diferenças divididas.
Esta forma de escrever o polinómio permite facilmente subir o grau do polinómio aumentando o
número de pontos pois
pn+1 (x) = pn (x) + f0,...,n+1 Wn .

Como é um polinómio interpolador o erro pode ser obtido por:


1
f (x) − pn (x) = f (n+1) (ξ)(x − x0 ) . . . (x − xn )
(n + 1)!

se f (x) é conhecida. No caso de não ser conhecida f ou de f (n+1) ser muito difı́cil de calcular ou
trabalhar ainda é possı́vel indicar um majorante para o erro pois prova-se que

f (n) (ξ)
f0,...,n =
n!
para algum ξ ∈ [a, b]. Assim se f (x) for desconhecida podemos considerar

|f (x) − pn (x)| ≤ M (x − x0 ) . . . (x − xn )

onde M é o maior módulo das diferenças divididas de ordem n + 1.

Exemplo 48 Dada a tabela de valores de uma determinada função real

x 0 1 2 4
y 2 2 3 6

1. Determine o polinómio interpolador da função, de grau 2, usando a tabela das diferenças


divididas, e calcule um majorante para o erro cometido.
Resposta
Para um polinómio de grau 2 são necessários 3 pontos, por exemplo x0 = 0, x1 = 1 e x2 = 2.
Considerando estes pontos as diferenças divididas ficam

f (x1 ) − f (x0 ) 2−2


f [x0 , x1 ] = = =0
x1 − x0 1−0

f (x2 ) − f (x1 ) 3−2


f [x1 , x2 ] = = =1
x2 − x1 2−1
f [x1 , x2 ] − f [x0 , x1 ] 1−0 1
f [x0 , x1 , x2 ] = = =
x2 − x0 2−0 2

89 José Duque
Matemática Computacional Interpolação Polinomial

pondo tudo numa tabela


x1 f (x1 ) f [xi , xi+1 ] f [xi , . . . , xi+2 ]
0 2
0
1
1 2 2
1
2 3
Assim o polinómio é dado por
1 1 1
p2 (x) = 2 + 0 × (x − 0) + (x − 0)(x − 1) = x2 − x + 2
2 2 2
como não sabemos a expressão da função não a podemos derivar então utilizamos a outra formula.

|f (x) − pn (x)| ≤ M |(x − x0 ) . . . (x − xn )|

onde M é o maior módulo das diferenças divididas de ordem n + 1, logo temos de calcular as
diferenças divididas de ordem 3.
Como os 3 primeiros pontos são iguais ao anterior a tabela já está parcialmente construı́da, só
temos de aumentar os novos pontos.
f (x3 ) − f (x2 ) 6−3 3
f [x2 , x3 ] = = =
x3 − x2 4−2 2
3
f [x2 , x3 ] − f [x1 , x2 ] −1 1
f [x1 , x2 , x3 ] = = 2 =
x3 − x1 4−1 6
1
f [x1 , x2 , x3 ] − f [x0 , x1 , x2 ] −1 1
f [x0 , . . . , x3 ] = = 6 2 =−
x3 − x0 4−0 12
Logo a tabela fica

x1 f (x1 ) f [xi , xi+1 ] f [xi , . . . , xi+2 ] f [xi , . . . , xi+3 ]


0 2
0
1
1 2 2
1
1 − 12
1
2 3 6
3
2
4 6

Assim
1
|f (x) − p2 (x)| ≤
|(x − 0)(x − 1)(x − 2)|
12
Então temos de calcular o max[0;4] {|f (x)|} onde f (x) = x3 − 3x2 + 2x.
f 0 (x) = 3x2 − 6x + 2 os zeros de f 0 (x) são
√ √
3 3
x=1− = 0.4226497308 ∨ x = 1 + = 1.577350269
3 3
logo
max{|f (x)|} = max{|f (0)|, |f (0.4226497308)|, |f (1.577350269)|, |f (4)|} =
[0;4]

José Duque 90
5.4 Polinómio Interpolador de Hermite Matemática Computacional

= max{0, 0.3849001974, 0.3849001794, 24} = 24

Finalmente
1
|f (x) − p2 (x)| ≤ × 24 = 2
12


2. A partir do polinómio da alı́nea anterior, encontre o polinómio de grau 3 que interpola a


função nos quatro pontos tabelados.
Resposta
Para este polinómio são precisos os 4 pontos, logo tem de ser x0 = 0, x1 = 1, x2 = 2 e x3 = 4. Na
pergunta anterior já está a tabela toda construı́da. Logo o polinómio é

1 1
p3 (x) = 2 + 0 × (x − 0) + (x − 0)(x − 1) − (x − 0)(x − 1)(x − 2) =
2 12
1 1 1 1 3 2
= x2 − x + 2 − (x − 0)(x − 1)(x − 2) = − x3 − x2 − x + 2
2 2 12 12 4 3


3. Indique a melhor estimativa de y(1.85), que os dados permitem.


Resposta
A melhor estimativa é utilizando toda a informação logo com o polinómio de grau 3

y(1.85) ≈ p3 (1.85) = 2.80590625

5.4 Polinómio Interpolador de Hermite


Pretende-se construir um desvio entre duas vias de caminho de ferro paralelas.

Para a mudança de via ser suave o desvio deve ser um polinómio de grau 3. Utilizando o referencial
da figura 5.1 concluı́mos que o objectivo é calcular o polinómio de grau 3 que passa pelos pontos
(0, 0) e (4, 2).
Para ser um polinómio de grau 3 temos de utilizar mais 2 pontos. O problem é então como
obter esses dois pontos de forma a que a união entre as vias e o desvio seja suave. A única hipótese
até agora é por tentativa e erro.
Facilmente observamos que o facto de impormos apenas a condição de o polinómio ser de grau
3 não é suficiente pois as uniões entre as vários vias são quase sempre angulosas, como se pode
ver na imagem da esquerda da figura 5.1 . Para conseguirmos uma união perfeita temos de exigir
que o polinómio interpolador tenha a derivada igual a zero nos pontos de união, como mostra a

91 José Duque
Matemática Computacional Interpolação Polinomial

Figura 5.1: Desvio entre 2 vias

imagem da direita da figura 5.1.


Assim o problema é encontrar p3 (x) tal que

p3 (xi ) = f (xi ), e

p03 (xi ) = f 0 (xi )

A esta forma de interpolação vamos chamar interpolação de Hermite e vamos denotar o polinómio
resultante por H para distinguir da outra interpolação.
O objectivo da interpolação de Hermite é então o de interpolar uma função f por um polinómio
cuja derivada também seja um polinómio interpolador da derivada de f . Ou seja, calcular um
polinómio H de modo que
H(xi ) = f (xi )

H 0 (xi ) = f 0 (xi )

O cálculo do polinómio de Hermite pode ser feito utilizando um sistema, adaptando o polinómio
de Lagrange ou de Newton. Aqui vamos apresentá-lo como uma generalização do polinómio de
Newton.
Consideremos a mudança de variável

z0 = x0 , z1 = x0 , z2 = x1 , z3 = x1 , z4 = x2 , . . . , z2n = xn , z2n+1 = xn

e aplicamos as diferenças divididas na variável z. Uma vez que

z2i = z2i+1 = xi ,

não podemos calcular a diferença dividida

f [z2i , z2i+1 ] = f [xi , xi ]

pela fórmula dada anteriormente.


Mas atendendo a que
f (x) − f (xi )
lim = f 0 (xi )
x→xi x − xi
podemos definir as diferenças divididas generalizadas para os pontos não distintos da forma

f [xi , xi ] = f 0 (xi )

José Duque 92
5.5 Spline Cúbico Matemática Computacional

Assim podemos calcular a tabela das diferenças divididas como no polinómio de Newton e definir

H2n+1 = f (x0 ) + f [x0 , x0 ](x − x0 ) + f [x0 , x0 , x1 ](x − x0 )2 + f [x0 , x0 , x1 , x1 ](x − x0 )2 (x − x1 ) + . . .

· · · + f [x0 , x0 , . . . , xn , xn ](x − x0 )2 . . . (x − xn−1 )2 (x − xn )

Note-se que, uma vez que usamos mais informação sobre a função temos necessidade de menos
pontos, ou por outro lado, os mesmos pontos fornecem um polinómio de maior grau.
Da mesma forma como o polinómio de Newton o erro pode ser obtido da forma
(2n+2)
∗ ∗
f (ξ) ∗ 2 ∗ 2

|f (x ) − H2n+1 (x )| = (x − x0 ) . . . (x − xn )
(2n + 2)!

Exemplo 49 Construa o polinómio de Hermite de grau 3 para função g, definida a seguir.

x 1 2 3 4
15 80 255
g(x) 0 2 3 4

g 0 (x) 4 49
4
244
9
769
16

e obtenha uma aproximação de g(1.5).


Resposta
O polinómio de Hermite é de grau 2n + 1, logo 2n + 1 = 3 ⇔ 2n = 2 ⇔ n = 1 assim precisamos de saber
um x0 e um x1 .
Como queremos calcular g(1.5), vamos escolher pela tabela x0 = 1 e x1 = 2.

zi g(zi ) g[zi , zi+1 ] g[zi , . . . , zi+2 ] g[zi , . . . , zi+3 ]


1 0
f [x0 , x0 ] = f 0 (x0 ) = 4
7
1 0 2
15 5
f [x1 , x0 ] = 2 4
15 19
2 2 4
f [x1 , x1 ] = f 0 (x1 ) = 49
4
15
2 2

Então o polinómio pedido é


7 5 5 3 13
H3 (x) = 0 + 4(x − 1) + (x − 1)2 + (x − 1)2 (x − 2) = x3 − x2 + x − 3
2 4 4 2 4
e podemos considerar
87
g(1.5) ≈ H3 (1.5) = = 2.71875
32


5.5 Spline Cúbico


Pela forma do erro de interpolação podemos ser levados a pensar que com o aumento do número de
pontos de interpolação deveria fazer com que o erro de interpolação tendesse para zero. No entanto

93 José Duque
Matemática Computacional Interpolação Polinomial

verifica-se que isso nem sempre é verdade. Um exemplo disso é a função de Runge. A titulo de
exemplo vamos interpolar a função de Runge no intervalo [−1, 1], por polinómios de grau 4, 8, 16 e
32, utilizando nós igualmente espaçados. Os resultados podem ser vistos na figura 5.2. À medida
que vamos aumentando o número de pontos a interpolar o polinómio aproxima-se da função na
parte central do intervalo, mas junto aos extremos vai desenvolvendo cada vez mais oscilações
que o levam a afastar-se da função fora dos nós de interpolação. Este facto é consequência do

Figura 5.2: Função de Runge com os polinómios interpoladores de grau 4, 8, 16 e 32

aumento do grau do polinómio que vai aumentar as oscilações. Para evitar estes inconvenientes
pensou-se em não procurar um polinómio, de grau elevado, que passe por todos os pontos, mas
sim procurar vários polinómios, de baixo grau, que passem cada um por um conjunto reduzido
de pontos. A esta técnica chamamos interpolação segmentada. No final obtemos uma função
definida por ramos, onde cada ramo é um polinómio interpolador nesse intervalo. É desejável que
esta função tenha boas propriedades tais como derivabilidade e continuidade das derivadas. O
método mais utilizado desta técnica é o spline cúbico. Dada uma função y = f (x) o spline cúbico
que interpola a função nos pontos {x0 , . . . , xn } é um polinómio da forma:


 S0 (x) = a0 + b0 (x − x0 ) + c0 (x − x0 )2 + d0 (x − x0 )3 , x ∈ [x0 , x1 [

 S (x) = a + b (x − x ) + c (x − x )2 + d (x − x )3 ,

x ∈ [x1 , x2 [
1 1 1 1 1 1 1 1
S(x) =


 ...

Sn−1 (x) = an−1 + bn−1 (x − xn−1 ) + cn−1 (x − xn−1 )2 + dn−1 (x − xn−1 )3 , x ∈ [xn−1 , xn ]

José Duque 94
5.5 Spline Cúbico Matemática Computacional

Para S(x) ter as propriedades desejadas temos de exigir que

Sj (xj ) = f (xj ), j = 0, 1, . . . , n − 1 (5.2)

Sj+1 (xj+1 ) = Sj (xj+1 ), j = 0, 1, . . . , n − 2 (5.3)


0
Sj+1 (xj+1 ) = Sj0 (xj+1 ), j = 0, 1, . . . , n − 2 (5.4)
00
Sj+1 (xj+1 ) = Sj00 (xj+1 ), j = 0, 1, . . . , n − 2 (5.5)

Para ser um spline completo tem de satisfazer

S 0 (x0 ) = f 0 (x0 ) e S 0 (xn ) = f 0 (xn ) (5.6)

Como nem sempre sabemos as derivadas da função podemos considerar um spline natural que
satisfaz
S 00 (x0 ) = S 00 (xn ) = 0 (5.7)

Para conhecermos o spline temos de calcular os coeficientes aj , bj , cj e dj , j = 0, 1, . . . , n − 1.


Sendo
Sj (x) = aj + bj (x − xj ) + cj (x − xj )2 + dj (x − xj )3

por (5.2) vem


Sj (xj ) = aj = f (xj ), j = 0, 1, . . . , n − 1 (5.8)

por (5.3)

aj+1 = Sj+1 (xj+1 ) = Sj (xj+1 ) = aj + bj (xj+1 − xj ) + cj (xj+1 − xj )2 + dj (xj+1 − xj )3

se definirmos
hj = xj+1 − xj (5.9)

fica
aj+1 = aj + bj hj + cj h2j + dj h3j , j = 0, 1, . . . , n − 2 (5.10)

Derivando Sj (x), vem


Sj0 (x) = bj + 2cj (x − xj ) + 3dj (x − xj )2

logo
Sj0 (xj ) = bj , j = 0, 1, . . . , n − 1

Por (5.4)
bj+1 = bj + 2cj hj + 3dj h2j , j = 0, 1, . . . , n − 1 (5.11)

Derivando mais uma vez


S 00 (xj ) = 2cj + 6dj (x − xj )

então
S 00 (xj ) = 2cj , j = 0, 1, . . . , n − 1

95 José Duque
Matemática Computacional Interpolação Polinomial

Atendendo a (5.5)
cj+1 = cj + 3dj hj , j = 0, 1, . . . , n − 1 (5.12)

donde
cj+1 − cj
dj = , j = 0, 1, . . . , n − 1 (5.13)
3hj
Por (5.10) e por (5.11) concluı́mos

h2j
aj+1 = aj + bj hj + (2cj + cj+1 ) (5.14)
3
e
bj+1 = bj + hj (cj + cj+1 ) (5.15)

de (5.14)
1 hj
bj = (aj+1 − aj ) − (2cj + cj+1 ), j = 0, 1, . . . , n − 1
hj 3
Recordando a definição de diferença dividida podemos afirmar que
hj
bj = fj,j+1 − (2cj + cj+1 ), j = 0, 1, . . . , n − 1 (5.16)
3
Então bj−1 é da forma
1 hj−1
bj−1 = (aj − aj−1 ) − (2cj−1 + cj )
hj−1 3
Aplicando (5.15) vem

3 3
hj−1 cj−1 + 2(hj−1 + hj )cj + hj cj−1 = (aj+1 − aj ) − (aj − aj−1 ), j = 1, . . . , n − 1
hj hj−1

que pode escrever da forma

hj−1 cj−1 + 2(hj−1 + hj )cj + hj cj−1 = 3fj,j+1 − 3fj−1,j , j = 1, . . . , n − 1. (5.17)

Este último resultado pode ser escrito como um sistema da forma


   
1 0 0 0 ... 0 0 c0 0
   
 h0 2(h0 + h1 )
 h1 0 ... 0 0  c1
 
 3f1,2 − 3f0,1 

 0 h1 2(h1 + h2 ) h2 . . . 0 0  c2 3f2,3 − 3f1,2
   
 
=
 .. .. .. .. . . .. ..  .. ..
  
 . . . . . . .  .

 .


   
  n−1,n − 3fn−2,n−1
 0 0 0 0 . . . 2(h + h ) h  c   3f 
 n−2 n−1 n−1  n−1 
0 0 0 0 ... 0 1 cn 0

Resumindo, o spline cúbico natural que interpola f nos pontos x0 , . . . , xn é da forma

Sj (x) = aj + bj (x − xj ) + cj (x − xj )2 + dj (x − xj )3 , x ∈ [xj , xj+1 ], j = 0, 1, . . . , n − 1

onde as constantes são calculadas pelas equações (5.8), (5.9), (5.17), (5.16) e (5.13), ou seja

José Duque 96
5.5 Spline Cúbico Matemática Computacional

aj = f (xj ), j = 0, 1, . . . , n − 1

hj = xj+1 − xj

3 3
hj−1 cj−1 + 2(hj−1 + hj )cj + hj cj−1 = (aj+1 − aj ) − (aj − aj−1 ), j = 1, . . . , n − 1
hj hj−1
hj
bj = fj,j+1 − (2cj + cj+1 ), j = 0, 1, . . . , n − 1
3
cj+1 − cj
dj = , j = 0, 1, . . . , n − 1
3hj

Para obtermos o spline cúbico completo a construção é muito semelhante, a única diferença é
no cálculo dos cj , onde se obtém o sistema
   
0
2h0 h0 0 0 ... 0 0 c0 f0,1 − 3f (x0 )
   
 h0 2(h0 + h1 )
 h1 0 ... 0 0  c1


 3f1,2 − 3f0,1 

 0 h1 2(h1 + h2 ) h2 ... 0 0  c2 3f2,3 − 3f1,2
   
 
=
 .. .. .. .. ... .. ..  .. ..
  
 . . . . . .  . .
 
 
   
  n−1,n − 3fn−2,n−1
 0 0 0 0 ... 2(hn−2 + hn−1 ) hn−1  c   3f 
  n−1 
0 0 0 0 ... hn−1 2hn−1 cn 3f 0 (xn ) − fn,n−1

O erro neste caso pode ser estimado pela fórmula


5
|f (x) − S(x)| ≤ M h4
384
onde
M = max f (4) (x) e h− = min hi
x∈[x0 ,xn ] 1≤i≤n

Exemplo 50 De uma função real conhecem-se apenas os valores

x 0.0 0.5 0.7 1.0


f (x) 0.0 0.6 1.2 2.2

1. Determine o spline cúbico natural que interpola a função nos pontos dados.
Resposta
Da tabela podemos retirar que:
h0 = x1 − x0 = 0.5 − 0.0 = 0.5
h1 = x2 − x1 = 0.7 − 0.5 = 0.2
h2 = x3 − x2 = 1.0 − 0.7 = 0.3
a0 = f (x0 ) = 0.0
a1 = f (x1 ) = 0.6

97 José Duque
Matemática Computacional Interpolação Polinomial

a2 = f (x2 ) = 1.2
a3 = f (x3 ) = 2.2

0.6 − 0.0
f01 = = 1.2
0.5

1.2 − 0.6
f12 = =3
0.2

2.2 − 0.6 10
f23 = =
0.3 3

Com estes dados vamos calcular os cj , resolvendo o sistema


    
1 0 0 0 c0 0
    
  c1   3(3 − 1.2)
 0.5 2(0.5 + 0.2) 0.2 0     
=
 
10
  
  c2   3( 3 − 3)
 0 0.2 2(0.2 + 0.3) 0.3     
 
0 0 0 1 c3 0

ou seja     
1 0 0 0 c0 0
    
 0.5 1.4 0.2 0   c1   5.4 
 
=
  
  
 0 0.2 1 0.3   c2 
  1 
 
 
0 0 0 1 c3 0

Pelo método de Gauss obtemos





 c0 =0

 c = 65 = 3.823529412

1 17
4


 c2 = 17 = 0.2352941176

 c3 =0

Agora vamos calcular os bj

0.5
b0 = 1.2 − (2 × 0 + 3.823529412) = 0.56274510
3
0.2
b1 = 3 − (2 × 3.823529412 + 0.2352941176) = 2.47450980
3
10 0.3
b2 = − (2 × 0.2352941176 + 0) = 3.28627451
3 3
Falta só calcular os dj
3.823529412 − 0
d0 = = 2.54901961
3 × 0.5
0.2352941176 − 3.823529412
d1 = = −5.98039216
3 × 0.2
0 − 0.2352941176
d2 = = −0.26143791
3 × 0.3
Finalmente calculámos todos os coeficientes e vamos construir o spline

José Duque 98
5.6 Exercı́cios Matemática Computacional


2 3
 S0 (x) = 0 + 0.56274510(x − 0) + 0(x − 0) + 2.54901961(x − 0) , x ∈ [0, 0.5[


S1 (x) = 0.6 + 2.47450980(x − 0.5) + 3.823529412(x − 0.5)2 − 5.98039216(x − 0.5)3 , x ∈ [0.5, 0.7[

 S (x) = 1.2 + 3.28627451(x − 0.7) + 0.2352941176(x − 0.7)2 − 0.26143791(x − 0.7)3 , x ∈ [0.7, 1.0]

2

ou seja

3 x ∈ [0, 0.5[
 S0 (x) = 0.56274510x + 2.54901961x ,


S1 (x) = 1.066176473 − 5.834313732x + 12.794117652x2
− 5.98039216x3
, x ∈ [0.5, 0.7[

 S (x) = −0.895424836 + 2.572549018x + 0.784313729x2 − 0.26143791x3 , x ∈ [0.7, 1.0]

2

2. Calcule uma estimativa de f (0.6).


Resposta
Como 0.6 ∈ [0.5, 0.7[
f (0.6) ≈ S1 (0.6) = 0.87970588196

5.6 Exercı́cios
1. Determine o polinómio de terceiro grau da forma y = ax3 + bx2 + cx + d que ”passa”pelos
pontos (1, 10), (2, 26), (−1, 2) e (0, 4), utilizando o método de eliminação de Gauss para o
resolver.

1
2. A seguinte tabela corresponde à função f (x) = x

x 3.35 3.4 3.5 3.6


f (x) 0.298507 0.294118 0.285714 0.277778

Encontre valores aproximados para f (3.44) utilizando a interpolação linear, quadrática e


cúbica. Calcule o valor do erro para cada um dos casos.

3. Uma função g é conhecida exclusivamente através da tabela

x −2 −1 1 2 3
g(x) −16 0 2 0 4

(a) Calcule uma estimativa de g(1.65), usando o polinómio interpolador de lagrange de


grau 2.
(b) Determine a melhor estimativa de g(1.65) que os dados permitem.

4. Determine o polinómio de Lagrange, p(x), que passa pelos pontos (−3, 1), (−2, 2), (1, −1) e
(3, 10). Calcule p(0).

99 José Duque
Matemática Computacional Interpolação Polinomial

5. A seguinte tabela lista a população, em milhares de pessoas, de 1930 a 1980 num certo paı́s.

Ano 1930 1940 1950 1960 1970 1980


população 123.203 131.669 150.697 179.323 203.212 226.505

Utilize o polinómio de Lagrange para estimar a população no ano 1965.

6. O tempo t que um automóvel leva a passar de uma velocidade inicial, de 30 Km/h, para
uma velocidade v, está descrito na seguinte tabela

v, Km/h 30 45 50 75
t, s 0.0 1.8 4.3 9.4

Estime o tempo necessário para atingir 48 Km/h.

7. Determine o polinómio de Lagrange, de grau 2 em x e de grau 3 em y, interpolador da função


f (x, y) = −2y 3 + x2 + 4y 2 − 3x − 1, no conjunto (x, y) ∈ [0, 1] × [0, 1].

8. Pretende-se calcular o valor de 1.005. Suponha que é dada a seguinte tabela relativa à

funçãof (x) = x

xi 1.00 1.01 1.02 1.03 1.04 1.05


f (xi ) 1.0000 1.0050 1.0100 1.0149 1.0189 1.0247

(a) Determine uma aproximação para 1.005, utilizando o polinómio interpolador de New-
ton de grau 3.

(b) Calcule um majorante do erro da estimativa da alı́nea anterior.

9. Seja f (x) dada pela seguinte tabela.

xi −2 0 2 4 6
f (xi ) 1 2 −1 2 3

Determine uma aproximação para o valor de f (−1.5) usando:

(a) a fórmula interpoladora de Newton das diferenças divididas;

(b) a fórmula interpoladora de Newton das diferenças progressivas.

10. Num teste para determinar a elongação dum material em função da temperatura obtiveram-
se os seguintes valores

0
Temperatura, C 70 78 83 90 95
Elongação, % 3 5 9 11 17

Preveja a elongação a obter se a temperatura for 80 0 C.

José Duque 100


5.6 Exercı́cios Matemática Computacional

11. A diferença de voltagem V que atravessa uma resistência para vários valores de corrente I
foi medida e registada na tabela seguinte

I 0.25 0.75 1.25 1.5 2.0


V −0.45 −0.60 0.70 1.88 6.0

Utilize a interpolação polinomial para estimar a voltagem para I = 1.1.

12. Foi feito um teste para relacionar a tensão e a deformação numa barra de alumı́nio, tendo-se
obtido os seguintes valores

Tensão 1 2 3 4 5 6 7 8 9 10 11 12
Deformação 2 4 6 6 6 7 8 7.5 7 7.5 8 7.5

Usando a interpolação determine o valor da deformação correspondente a uma tensão de


7.4. Indique uma estimativa do erro cometido.

13. Considere a tabela

x −1 0 1
f (x) 0 1 0
0
f (x) 0 0 0

(a) Defina a estimativa de f (0.25) recorrendo ao polinómio interpolador de Hermite.


(b) Determine outra estimativa do mesmo valor, definindo o polinómio de Hermite unica-
mente no segmento que contém o 0.25
(c) Use a fórmula interpoladora de Newton para calcular uma terceira aproximação de
f (0.25).

14. Pretende-se interpolar a função sin(πx) no intervalo [0, 1], por um spline cúbico natural,
numa malha uniforme.
1
Construa o spline cúbico natural que interpola a função nos nós x0 = 0, x1 = 4
, x2 =
1
2
, x3 = 34 , x4 = 1

15. Determine o spline cúbico natural que interpola a função f (x) = x(1 + x2 ), nos pontos
x0 = −1, x1 = 0, x2 = 1.

16. As funções de Bessel aparecem muitas vezes em engenharia e no estudo de campos eléctricos.
Estas funções são bastante complexas de avaliar directamente, por isso são muitas vezes
compilados em tabelas, por exemplo

x 1.8 2.0 2.2 2.4 2.6


J0 (x) 0.3400 0.2239 0.1104 0.0025 0.0968

Estime J0 (2.1)

101 José Duque


Matemática Computacional Interpolação Polinomial

(a) utilizando interpolação polinomial.


(b) utilizando splines cúbicos.
(c) Calcule os erros das aproximações anteriores sabendo que o valor exacto é 0.1666.

José Duque 102


Capı́tulo 6

Integração

6.1 Integrais
O conceito de integral definido pode ser motivado pela consideração da área delimitada pela curva
y = f (x), o eixo dos xx e as rectas x = a e x = b, como mostra a figura 6.1.
Pode-se, no entanto, formular a definição sem apelar para a geometria.

Figura 6.1: Integral de f

Subdividamos o intervalo a ≤ x ≤ b em n subintervalos, por meio dos pontos x1 , x2 , . . . , xn−1


escolhidos arbitrariamente. Em cada um dos intervalos [a, x1 ], [x1 , x2 ], . . . , [xn−1 , b], escolhamos,
também arbitrariamente, os pontos ε1 , ε2 , . . . , εn com εi ∈ [xi−1 , xi ] e formemos a soma

f (ε1 )(x1 − a) + f (ε2 )(x2 − x1 ) + · · · + f (εn )(b − xn−1 )

Fazendo x0 = a, xn = b e xk − xk−1 = ∆xk , podemos escrever


n
X n
X
f (εk )(xk − xk−1 ) = f (εk )∆xk
k=1 k=1

Geometricamente, esta soma representa a área total de todos os rectângulos na figura 6.1. Aumen-
temos, agora, o número n de subdivisões, de modo que cada ∆xk → 0. Se, como resultado disso,

103
Matemática Computacional Integração

a soma anterior tender para um limite que não dependa do modo de subdivisão, representaremos
esse limite por Z b
f (x) dx
a

que chamaremos integral definido de f (x) entre a e b; f (x) é a função integranda e [a, b] o intervalo
de integração. Às vezes, diz-se que a e b são os limites de integração, a limite inferior e b limite
superior.
O integral existe sempre que f (x) for contı́nua em [a, b]. Nesse caso dizemos que f (x) é integrável.

Teorema 51 Suponhamos que f é uma função contı́nua em I = [a, b] e seja F definida por
Z x
F (x) = f (t) dt
a

Então F é contı́nua em I e F 0 (x) = f (x) ∀x ∈ I1 =]a, b[.

À função F chamamos primitiva de f .

Teorema 52 Suponhamos que f e F são contı́nuas em I = [a, b] e que F 0 (x) = f (x) ∀x ∈ I1 =


]a, b[. Então
Z b
f (x) dx = F (b) − F (a)
a

Deste teorema podemos deduzir que para calcularmos o valor de um integral basta conhecermos
uma primitiva de f

6.2 Métodos de primitivação


Definição 53 Seja f (x) uma função real de variável real definida em [a, b]. Diz-se que uma
função F (x) é uma primitiva de f (também conhecida por integral indefinido de f ) se, para todo
x em [a, b] a função F (x) é diferenciável e é tal que F 0 (x) = f (x) Escreve-se F (x) = P (f (x)) ou
R
F (x) = f (x) dx.

É fácil notar que se G(x) = F (x) + C, com C uma constante, então G0 (x) = F 0 (x). Logo se
F é primitiva de f também G o é. Podemos então concluir que quando uma função tem uma
primitiva então tem um infinidade de primitivas.
Disto pode surgir outra questão. Será que todas as primitivas são desta forma? O teorema seguinte
responde a essa pergunta.

Teorema 54 Se F (x) e G(x) são ambas primitivas de f , então F (x) − G(x) = C com C ∈ R
A constante C é chamada a constante de primitivação e F (x) + C a expressão geral das primitivas
de f .

Directamente da definição de primitiva podemos deduzir algumas propriedades:

José Duque 104


6.2 Métodos de primitivação Matemática Computacional

R R
• Se k é uma constante não nula, então k × f (x) dx = k f (x) dx
R R R
• f (x) + g(x) dx = f (x) dx + g(x) dx

A pergunta agora é se toda a função tem primitiva. Consegue-se provar o seguinte teorema, que
dá alguma luz sobre esse problema.

Teorema 55 Toda a função contı́nua num intervalo [a b] é primitivável nesse intervalo.

O teorema afirma que a primitiva existe, mas não indica como a obter. O facto de sabermos que a
primitiva existe não significa que saibamos qual é explicitamente. No entanto algumas primitivas
podem-se deduzir directamente da definição de integral e das regras de derivação. A este tipo de
primitivas chamamos primitivas imediatas. Por exemplo
Z
cos(x) dx = sin(x) + C

pois (sin(x) + C)0 = cos(x)


A seguir apresentam-se algumas primitivas imediatas
Z
k dx = kx + C

f k+1
Z
f 0 f k dx = + C, k 6= −1
k+1
f0
Z
dx = ln(|f |) + C
f
Z
f 0 ef dx = ef + C

af
Z
f 0 af dx = + C, a ∈]0, +∞[\{−1}
ln(a)
Z
f 0 cos(f ) dx = sin(f ) + C
Z
f 0 sin(f ) dx = −cos(f ) + C

f0
Z
dx = tan(f ) + C
cos2 (f )
f0
Z
1
2
dx = − +C
sin (f ) tan(f )

Embora haja muitas primitivas que se encaixam nesta lista existem muitas outras que são um
pouco mais elaboradas. Vamos de seguida deduzir alguns métodos de primitivação.

Primitivação por partes


Recordando a regra da derivação do produto

(f g)0 = f 0 g + f g 0

105 José Duque


Matemática Computacional Integração

donde se conclui
Z Z Z Z Z
f g + f g dx = f g ⇔ f g dx + f g dx = f g ⇔ f g dx = f g − f g 0 dx
0 0 0 0 0

A fórmula da primitivação por partes é muitas vezes enunciada da forma


Z Z Z Z 
f × g dx = f dx × g − f dx × g 0 dx

Nesta forma de primitivação a função f é primitivada e g é derivada. Descobre-se facilmente que


é muito importante a escolha adequada da função f e da função g. De seguida vamos fornecer
alguns critérios para essa escolha.

função f g
u(x)×exponencial exponencial u(x)
u(x)×trigonométrica trigonométrica u(x)
u(x)×logaritmo u(x) logaritmo

Primitivação por substituição

Para simplificar o cálculo de certas primitivas, que envolvam repetidas vezes a mesma expressão
ou com funções irracionais não imediatas, é por vezes útil fazer uma mudança de variável, ou uma
substituição.
O método de substituição é uma consequência directa da regra de derivação de funções compostas.
Suponhamos que Z
F (x) = f (x) dx ou seja F 0 (x) = f (x)

Se substituirmos x = g(t) então, pela regra da função composta

f (x) = F 0 (x) = (F (g(t)))0 = F 0 (g(t))g 0 (t) = f (g(t))g 0 (t)

logo Z Z
f (x) dx = f (g(t))g 0 (t) dt

Nestas condições, pretendendo primitivar f (x), se conseguirmos encontrar uma substituição,


x = g(t), para a qual saibamos primitivar f (g(t))g 0 (t), o resultado desta primitivação é o mesmo,
a menos de uma constante de primitivação. É de notar que no fim de fazer a primitiva é necessário
voltar à variável inicial. Para isso temos de escolher mudanças que sejam invertı́veis.
O problema principal reside na escolha da substituição adequada. No quadro que se segue vamos
indicar algumas sugestões.

função f com: substituição



a2 − x 2 x = a cos(t) ou x = a sin(t)

a2 + x 2 x = a tan(t)
ex x = ln(t)
1
ln(x) e x
a multiplicar x = et

José Duque 106


6.2 Métodos de primitivação Matemática Computacional

Primitivação de funções racionais

Entre as classes mais importantes de funções elementares primitiváveis devem destacar-se as


funções racionais.
Uma função racional é quociente de dois polinómios.
P (x)
Seja R(x) = Q(x)
uma função racional. Vamos supor sempre que R(x) está na forma mais simpli-
ficada, ou seja, P e Q não têm factores em comum e o grau de P é inferior ao grau de Q.
Se P e Q têm factores em comum então simplificamos a fracção cortando esse factores.
Se o grau de P for superior ao de Q então aplicados o algoritmo da divisão inteira de polinómios
e obtemos R(x) = A(x) + B(x)
C(x)
. A(x) é um polinómio, logo fácil de integrar directamente, e o grau
de B é inferior ao de C.
Vamos também supor, por simplicidade que Q é mónico, isto é, o coeficiente do termo de maior
grau é 1.
Para o cálculo da primitiva vamos decompor a fracção em fracções simples fáceis de primitivar.
A decomposição de R depende das raı́zes de Q.
Suponhamos que Q tem:

• r1 raı́zes reais simples: a1 , . . . , ar1 ;

• r2 raı́zes reais b1 , . . . , br2 de multiplicidades n1 , . . . , nr2 respectivamente;

• r3 pares de raı́zes complexas simples: u1 ± v1 i, . . . , ur3 ± vr3 i;

• r4 pares de raı́zes complexas w1 ± z1 i, . . . , wr4 ± zr4 i de multiplicidades m1 , . . . , mr4 respec-


tivamente;

então podemos escrever R(x) da forma

P (x) A1 Ar 1 B1 Bn1
R(x) = = + ··· + + ··· + + ··· + + ...
Q(x) x − a1 x − ar 1 x − b1 (x − b1 )n1
C1 Cnr2 D1 x + E1 Dr3 x + Er3
+ +· · ·+ mr2
+· · ·+ 2 2
+· · ·+ +. . .
x − br2 (x − br2 ) (x − u1 ) + v1 (x − ur3 )2 + vr23
F1 x + G1 Fm1 x + Gm1
+ 2
+ · · · + + ...
(x − w1 )2 + z1 ((x − w1 )2 + z12 )m1
M 1 x + N1 Mmr4 x + Nmr4
+ + ··· +
2 2
(x − wr4 ) + zr4 ((x − wr4 )2 + zr24 )mr4
(6.1)

Notas

• Os valores r1 , r2 , r3 e r4 podem ser alguns nulos.

• Por cada raiz a de multiplicidade 1 associa-se uma parcela do tipo


A
.
x−a

107 José Duque


Matemática Computacional Integração

• Por cada raiz b de multiplicidade p > 1 adicionamos p parcelas da forma


B1 B2 Bp
+ 2
+ ··· + .
x − b (x − b) (x − b)p

• Para cada par de raı́zes complexas u ± vi de multiplicidade 1 somamos uma parcela do tipo
Fx + G
.
(x − u)2 + v 2

• Se Q tem raı́zes complexas de multiplicidade p > 1, por cada par dessas raı́zes temos de
adicionar p parcelas da forma
M 1 x + N1 M 2 x + N2 M p x + Np
2 2
+ 2 2 2
+ ··· +
(x − u) + v ((x − u) + v ) ((x − u)2 + v 2 )p

• As constantes reais A’s, B’s, C’s, D’s, E’s, F ’s, G’s M ’ e N ’s têm de ser determinadas.

Para calcularmos as constantes basta reduzir o segundo membro a uma só fracção. Os denomina-
dores das duas fracções são idênticos, então os numeradores também devem ser iguais. Igualando
os coeficientes dos termos homólogos obtemos um sistema cujas incógnitas são as constantes A’s,
B’s, C’s, D’s, E’s, F ’s, G’s M ’ e N ’s. Resolvendo o sistema e substituindo na equação (6.1)
obtemos a expansão em fracções simples desejada.
Falta agora calcular a primitiva de cada uma das parcelas.
Recorrendo às regras anteriores obtemos
Z
A
dx = A ln(|x − a|) + C
x−a
Z
B B 1
p
dx = × +C
(x − b) 1 − p (x − b)p−1
 
x−u
Z
Dx + E D Du + E
2 2
dx = ln(x2 − 2 xu + u2 + v 2 ) + tan−1 +C
(x − u) + v 2 v v

Exemplo 56 1. Calcule a expansão em fracções simple da fracção


P 5x4 + 19x3 + 36x2 + 35x + 14
= 5
Q x + 6x4 + 16x3 + 24x2 + 20x + 8
Resposta
Os zeros de Q são: x = −2 (raiz simples) e x = −1 ± i (multiplicidade 2). Então
P A Bx + C Dx + E
= + +
Q x + 2 (x + 1)2 + 12 ((x + 1)2 + 12 )2
Só temos de calcular as constantes A, B, C, D, e E.
Transformando o segundo membro numa só fracção temos

5x4 + 19x3 + 36x2 + 35x + 14


=
x5 + 6x4 + 16x3 + 24x2 + 20x + 8

José Duque 108


6.2 Métodos de primitivação Matemática Computacional

(A + B)x4 + (4A + 4B + C)x3 + (8A + 6B + 4C + D)x2 + (8A + 4B + 6C + 2D + E)x + 4A + 4C + 2E


=
x5 + 6x4 + 16x3 + 24x2 + 20x + 8

Para que as duas fracções sejam iguais temos de igualar os coeficientes dos termos de igual grau.
Resulta o seguinte sistema



 A+B =5


 4A + 4B + C = 19



8A + 6B + 4C + D = 36





 8A + 4B + 6C + 2D + E = 35

4A + 4C + 2E = 14

Resolvendo o sistema vem 



 A=4


 B=1



C = −1





 D=2

E=1

Finalmente a expansão é
P 4 x−1 2x + 1
= + 2 2
+
Q x + 2 (x + 1) + 1 ((x + 1)2 + 12 )2


2. Calcule uma primitiva de


P 4x4 − 9x3 + 5x2 + 3x − 4
= 5
Q x − 5x4 + 11x3 − 13x2 + 8x − 2
Resposta
O zeros do denominador são:
x = 1 multiplicidade 3
x = 1 ± i multiplicidade 1
então
P A B C Dx + E
= + 2
+ 3
+
Q x − 1 (x − 1) (x − 1) (x − 1)2 + 12

Ax4 −4Ax3 +7Ax2 −6Ax+2A+Bx3 −3Bx2 +4Bx−2B+Cx2 −2Cx+2C+Dx4 −3Dx3 +3Dx2 −Dx+Ex3 −3Ex2 +3Ex−E
= (x−1)3 (x2 −2x+2)
(A + D)x4 + (−4A + B − 3D + E)x3 + (7A − 3B + C + 3D − 3E)x2 + (−6A + 4B − 2C − D + 3E)x + 2A − 2B + 2C − E
=
x5 − 5x4 + 11x3 − 13x2 + 8x − 2

O sistema resultante é 


 A+D =4

 −4A + B − 3D + E = −9



7A − 3B + C + 3D − 3E = 5

−6A + 4B − 2C − D + 3E = 3






 2A − 2B + 2C − E = −4

109 José Duque


Matemática Computacional Integração

Resolvendo o sistema vem 




 A=3

 B=2



C = −1




 D=1


 E=4

A expansão é
P 3 2 −1 x+4
= + + +
Q x − 1 (x − 1)2 (x − 1)3 (x − 1)2 + 12
Logo a primitiva é
−1
Z Z Z Z Z
P 3 2 x+4
dx = dx + 2
dx + 3
dx + dx
Q x−1 (x − 1) (x − 1) (x − 1)2 + 12
Utilizando as fórmulas dadas anteriormente
−1
Z
P 2 1 1 1
dx = 3 ln(|x−1|)+ 2−1
+ 3−1
+ ln(x2 −2x+2)+5 tan−1 (x−1)
Q 1 − 2 (x − 1) 1 − 3 (x − 1) 2
2 1 1
= 3 ln(|x − 1|) − − 2
+ ln(x2 − 2x + 2) + 5 tan−1 (x − 1)
x − 1 2(x − 1) 2


6.3 Fórmulas de Newton-Cotes


Para muitas funções a obtenção de primitivas em termos de funções elementares é uma tarefa difı́cil
ou mesmo impossı́vel; é o caso que acontece quando a função a primitivar é apenas conhecida numa
tabela de valores. Nesta secção vamos obter e analisar fórmulas que permitam determinar de forma
aproximada o integral definido de uma função num dado intervalo real. Estamos interessados em
aproximar o integral por uma soma do tipo
Z b n
X
f (x) dx = ai f (xi )
a i=0

A grande maioria das fórmulas existentes baseia-se na ideia de substituir a função integranda por
uma aproximação geralmente fácil de integrar. Um processo de determinar essa aproximação pode
ser a interpolação. A este tipo de fórmulas costuma-se chamar fórmulas de Newton-Cotes e a este
processo de quadratura.
Seja f uma função conhecida em n + 1 pontos a = x0 < x1 < · · · < xn−1 < xn = b. Como é
sabido, existe um polinómio Pn de grau menor ou igual n interpolador de f nos pontos dados tal
que f (x) = Pn (x) + En (x), onde
f (n+1) (ξ)
En (x) = Wn (x), ξ ∈ [a, b]
(n + 1)!
Assim Z b Z b Z b
I= f (x) dx = Pn (x) dx + En (x) dx
a a a

José Duque 110


6.3 Fórmulas de Newton-Cotes Matemática Computacional

Utilizando a construção de Lagrange do polinómio interpolador podemos considerar


Z b n
X Z b
I= f (x) dx ≈ ai f (xi ), com ai = Li (x) dx
a i=0 a

sendo Li as funções de Lagrange da definição 43 da página 84. O erro cometido é da forma


Z b (n+1)
f (ξ)
E= Wn (x)
a (n + 1)!

Uma vez que n-ésima fórmula de newton-Cotes é obtida pela aproximação da função integranda
por um polinómio de grau n. Será de esperar que obtenha valores exactos para polinómios de grau
menor ou igual a n. Esta observação leva-nos ao conceito da ordem de precisão de uma fórmula
de quadratura numérica.

Definição 57 Dizemos que uma fórmula de quadratura numérica é de grau n se for n o maior
grau de um polinómio, para o qual a fórmula fornece o valor exacto do seu integral.

Por exemplo uma fórmula de grau 3 fornece o valor exacto para o integral de qualquer polinómio
de grau igual ou inferior 3, mas só fornece uma aproximação para o integral de polinómios de grau
superior a 3.

Fórmula dos trapézios

Vamos considerar o caso em que aproximamos a função f por um polinómio de grau 1 que
passa pelos pontos (a, f (a)) e (b, f (b)). A esta fórmula chamaremos regra ou quadratura dos
trapézios.
Integrando as funções de Lagrange obtemos
Z b
x−b b−a
a0 = dx =
a a−b 2
Z b
x−a b−a
a1 = dx =
a b−a 2
Então a aproximação do integral é
Z b
b−a b−a b−a
I= f (x) dx ≈ f (a) + f (b) = [f (a) + f (b)]
a 2 2 2
Para calcularmos o erro de integração vamos integrar o erro de interpolação
Z b 00
f 00 (ξ) b f 00 (ξ) 1
Z
f (ξ)
E= (x − a)(x − b) dx = (x − a)(x − b) dx = [− (b − a)3 ]
a 2 2 a 2 6
A este erro vamos chamar erro de truncatura
(b − a)3 00
ET = − f (ξ), ξ ∈ [a, b]
12
Note-se que esta expressão permite afirmar que a quadratura do trapézio tem ordem 1.

111 José Duque


Matemática Computacional Integração

Fórmula de Simpson

Abordemos agora o caso em que a função integranda é interpolada pelo polinómio de grau 2
que passa pelos pontos (a, f (a)), ( a+b
2
, f ( a+b
2
)) e (b, f (b)). Da mesma forma que o método anterior

b−a
a0 = a2 =
6
4b − 4a
a1 =
6
Então podemos afirmar que
Z b    
b−a a+b
f (x) dx ≈ f (a) + 4f + f (b) ,
a 6 2

conhecida por fórmula de Simpson.


Integrando o erro de interpolação obtemos

(b − a)5 (4)
ET = − f (ξ), ξ ∈ [a, b]
2880

É de salientar que uma vez que utilizámos um polinómio interpolador de grau 2, seria de esperar
que a fórmula tivesse grau 2. Mas a expressão do erro indica-nos que a ordem do método é 3, o
que é melhor que o esperado.
Por vezes vezes considera-se h a distância entre os pontos de interpolação, então o erro pode ser
dado por
3
ET = − h12 f 00 (ξ) na fórmula de trapézio pois h = b − a e
5
ET = − h90 f (4) (ξ) na fórmula de Simpson pois h = b−a
2
Estas fórmulas estão incluı́das nas fórmulas de intervalo fechado pois os extremos do intervalo
são pontos de interpolação. Se considerarmos apenas como pontos de interpolação pontos interiores
do intervalo vamos obter fórmulas de intervalo aberto.
Resumindo, para o cálculo de integrais algumas das fórmulas mais conhecidas são:

• Regras de Newton-Cotes de intervalo fechado.


h h3
– Regra do trapézio I =[f (a) + f (b)] − f 00 (ξ), h = b − a
2 12
h  a+b  h5 (4) b−a
– Regra do Simpson I = f (a) + 4f ( ) + f (b) − f (ξ), h=
3 2 90 2
• Regras de Newton-Cotes de intervalo aberto
3h 3h3 00 b−a
– I= [f (x1 ) + f (x2 )] + f (ξ), h =
2 4 3
4h 14h5 (4) b−a
– I= [2f (x1 ) − f (x2 ) + 2f (x3 )] + f (ξ), h=
3 45 4
R 0.7
Exemplo 58 1. Pretende-se definir uma estimativa de 0.3
f (x)dx. A função integranda é
conhecida apenas em alguns pontos de acordo com a seguinte tabela:

José Duque 112


6.4 Fórmulas de Newton-Cotes Compostas Matemática Computacional

x 0.3 0.4 0.5 0.6 0.7


f (x) 10 7.5 −1 0 3

Obtenha estimativas para o integral recorrendo às seguintes fórmulas de integração numérica:

(a) Regra dos trapézios


Resposta
h = 0.7 − 0.3 = 0.4 logo Z 0.7
0.4
f (x) dx ≈ (10 + 3) = 2.6
0.3 2


(b) Regra de Simpson


Resposta
0.7−0.3
h= 2 = 0.2 então
Z 0.7
0.2
f (x) dx ≈ (10 + 4 × (−1) + 3) = 0.6
0.3 3

2. Resolva o integral impróprio seguinte utilizando uma regra de Newton-Cotes de intervalo


aberto. Z 1
x−1/4 sin(x)dx.
0
Resposta
A função integranda é f (x) = x−1/4 sin(x) e escolhemos por exemplo a fórmula

4h 14h5 (4) (b − a)
I= [2f (x1 ) − f (x2 ) + 2f (x3 )] + f (ξ), h=
3 45 4
O valor de h é
1−0
h= = 0.25
4
logo x1 = 0 + 0.25 = 0.25, x2 = 0 + 0.25 × 2 = 0.5 e x3 = 0 + 0.25 × 3 = 0.75, então o integral é
aproximado
Z 1 por
4 × 0.25
x−1/4 sin(x)dx ≈ (2f (0.25) − f (0.5) + 2f (0.75))
0 3
= 13 (2 × 0.3498820346 − 0.5701362616 + 2 × 0.7324685159)
= 0.5315216131 

6.4 Fórmulas de Newton-Cotes Compostas


Verifica-se que, se a amplitude do intervalo [a, b] for muito grande, os erros associados às fórmulas
de quadratura numérica são muito grandes. Podemos pensar então em dividir o intervalo. Se
dividirmos o intervalo de integração em n subintervalos de igual amplitude e aplicarmos as regras
de Newton-Cotes em cada um dos subintervalos obtemos as fórmulas compostas.
b−a
Consideremos h = n
e dividamos o intervalo [a, b] em n subintervalos da forma [xi−1 , xi ], i =

113 José Duque


Matemática Computacional Integração

1, . . . , n com xi = a + h × i.
Aplicando a fórmula dos trapézios a cada um dos subintervalos, temos
Z b n Z xi n 
h3 00

X X h
f (x) dx = f (x) dx = [f (xi−1 ) + f (xi )] − f (ξi ) ,
a i=1 xi−1 i=1
2 12

com ξi ∈ [xi−1 , xi ], i = 1, . . . , n. Concluı́mos então que o integral pode ser dado aproximadamente
por Z b
h
f (x) dx ≈ [f (x0 ) + 2f (x1 ) + · · · + 2f (xn−1 ) + f (xn )]
a 2
sendo o erro dado por
n
h3 X 00
ET = − f (ξi )
12 i=1
Pelo teorema de Bolzano existe um ξ ∈ [a, b] tal que
n
X
f 00 (ξi ) = nf 00 (ξ).
i=1

Sendo assim o erro é dado por


b − a 2 00
h f (ξ) ET = −
12
Então a regra do trapézio composta é de uma forma resumida
b n−1 o b−a (b − a)
Z
hn X
f (x)dx = f (a) + 2 f (xj ) + f (b) − h2 f 00 (ξ), h=
a 2 j=1
12 n

Para obtermos a regra de Simpson composta os passos são os mesmos, só temos de garantir
que n é par.
A fórmula resultante é
Z b
h
f (x) dx ≈ [f (x0 ) + 4f (x1 ) + 2f (x2 ) + 4f (x3 ) + · · · + 2f (xn−2 ) + 4f (xn−1 ) + f (xn )]
a 3
com erro
b − a 4 (4)
ET = − h f (ξ), ξ ∈ [a, b]
180
ou de uma forma compacta
Z b (n/2)−1 (n/2) o b−a
hn X X
f (x)dx = f (a) + 2 f (x2j ) + 4 f (x2j−1 ) + f (b) − h4 f (4) (ξ),
a 3 j=1 j=1
180

(b − a)
h=
n
xi = a + hi, ξ ∈ (a, b)

Exemplo 59 Utilize as regras compostas do trapézio e de Simpson com o 4 sub-intervalos para


aproximar o integral seguinte e determine um limite superior para o erro cometido.
Z 2
xln(x)dx
1

José Duque 114


6.4 Fórmulas de Newton-Cotes Compostas Matemática Computacional

Resposta
Método do trapézio

f (x) = xln(x)

Uma vez que é pedido com 4 subintervalos


2−1
h= = 0.25
4
então
a = x0 = 1, x1 = 1.25, x2 = 1.5, x3 = 1.75, b = x4 = 2

logo Z 2
0.25
f (x) dx ≈ (f (1) + 2f (1.25) + 2f (1.5) + 2f (1.75) + f (2))
1 2
1
= (0 + 0.5578588783 + 1.216395324 + 1.958655258 + 1.386294361) = 0.6399004777
8
A estimativa do erro é
2−1
Ea = 0.252 f 00 (ξ), ξ ∈ [0, 2]
12
f 0 (x) = ln(x) + x × x1 = ln(x) + 1 e f 00 (x) = x1 .
Como não sabemos o valor de ξ vamos calcular um majorante do erro calculando, visto que f 00 é decres-
cente
max f 00 (x) = 1
[1,2]
Assim
1
Ea ≤ 0.0625 = 0.0052
12
Método de Simpson
Mais uma vez como é pedido com 4 subitervalos
2−1
h= = 0.25
4
e
a = x0 = 1, x1 = 1.25, x2 = 1.5, x3 = 1.75, b = x4 = 2

logo Z 2
0.25
f (x) dx ≈ (f (1) + 4f (1.25) + 2f (1.5) + 4f (1.75) + f (2))
1 3
1
= (0 + 1.115717757 + 1.216395324 + 3.917310516 + 1.386294361) = 0.6363098298
12
A estimativa do erro é
2−1
Ea = 0.254 f (4) (ξ), ξ ∈ [0, 2]
180
f 0 (x) = ln(x) + x × x1 = ln(x) + 1, f 00 (x) = x1 , f 000 (x) = − x12 e f (4) (x) = x23
Como ainda não sabemos o valor de ξ vamos calcular um majorante do erro calculando

max f (4) (x) = f (4) (1) = 2


[1,2]

pois f (4) é decrescente e positiva. Assim


1
Ea ≤ 0.00390625 × 2 = 0.00004340277
180


115 José Duque


Matemática Computacional Integração

6.5 Método de Romberg


O método de integração de Romberg é um método iterativo que, embora não estritamente adap-
tativo, permite controlar o erro e por isso se inclui nesta secção. Baseia-se essencialmente na
utilização da regra do trapézio composta juntamente com a estimativa do erro através da fórmula
de Euler-Maclaurin.
Assim, consideremos uma sucessão de aplicações da regra do trapézio composta em que o número
de intervalos é sucessivamente aumentado para o dobro em cada aplicação. Concretamente po-
nhamos
hk−1 b−a
h = h0 = b − a, hk = = k , k = 1, 2, . . .
2 2
e seja Rk,1 o valor obtido pela aplicação da regra do trapézio composta com 2k−1 subintervalos de
comprimento hk . De acordo com

Eh (f ) = I(f ) − Ih (f ) = c2 h2 + c4 h4 + . . . ,

o erro tem a seguinte expressão

Ek = I − Rk,1 = c2 h2k + c4 h4k + . . . (6.2)

onde as constantes c2 , c4 , . . . dependem das derivadas da integranda mas não do parâmetro hk .


Notemos que nesta expressão apenas figuram potências pares de hk . Em face do que dissemos,
podemos escrever que
 2  4
hk hk
Ek+1 = I − Rk+1,1 = c2 + c4 + ... (6.3)
2 2
Eliminando a constante c2 entre (6.2) e (6.3), facilmente se chega à seguinte igualdade
4Rk+1,1 − Rk,1
I= + O(h4k )
4−1
Esta relação mostra que o valor
4Rk+1,1 − Rk,1
Rk+1,2 =
4−1
difere do valor exacto do integral a menos de um termo de ordem h4k , donde se conclui que Rk+1,2
proporciona em princı́pio uma melhor aproximação. Obtemos deste modo uma nova sucessão
{Rk+1,2 } que converge para o valor exacto I(f ) com maior rapidez. Se repetirmos este processo
com os novos valores Rk+1,2 acabados de achar, chegaremos a uma nova sucessão {Rk+1,3 } cujo
erro será O(h6k ). Não é difı́cil concluir que é válida a seguinte expressão geral
4m Rk+1,m − Rk,m
Rk+1,m+1 = , m = 1, 2, . . . , k
4m − 1
ou, ainda,
Rk+1,m − Rk,m
Rk+1,m+1 = Rk+1,m + , m = 1, 2, . . . , k
4m − 1
Por cada incremento do valor de m ganhamos uma potência de h2k na expressão do erro, ou seja,

I = Rk+1,m+1 + O(h2m+2
k ).

José Duque 116


6.5 Método de Romberg Matemática Computacional

A precisão do algoritmo de Romberg é, assim, limitada apenas pela regularidade da função inte-
granda e pelos erros de arredondamento. Os cálculos que realizam este processo podem dispor-se
no seguinte quadro triangular sugestivo:

O(h2 ) O(h4 ) ... O(h2n )


R1,1
&
R2,1 → R2,2
& &
.. .. ..
. → . → .
& & &
Rn,1 → Rn,2 → ... → Rn,n

As entradas neste quadro podem calcular-se, como se pode depreender da expressão


4m Rk+1,m − Rk,m
Rk+1,m+1 = , m = 1, 2, . . . , k
4m − 1
quer por colunas quer por linhas.
A análise que levámos a cabo mostra que as colunas e as diagonais deste quadro convergem para
o valor exacto do integral.
Uma estimativa do erro pode ser obtida através da fórmula

EA ≈ |Rn,n − Rn−1,n−1 |

Exemplo 60 Utilize o método de Romberg três vezes para resolver o seguinte integral:
Z 1.6
2x
dx
1 x2 − 4
Resposta

2x
f (x) =
x2 −4
m=0
20 = 1 logo vamos aplicar o método de trapézio com 1 subintervalo, h = 1.6 − 1 = 0.6.
0.6
R1,1 = (f (1) + f (1.6)) = 0.3(−0.666666667 − 2.222222222) = −0.866666667
2
m=1
1.6−1
21 = 2, método de trapézio com 2 subintervalos, h = 2 = 0.3.

0.3
R2,1 = (f (1) + 2f (1.3) + f (1.6)) =
2
= 0.15(−0.666666667 + 2 × (−1.125541126) − 2.222222222) =
= −0.770995671
4R2,1 − R1,1 4 × (−0.770995671) − (−0.866666667)
R2,2 = = =
4−1 3
= −0.73910534

117 José Duque


Matemática Computacional Integração

m=2
1.6−1
22 = 4 método de trapézio com 4 subintervalos, h = 4 = 0.15.

0.15
R3,1 = (f (1) + 2f (1.15) + 2f (1.3) + 2f (1.45) + f (1.6)) =
2
= 0.075(−0.666666667 + 2 × (−0.8590102708) + 2 × (−1.125541126)+
+2 × (−1.528326746) − 2.222222222) =
= −0.743598388
4R3,1 − R2,1 4 × (−0.743598388) − (−0.770995671)
R3,2 = = =
4−1 3
= −0.73446596
42 R3,2 − R2,2 16 × (−0.73446596) − (−0.73910534)
R3,3 = 2
= =
4 −1 15
= −0.73415667

m=3
1.6−1
23 = 8 temos de aplicar o método de trapézio com 8 subintervalos, h = 8 = 0.075.

0.075
R4,1 = (f (1) + 2f (1.075) + 2f (1.15) + 2f (1.225) + 2f (1.3) + 2f (1.375)+
2
+2f (1.45) + 2f (1.525) + f (1.6)) =
= −0.73640433
4R4,1 − R3,1 4 × (−0.73640433) − (−0.743598388)
R4,2 = = =
4−1 3
= −0.73400631
42 R4,2 − R3,2 16 × (−0.73400631) − (−0.73446596)
R4,3 = = =
42 − 1 15
= −0.73397567
43 R4,3 − R3,3 64 × (−0.73397567) − (−0.73415667)
R4,4 = 3
= =
4 −1 63
= −0.73397279

Pondo tudo numa tabela fica

O(h2 ) O(h4 ) O(h6 ) O(h8 )


−0.866666667
&
−0.770995671 → −0.73910534
& &
−0.73640433 → −0.73446596 → −0.73415667
& & &
−0.73640433 → −0.73400631 → −0.73397567 → −0.73397279

Finalmente uma estimativa do erro pode ser

EA ≈ |R4,4 − R3,3 | = | − 0.73397279 − (−0.73415667)| = 0.00018388

José Duque 118


6.6 Quadratura de Gauss Matemática Computacional

6.6 Quadratura de Gauss


Todas as fórmulas de quadratura anteriores se basearam na determinação dos pesos ai de modo a
se ter n
Z b X
pn−1 (x) dx = ai pn−1 (xi )
a i=1

para um polinómio pn−1 (x) de grau não superior a n − 1, com x1 , . . . , xn n pontos igualmente
espaçados e previamente fixados.
Na quadratura de Gauss os pontos de integração xi e os pesos ai são determinados em simultâneo
de forma a que a igualdade
Z 1 n
X
pm (x) dx = ai pm (xi )
−1 i=1

seja verificada para o maior m possı́vel.


Iremos apenas considerar o intervalo de integração [−1, 1], uma vez que, por meio de uma mudança
de variável, podemos sempre escrever
Z b  Z 1   Z 1
b−a a + b + (b − a)x
g(t) dt = g dx = f (x) dx
a 2 −1 2 −1

para a, b ∈ R, a < b.
Para que a fórmula
Z 1 n
X
pm (x) dx = ai pm (xi )
−1 i=1

seja de grau m, temos de ter:


Z 1 n
X
f (x) dx = ai f (xi )
−1 i=1

para f (x) = xk , k = 0, . . . , m. Obtendo-se deste modo o seguinte sistema não linear:


n 1
1 − (−1)k+1
X Z
ai xki = xk dx = k = 0, 1, . . . , m
i=1 −1 k+1

com 2n incógnitas (x1 , . . . , xn ; a1 , . . . , an ), pelo o que o sistema deverá ter 2n equações e portanto
m = 2n − 1.
Para n = 1 o sistema
n 1
1 − (−1)k+1
X Z
ai xki = xk dx = k = 0, 1, . . . , m
i=1 −1 k+1

obtemos o sistema: (
a1 = 2
a1 x 1 = 0
cuja solução é x1 = 0 e a1 = 2. Portanto a fórmula de integração
Z 1 n
X
pm (x) dx = ai pm (xi )
−1 i=1

119 José Duque


Matemática Computacional Integração

reduz-se neste caso a:


I1 (f ) = 2f (0)

que se chama a regra do ponto médio. Esta regra deve ser de grau 2-1=1.
Para n = 2 o sistema
n 1
1 − (−1)k+1
X Z
ai xki = x dx = k
k = 0, 1, . . . , m
i=1 −1 k+1

escreve-se:


 a1 + a2 = 0


 a x +a x =2
1 1 2 2


 a1 x1 + a2 x22 = 23
2

a1 x31 + a2 x32 = 0

cuja solução é:



3
x2 = −x1 = , a 1 = a2 = 1
3
Portanto a fórmula de integração
Z 1 n
X
pm (x) dx = ai pm (xi )
−1 i=1

reduz-se neste caso a: √ √


3 3
I2 (f ) = f (− ) + f( )
3 3
que é de grau 2 × 2 − 1 = 3. Recordemos que a regra de Simpson que é também de grau 3, mas
utiliza 3 pontos de integração.
A obtenção destes valores x1 , . . . , xn e a1 , . . . , an pelo método descrito anteriormente revela-se
muito difı́cil para n muito grande.
Em geral, os pontos de integração x1 , . . . , xn são os zeros de um certo polinómio pertencente
a uma famı́lia de polinómios, chamados polinómios de Legendre (estudados mais à frente). Os
polinómios
( de Legendre podem ser obtidos por recorrência da forma
P0 (x) = 1 ; P1 (x) = x
, x ∈ [−1, 1]
Pn+1 (x) = 2n+1 n+1
n
xPn (x) − n+1 Pn−1 (x), n ≥ 1
e os pesos a1 , . . . ,an são determinados por

1 − x2i
ai = 2 , i = 1, . . . , n
[(n + 1)Pn (xi )]2

Se assim for costuma-se denominar fórmula de Gauss-Legendre.


Podemos então resumir o Método de Gauss-Legendre com n pontos (n ≤ 5) da forma

1 n
22n+1 (n!)4 g (2n) (ξ)
Z X
g(x) dx = ci g(wi ) +
−1 i=1
(2n + 1)[(2n)!]2 (2n)!

José Duque 120


6.7 Exercı́cios Matemática Computacional

onde
n pesos ci nós wi
2 c1 = c2 = 1 w1 = −w2 = − √13
q
3 c1 = c3 = 59 , c2 = 8
9
w1 = −w3 = − 35 , w2 = 0
4 c1 = c4 = 0.347854845 w1 = −w4 = −0.861136312
c2 = c3 = 0.652145155 w2 = −w3 = −0.339981044
5 c1 = c5 = 0.236926885 w1 = −w5 = −0.906179846
c2 = c4 = 0.478628670, c3 = 0.568888889 w2 = −w4 = −0.538469310, w3 = 0

No caso do integral não ter limites de integração −1 e 1 temos de fazer uma mudança de variável
da forma b 1   1
b−a b+a b−a
Z Z Z
f (x) dx = f + w dw = g(w) dw
a −1 2 2 2 −1

Exemplo 61 Usando a fórmula de Gauss com três pontos, determine um valor aproximado de
Z π/2
sin(x)dx
0

Resposta
π
Z Z 1 π −0 π
+0 π
−0
Z 1
2
2 π π π
sin(x) dx = sin( 2 + 2
w) dw = sin( + w) dw =
0 −1 2 2 2 4
−1 | 4{z 4 }
=g(w)

= c1 g(w1 ) + c2 g(w2 ) + c3 g(w3 )


  q 
= 59 × π4 × sin π4 + π4 × − 35 + 89 × π
4 × sin( π4 + π4 (0))+
 q 
+ 59 × π4 × sin π4 + π4 × 3
5 =
= 1.000008122
Um majorante do erro pode ser
22×3+1 (3!)4 |g (2×3) (ξ)|
Ea = 2
(2 × 3 + 1)[(2 × 3)!] (2 × 3)!
165888  π 7 π π
= 3
|sin( + × ξ)|
7 × 720 4 4 4
165888 π 7
 

7 × 7203 4
= 0.00001170438 

6.7 Exercı́cios
1. Determine cada um dos seguintes integrais indefinidos
Z
x
(a) 2
dx
x +2
Z
(b) e2x dx

t3
Z
(c) √ dt
5t4 + 3

121 José Duque


Matemática Computacional Integração

Z
x+1
(d) dx
(x2 + 2x)3
x3
Z
(e) dx
x4 + 1
Z
(f) sin(3x) dx
Z
x
(g) √ dx
ax + b
2. Calcule usando o método de primitivação por partes, as primitivas das seguintes funções.

(a) f (x) = xex


(b) f (x) = sin2 (x)
(c) f (x) = ln(x)
(d) f (x) = ex cos(x)
(e) f (x) = xsin(x)cos(x)
3
(f) f (x) = √x
1−x2

3. Determine pelo método de substituição os seguintes integrais.


R
(a) x(2x + 5)10 dx
R √
(b) x 1 + x dx
Z
1
(c) √ dx
x 5 + 7x
4. Calcule os seguintes integrais
Z
1
(a) 4
dx
x −4
Z 4
x − x3 − x − 1
(b) dx
x3 − x2
x2
Z
(c) dx
a4 − x 4
2x2 + x + 2
Z
(d) dx
(x2 + 1)2
5. Calcule os seguintes integrais definidos
Z 3
(a) x2 dx
0
Z 3π
4
(b) cos(x) dx
π
2
Z 1
2x + 1
(c) 2
dx
0 x +1
Z π
sin(x)
(d) dx
pi (1 − cos(x))3
2

José Duque 122


6.7 Exercı́cios Matemática Computacional

Z e2
1
(e) dx
xln(x)
Ze π
(f) e2x sin(x) dx
0
Z 1
x
(g) √ dx
0 1 + x2
R1
6. Determine valores aproximados para 0
e−x dx, usando a regra de trapézios e a regra de
Simpson. Indique um limite superior para o erro cometido em cada um dos casos.

7. Usando integração numérica aproxime o integral duplo


Z π/2 Z π
x
cos( + y)dxdy.
0 0 4
8. A função f é conhecida apenas em alguns pontos de acordo com a seguinte tabela:

x 0.20 0.35 0.50 0.65 0.80


f (x) 6.0 2.5 −1.0 0.0 3.0
R 0.8
(a) Obtenha a melhor estimativa de 0.2
f (x)dx recorrendo à regra composta do trapézio.
(b) Determine outra estimativa do mesmo integral através da regra de composta de Simp-
son.

9. Determine um valor de h e um número n de sub-intervalos necessários para aproximar


R 2 −x
0
xe dx com um erro inferior a 10−4 .

10. Utilize as regras compostas do trapézio e de Simpson com o 6 sub-intervalos para aproximar
o integral seguinte e determine um limite superior para o erro cometido.
Z 3
2
2
dx
0 x +4

11. Utilize uma regra composta, com 4 sub-intervalos, para aproximar o seguinte integral impróprio
Z 1
x−1/4 sin(x)dx.
0

(Sugestão: Comece por fazer a mudança de variável x = t4 )

12. Os valores da tabela seguinte correspondem ao valor do fluxo de calor q na superfı́cie de um


painel solar, medido de hora a hora.
T empo, h 0 1 2 3 4 5 6 7 8 9 10
q, cal/cm2 h 0.10 1.62 5.32 6.29 7.80 8.81 8.00 8.57 8.03 7.04 6.27
Estime a quantidade de calor absorvido por um painel solar com 200 cm2 de área durante
um perı́odo de 10 h, sabendo que o painel tem uma taxa de absorção eab de 45% e que o
total de calor absorvido é dado por
Z t
H = eab q A dx
0

123 José Duque


Matemática Computacional Integração

13. Os valores tabelados referem-se à medida da taxa de fluxo de água (l/m) para um tanque
durante 10 minutos. Determine uma aproximação da quantidade de água que entrou no
tanque durante esse perı́odo, usando uma regra composta.
T empo, min 0 1 2 3 4 5 6 7 8 9 10
q, l/m 230 300 320 330 320 290 250 200 160 120 90

14. Utilize o método de Romberg três vezes para resolver o seguinte integral:
Z 1.5
x2 ln(x)dx
1
R1 1
15. Calcule 0
x 3 , com um erro inferior a 10−1 , utilizando o método de Romberg.

16. A função f (x) é conhecida apenas pela tabela:

x 1 2 3 4 5
f (x) 2.4142 2.6734 2.8974 3.0976 3.2804
R5
Calcule a melhor aproximação possı́vel para 1
f (x) dx usando o método de Romberg.

17. Usando as fórmulas de quadratura de Gauss determine o valor exacto de


Z 2
x3 − 1 dx
−2

18. Usando a fórmula de Gauss com três pontos, determine um valor aproximado de
Z 1
2
e−x dx
0

19. Determine Z 1
ex dx
−1
com um erro inferior ou igual a 0.2 × 10−3 , usando as fórmulas de Gauss.

20. Aproxime o seguinte integral utilizando o método do trapézio composto com 3 sub-intervalos.
Z 1 Z x3
x2 + y 2 dy dx
0 x+2

21. Calcule Z 1 Z x3
1
dy dx.
0 x+2 x2 + y2
22. Um fluı́do atravessa a secção dum tubo com a velocidade
 1/7
r
v(r) = 3.0 1 −
r0
com r0 o raio da secção circular do tubo e r a distância radial ao centro da secção.
Determine a quantidade Q de fluı́do que atravessa esta secção por unidade de tempo, dada
por Z r0
Q= v(r)2πr dr
0

José Duque 124


Capı́tulo 7

Método dos Mı́nimos Quadrados

O objectivo deste capı́tulo é aproximar uma função por outra, geralmente, mais simples e com
melhores propriedades. De modo que seja mais fácil de trabalhar.
Dada uma função f vamos querer aproximá-la por uma função da forma

p(x) = a0 ϕ0 (x) + a1 ϕ1 (x) + · · · + an ϕn (x)

p(x) é então um elemento gerado pela combinação linear das funções {ϕ0 (x), ϕ1 (x), . . . , ϕn (x)}.
Costuma-se dizer que p(x) é um polinómio generalizado.
Para que p(x) exista e seja único vamos exigir que {ϕ0 (x), ϕ1 (x), . . . , ϕn (x)} sejam linearmente
independentes, num contexto apropriado.
O problema é então calcular o valor das constantes a0 , . . . , an .

7.1 Método dos mı́nimos quadrados linear


Nesta secção vamos começar por procurar um polinómio que melhor se aproxima da função f (x).
O polinómio tem a forma
n
X
pn (x) = ai ϕi (x)
i=0
onde
{ϕ0 (x), ϕ1 (x), . . . , ϕn (x)}
é uma base para o espaço dos polinómios de grau menor ou igual a n, e os coeficientes ai são
obtidos de modo que o polinómio esteja próximo de f .
Neste momento temos de distinguir dois casos, embora semelhantes, têm tratamento ligeiramente
diferente.
O primeiro caso - caso contı́nuo - caracteriza-se pelo facto de a função f ser conhecida pela
expressão analı́tica em [a, b].
Neste caso os coeficientes a0 , . . . an são escolhidos de modo que o polinómio resultante minimize o
resı́duo quadrático, ou seja,
Z b Z b
2
min (f (x) − p(x)) dx = min I = (f (x) − a0 ϕ0 (x) + a1 ϕ1 (x) + · · · + an ϕn (x))2 dx
a a

125
Matemática Computacional Método dos Mı́nimos Quadrados

Recordemos que as incógnitas são a0 , . . . an , logo temos uma função I = I(a0 , . . . an ) para mini-
mizar.
Para obtermos
Z b o mı́nimo temos de calcular cada uma das derivadas parciais.
∂I
= 2((f (x) − a0 ϕ0 (x) + a1 ϕ1 (x) + · · · + an ϕn (x))ϕ0 (x) dx =
∂a0 aZ
b
=2 f (x)ϕ0 (x) − a0 ϕ0 (x)ϕ0 (x) − a1 ϕ1 (x)ϕ0 (x) − · · · − an ϕn (x)ϕ0 (x) dx
a

..
.
Z b
∂I
= 2((f (x) − a0 ϕ0 (x) + a1 ϕ1 (x) + · · · + an ϕn (x))ϕi (x) dx =
∂ai aZ
b
=2 f (x)ϕi (x) − a0 ϕ0 (x)ϕi (x) − a1 ϕ1 (x)ϕi (x) − · · · − an ϕn (x)ϕi (x) dx
a

..
.
Z b
∂I
= 2((f (x) − a0 ϕ0 (x) + a1 ϕ1 (x) + · · · + an ϕn (x))ϕ0 (x) dx =
∂an aZ
b
=2 f (x)ϕn (x) − a0 ϕ0 (x)ϕn (x) − a1 ϕ1 (x)ϕn (x) − · · · − an ϕn (x)ϕn (x) dx
a
Igualando as derivadas a zero e separando os integrais obtemos o sistema linear
Z b Z b Z b Z b
a0 ϕ0 (x)ϕ0 (x) dx + a1 ϕ1 (x)ϕ0 (x) dx + · · · + an ϕn (x)ϕ0 (x) dx = f (x)ϕ0 (x) dx
a a a a
..
.
Z b Z b Z b Z b
a0 ϕ0 (x)ϕi (x) dx + a1 ϕ1 (x)ϕi (x) dx + · · · + an ϕn (x)ϕi (x) dx = f (x)ϕi (x) dx
a a a a
..
.
Z b Z b Z b Z b
a0 ϕ0 (x)ϕn (x) dx + a1 ϕ1 (x)ϕn (x) dx + · · · + an ϕn (x)ϕn (x) dx = f (x)ϕn (x) dx
a a a a
ou escrito de uma forma compacta
Xn  Z b  Z b
ak ϕk (x)ϕi (x) dx = f (x)ϕi (x) dx, i = 0, 1, . . . , n
k=0 a a

Finalmente para encontrarmos o polinómio pretendido só temos de resolver o sistema linear de
n + 1 equações com n + 1 incógnitas. Como é um sistema linear só tem uma única solução que
pela construção do problema se vê facilmente que é o mı́nimo.

O segundo caso - o caso discreto - é aquele em que a função f é apenas conhecida num número
finito de pontos {x0 , . . . , xm }.
Neste caso o método dos mı́nimos quadrados tem uma formulação idêntica ao caso contı́nuo,
substituindo a função a minimizar por
k
X
min (f (xi ) − p(xi ))2 .
i=0

José Duque 126


7.1 Método dos mı́nimos quadrados linear Matemática Computacional

A dedução é semelhante trocando integrais por somatórios.


O sistema que resulta é
n m
! m
X X X
ak ϕk (xj )ϕi (xj ) = f (xj )ϕi (xj ), i = 0, 1, . . . , n
k=0 j=0 j=0

Neste método podemos definir o erro ( mais conhecido por erro padrão) da forma

m
! 21  21
Z b
1 X
2 1 2
(f (xj ) − pn (xj )) ou (f (x) − pn (x)) dx
m+1 j=0
b−a a

conforme seja o caso discreto ou contı́nuo respectivamente.

Em particular se considerarmos, por simplicidade, a base canónica {1, x, x2 , . . . , xn } o po-


linómio fica da forma
pn (x) = a0 + a1 x + a2 x2 + · · · + an xn ,

onde a0 , a1 , . . . , an são solução do sistema


Caso discreto
 Pk Pk Pk Pk    Pk 
i=0 1 i=0 xi i=0 x2i ... i=0 xni a0 i=0 f (xi )
Pk Pk Pk Pk  Pk
2
x3i xn+1
   
i=0 xi i=0 xi ... i a1   P i=0 f (xi )xi
 i=0 i=0
  
 Pk Pk Pk Pk   
2 3 n+2   k
i=0 xi i=0 xi x4i ... xi a2  =  i=0 f (xi )xi
2
   
 i=0 i=0  
 .. .. .. ... ..  .. 
  .. 

 . . . . 
 .  
 . 

Pk Pk n+1
Pk Pk Pk
n
i=0 xi i=0 xi i=0 xn+2
i ... i=0 xi
2n
an i=0 f (xi )xi
n

Caso contı́nuo
 Rb Rb Rb 2 Rb    Rb 
a
1 dx a
x dx x dx ... xn dx a0 f (x) dx
 Rb Rb 2 Rab 3 a
R b n+1    R ba 
 R a x dx x dx x dx ... x dx a1  f (x)x dx
   
 b 2 Rab 3 Rab 4 Rab n+2    R ba 
 a x dx x dx x dx ... x dx a2  =  f (x)x2 dx
   
a a a  a 
 .
.. .
.. .. ... ..  ..   .. 

 . . 
 . 


 . 

Rb n R b n+1 R b n+2 Rb Rb
a
x dx a x dx a x dx ... a
x2n dx an a
f (x)xn dx

Exemplo 62 Os valores da função g são apresentados na tabela seguinte

x 0.50 0.55 0.60 0.65 0.70 0.75 0.80


g(x) 1.2 1.0 0.7 0.4 0.1 −0.2 −0.6

1. Aproxime a função g por uma parábola, recorrendo ao método dos mı́nimos quadrados, e
defina uma estimativa de g(0.65).
Resposta
Como queremos um parábola ela tem o aspecto

P3 (x) = a2 x2 + a1 x + a0

127 José Duque


Matemática Computacional Método dos Mı́nimos Quadrados

Podemos então escolher a base {1, x, x2 }, logo para encontrarmos os coeficientes a0 , a1 e a2 temos
de resolver o sistema
 P  
 P 
6 P6 P6 2 6
i=0 1 i=0 xi i=0 xi a0 g(xi )
 P6 6 6
   P6 i=0 
2 3
P P   a1  = 
i=0 xi i=0 xi i=0 xi i=0 xi g(xi )
 
    
P6 2
P6 3
P6 4
P6 2
i=0 xi i=0 xi i=0 xi a2 i=0 xi g(xi )

Antes de resolvermos o sistema temos de calcular os somatórios, para isso é melhor colocarmos
tudo numa tabela que facilita os cálculos e a visualização dos resultados.

xi x2i x3i x4i g(xi ) xi g(xi ) x2i g(xi )


0.50 0.2500 0.125000 0.06250000 1.2 0.60 0.3000
0.55 0.3025 0.166375 0.09150625 1.0 0.55 0.3025
0.60 0.3600 0.216000 0.12960000 0.7 0.42 0.2520
0.65 0.4225 0.274625 0.17850625 0.4 0.26 0.1690
0.70 0.4900 0.343000 0.24010000 0.1 0.07 0.0490
0.75 0.5625 0.421875 0.31640625 −0.2 −0.15 −0.1125
0.80 0.6400 0.512000 0.40960000 −0.6 −0.48 −0.3840
P
= 4.55 3.0275 2.058875 1.42821875 2.6 1.27 0.576
Logo o sistema fica
    
7 4.55 3.0275 a0 2.6
    
  a1  =  1.27 
 4.55 3.0275 2.058875     

3.0275 2.058875 1.42821875 a2 0.576
pelo método de Gauss obtemos 
 a0 = 2.307142857


a1 = 0.1904761905


 a = −4.761904762
2

Então a parábola que melhor se aproxima dos pontos dados é

p3 (x) = 2.307142857 + 0.1904761905x − 4.761904762x2

Logo podemos dizer que g(0.65) ≈ P3 (0.65) = 0.419047619 

2. Calcule o erro padrão da resposta da alı́nea anterior.


Resposta
Para o cálculo do erro temos de construir uma tabela da forma

xi g(xi ) P2 (xi ) g(xi ) − P2 (xi ) (g(xi ) − P2 (xi ))2


0.50 1.2 1.21190476175 −0.01190476175 0.14172335232427 × 10−3
0.55 1.0 0.97142857127 0.02857142873 0.81632653967347 × 10−3
0.60 0.7 0.70714285698 −0.00714285698 0.05102040583673 × 10−3
0.65 0.4 0.41904761888 −0.01904761888 0.36281178499772 × 10−3
0.70 0.1 0.10714285697 −0.00714285697 0.05102040569388 × 10−3
0.75 −0.2 −0.22857142875 0.02857142875 0.81632654081633 × 10−3
0.80 −0.6 −0.58809523828 −0.01190476172 0.14172335160996 × 10−3
P
= 0.00238095238095

José Duque 128


7.2 Polinómios Ortogonais Matemática Computacional

então o erro é
1√
Ep = 0.00238095238095 = 0.00697071480678
7


Exemplo 63 Encontre a aproximação dos mı́nimos quadrados de grau 2 da função f (x) =


cos(πx), x ∈ [0, 1]
Resposta
Para aproximarmos por um polinómio de grau 2, vamos utilizar a base {1, x, x2 }.
Nesta base o polinómio é
p2 (x) = a0 + a1 x + a2 x2 .

As constantes a0 , a1 , a2 são solução do sistema


 R   R 
1 R1 R1 2 1
0 1 dx 0 x dx x dx a0 cos(πx) dx
 R1 R 1 2
R01 3    R 10
  a1  = 

 R 0 x dx R0 x dx x dx  R 0 xcos(πx) dx
 
1 2 1 3 R01 4  
1 2

0 x dx 0 x dx 0 x dx a2 0 x cos(πx) dx

ou seja     
1 1
1 2 3 a0 0
    
 1 1 1   a1  =  − 22 
 2 3 4    π 
1 1 1
3 4 5 a2 − π22
Resolvendo o sistema ficamos com a solução

a = 12
 0 π2



a1 = − π242



a2 = 0

Logo a aproximação pedida é


12 24
p2 (x) = − x
π2 π2


7.2 Polinómios Ortogonais


(n+1)(n+2)
Para polinómios de graus elevados o problema surge na necessidade de calcular 2
integrais
ou somatórios e por conseguinte resolver um sistema linear de ordem n + 1. Estes sistemas
são bastante grandes e difı́ceis de resolver, pois a única particularidade é ser simétrico. Para
ultrapassarmos este obstáculo temos de escolher outras bases para os polinómios, em especial
polinómios que satisfaçam Z b
ϕi (x)ϕj (x) dx = 0, i 6= j
a

Às funções que satisfazem esta propriedade chamamos funções ortogonais em [a, b].
Assim a solução do sistema é da forma
Rb
f (x)ϕk (x) dx
ak = Ra b
a
(ϕk (x))2 dx

129 José Duque


Matemática Computacional Método dos Mı́nimos Quadrados

Um exemplo destes polinómios são os Polinómios de Legendre, que podem ser obtidos pela se-
guinte fórmula de recorrência
(
L0 (x) = 1 ; L1 (x) = x
2n+1 n
, x ∈ [−1, 1]
Ln+1 (x) = n+1
xLn (x) − L (x),
n+1 n−1
n≥1

Uma desvantagem destes polinómios é eles só serem ortogonais num determinado intervalo
fixo, neste caso [−1, 1]. Este problema resolve-se com uma mudança de variável nos polinómios.
A mudança pretendida é
[a, b] 7→ [−1, 1]
2z b+a
z → x= −
b−a b−a
Para obtermos outras famı́lias de polinómios ortogonais temos de definir ortogonalidade de
uma forma mais geral, assim

Definição 64 Uma famı́lia se funções {ϕ0 (x), . . . , ϕn (x)} diz-se ortogonal em [a, b] com a função
peso w(x) se
Z b
w(x)ϕi (x)ϕj (x) dx = 0, i 6= j
a

É de notar que para os polinómios de Legendre w(x) = 1


Desta forma podemos introduzir mais famı́lias de polinómios ortogonais
(
T0 (x) = 1 ; T1 (x) = x x ∈ [−1, 1]
• Polinómios de Chebyshev ,
Tn+1 (x) = 2xTn (x) − Tn−1 (x), n ≥ 1 w(x) = (1 − x2 )−0.5

R
(
H0 (x) = 1 ; H1 (x) = 2x x∈
• Polinómios de Hermite ,
Hn+1 (x) = 2xHn (x) − Hn−1 (x), n ≥ 1 w(x) = e−x2

• Polinómios
( de Laguerre
P0 (x) = 1 ; P1 (x) = x x ∈ [0, ∞[
,
Pn+1 (x) = 1
(−x + 2n + α + 1)Pn (x) − n+α
P (x), n≥1 w(x) = xα e−x
n+1 n+1 n−1

À semelhança dos polinómios de Legendre, caso o intervalo seja [a, b] temos de procurar uma
mudança de variável apropriada.

Exemplo 65 Pretende-se aproximar f (x) = e−x no intervalo [−1, 1] por um polinómio.

1. Defina a parábola que melhor aproxima f no intervalo dado, recorrendo ao método dos
mı́nimos quadrados e usando polinómios de Legendre.
Resposta
Como o intervalo é [−1, 1], para definirmos uma parábola precisamos de utilizar os polinómios
3 1
P0 (x) = 1, P1 (x) = x, P2 (x) = x2 −
2 2
3 2
isto é, a base utilizada é {1, x, 2x − 21 }. Então o polinómio procurado é
3 1
p2 (x) = a0 × 1 + a1 × x + a2 × ( x2 − )
2 2

José Duque 130


7.2 Polinómios Ortogonais Matemática Computacional

onde as constantes são determinadas pelo sistema


 Z 1 Z 1 Z 1   Z 1 
P0 (x)P0 (x)dx P0 (x)P2 (x)dx  
P0 (x)P1 (x)dx 
 −1 P0 (x)f (x)dx
Z−1 Z−1 Z−1  a0
 
1 1 1
  Z 1 
    

 P1 (x)P0 (x)dx P1 (x)P1 (x)dx P1 (x)P2 (x)dx   a1  = 
  
 P1 (x)f (x)dx 


 Z−1
1 Z−1
1 Z−1
1

 a2
 Z−1
 1


P2 (x)P0 (x)dx P2 (x)P1 (x)dx P2 (x)P2 (x)dx P2 (x)f (x)dx
−1 −1 −1 −1

Devido ao facto de os polinómios serem ortogonais só é necessário calcular os elementos da diagonal
principal.
Logo o sistema fica
    
2 0 0 a0 e − e−1
    
 0 2 −1 
  a1  =  −2e
0    
 3 
0 0 2
a2 e − 7e−1
5

Resolvendo o sistema obtemos  −1




a0 = e−e2

a1 = −3e−1

 −1
a2 = 5e−35e


2

Substituindo no polinómio fica

e − e−1 5e − 35e−1 3 1
p2 (x) = × 1 + −3e−1 × x + a2 = × ( x2 − )
2 2 2 2

p2 ≈ 0.536721526x2 − 1.103638324x + 0.9962940184

2. Calcule o erro cometido em x = 0.7.


Resposta
O valor aproximado é p2 (0.7) = 0.4867407363
O valor exacto é e−0.7 = 0.4965853038
Logo o erro absoluto é |e−0.7 − p2 (0.7)| = |0.4965853038 − 0.4867407363| = 0.00984456749 

3. Calcule o erro padrão.


Resposta
Z 1  12
1 2
Ep = (f (x) − P2 (x)) dx =
1s+1 −1
Z 1
1
= (e−x − 0.536721526x2 + 1.103638324x − 0.9962940184)2 dx =
2 −1
= 0.0189774441 

Exemplo 66 Pretende-se aproximar a função g(x) = sinh(x) por um polinómio de terceiro grau
no intervalo [0, 1]. Quais deverão ser os elementos da base do espaço a que pertence a aproximação
de g(x) que minimiza o trabalho relativo à resolução do sistema de equações que permite definir
os parâmetros do modelo matemático?

131 José Duque


Matemática Computacional Método dos Mı́nimos Quadrados

Resposta
Para minimizar o trabalho de resolução do sistema temos de utilizar polinómios ortogonais.
3 1 5 3
P0 (x) = 1, P1 (x) = x, P2 (x) = x2 − , P3 (x) = x3 − x
2 2 2 2
Os polinómios de Legendre só são ortogonais em [−1, 1], por isso temos e fazer uma mudança de variável
dos polinómios para o intervalo [0, 1].
essa mudança é
[0, 1] 7→ [−1, 1]
2z 1+0
z → x= − = 2z − 1
1−0 1−0
então os polinómios ficam
P0 (z) = 1,

P1 (z) = 2z − 1,
3 1
P2 (z) = (2z − 1)2 − = 6z 2 − 6z + 1,
2 2
5 3
P3 (z) = ( (2z − 1)3 − (2z − 1)) = 20z 3 − 30z 2 + 12z − 1
2 2
então a base terá de ser

{1, 2x − 1, 6x2 − 6x + 1, 20x3 − 30x2 + 12x − 1}

7.3 Método dos mı́nimos quadrados não linear


O caso mais geral do método dos mı́nimos quadrados é quando se pretende obter uma função que
não é um polinómio generalizado. Neste caso para podermos utilizar o método temos primeiro
que encontrar um problema equivalente onde se procure um polinómio generalizado e depois se
possa voltar ao problema original.

Exemplo 67 Encontre a função do tipo z = 10c0 +c1 x que melhor se aproxima, segundo os mı́nimos
quadrados, dos dados da tabela seguinte

x 0 1 2 3
f (x) 0.01 0.1 10 100

Resposta
Para podermos aplicar o método dos mı́nimos quadrados temos de querer aproximar por um polinómio o
que não se verifica, logo temos de transformar a função que queremos obter num polinómio.

z = 10c0 +c1 x ⇔ log(z) = log(10c0 +c1 x ) = c0 + c1 x ⇔ y = a0 + a1 x

Uma vez que mudámos a função aproximada temos também de mudar a função a aproximar logo queremos
aproximar os pontos
x 0 1 2 3
g(x) = log(f (x)) −2 −1 1 2

José Duque 132


7.4 Exercı́cios Matemática Computacional

por uma recta do tipo y = a0 + a1 x. O sistema é da forma


" P #" # " P #
4 P4 4
i=1 1 i=1 x i a 0 g(x i )
P4 P4 = P4 i=1
x x2 a
i=1 i i=1 i 1 i=1 xi g(xi )

logo temos de construir a tabela


xi x2i g(xi ) xi g(xi )
0 0 −2 0
1 1 −1 −1
2 4 1 2
3 9 2 6
P
= 6 14 0 7
Substituindo no sistema ficamos com
" #" # " #
4 6 a0 0
=
6 14 a1 7

Resolvendo o sistema temos a solução (


a0 = −2.1
a1 = 1.4
Agora voltando á função original obtemos a resposta

z = 10−2.1+1.4x

7.4 Exercı́cios
1. Uma dada função só é conhecida através da tabela que se segue

x −2 −1 1 2
f (x) 1 −3 1 9

(a) Recorrendo ao método dos mı́nimos quadrados, determine a equação da recta que
melhor aproxima a função.
(b) Calcule uma estimativa de f (0.5).

2. A tabela diz respeito a alturas (em cm) e pesos (em kg) de 9 homens com idades compreen-
didas entre 25 e 29 anos.

h 183 173 168 188 158 178 162 193 163


w 79 69 70 81 61 73 63 79 71

Use regressão linear para estimar:

(a) O peso de um indivı́duo cuja altura é 175 cm.

133 José Duque


Matemática Computacional Método dos Mı́nimos Quadrados

(b) A altura de uma pessoa que pesa 68 kg.


Z 1
3. Calcule o polinómio de grau 2 que minimiza (sin(πx) − P2 (x))2 dx.
−1

4. Encontre a aproximação dos mı́nimos quadrados de grau 1 (e de grau 2) das seguintes


funções, no intervalo indicado:

(a) f (x) = x1 , x ∈ [1, 3]

(b) f (x) = e−x + 1, x ∈ [0, 1]

1
5. Determine o polinómio minimax de grau um para f (x) = x+1
em [0, 1].

6. Mostre que os polinómios de Chebyshev são ortogonais no intervalo [−1, 1] para a função peso
1
w(x) = (1 − x2 )− 2 .( Nota:O polinómio de Chebyshev de grau n é Tn (x) = cos(n arccos(x))).

7. Aproxime a função f (x) = |x|, x ∈ [−1, 1], por um polinómio de grau 2, utilizando os
polinómios de Chebyshev.

8. Demonstre
Z 1 que se Pk é um polinómio de Legendre de grau k então
2
(Pk (x))2 dx = .
−1 2k + 1

9. Seja P0 (x), P1 (x) , ... uma sucessão de polinómios ortogonais sejam x0 , x1 , ...,xk zeros
k
Y x − xj
distintos de Pk+1 . Mostre que os polinómios de Lagrange, Li (x) = , i = 0, 1, . . . , k,
j=0
xi − xj
j6=i
para estes pontos são ortogonais.

10. Pretende-se aproximar a função h : x 7→ |x| por um polinómio de segundo grau.

(a) Demonstre que {1, 2x − 1, 6x2 − 6x + 1} é um conjunto de funções ortogonais em [0, 1].

(b) Determine a parábola que melhor aproxima a função h no intervalo [0, 1], usando o
método dos mı́nimos quadrados.

(c) Calcule o erro cometido em x = 0.78.

11. É sabido que a maleabilidade do plástico varia em função do tempo gasto no tratamento
térmico. A seguinte tabela foi obtida através de dados experimentais.

tempo 10 15 20 25 40 50 55 60 75
maleabilidade 4 20 18 50 30 48 80 60 78

Encontre a recta que melhor se adapta aos dados. Utilize a alı́nea anterior para estimar a
maleabilidade ao fim de 30 min.

José Duque 134


7.4 Exercı́cios Matemática Computacional

12. Os dados seguintes foram recolhidos para determinar a relação entre a pressão e a tempera-
tura de uma quantidade fixa de 1 kg de nitrogénio.

T 0C −20 0 20 40 50 70 110 120


3
p N/m 7500 8104 8700 9300 9620 10200 11200 11700

Sabendo que o volume é 10 m3 aplique a lei para os gazes ideais pV = nRT e determine R
com base nos dados. ( note que T deve estar expresso em graus Kelvin)

135 José Duque


Matemática Computacional Método dos Mı́nimos Quadrados

José Duque 136


Capı́tulo 8

Equações Diferenciais com Condições


Iniciais

Consideremos um corpo em queda livre. Podemos então deduzir que a velocidade, v(t), do corpo,
no instante t, satisfaz a equação
dv(t) c
= g − v(t)
dt m
em que g é a constante gravitacional, c o coeficiente de atrito e m a massa. Uma vez que g,
c e m são, geralmente, constantes, nesta equação existem 2 variáveis, a velocidade e o tempo.
Como a velocidade depende do tempo vamos chamar a t a variável independente e a v(t) a
variável dependente. No que se segue vamos considerar y(t) a variável dependente e t a variável
independente.
A este tipo de equações chamamos equações diferenciais. Como a maior derivada é a primeira,
chamamos equação diferencial de 1a ordem.
Para conhecermos completamente a velocidade do objecto é necessário conhecermos a velocidade
inicial v(t0 ), ou seja, uma condição inicial. De modo geral uma equação diferencial de primeira
ordem com condições iniciais é da forma
(
y 0 (t) = f (t, y)
, t ∈ [a, b]
y(a) = α

8.1 Existência e Unicidade de Solução


O primeiro problema que se põe é se existe alguma função que satisfaz estas condições e nesse caso
essa função é a única. O teorema seguinte indica uma condição simples para que isso aconteça.

Teorema 68 Seja o problema de condição inicial


(
y 0 (t) = f (t, y)
, t ∈ [a, b]
y(a) = α
Se existir L > 0 tal que
∂f
(t, y) < L,
∂y ∀(t, y) ∈ D

137
Matemática Computacional Equações Diferenciais com Condições Iniciais

Onde D é um convexo, então o problema tem uma solução única para t ∈ [a, b].

Normalmente o convexo que se toma é

D = {(t, y) ∈ R2 : a ≤ t ≤ b, y ∈ R}
Exemplo 69 Mostre que o problema de valor inicial

y 0 = sin(y)
y(t ) = y
0 0

tem solução única para qualquer intervalo contendo t0 .


Resposta

∂f
(t, y) = cos(y)
∂y
Seja D ⊂ R2 tal que D é um convexo e (t0, y) ∈ D.
Para (t, y) ∈ D
∂f
(t, y) = |cos(y)| ≤ 1
∂y
logo o problema de valores iniciais tem solução única para qualquer intervalo contendo t0 . 

8.2 Transformada de Laplace


Uma forma relativamente simples de resolver equações diferenciais é utilizar a transformada de
Laplace

Definição 70 Se y(t) é uma função e


Z ∞
Y (s) = y(t)e−st dt
0

existe e é finito, então dizemos que L[y(t)] = Y (s) é a transformada de Laplace de y(t).

Por exemplo consideremos a função y(t) = 1


Z ∞  ∞
−st 1 −st
1×e dt = − e
0 s 0

este integral só é convergente se s > 0 e nesse caso


Z ∞
1
1 × e−st dt = .
0 s
Então a transformada de Laplace de y(t) = 1 é
1
L[1] = Y (s) = , s>0
s
A Transformada de Laplace tem inúmeras propriedades, mas neste trabalho só vamos precisar de
algumas, que vamos enunciar a seguir:

José Duque 138


8.2 Transformada de Laplace Matemática Computacional

• L[ay(t) + bx(t)] = aL[y(t)] + bL[x(t)] (linearidade)

• L[ẏ(t)] = sL[y(t)] − y(0)


R∞
• L[ 0
y(τ ) dτ ] = 1s L[y(t)]
R∞
• L[ 0
y(t − τ )x(τ ) dτ ] = L[y(t)]L[x(t)] (convolução)

• limt→0 y(t) = lims→∞ s Y (s)

• limt→∞ y(t) = lims→0 s Y (s)

Estas propriedades demonstram-se partindo da definição e das propriedades dos integrais.


No formulário em anexo são apresentadas algumas transformadas de funções simples e um resumo
das propriedades mais importantes da transformada.

     
sen(t) + tcos(t) 1 sen(t) −1 1
Exemplo 71 Sabe-se que L = 2 2
e L = tg . Deter-
  2 (s + 1) t s
sen(at)
mine L e L[−5tsin(t)], recorrendo às desigualdades anteriores.
bt
Resposta
       
sin(at) a sin(at) a sin(at) a 1 −1 1 1 −1  a 
L =L = L = × tg s = tg
bt b at b at b a a b s
 Z T   
sin(u) + ucos(u) 1 sin(u) + ucos(u)
L[−5tsin(t)] = −5L[tsin(t)] = −5L 2 du = −5 × 2 × L =
0 2 s 2
10 1
=−
s (s2 + 1)2


s
Exemplo 72 Qual é a função f (t) que satisfaz a igualdade L[f (t)] = ?
(s2 + a2 )2
Resposta
      
−1 s 1 −1 −2as 1 −1 d a 1
L =− L = L − = tsin(at)
(s2 + a2 )2 2a (s2 + a2 )2 2a ds s2 + a2 2a


Exemplo 73 Determine a solução definida do seguinte problema de condições iniciais aplicando


o operador transformada de Laplace: y 00 + 2y 0 + 5y = e−t sin(t), y(0) = 0, y 0 (0) = 1
Resposta
Aplicando a transformada de Laplace nos dois lados da igualdade obtemos

L[y 00 + 2y 0 + 5y] = L[e−t sin(t)]

Pelas propriedades da transformada de Laplace


1
s2 L[y] − sy(0) − y 0 (0) + 2sL(y) − 2y(0) + 5L[y] =
(s + 1)2 + 12

139 José Duque


Matemática Computacional Equações Diferenciais com Condições Iniciais

Aplicando as condições iniciais e agrupando os termos temos

1
(s2 + 2s + 5)L[y] − 1 =
s2 + 2s + 2

s2 + 2s + 3
L[y] =
(s2 + 2s + 2)(s2 + 2s + 5)

Para podermos calcular y temos de dividir o segundo membro em fracções simples.

s2 + 2s + 3 As + B Cs + D
2 2
= 2 + 2
(s + 2s + 2)(s + 2s + 5) (s + 2s + 2) (s + 2s + 5)

Aplicando a técnica dos coeficientes indeterminados temos

s2 + 2s + 3
=
(s2 + 2s + 2)(s2 + 2s + 5)

As3 + 2As2 + 5As + Bs2 + 2Bs + 5B + Cs3 + 2Cs2 + Cs + Ds2 + 2Ds + D


=
(s2 + 2s + 2)(s2 + 2s + 5)

(A + C)s3 + (2A + B + 2C + D)s2 + (5A + 2B + C + 2D)s + (5B + D)


=
(s2 + 2s + 2)(s2 + 2s + 5)

Igualando os termos, obtemos o sistema





 A+C =0


 2A + B + 2C + D = 1


 5A + 2B + C + 2D = 2

 5B + D = 3

A solução do sistema é



 A=0

 B=1

2


 C = 0

 D=1

2

Logo
1 1
s2 + 2s + 3 2 2
= +
(s2 + 2s + 2)(s2 + 2s + 5) (s2 + 2s + 2) (s2 + 2s + 5)

Temos agora de aplicar a transformada inversa


" #
1 1
y(t) = L−1 2
+ 2
=
s2 + 2s + 2 s2 + 2s + 5
   
1 −1 1 1 −1 1
= L + L =
2 (s + 1)2 + 1 2 (s + 1)2 + 22

1 1
= e−t sin(t) + e−t sin(2t) 
2 2

José Duque 140


8.3 Método de Picard Matemática Computacional

8.3 Método de Picard


Directamente do teorema 68 podemos obter um método para aproximar a solução.
O método de Picard aproxima a solução y(t) do problema de valores iniciais
(
y 0 (t) = f (t, y)
, t ∈ [a, b]
y(a) = α
por outra função yn (t) recorrendo à expressão :
Z t
yi+1 (t) = y0 + f (x, yi (x)) dx.
t0

Através do teorema 68 prova-se que quando n → ∞, yn (t) tende para a solução y(t) do problema,
se forem satisfeitas as condições do teorema.
Uma estimativa do erro pode ser obtida por

Ea ≈ |yn (t) − yn−1 (t)|

Exemplo 74 Considere o problema de valores iniciais



y 0 = 3t + y
.
y(0) = 1

1. Encontre uma aproximação y3 (t), do problema, utilizando o método de Picard.


Resposta
Z t Z t Z t
3
y1 (t) = y0 (t) + f (x, y0 (x)) dx = 1 + f (x, 1) dx = 1 + 3x + 1 dx = 1 + t2 + t
0 0 0 2
Z t Z t
3 1
y2 (t) = y0 (t) + f (x, y1 (x)) dx = 1 + 3x + 1 + x2 + x dx = 1 + t + 2t2 + t3
0 0 2 2
Z t Z t
1 1 2 1
y3 (t) = y0 (t) + f (x, y2 (x)) dx = 1 + 3x + 1 + x + x2 + x3 dx = 1 + t + 2t2 + t3 + t4
0 0 2 2 3 8


2. Indique uma estimativa do erro absoluto da aproximação anterior, em t = 1.


Resposta
O erro em t = 1 pode ser estimado por

|y3 (1) − y2 (1)| = |4.79166667 − 4.5| = 0.291666667

8.4 Exercı́cios
1. Considere o seguinte problema de condição inicial

y 0 = ty
, t ∈ [0, T ]
y(0) = 1

Diga se a solução do problema existe e é única.

141 José Duque


Matemática Computacional Equações Diferenciais com Condições Iniciais

2. Mostre que o problema de condição inicial



y 0 = 1 2
1+y
y(a) = α

tem solução única para x ∈ [a, b].

3. A solução de
(
u0 = 10u − 10x + 1
x ≤ 0,
u(0) = 0
é a função identidade. Estude a dependência do problema em relação às condições iniciais.

4. As funções f e g são contı́nuas no intervalo [a, b] que contém t0 . Prove que a equação
diferencial y 0 = f (t)y + g(t), sujeita a y(t0 ) = y0 , tem solução única em [a, b] se f for
limitada.

5. Demonstre as seguintes propriedades relativas ao operador transformada de Laplace:

a
(a) L[sen(at)] = , s>0
s2 + a2
(b) L[f 00 (t)] = s2 L[f (t)] − sf (0) − f 0 (0)

(c) L[tn ] =
n!
sn+1
, s > 0, n ∈ N
(d) L[ebt f (t)] = F (s − b), onde F (s) = L[f (t)]
s
(e) L[cosh(at)] = 2 , s > |a|
s − a2
d2
(f) L[t2 f (t)] = 2 F (s), onde F (s) = L[f (t)]
ds

6. Determine a solução definida de cada problema de condições iniciais aplicando o operador


transformada de Laplace:

(a) y 00 + y = t, y(0) = 1, y 0 (0) = −2

(b) y 00 − 3y 0 + 2y = 4e2t , y(0) = −3, y 0 (0) = 5

(c) y 000 − 3y 00 + 3y 0 − y = t2 et , y(0) = 1, y 0 (0) = 0, y 00 (0) = −2

(d) y 00 + 9y = cos(2t), y(0) = 1, y( π2 ) = −1


(
x0 (t) = 2x(t) − 3y(t)
(e) , sujeito às condições iniciais x(0) = 8 e y(0) = 3
y 0 (t) = y(t) − 2x(t)

0
 x = 10t


(f) y0 = x + t , sujeito a x(0) = −1 e y(0) = −2 e z(0) = 0.2

 z 0 = x + 2z − cos(πt)

José Duque 142


8.4 Exercı́cios Matemática Computacional

7. O movimento vertical de um peso P suspenso de uma mola é descrito pela equação diferencial

1 d2 x dx
+ +x=0
4 dt2 dt
Supondo que x(0) = 4 e x0 (0) = 2, determine o desenvolvimento vertical máximo recorrendo
ao operador transformada de Laplace.

8. Uma partı́cula move-se ao longo de uma linha, sendo o seu afastamento X de um ponto fixo
0 dado por X 00 (t) + 4X 0 (t) + 5X(t) = 80sin(5t).
Encontre o afastamento da partı́cula para t > 0, sabendo que inicialmente ela se encontrava
em repouso.

9. Um modelo simples para representar a iteração presa-predador num determinado ecossistema


dx dy
é dado pelo sistema de equações diferenciais dt
= x+y e dt
= −x + y. Sabe-se que as
populações iniciais são x(0) = y(0) = 1000.
Use o operador transformada de Laplace para determinar x(1) e y(1).

10. Utilize o método de Picard para obter a solução do seguinte problema



y 0 = y − 1
.
y(0) = 2

11. Recorra ao método de Picard, para estimar os valores y(0.05) e z(0.05) da solução particular
de (
dy
dx
=x+z
dz
dx
= x − y2
que satisfaz as condições y(0) = 2 e z(0) = 1.

143 José Duque


Matemática Computacional Equações Diferenciais com Condições Iniciais

José Duque 144


Capı́tulo 9

Métodos numéricos para problemas de


condição inicial

Consideremos de novo o problema de condições iniciais


(
y 0 (t) = f (t, y)
, t ∈ [a, b]
y(a) = α

que verifique as condições do teorema 68. Os métodos numéricos para resolver este problema são
métodos que determinam aproximações y0 , y1 , . . . , yn para a solução exacta y(t0 ), y(t1 ), . . . , y(tn )nos
pontos da malha
a = t0 < t1 < · · · < tn = b.

Às distâncias hi = ti − ti−1 , i = 1, . . . , n, dá-se o nome de passos da malha. Se os passos forem


todos iguais a malha diz-se uniforme ou de passo constante. Caso contrário diz-se de passo variável.
b−a
Aqui vamos apenas trabalhar com malhas uniformes da forma h = n
e ti = t0 + ih, i = 1, . . . , n.
Como em todos os métodos numéricos é necessário garantir que os resultados são válidos. Assim
vamos definir o erro, convergência e consistência de um método.
Ao erro que cometemos a cada passo, supondo que os valores anteriores são certos, vamos chamar
erro de truncatura.

Definição 75 Supondo que yi = y(ti ), ao valor

Ti+1 = y(ti+1 ) − yi+1

chama-se erro de truncatura local do método no ponto ti+1 .

Se o erro diminuir à medida que o tamanho do passo diminui então podemos dizer que o método
é consistente.

Definição 76 Se
Ti+1
lim max =0
h→0 0≤i≤n−1 h

O método diz-se consistente.

145
Matemática Computacional Métodos numéricos para problemas de condição inicial

A rapidez com que o erro de truncatura tende para zero, comparada com a velocidade com que o
passo se aproxima de zero indica-nos a ordem do método.

Definição 77 O método diz-se de ordem p > 0 se existir um C > 0 tal que

|Ti+1 | ≤ Chp+1 , i = 0, . . . , n − 1.

Ao erro acumulado até ao passo i denominamos erro global.

Definição 78 Se supusermos que yi ≈ y(ti ), i = 0, . . . , n à quantidade

e(ti ) = y(ti ) − yi

chamamos erro global do método no ponto ti .


Se
lim max |e(ti )| = 0
h→0 1≤i≤n

o método diz-se convergente.

O métodos numéricos para problemas de condição inicial pode dividir-se em dois grandes
grupos: Métodos de passo simples, que se podem escrever da forma yi+1 = hΦ(ti , yi , h) e métodos
de passo múltiplo, que têm a forma yi+1 = yi + hΦ(ti , . . . , ti−k , yi , . . . , yi−k , h).

9.1 Métodos de passo simples

9.1.1 Método de Euler


Consideremos o problema (
y 0 (t) = f (t, y)
, t ∈ [a, b]
y(a) = α
com f suficientemente regular nas variáveis t e y. Então a série de Taylor da solução é

(t − t0 )2 00
y(t) = y(t0 ) + (t − t0 )y 0 (t0 ) + y (t0 ) + . . .
2!
Não é possı́vel calcular as derivadas de y explicitamente, uma vez que a solução não é conhecida,
mas podemos definir
y 0 (t) = f (t, y)
y 00 (t) = f 0 (t, y) = fy (t, y) + fy (t, y)f (t, y)
..
.
Como é obvio só podemos calcular um no finito de termos. O que nos vai limitar a precisão das
aproximações.
Se truncarmos a série de Taylor no termo de ordem k, obtemos para t = t1 = t0 + h

h2 0 hk
y(t1 ) ≈ y1 = y0 + hf (t0 , y0 ) + f (t0 , y0 ) + · · · + f (k−1) (t0 , y0 )
2 k!
José Duque 146
9.1 Métodos de passo simples Matemática Computacional

Podemos assim definir para cada k = 1, 2, . . . um método explicito de passo simples.


Quando k = 1 o método é chamado por Método de Euler.
Assim a aproximação yn+1 do valor exacto y(tn+1 ) é obtida pela fórmula

y0 = y(t0 ) = α
yn+1 = yn + hf (tn , yn )

esta fórmula produz aproximações da solução do problema em pontos igualmente espaçados


xj = a + j × h. À distância h entre dois pontos consecutivos chamamos passo do método de
Euler.
O erro cometido em cada passo ao aproximar y(tn ) por yn , ou seja o erro local, é dado por

h2 00
|y(tn ) − yn | = y (ξ)
2
em virtude do erro de truncatura da série de Taylor.
O erro cometido até ao passo n, ou seja o erro global, pode ser majorado por
hM  (tn −t0 )L 
|y(tn ) − yn | ≤ e −1
2L
onde L e M são calculados de forma a

∂f
|y 00 (t)| < M

(t, y) < L,
∂y

Exemplo 79 Considere o problema de condição inicial



y 0 = −ty t2
, t ∈ [0, +∞[. (sol : y(t) = e− 2 )
y(0) = 1

Calcule uma aproximação para a solução no ponto t = 0.5, usando o método de Euler, com passo
h = 0.1. Estime o erro global.
Resposta
t0 = 0
y0 = y(t0 ) = y(0) = 1
y(0.1) ≈ y1 = y0 + hf (t0 , y0 ) = 1 + 0.1 × f (0, 1) = 1 + 0.1 × (−0 × 1) = 1
y(0.2) ≈ y2 = y1 + hf (t1 , y1 ) = 1 + 0.1 × f (0.1, 1) = 1 + 0.1 × (−0.1 × 1) = 0.99
y(0.3) ≈ y3 = y2 + hf (t2 , y2 ) = 0.99 + 0.1 × f (0.2, 0.99) = 0.99 + 0.1 × (−0.2 × 0.99) = 0.9702
y(0.4) ≈ y4 = 0.9702 + 0.1 × f (0.3, 0.9702) = 0.9702 + 0.1 × (−0.3 × 0.9702) = 0.941094
y(0.5) ≈ y5 = 0.941094 + 0.1 × f (0.4, 0.941094) = 0.941094 + 0.1 × (−0.4 × 0.941094) = 0.90345024
Logo a aproximação pretendida é y(0.5) ≈ 0.90345024
Vamos agora calcular o erro global.

∂f
(t, y) = −t
∂y
logo para t ∈ [0, 0.5]
∂f
(t, y) ≤ 0.5 = L
∂y

147 José Duque


Matemática Computacional Métodos numéricos para problemas de condição inicial

Se
y 0 = −ty

então
y 00 = −y − ty 0 = −y − t(−ty) = y(t2 − 1)

Para t ∈ [0, 0.5], |t2 − 1| ≤ 1, assim

|y 00 | = |y||t2 − 1| ≤ |y| ≤ M

Desta forma
0.1M h (0.5−0)0.5 i
|y(0.5) − y5 | ≤ e −1
2 × 0.5
≤ 0.02840254167M


9.1.2 Métodos de Taylor


O método de Euler é bastante simples e rápido de utilizar, mas para obtermos uma boa precisão,
regra geral é necessário utilizar um passo h muito pequeno. Para aumentar a precisão podemos
truncar a série de Taylor mais à frente, isto é, utilizar um método de Taylor de ordem mais elevada.
O método de Taylor de ordem p pode-se resumir na seguinte fórmula
h2 0 hp
yi+1 = yi + hf (ti , yi ) + f (ti , yi ) + · · · + f (p−1) (ti , yi )
2 p!
onde as derivadas de f são todas em ordem a t.

Exemplo 80 Dado o problema de condição inicial



y 0 = y 2
1+t
, 0≤t≤1 (sol : y(t) = earctg(t) )
y(0) = 1

Use o método de Taylor de ordem dois para determinar um valor aproximado y5 de y(1).
Resposta
O método de Taylor de ordem 2 tem a fórmula:
h2 0
yi+1 = yi + hf (ti , yi ) + f (ti , yi )
2
Uma vez que t0 = 0 e para ser y(1) ≈ y5 temos de dividir o intervalo [0, 1] em 5 intervalos iguais, logo
1−0
h= = 0.2
5
Dado que
y
f (t, y) =
1 + t2
y 0 × (1 + t2 ) − y × (1 + t2 )0
f 0 (t, y) =
(1 + t2 )2
1 y × 2t
= y0 2

1+t (1 + t2 )2
y y × 2t
= 2 2

(1 + t ) (1 + t2 )2
y(1 − 2t)
=
(1 + t2 )2

José Duque 148


9.1 Métodos de passo simples Matemática Computacional

t0 = 0, y0 = 1
h2 0 0.22 0
y(0.2) ≈ y1 = y0 + hf (t0 , y0 ) + 2 f (t0 , y0 ) = 1 + 0.2f (0, 1) + 2 f (0, 1) =

1 1(1 − 2 × 0)
= 1 + 0.2 + 0.02 = 1.22
1 + 02 (1 + 02 )2

h2 0
y(0.4) ≈ y2 = y1 + hf (t1 , y1 ) + 2 f (t1 , y1 ) =

1.22 1.22(1 − 2 × 0.2)


= 1.22 + 0.2 + 0.02 = 1.4681508876
1 + 0.22 (1 + 0.22 )2
y(0.6) ≈ y3 = 1.7256446520
y(0.8) ≈ y4 = 1.9756839939
y(1.0) ≈ y5 = 2.2078062954


9.1.3 Métodos de Runge-Kutta


Para evitar o calculo das derivadas no método de Taylor, mas manter o grau de precisão, surgiram
os métodos de Runge-Kutta. A ordem do método indica também a ordem do método de Taylor
que pretende aproximar. Existem então vários métodos de Runge-Kutta.
Como são métodos de passo simples uma formulação genérica para os métodos de Runge-Kutta é

yi+1 = yi + hΦ(ti , yi , h)

Para Φ(ti , yi , h) vamos definir

Φ = a1 k 1 + a2 k 2 + · · · + an k n

onde os ai ’s são constantes e


k1 = f (ti , yi )
k2 = f (ti + p1 h, y1 + q11 hk1 )
..
.
kn = f (ti + pn−1 h, yi + qn−1,1 hk1 + qn−1,2 hk2 + · · · + qn−1,n−1 hkn−1 )
Se n = 1 resulta o método de Euler.
Para n > 1 as constantes ai , qi,j , pi são obtidas de modo que se obtenha a mesma precisão que o
método de Taylor de ordem n. Por exemplo para n = 2

yi+1 = yi + h(a1 k1 + a2 k2 ) = yi + ha1 f (ti , yi ) + ha2 f (ti + p1 h, yi + q11 k1 h) (9.1)


Relembrando o método de Taylor de ordem 2
h2 0
yi+1 = yi + hf (ti , yi ) + 2
f (ti , yi )

h2
 
∂f ∂f
= yi + hf (ti , yi ) + (ti , yi ) + (ti , yi ) × f (ti , yi )
2 ∂t ∂y
Podemos aproximar
∂f ∂f
f (ti + p1 h, yi + q11 ki h) ≈ f (ti , yi ) + p1 h (ti , yi ) + q11 ki h (ti , yi )
∂t ∂y

149 José Duque


Matemática Computacional Métodos numéricos para problemas de condição inicial

substituindo na equação (9.1) fica


 
∂f ∂f
yi+1 = yi + ha1 f (ti , yi ) + ha2 f (ti , yi ) + p1 h (ti , yi ) + q11 ki h (ti , yi )
∂t ∂y
 
2 ∂f ∂f
= yi + (a1 + a2 )hf (ti , yi ) + h a2 p1 (ti , yi ) + a2 q11 (ti , yi ) × f (ti , yi )
∂t ∂y

Igualando ao método de Taylor obtemos o sistema


  
1
 1a + a 2 = 1  a1 = 1 − a2 dando um valor a a2 ,  a1 =
  
   2
a2 p1 = 12 ⇔ p1 = 2a12 por exemplo 12 , p1 = 1
  
 aq =1
  q = 1

obtemos um método de Runge-Kutta

 q =1
2 11 2 11 2a2 11

Resumindo o método de Runge-Kutta de ordem 2 tem a fórmula:


yi+1 = yi + h2 (k1 + k2 ),
k1 = f (ti , yi ), k2 = f (ti + h, yi + hk1 )
O de ordem 3 é:
yi+1 = yi + h6 (k1 + 4k2 + k3 ),
k1 = f (ti , yi ), k2 = f (ti + h2 , yi + h2 k1 ), k3 = f (ti + h, y1 − hk1 + 2hk2 )
a
O método de Runge-Kutta de 4 ordem utiliza as fórmulas:
yi+1 = yi + h6 (k1 + 2k2 + 2k3 + k4 )
k1 = f (ti , yi ), k2 = f (ti + h2 , yi + h2 k1 )
k3 = f (ti + h2 , yi + h2 k2 ), k4 = f (ti + h, yi + hk3 )
Uma vez que o sistema que obtivemos era indeterminado, as constantes podem ser atribuı́das
de forma diferente, dando origem a outros métodos de Runge-Kutta da mesma ordem mas com
constantes diferentes das aqui apresentadas.

Exemplo 81 Dado o problema de condição inicial



y 0 = y 2
1+t
, 0≤t≤1 (sol : y(t) = earctg(t) )
y(0) = 1

Calcule uma estimativa em t = 1 recorrendo ao método de Runge-Kutta de 2a ordem, com h = 0.2.


Resposta
Dado que
y
f (t, y) =
1 + t2
t0 = 0, y0 = 1
Como é dito o tamanho do passo, ou seja, h = 0.2.
h
y(0.2) ≈ y1 = y0 + (k1 + k2 )
2
onde
1
k1 = f (t0 , y0 ) = f (0, 1) = 1+02
=1

José Duque 150


9.2 Métodos de passo múltiplo Matemática Computacional

1.2
k2 = f (t0 + h, y0 + hk2 ) = f (0 + 0.2, 1 + 0.2 × 1) = f (0.2, 1.2) = 1+0.22
= 1.153846154
0.2
y1 = 1 + 2 (1 + 1.153846154) = 1.215384615

h
y(0.4) ≈ y2 = y1 + (k1 + k2 )
2
onde
k1 = f (t1 , y1 ) = f (0.2, 1.215384615) = 1.168639053
k2 = f (t1 +h, y1 +hk2 ) = f (0.2+0.2, 1.215384615+0.2×1.168639053) = f (0.4, 1.449112426) = 1.24923485
0.2
y2 = 1.215384615 + 2 (1.168639053 + 1.24923485) = 1.457172006

h
y(0.6) ≈ y3 = y2 + (k1 + k2 )
2
onde
k1 = 1.256182764
k2 = 1.256182764
0.2
y2 = 1.457172006 + 2 (1.256182764 + 1.256182764) = 1.708408558

y(0.8) ≈ y4 = 1.95351739

onde
k1 = 1.256182764
k2 = 1.19490556
y(1.0) ≈ y5 = 2.182221865

onde
k1 = 1.19116914
k2 = 1.095875609


9.2 Métodos de passo múltiplo


Neste capı́tulo vamos focar só os métodos lineares, uma vez que mais simples permitem uma mais
fácil análise da estabilidade, consistência e convergência.
Os métodos de passo múltiplo lineares podem escrever-se da forma

yi+m = yi + hΦ(ti+m , . . . , ti , yi+m , . . . , yi , h) ⇔ αm yi+m + · · · + α0 yi = h(βm fi+m + · · · + β0 fi )

em que os αj e os βj são constantes apropriadas. Vamos supor sempre que αm 6= 0, e uma vez que,
multiplicando todos os coeficientes por uma constante, não nula, não altera a equação podemos
também supor que βm + · · · + β0 = 1.
Se βm = 0 diz-se que o método é explicito pois determina explicitamente yi+m . Se βm 6= 0 então
o método diz-se implı́cito uma vez que yi+m não pode ser obtido explicitamente. Neste caso yi+m
é solução de uma equação, geralmente não linear, da forma
1
yi+m = [h(βm fi+m + · · · + β0 fi ) − (αm−1 yi+m−1 + · · · + α0 yi )]
αm

151 José Duque


Matemática Computacional Métodos numéricos para problemas de condição inicial

para resolvermos esta equação o mais usual é utilizarmos o método do ponto fixo da forma

(k+1) (k)
yi+m = ϕ(yi+m )

(k)
em que ϕ(yi+m ) é definida por

(k) 1 h (k)
i
ϕ(yi+m ) = h(βm fi+m + · · · + β0 fi ) − (αm−1 yi+m−1 + · · · + α0 yi )
αm
(0)
neste caso é necessária uma estimativa inicial yi+m , que deve estar suficientemente perto da solução
para se obter uma convergência rápida. Geralmente utiliza-se um método explicito para obter essa
estimativa. Este caso vai ser estudado no capı́tulo seguinte.
Aos métodos de passo múltiplo lineares é costume associar os polinómios

ρ(x) = αm xm + · · · + α1 x + α0

σ(x) = βm xm + · · · + β1 x + β0

que são designados por primeiro e segundo polinómios caracterı́sticos respectivamente.


Para estes métodos a análise de consistência, estabilidade e convergência é bastante simples.
Consideremos a seguinte sucessão
C0 = α0 + α1 + · · · + αm
C1 = α1 + 2α2 + · · · + mαm − (β0 + β1 + · · · + βm )

...

1 1
Ck = k!
(α1 + 2k α2 + · · · + mk αm − (k−1)!
(β1 + 2k−1 β2 + · · · + mk−1 βm ), k = 2, 3, . . .

Teorema 82 O método é consistente sse C0 = 0 e C1 = 0.


Neste caso possui ordem de consistência igual a p sse

C0 = C1 = · · · = Cp = 0, Cp+1 6= 0

Nas condições do teorema anterior o erro de truncatura pode ser expresso por

Th = Cp+1 hp+1 + O(hp+2 )

Definição 83 Diz-se que o método tem estabilidade-zero se o polinómio ρ satisfizer as seguintes


condições

• Se r for um zero simples, então |r| ≤ 1

• Se r for um zero de multiplicidade maior que 1, então |r| < 1.

José Duque 152


9.3 Métodos Estimador-Corrector Matemática Computacional

Exemplo 84 Deduza, a partir do desenvolvimento em série de Taylor de y(xi + h) e y(xi − h),


o método do ponto médio explı́cito de ordem 2. ( yi+1 = yi−1 + 2hf (xi , yi ) ).
Resposta
Como é sugerido façamos o polinómio de Taylor de y em torno de xi de grau 2 e o respectivo resto.

(x − xi )2 00 (x − xi )3 000
y(x) = y(xi ) + (x − xi )y 0 (xi ) + y (xi ) + y (ξ)
2 6
Substituindo por xi + h e xi − h vêm os polinómios

h2 00 h3
y(xi + h) = y(xi ) + hy 0 (xi ) + y (xi ) + y 000 (ξ1 ) (9.2)
2 6
h2 00 h3
y(xi − h) = y(xi ) − hy 0 (xi ) + y (xi ) − y 000 (ξ2 ) (9.3)
2 6
A (9.2) subtraı́mos (9.3) e fica

h3 000
y(xi + h) − y(xi − h) = 2hy 0 (xi ) + (y (ξ1 ) + y 000 (ξ2 ))
6
que é equivalente a
h3 000
y(xi + h) = y(xi − h) + 2hy 0 (xi ) +
(y (ξ1 ) + y 000 (ξ2 )).
6
Se retirarmos o termo do resto e considerarmos y(xi − h) ≈ yi−1 e y 0 (xi ) = f (xi , yi ) obtemos

yi+1 = yi−1 + 2hf (xi , yi )

como querı́amos. Para verificarmos que é de ordem 2 basta pegar no resto e verificar que

h3 000
Th = (y (ξ1 ) + y 000 (ξ2 ))
6
pelo teorema de Bolzano existe ξ tal que
1
y 000 (ξ) = (y 000 (ξ1 ) + y 000 (ξ2 ))
2
logo
h3 000
Th =y (ξ)
3
Admitindo que y 000 é continua podemos afirmar que

ky 000 (ξ)k 3
kTh k = h ≤ Ch3
3
Então o método tem ordem 2. 

9.3 Métodos Estimador-Corrector


Os métodos de Adams tem a vantagem, em relação aos métodos de Runge-Kutta, de não ser
necessário em cada iteração o calculo das constantes todas, pois algumas mantêm-se, mas tem
a desvantagem de o erro ser maior. Para aumentar a precisão costuma utilizar-se uma técnica
conhecida como estimador corrector, onde se utilizam em conjunto dois métodos um estimador,
e um corrector. O estimador, geralmente um método explicito, encontra uma aproximação da

153 José Duque


Matemática Computacional Métodos numéricos para problemas de condição inicial

solução e o corrector, um método implı́cito, melhora essa estimativa.


Outra vantagem desta técnica é que permite controlar o erro em cada passo, antes de partir para
o passo seguinte. Os mais usuais são:
Estimador: Métodos de Adams Bashforth
yi+1 = yi + h2 (3f (ti , yi ) − f (ti−1 , yi−1 ))
h
yi+1 = yi + 12
(23f (ti , yi ) − 16f (ti−1 , yi−1 ) + 5f (ti−2 , yi−2 ))
h
yi+1 = yi + 24
(55f (ti , yi ) − 59f (ti−1 , yi−1 ) + 37f (ti−2 , yi−2 ) − 9f (ti−3 , yi−3 ))
Corrector: Métodos de Adams Moulton
yi+1 = yi + h2 (f (ti+1 , yi+1 ) + f (ti , yi ))
h
yi+1 = yi + 12
(5f (ti+1 , yi+1 ) + 8f (ti , yi ) − f (ti−1 , yi−1 ))
h
yi+1 = yi + 24
(9f (ti+1 , yi+1 ) + 19f (ti , yi ) − 5f (ti−1 , yi−1 ) + f (ti−2 , yi−2 ))

Exemplo 85 Ache aproximações para a solução do problema de valores iniciais



y 0 = −ty 2 2
, sol : y(t) =
y(1) = 2 t2

para t ∈ [1, 2], com h = 0.2

1. Usando o método de Runge-Kutta de 4a ordem.

2. Usando o método de Adams-Bashforth de 4a ordem.

3. Usando o método estimador-corrector de Adams-Bashforth-Moulton de 4a ordem.

Resposta
i.
Os dados do problema são

f (t, y) = −ty 2 , t0 = 1, y0 = 2, h = 0.2

Aplicando as fórmulas temos

h
y(1.2) ≈ y1 = y0 + (k1 + 2k2 + 2k3 + k4 )
6

onde
k1 = f (t0 , y0 ) = f (1, 2) = −1 × 22 = −4
k2 = f (t0 + h2 , y0 + h2 k1 ) = f (1 + 0.1, 2 + 0.1 × (−4)) = f (1.1, 1.6) = −1.1 × 1.62 = −2.816
k3 = f (t0 + h2 , y0 + h2 k2 ) = f (1 + 0.1, 2 + 0.1 × (−2.816)) = f (1.1, 1.7184) = −3.2481884
k4 = f (t0 + h, y0 + hk3 ) = f (1 + 0.2, 2 + 0.2 × (−3.2481884)) = f (1.2, 1.35036232) = −2.1881741
0.2
y1 = 2 + 6 (−4 + 2 × (−2.816) + 2 × (−3.2481884) − 2.1881741) = 1.3894483
As restantes iterações estão resumidas na seguinte tabela

José Duque 154


9.3 Métodos Estimador-Corrector Matemática Computacional

ti yi k1 k2 k3 k4
1.000 2.0000000
1.200 1.3894483 −4.0000000 −2.8160000 −3.2481884 −2.1881741
1.400 1.0208911 −2.3166799 −1.7425918 −1.9196900 −1.4154714
1.600 0.7816008 −1.4591062 −1.1483864 −1.2313967 −0.9600375
1.800 0.6175314 −0.9774397 −0.7950223 −0.8380021 −0.6785937
2.000 0.5001755 −0.6864211 −0.5724310 −0.5964537 −0.4964875
2
A solução exacta é y(t) = t2
, então o erro em t = 2 é

|y(2) − y5 | = |0.5 − 0.5001755| = 0.0001755


Resposta
ii.
Para aplicarmos o método de Adams-Bashforth temos de saber y0 , y1 , y2 e y3 .
Como h = 0.2,y0 ≈ y(1), y1 ≈ y(1.2), y2 ≈ y(1.4) e y3 ≈ y(1.6).
Pela alı́nea anterior podemos afirmar que y0 = 2, y1 = 1.3894483, y2 = 1.0208911 e y3 = 0.7816008.
Então a primeira estimativa é

h
y4 = y 3 + (55f (t3 , y3 ) − 59f (t2 , y2 ) + 37f (t1 , y1 ) − 9f (t0 , y0 ))
24

f (t0 , y0 ) = f (1, 2) = −1 × 22 = −4
f (t1 , y1 ) = f (1.2, 1.3894483) = −1.2 × 1.38944832 = −2.316679894
f (t2 , y2 ) = f (1.4, 1.0208911) = −1.4 × 1.02089112 = −1.459106093
f (t3 , y3 ) = f (1.6, 0.7816008) = −1.6 × 0.78160082 = −0.9774397469
0.2
y4 = 0.7816008 + 24 (55 × (−0.9774397469) − 59 × (−1.459106093)+
+ 37 × (−2.316679894) − 9 × (−4)) = 0.6366919

h
y5 = y4 + (55f (t4 , y4 ) − 59f (t3 , y3 ) + 37f (t2 , y2 ) − 9f (t1 , y1 ))
24
os valores de f (t1 , y1 ), f (t2 , y2 ), f (t3 , y3 ) já foram calculados falta só o de
f (t4 , y4 ) = f (1.8, 0.6366919) = −0.72967784
Logo
0.2
y5 = 0.6366919 + 24 (55 × (−0.72967784) − 59 × (−0.9774397469)+
+ 37 × (−1.459106093) − 9 × (−2.316679894)) = 0.5066906716
2
Uma vez que a solução exacta é y(t) = t2
, o erro em t = 2 é

|y(2) − y5 | = |0.5 − 0.5066906716| = 6.6906716 × 10−3

Podemos observar que é algo superior ao erro do método de Runge-Kutta. Para melhorarmos este valor
costuma utilizar-se outro método em conjunto com este. 
Resposta
iii.

155 José Duque


Matemática Computacional Métodos numéricos para problemas de condição inicial

Já sabemos da alı́nea anterior que y0 = 2, y1 = 1.3894483, y2 = 1.0208911, y3 = 0.7816008 e y4 =


0.4294146667. Agora vamos corrigir esta última estimativa utilizando o método de Adams-Moulton

(1) h (0)
y4 = y3 + (9f (t4 , y4 ) + 19f (t3 , y3 ) − 5f (t2 , y2 ) + f (t1 , y1 ))
24
Já calculámos f (t1 , y1 ), f (t2 , y2 ), f (t3 , y3 ) e
(0)
f (t4 , y4 ) = f (1.8, 0.6366919) = −0.72967784
(1) h
y4 = 0.7816008 + 24 (9 × (−0.72967784) + 19 × (−0.9774397469) − 5 × (−1.459106093)+
+ (−2.316679894)) = 0.6136041
O erro desta nova estimativa é

(1) (0)
|y4 − y4 | = |0.6136041 − 0.6366919| = 0.0230878

Como não é dita nenhuma tolerância podemos considerar que este valor é bom e passamos ao seguinte
considerando y4 = 0.6136041.
h
y5 = y4 + (55f (t4 , t4 ) − 59f (t3 , y3 ) + 37f (t2 , y2 ) − 9f (t1 , y1 ))
24
Só nos falta calcular
f (t4 , t4 ) = f (1.8, 0.6136041) = −0.677718
0.2
y5 = 0.6136041 + 24 (55 × (−0.677718) − 59 × (−0.9774397469) + 37 × (−1.459106093)−
− 9 × (−2.316679894)) = 0.5074178
Aplicando o corrector

(1) h (0)
y5 = y4 + (9f (t5 , y5 ) + 19f (t4 , y4 ) − 5f (t3 , y3 ) + f (t2 , y2 ))
24
(0)
f (t5 , y5 ) = f (2.0, 0.5074178) = −0.51494565
(1) h
y5 = 0.6136041 + 24 (9 × (−0.51494565) + 19 × (−0.677718) − 5 × (−0.9774397469)+
+ (−1.459106093)) = 0.4962453
O erro é estimado por

(1) (0)
|y5 − y5 | = |0.4962453 − 0.5074178| = 0.0111725

Mais uma vez como não é dita nenhuma tolerância podemos considerar que este valor é bom. Logo

y(2) ≈ 0.4962453

2
Já sabemos que a solução exacta é y(t) = t2
, então o erro em t = 2 é

|y(2) − y5 | = |0.5 − 0.4962453| = 0.0037547

Este erro já é mais proximo do erro do método de Runge-Kutta. 

9.4 Sistemas de equações diferenciais


No caso de termos várias equações diferenciais simultâneas os métodos dados anteriormente ainda
podem ser utilizados, basta aplicar as fórmulas do método a cada equação, ou então aplicar a

José Duque 156


9.4 Sistemas de equações diferenciais Matemática Computacional

fórmula em forma vectorial.


Formalizemos então as definições.
Seja o sistema de equações diferenciais de 1a ordem.

0
 y1 (t) = f1 (t, y1 , . . . , yn )


..
Y 0 (t) = F (t, Y (t)) ⇔ .

 y 0 (t) = f (t, y , . . . , y )

n n 1 n

Aplicando o método de Euler obtemos as fórmulas



 y1,k+1 = y1,k + hf1 (tk , y1,k , . . . , yn,k )

..

Yk+1 = Yk + hF (tk , Yk ) ⇔ .


 y = y + hf (t , y , . . . , y )
n,k+1 n,k n k 1,k n,k

Os métodos de Taylor de ordem superior são deduzidos de forma semelhante.


Consideremos agora o método de Runge-Kutta de ordem 2, por exemplo.
h h
Yk+1 = Yk + (K1 + K2 ) ⇔ Yk+1 = Yk + (F (tk , Yk ) + F (tk + h, Yk + hF (tk , Yk ))) ⇔
2 2
    
h
 y1,k+1 = y1,k + 2 (k1,1 + k2,1 ) k1,1 f1 (tk , y1,k , . . . , yn,k )


..  .  
.   .. 
⇔ . onde K1 =   . = .  e


= y + h (k + k )

 y
n,k+1 n,k 2 1,n 2,n k1,n fn (tk , y1,k , . . . , yn,k )
   
k2,1 f1 (tk + h, y1,k + hk1,1 , . . . , yn,k + hk1,n )
 ..   .. 
K2 = 
 .  =
 
 . 

k2,n fn (tk + h, y1,k + hk1,1 , . . . , yn,k + hk1,n )
Para os restantes métodos de Runge-Kutta e os métodos de Adams o processo é semelhante.

Exemplo 86 O sistema

x0 (t) = 2x(t) − 3y(t)
y 0 (t) = y(t) − 2x(t), x(0) = 8, y(0) = 3

vai ser integrado pelo método de Euler.

1. Determine estimativas de x(0.1) e y(0.1) com passo de integração 0.1 e 0.05.


Resposta
O sistema é da forma 
x0 = 2x − 3y ⇔ x0 = f1 (t, x, y)
,
y 0 = y − 2x ⇔ y 0 = f2 (t, x, y)
as condições iniciais são x0 = x(0) = 8 e y0 = y(0) = 3.
Aplicando o método de Euler a cada equação obtemos

xi−1 = xi + hf1 (ti , xi , yi )
y = y + hf (t , x , y )
i+1 i 2 i i i

157 José Duque


Matemática Computacional Métodos numéricos para problemas de condição inicial

Considerando h = 0.1 obtemos


  
x1 = x0 + hf1 (t0 , x0 , y0 ) x1 = 8 + 0.1(2 × 8 − 3 × 3) x1 = 8.7
⇔ ⇔
y = y + hf (t , x , y ) y = 3 + 0.1(3 − 2 × 8) y = 1.7
1 0 2 0 0 0 1 1

Logo x(0.1) ≈ x1 = 8.7 e y(0.1) ≈ y1 = 1.7.


Considerando agora h = 0.05 obtemos
  
x1 = x0 + hf1 (t0 , x0 , y0 ) x1 = 8 + 0.05(2 × 8 − 3 × 3) x1 = 8.35
⇔ ⇔
y = y + hf (t , x , y ) y = 3 + 0.05(3 − 2 × 8) y = 2.35
1 0 2 0 0 0 1 1

Logo x(0.05) ≈ x1 = 8.35 e y(0.05)


  ≈ y1 = 2.35.
x2 = x1 + hf1 (t1 , x1 , y1 ) x2 = 8.35 + 0.05(2 × 8.35 − 3 × 2.35)

y = y + hf (t , x , y ) y = 2.35 + 0.05(2.35 − 2 × 8.35)
2 1 2 1 1 1 2

x2 = 8.8325
⇔ Logo x(0.1) ≈ x2 = 8.8325 e y(0.1) ≈ y2 = 1.6325. 
y = 1.6325
2

2. Defina uma terceira estimativa da solução em t = 0.1, recorrendo às aproximações já conhe-
cidas, obtidas na alı́nea anterior.
Resposta
Para melhorarmos a estimativa podemos utilizar a fórmula

2v yi,h − yi/2,2h
yi∗ =
2v − 1

onde v é a ordem do método e yi,h e yi/2,2h são as estimativas de yi utilizando os passos h e 2h


respectivamente. Neste caso a ordem do método é 1 e h = 0.05 logo

21 × 8.8325 − 8.7
x∗ = = 8.965
21 − 1

21 × 1.6325 − 1.7
y∗ = = 1.565
21 − 1
Então x(0.1) ≈ 8.965 e y(0.1) ≈ 1.565. 

3. Calcule o erro absoluto da estimativa da solução em t = 0.1 obtida com o passo h = 0.05.
Resposta
A fórmula para o erro que podemos utilizar é semelhante á fórmula utilizada na alı́nea anterior.

yi/2,2h − yi,h

Ea (yi,h ) ≈
1 − 2v

Logo

8.7 − 8.8325 1.7 − 1.6325
Ea (8.8325) ≈ = 0.1325 , e Ea (1.6325) ≈ = 0.0675
1 − 21 1 − 21

José Duque 158


9.5 Equações diferenciais de ordem superior Matemática Computacional

Exemplo 87 Use o método de Runge-Kutta de 2a ordem, com h = 0.05 para estimar os valores
y(0.1) e x(0.1) da solução particular de

x0 (t) = 2t − 3y
y 0 (t) = t − x2 , x(0) = 2, y(0) = 1

Resposta
O método de Runge-Kutta de 2a ordem adaptado a este problema fica
(
xi+1 = xi + h2 (k11 + k21 ), k11 = f1 (ti , xi , yi ), k21 = f1 (ti + h, xi + hk11 , yi + hk12 )
yi+1 = yi + h2 (k12 + k22 ), k12 = f2 (ti , xi , yi ), k22 = f2 (ti + h, xi + hk11 , yi + hk12 )
(
x1 = x0 + h2 (k11 + k21 )
y1 = y0 + h2 (k12 + k22 )
k11 = f1 (t0 , x0 , y0 ) = f1 (0, 2, 1) = 2 × 0 − 3 × 1 = −3
k12 = f2 (t0 , x0 , y0 ) = f2 (0, 2, 1) = 0 − 22 = −4
k21 = f1 (t0 + h, x0 + hk11 , y0 + hk12 ) = f1 (0 + 0.05, 2 + 0.05 × (−3), 1 + 0.05 × (−4)) =
= f1 (0.05, 1.85, 0.8) = 2 × 0.05 − 3 × 0.8 = −2.3
k22 = f2 (t0 + h, x0 + hk11 , y0 + hk12 ) = f2 (0 + 0.05, 2 + 0.05 × (−3), 1 + 0.05 × (−4)) =
= f2 (0.05, 1.85, 0.8) = 0.05 − 1.852 = −3.3725
(
0.05
x1 = 2 + 2 (−3 − 2.3) = 1.8675
0.05
y1 = 1 + 2 (−4 − 3.3725) = 0.8156875
(
x2 = x1 + h2 (k11 + k21 )
y2 = y1 + h2 (k12 + k22 )
k11 = f1 (t1 , x1 , y1 ) = f1 (0.05, 1.8675, 0.8156875) = 2 × 0.05 − 3 × 0.8156875 = −2.3470625
k12 = f2 (t1 , x1 , y1 ) = f2 (0.05, 1.8675, 0.8156875) = 0.05 − 1.86752 = −3.43755625
k21 = f1 (t1 + h, x1 + hk11 , y1 + hk12 ) =
= f1 (0.05 + 0.05, 1.8675 + 0.05 × (−0.19470625), 0.8156875 + 0.05 × (−2.755625)) =
= f1 (0.1, 1.857764688, 0.67790625) = 2 × 0.1 − 3 × 0.67790625 = −1.731429063
k22 = f2 (t1 + h, x1 + hk11 , y1 + hk12 ) =
= f2 (0.05 + 0.05, 1.8675 + 0.05 × (−0.19470625), 0.8156875 + 0.05 × (−2.755625)) =
= f2 (0.1, 1.857764688, 0.67790625) = 0.1 − 1.8577646882 = −2.963614084
(
0.05
x2 = 1.8675 + 2 (−0.19470625 − 1.83371875) = 1.779499865
y2 = 0.8156875 + 0.05
2 (−2.755625 − 3.351289636) = 0.6556582417

Logo x(0.1) ≈ 1.816789375 e y(0.1) ≈ 0.663014466. 

9.5 Equações diferenciais de ordem superior


Se tivermos uma equação diferencial linear de ordem superior a 1 podemos sempre torná-la num
sistema de equações diferenciais de 1a ordem.

159 José Duque


Matemática Computacional Métodos numéricos para problemas de condição inicial

Seja
y (n) (t) = f (t, y, y 0 (t), y 00 (t), . . . , y (n−1) )

Podemos ir assumindo como novas variáveis as diversas derivadas de y e obter o seguinte sistema
de equações diferenciais de 1a ordem
 
0


 y (t) = y1 (t) 

 y 0 (t) = f1 (t, y, y1 , y2 , . . . , yn−2 )
 
 y 00 (t) = y 0 (t) = y2 (t)
  y 0 (t) = f2 (t, y, y1 , y2 , . . . , yn−2 )

1 1
. ⇔ .

 .. 
 ..

 

 y (n) = y 0 = f (t, y, y , y , . . . , y )
  y 0 = f (t, y, y , y , . . . , y )

n−1 1 2 n−2 n−1 1 2 n−2

Para resolver sistemas já temos os métodos da secção anterior.

Exemplo 88 Converta em sistema de equações diferenciais de 1a ordem o seguinte problema:


y 000 + ty 00 − yy 0 + y 2 = cos(t), y(1.2) = −1, y 0 (1.2) = 0, y 00 (1.2) = 1
Resposta
Considerando uma variável auxiliar podemos por

y 0 = x
x00 + tx0 − yx + y 2 = cos(t)

y(1.2) = −1, x(1.2) = y 0 (1.2) = 0, x0 (1.2) = y 00 (1.2) = 1


Como ainda temos derivadas de ordem superior a 1 vamos considerar mais uma variável auxiliar
 
 y 0 =x  y0 = x

 

 
x0 = z ⇔ x0 = z

 

 0 2  0
z = −tz + yx − y 2 + cos(t)
 
z + tz − yx + y = cos(t)

y(1.2) = −1, x(1.2) = y 0 (1.2) = 0, z(1.2) = x0 (1.2) = 1


Então já temos um sistema de equações diferenciais todas de 1o ordem. 

Exemplo 89 Para o problema de condições iniciais seguintes determine um valor aproximado de


y(0.5) aplicando o método de Taylor de ordem 2.
y 00 + y = t, y(0) = 1, y 0 (0) = −2
Resposta
Em sistema fica (
y0 = x y(0) = 1
x0 = −y + t x(0) = −2
Como não é dito h podemos considerar h = 0.5. O método de Taylor de segunda ordem tem a fórmula

h2 0
Y (i+1) = Y (i) + hF (ti , Y (i) ) + F (ti , Y (i) )
2
então neste caso 
yi+1 = yi + hf1 (ti , yi , xi ) + h2 f 0 (ti , yi , xi )
2 1
x h2 0
i+1 = xi + hf2 (ti , yi , xi ) + 2 f2 (ti , yi , xi )

José Duque 160


9.6 Exercı́cios Matemática Computacional

Temos de calcular f10 e f20 .


f1 = x logo f10 = x0 = −y + t
f2 = −y + t logo f20 = −y 0 + 1 = −x + 1

y1 = y0 + hf1 (t0 , y0 , x0 ) + h2 f 0 (t0 , y0 , x0 )
2 1

x = x + hf (t , y , x ) + h2 f 0 (t , y , x )
1 0 2 0 0 0 2 2 0 0 0

y1 = 1 + 0.5f1 (0, 1, −2) + 0.52 f 0 (0, 1, −2)
2 1

x = −2 + 0.5f (0, 1, −2) + 0.52 f 0 (0, 1, −2)
1 2 2 2

y1 = 1 + 0.5 × (−2) + 0.125 × (−1 + 0) = −0.125
x = −2 + 0.5 × (−1 + 0) + 0.125 × (2 + 1) = −2.125
1
Logo y(0.5) ≈ −0.125 

9.6 Exercı́cios
1. Considere o problema de condição inicial

y 0 = −2y
.
y(0) = 1

Determine, usando o método de Euler, o valor aproximado de y(1), fazendo h = 1, h = 0.5


e h = 0.25. Compare os resultados obtidos com a solução exacta.

2. Seja 
y 0 = ex y 2 + x
, 1 ≤ x ≤ 4.
y(1) = 3

(a) Calcule y(1, 2),usando o método de Euler, com h = 0.2.

(b) Obtenha um limite superior para o erro cometido sabendo que |y(x)| ≤ M, ∀x ∈ [1, 4].

(c) Aplique o método de Euler regressivo ( ou implicito ) para obter outra estimativa do
mesmo valor.

3. Utilize o método de Taylor de ordem 2, com h = 0.1 para resolver o problema



y 0 = sin(t) + e−t
, 0≤t≤1
y(0) = 1

4. Aproxime a solução da seguinte equação diferencial utilizando o método de Taylor de ordem


3, com h = 0.2 
y 0 = t + y
, t ∈ [0, 1]
y(0) = 1

161 José Duque


Matemática Computacional Métodos numéricos para problemas de condição inicial

5. Utilize o método de Taylor de ordem 4, com h = 0.5 para resolver o problema



y 0 = −2t − y
, 0≤t≤2
y(0) = −1

6. Mostre que o método de Taylor de ordem p tem ordem de convergência p.

7. Encontre uma aproximação para o problema de valores iniciais



y 0 = −ty 2
,
y(0) = 2

para t ∈ [0, 1], com h = 0.5, usando o método de Runge-Kutta de 2a ordem.

8. Considere o problema de condição inicial



u0 = u − 2t
u
.
u(0) = 1

Determine um valor aproximado para u(0.8), usando o método de Runge-Kutta de ordem


quatro.

9. A função x(t) = t é solução da equação diferencial x0 = 1
2x
, com x(1) = 1 e 1 ≤ t ≤ 2.

(a) Calcule o valor de h que garante kx(2) − xh k ≤ 0.005, onde xh representa a estimativa
de x(2) obtida com o método de Euler com passo h.

(b) Determine as aproximações de x(2) usando os métodos de Taylor e Runge-Kutta de 3a


ordem. Compare as aproximações com o valor exacto.

10. Use o método

(a) y1+2 = yi + h3 (fi+2 + 4fi+2 + fi ), [ Simpson ].

(b) yi+2 = yi+1 + h2 (3fi+1 − fi ), [ Adams-Bashforth de 2 passos ].

para determinar a solução de y 0 = sin(x) + e−x , em x = 1, com y(0) = 0 e h = 0.1. (


fk = f (xk , yk ) )

h
11. Determine a ordem do método yi+4 = yi+3 + 24
(55fi+3 − 59fi+2 + 37fi+1 − 9fi ) e comente
sobre a sua estabilidade zero.

12. Deduza um método linear com dois passos, explı́cito e com ordem máxima.

13. Considere o método yi+2 − (1 − a)yi+1 + ayi = 0.5h((3 − a)fi+1 − (1 + a)fi ). Ilustre o efeito da
estabilidade zero quando se usa o método com (i) a = 0, (ii) a = −5, no cálculo numérico

da solução do problema de condição inicial y 0 = 4x y, com 0 ≤ x ≤ 2 e y(0) = 1.

José Duque 162


9.6 Exercı́cios Matemática Computacional

14. Analise a consistência e estabilidade zero dos seguintes métodos:

(a) yi+2 − yi+1 = h3 (3fi+1 − 2fi )


h
(b) yi+2 − yi+1 = 24
(5fi+2 + 8fi+1 − fi )

15. Determine o intervalo de estabilidade absoluta do método xi+2 = xi + 0.5h(fi+1 + 3fi )

16. Use o método estimador-corrector de primeira ordem, para calcular a solução de



y 0 = y + t2
,
y(0) = 1

em t = 2 com h = 0.1.

17. Repita o exercı́cio anterior usando o método estimador-corrector de Adams de quarta ordem,
sabendo que y(0) = 1, y(0.1) = 1.1055, y(0.2) = 1.2242 e y(0.3) = 1.3596.

18. Considere o problema de valores iniciais



y 0 = t + y 2
, 0 ≤ t ≤ 0.5
y(0) = 1

Use os métodos indicados para calcular a sua solução numérica em t = 0.5 com h = 0.1.

(a) Estimador: Euler; Corrector: Euler regressivo; critério de paragem Er < 0.1.
(b) Estimador: Euler; Corrector: trapézio; critério de paragem Er < 0.05.
(c) Estimador: Runge-Kutta de 2a ordem; Corrector: Simpson; critério de paragem Er <
0.01.
(d) Estimador: Adams-Bashforth de 3a ordem, sabemdo que y(0.1) = 1.11, y(0.2) = 1.22
e y(0.3) = 1.36; Corrector: Adams-Moulton de 3a ordem.

19. Dado o problema de valor inicial



y 0 = − y + et
t
, 1 ≤ t ≤ 2.25.
y(1) = 2

Sabendo que y(1.25) = 2.298, y(1.5) = 2.827 e y(1.75) = 3.609, calcule uma aproximação
de y(2.25) aplicando o método estimador corrector de Adams de 4a ordem, com critério de
paragem Ea < 0.5.

20. A variação de massa para um determinado quı́mico num reactor pode ser escrita por
dc
V = F − Qc − KV c2
dt
onde V =volume (10m2 ), c =concentração, F = taxa de alimentação (200g/min), Q =taxa
de fluxo (1m3 /min) e K =razão da reacção de 2a ordem (0.1m3 /g/min).
se c(0) = 0 resolva a equação até a concentração atingir um nı́vel estável.

163 José Duque


Matemática Computacional Métodos numéricos para problemas de condição inicial

21. A taxa de arrefecimento de um corpo pode ser expressa por


dT
= −K(T − Ta )
dt
onde T = temperatura do corpo (0 C), Ta =temperatura do meio envolvente (0 C) e K =constante
de proporcionalidade (min−1 ). Uma esfera de metal à temperatura de 900 C é colocada em
água a uma temperatura constante de Ta = 200 C. Utilize um método numérico para deter-
minar quanto tempo é necessário para a esfera arrefecer até aos 400 C se K = 0.2 min−1 .

22. Resolva o problema anterior usando o método de Adams-Bashforth-Multon de 4a ordem.

23. Num determinado habitat a iteração predador/presa pode ser modelada por

(
dx
dt
= ax − bxy
dy
dt
= −cy + dxy
onde x e y são o no de predadores e presas respectivamente, a é taxa de crescimento das
presas, c é a taxa de mortalidade dos predadores, b e d representam a capacidade dos
predadores caçarem e das presas de escapar.
Supondo que os parâmetros são a = 1.2, b = 0.6, c = 0.8, d = 0.3 e que inicialmente havia
20 predadores e 100 presas, calcule o no de predadores ao fim de 10 anos.

24. As equações seguintes definem a concentração de 3 reagentes


dca
dt
= −20ca cc + 2cb
dcb
dt
= 20ca cc − 2cb
dcc
dt
= −20ca cc + 2cb − 0.2cc

Supondo que as concentrações iniciais são

ca = 500, cb = 0, cc = 500

calcule as concentrações em cada segundo até 30 s.

25. Converta em sistemas de equações diferenciais de 1a ordem o seguinte problema: y 00 − 3y 0 +


2y = 0, y(0) = y 0 (0) = 1

26. Para os problemas de condições iniciais seguintes determine um valor aproximado de y(0.5)
aplicando os métodos de Euler e Taylor de ordem 2.

(a) y 00 + 2y 0 + 5y = e−t sin(t), y(0) = 0, y 0 (0) = 1


(b) y 00 − 3y 0 + 2y = 4e2t , y(0) = −3, y 0 (0) = 5
(c) y 000 − 3y 00 + 3y 0 − y = t2 et , y(0) = 1, y 0 (0) = 0 e y 00 (0) = −2.

27. Escreva as fórmulas que permitem aplicar o método de Adams-Bashforth de 2a ordem ao


problema anterior.

José Duque 164


Bibliografia

[1] A. L. M. Araújo, ”Sebenta Análise Numérica de Engenharia Mecânica”, FCT-UC, Coimbra,


2002.

[2] R.I. Burden & J.D. Faires , ”Numerical Analysis 7e”, PWS-Kent, Boston, 2001.

[3] J.C. Butcher , ”The Numerical Analysis of Ordinary Differential Equations”, John Wiley &
Sons, Auckland, 1987.

[4] S. C. Chapra & R. P. Canale. ”Numerical Methods for Engineers 3a Ed”, Mc Graw-Hill, NY.

[5] S.D. Conte & C. de Boor , ”Elementary Numerical Analysis”, Mc Graw-Hill, NY, 1980.

[6] E. M. Fernandes, ”Computação Numérica, 2a Ed”, Publicações da Universidade do Minho,


Braga, 1997.

[7] E. Hairer , S.P. Nørsett & G. Wanner , ”Solving Ordinary Differential Equations I ”, Springer
Series in Comput. Mathematics, Vol. 8, Springer-Verlag, Heidelberg, 1987.

[8] E. Hairer & G. Wanner , ”Solving Ordinary Differential Equations II ”, Springer Series in
Comput. Mathematics, Vol. 14, Springer-Verlag, Heidelberg, 1991.

[9] J.D. Lambert, ”Numerical Methods for Ordinary Differential Systems”, John Wiley & Sons,
Chichester, 1991.

[10] S. Nakamura, ”Numerical Analysis and Graphic Visualization with MATLAB”

[11] H. Pina, ”Métodos Numéricos”, Mc Graw-Hill, Alfragide, 1995.

[12] M.R. Valença , ”Métodos Numéricos”, INIC, Braga, 1988.

165
Matemática Computacional BIBLIOGRAFIA

José Duque 166


Apêndice A

Anexos

A.1 Formulário
• Mudança para a Base Decimal
k
X
n = ∗(ck ck−1 . . . c0 , c−1 . . . c−p )b = ∗ c i bi , ci ∈ {0, 1, ..., b − 1}
i=−p

• Sistema de ponto flutuante


x ∈ F P (b, t, ε) ⇔ x = ±(m)b × b±(e)b
m = m1 m2 . . . mt , e = cε−1 cε−2 . . . c1 c0 mi , ci ∈ {0, 1, . . . , b − 1}, (0.1)b ≤ m < 1,

• Definição de erros Seja x̄ a aproximação do valor exacto x então

|x − x̄|
Ea (x̄) = |x − x̄| e Er (x̄) =
|x|

• Polinómio de Taylor

(x − x0 )2 00 (x − x0 )3 (3) (x − x0 )n (n)
Pn (x) = f (x0 )+(x−x0 )f 0 (x0 )+ f (x0 )+ f (x0 )+· · ·+ f (x0 )
2 3! n!
(x − x0 )(n+1) (n+1)
Rn (x) = f (ξ) ξ ∈ (x, x0 )
(n + 1)!

• Diferenciação numérica
f 0 (xi ) = f 00 (xi ) =

1
h
[f (xi+1 ) − f (xi )] − h2 f 00 (ξ) 1
h2
[f (xi ) − 2f (xi+1 ) + f (xi+2 )] − hf 000 (ξ)
h2 (4)
1
h
[f (xi ) − f (xi−1 )] + h2 f 00 (ξ) 1
h2
[f (xi−1 ) − 2f (xi ) + f (xi+1 )] − 12
f (ξ)
2
1
2h
[−3f (xi ) + 4f (xi+1 ) − f (xi+2 )] + h3 f 000 (ξ) 1
h2
[f (xi−2 ) 000
− 2f (xi−1 ) + f (xi )] + hf (ξ)
2
1
2h
[−f (xi−1 ) + f (xi+1 )] − h6 f 000 (ξ)
2
1
2h
[f (xi−2 ) − 4f (xi−1 ) + 3f (xi )] + h3 f 000 (ξ)

xi − xi−1 = h > 0, i = 1, 2, . . .

167
Matemática Computacional Anexos

• Propagação dos erros


Seja f (x̄) = f (x̄1 , . . . , x̄n ) uma aproximação do valor exacto f (x) = f (x1 , . . . , xn ) então
∂f
n n
X ∂f X x̄
∂xii (x̄ 1 , . . . , x̄ n ) |x − x̄ |
i i
Ea (f (x̄)) ≤ | (x̄1 , . . . , x̄n )||xi − x̄i |, Er (f (x̄)) ≤
∂x f (x̄ , . . . , x̄ ) |x |

i=1 i i=1
1 n i

• Condicionamento
af 0 (a)
Cond(f, a) = , cond(A) = kAk.kA−1 k
f (a)

• Localização das raı́zes


Teorema de Bolzano: Seja f (x) uma função contı́nua em [a, b], se f (a)f (b) < 0 então existe
c ∈ [a, b] tal que f (c) = 0.
Teorema de Rolle: Seja f (x) uma função contı́nua e derivável em [a, b], se f (a) = f (b) então
existe c ∈ [a, b] tal que f 0 (c) = 0.

• Zeros de funções f (x) = 0


ak + b k b−a
– Bissecção xk = , Ea (xk ) ≤, k = 0, 1, . . .
2 2k+1
b k − ak
– Corda falsa xk = bk − f (bk ) , k = 0, 1, . . .
f (bk ) − f (ak )
f (xk )
– Newton-Raphson xk+1 = xk − , k = 0, 1, . . .
f 0 (xk )
f (xk )
– Secante xk+1 = xk − (xk − xk−1 ), k = 1, 2, . . .
f (xk ) − f (xk−1 )
Condições de convergência para os métodos de Newton e da secante
- f ∈ C 2 ([a, b])
- f (a)f (b) < 0
- f 0 (x) 6= 0, x ∈ [a, b]
- f 00 (x) não muda de sinal em [a, b]
f (a) f (b)
- f 0 (a) ≤ b − a e f 0 (b) ≤ b − a ou ∃x0 ∈ [a, b] : f (x0 ) × f 00 (x0 ) > 0

– Ponto fixo x = G(x) xk+1 = G(xk ), |G0 (x)| < 1, ∀x ∈ [a, b], k = 0, 1, . . .
– Muller
2f (xk )
xk+1 = xk − p , w = fk−1,k +fk−2,k −fk−2,k−1 , k = 2, 3, . . .
w ±∗ 2
w − 4fk−2,k−1,k f (xk )

em ∗ escolhe-se o sinal de w. Para o cálculo de fi,j e fi,j,k ver em diferenças divididas.

• Extremos de Funções

5−1
– Razão de ouro φ =
2
Ik = [ak , bk ], ck = bk − φ(bk − ak ) , dk = ak + φ(bk − ak ), k = 0, 1, . . .

José Duque 168


A.1 Formulário Matemática Computacional

M aximizar M inimizar
f (ck ) < f (dk ) ⇒ Ik+1 = [ck , bk ] f (ck ) < f (dk ) ⇒ Ik+1 = [ak , dk ]
f (ck ) > f (dk ) ⇒ Ik+1 = [ak , dk ] f (ck ) > f (dk ) ⇒ Ik+1 = [ck , bk ]
Ea (xk ) ≤ (1 − φ)(bk − ak )

– Interpolação quadrática
f (xk−2 )(x2k−1 − x2k ) + f (xk−1 )(x2k − x2k−2 ) + f (xk )(x2k−2 − x2k−1 )
xk+1 = k = 2, 3, . . .
2f (xk−2 )(xk−1 − xk ) + 2f (xk−1 )(xk − xk−2 ) + 2f (xk )(xk−2 − xk−1 )
• Sistemas de equações lineares Ax = b

– Cholesky A = U T U
v
u j−1
√ a1j u X
u11 = a11 , u1j = , ujj = tajj − u2kj , j = 2, . . . , n
u11 k=1

i−1
!
1 X
uij = aij − uki ukj , i = 2, . . . , n, j = i + 1, . . . , n uij = 0, i > j
uii k=1

– Normas
p
kxk1 = |x1 |+· · ·+|xn |, kxk2 = |x1 |2 + · · · + |xn |2 , kxk∞ = max {|x1 |, . . . , |xn |}
i=1,...,n
v
n n
u n 2
X X uX
kAk1 = max |aij |; kAk∞ = max |aij |; kAkE = t aij
j=1,...,n i=1,...,n
i=1 j=1 i,j=1

– Jacobi A = D + L + U
n
(k+1) bi X aij (k)
xi = − x , i = 1, . . . , n k = 0, 1, . . .
aii j=1
aii j
j6=i

x(k+1) = −D−1 (L + U )x(k) + D−1 b M = −D−1 (L + U )

– Gauss-Seidel A = D + L + U
i−1 n
(k+1) bi X aij (k+1) X aij (k)
xi = − xj − x , i = 1, . . . n k = 0, 1, . . .
aii j=1 aii a j
j=i+1 ii

x(k+1) = −(D + L)−1 U x(k) + (D + L)−1 b M = −(D + L)−1 U


kM k kM kk
– Erro Ea (x(k) ) ≤ kx(k) − x(k−1) k ou Ea (x(k) ) ≤ kx(1) − x(0) k
1 − kM k 1 − kM k
– Condições de convergência: A matriz A do sistema ser estritamente diagonal dominante
ou a matriz de iteração M ter kM k < 1.



 f1 (x1 , . . . , xn ) = 0

 f2 (x1 , . . . , xn ) = 0

• Sistemas de equações não lineares F (x) = 0 ⇔ ..


 .

 f (x , . . . , x ) = 0

n 1 n

169 José Duque


Matemática Computacional Anexos

– Newton
 
(k) (k) (k+1) (k) k ∂fi (k)
JF (x )d = −F (x ), x =x + d, JF (x ) = (x ) , k = 0, 1, . . .
∂xj

• Interpolação polinomial Pn (xi ) = f (xi ), i = 0, 1, . . . , n

– Polinómio de Lagrange
n n
X Y x − xi
Pn (x) = f (xk )Lk (x), Lk (x) =
k=0 i=0,i6=k
xk − xi

– Polinómio de Newton
Diferenças Divididas
f (xj ) − f (xi )
* ordem 1 : fi,j = f [xi , xj ] =
xj − xi
fi+1,...,i+j − fi,...,i+j−1
* ordem j : fi,...,i+j = f [xi , . . . , xi+j ] =
xi+j − xi
n
X
Pn (x) = f (x0 ) + f0,...,k (x − x0 ) . . . (x − xk−1 ),
k=1

– Erro para os polinómios de Lagrange e de Newton


Se f (x) é conhecida:

max |f (n+1) (x)|


x∈(x0 ,xn )
|f (x) − Pn (x)| ≤ |(x − x0 ) . . . (x − xn )|, x ∈ (x0 , xn )
(n + 1)!

Se f (x) é desconhecida:
|f (x) − Pn (x)| ≤ M |(x − x0 ) . . . (x − xn )| onde M é o maior módulo das diferenças
divididas de ordem n + 1 e x ∈ (x0 , xn ).

– Polinómio de Hermite

H2n+1 (x) = f (x0 ) + f0,0 (x − x0 ) + f0,0,1 (x − x0 )2 + f0,0,1,1 (x − x0 )2 (x − x1 ) + . . .

· · · + f0,0,...,n,n (x − x0 )2 . . . (x − xn−1 )2 (x − xn )

fi,i = f 0 (xi )

max |f (2n+2) (x)|


x∈(x0 ,xn )
– Erro |f (x) − H2n+1 (x)| ≤ |(x − x0 )2 . . . (x − xn )2 |.
(2n + 2)!
– Spline cúbico natural f (x0 ) = f 00 (xn ) = 0
00

Sj (x) = aj + bj (x − xj ) + cj (x − xj )2 + dj (x − xj )3 , x ∈ [xj , xj+1 ], j = 0, 1, . . . , n − 1

hj = xj+1 − xj , aj = f (xj )
cj+1 − cj
bj = fj,j+1 − (2cj + cj+1 )hj /3, dj =
3hj

José Duque 170


A.1 Formulário Matemática Computacional

   
1 0 0 0 ... 0 0 c0 0
   

 h0 2(h0 + h1 ) h1 0 ... 0 0  c1


 3(f21 − f10 ) 

0 h1 2(h1 + h2 ) h2 . . . 0 0  c2 3(f32 − f21 )
   
  
=
.. .. .. .. . . .. ..  .. ..
  

 . . . . . . .  .

 .


   
0 0 0 0 ... 2(hn−2 + hn−1 ) hn−1 n,n−1 − fn−1,n−2 )
  c   3(f 
  n−1  
0 0 0 0 ... 0 1 cn 0

• Aproximação polinomial f (x) ≈ pn (x)


n
X
– Mı́nimos quadrados pn (x) = ai ϕi (x)
i=0
{ϕ0 (x), ϕ1 (x), . . . , ϕn (x)} é uma base para o espaço dos polinómios de grau menor ou
igual a n e os coeficientes ak são obtidos!pela solução do sistema
X n Xm Xm
 caso discreto ak ϕk (xj )ϕi (xj ) = f (xj )ϕi (xj ), i = 0, 1, . . . , n
k=0 j=1 j=1
Xn  Z b  Z b
 caso contı́nuo ak ϕk (x)ϕi (x) dx = f (x)ϕi (x) dx, i = 0, 1, . . . , n
k=0 a a
(
P0 (x) = 1 ; P1 (x) = x
– Polinómios de Legendre , x ∈ [−1, 1]
Pn+1 (x) = 2n+1
n+1
xP n (x) − n
n+1
P n−1 (x), n ≥ 1
(
T0 (x) = 1 ; T1 (x) = x
– Polinómios de Chebyshev , x ∈ [−1, 1]
Tn+1 (x) = 2xTn (x) − Tn−1 (x), n ≥ 1
 
2k + 1
– Nós de Chebyshev ( raı́zes de Tn ) zk = cos π , k = 0, 1, . . . , n − 1
2n
– Mudança de variável
[−1, 1] 7→ [a, b]
b−a
z → x=a+ 2
(z + 1)

m
! 12  12
Z b
1 X
2 1 2
– Erro padrão (f (xj ) − pn (xj )) ou (f (x) − pn (x)) dx
m j=1
b−a a

171 José Duque


Matemática Computacional Anexos

• Derivadas • Integrais
f e g são funções e k é uma constante real. Z Z Z
0 0 0
(f + g) = f + g f + g dx = f dx + g dx

(f g)0 = f 0 g + f g 0
Z Z
kf dx = k f dx
0 0 0
(g(f )) = g (f )f Z Z
0
f g dx = f g − f g 0 dx
(kf )0 = kf 0
 0
f 0g − f g0
Z Z
f
= f (x) dx = f (g(t))g 0 (t) dt
g g2
k0 = 0
Z
k dx = kx + C
x0 = 1
f k+1
Z
0 k
f f dx = + C, k 6= −1
(f k )0 = kf k−1 f 0 k+1
f0
Z
f 0 f 0
(e ) = e f dx = ln(|f |) + C
f
(af )0 = af ln(a)f 0 Z
f 0 ef dx = ef + C
(f g )0 = gf g−1 f 0 + f g ln(f )g 0
af
Z
f 0
0
f 0 af dx = + C, a ∈]0, +∞[\{−1}
(ln(f )) = ln(a)
f Z
0
f f 0 cos(f ) dx = sin(f ) + C
(loga (f ))0 =
f ln(a) Z
0 0
(sin(f )) = cos(f )f f 0 sin(f ) dx = −cos(f ) + C

(cos(f ))0 = −sin(f )f 0 Z


f0
dx = tg(f ) + C
0 f0 2 0
cos2 (f )
(tg(f )) = sec (f )f =
cos2 (f ) Z
f0 1
dx = − +C
f0 sin2 (f ) tg(f )
(arcsin(f ))0 = p
1 − f2 f0
Z
p dx = arcsin(f ) + C
f0 1 − f2
(arccos(f ))0 = − p
f0
Z
1 − f2
dx = arctg(f ) + C
1 + f2
f0
(arctg(f ))0 =
1 + f2

Rb R1 b−a b+a b−a



• Integração numérica I = a
f (x) dx = −1
g(w) dw, com g(w) = 2
f 2
+ 2
w

– Regras de Newton-Cotes de intervalo fechado


h h3 00
∗ Trapézio I = [f (a) + f (b)] − f (ξ), h = b − a
2 12
h a+b  h5 (b − a)
∗ Simpson I = f (a) + 4f ( ) + f (b) − f (4) (ξ), h=
3 2 90 2
José Duque 172
A.1 Formulário Matemática Computacional

(b − a)
– Regras compostas de intervalo fechado h= , xi = a + hi, ξ ∈ (a, b)
n
n−1 i b−a
hh X
∗ Trapézio I = f (a) + 2 f (xj ) + f (b) − h2 f 00 (ξ),
2 j=1
12
(n/2)−1 (n/2) i b−a
hh X X
∗ Simpson I = f (a) + 2 f (x2j ) + 4 f (x2j−1 ) + f (b) − h4 f (4) (ξ)
3 j=1 j=1
180
– Regras de Newton-Cotes de intervalo aberto
3h 3h3 00 b−a
∗ I= [f (x1 ) + f (x2 )] + f (ξ), h =
2 4 3
4h 14h5 (4) (b − a)
∗ I= [2f (x1 ) − f (x2 ) + 2f (x3 )] + f (ξ), h=
3 45 4
– Romberg I ≈ Rn,n
Rm,1 é obtido utilizando o método do trapézio com 2m−1 sub-intervalos e
4j Rm+1,j − Rm,j
Rm+1,j+1 = , j = 1, . . . , m , m = 1, . . . , n−1 , e Ea ≈ |Rn−1,n−1 −Rn,n |
4j − 1
– Gauss com n pontos
Z 1 n
X 22n+1 (n!)4 g (2n) (ξ)
g(x) dx = ci g(wi ) +
−1 i=1
(2n + 1)[(2n)!]2 (2n)!
onde
n pesos ci nós wi
2 c1 = c2 = 1 w1 = −w2 = − √13
q
3 c1 = c3 = 95 , c2 = 8
9
w1 = −w3 = − 35 , w2 = 0
4 c1 = c4 = 0.347854845 w1 = −w4 = −0.861136312
c2 = c3 = 0.652145155 w2 = −w3 = −0.339981044
5 c1 = c5 = 0.236926885 w1 = −w5 = −0.906179846
c2 = c4 = 0.478628670, c3 = 0.568888889 w2 = −w4 = −0.538469310, w3 = 0

• Transformada de Laplace
→ Transformada de Laplace → Transformada de Laplace
Z ∞
1
1 → , s>0 f (x) → L[f (x)] = F (s) = e−sx f (x) dx
s 0

xk
k!
→ k+1 , s > 0, k ∈
s
N xk f (x)
dk
→ (−1)k k F (s)
ds
1 s F (s) − sk−1 f (0) − sk−2 f 0 (0) − . . .
k
eax → , s>a f (k) (x) →
s−a · · · − f (k−1) (0)
s Rx 1
cos(ax) → 2 , s>0 0 f (u) du → s F (s)
s + a2
a 1 s
sin(ax) → 2 , s>0 f (ax) → F
s + a2 a a
s
cosh(ax) → 2 , s > |a| eax f (x) → F (s − a)
s − a2
a
sinh(ax) → 2 , s > |a| →
s − a2

173 José Duque


Matemática Computacional Anexos

• Equações diferenciais ordinárias



y 0 = f (t, y)
– Problemas de valores iniciais: , t ∈ [a, b]
y(t ) = y
0 0

Euler explı́cito: yi+1 = yi + hf (ti , yi )


Euler implı́cito: yi+1 = yi + hf (ti+1 , yi+1 )
Trapézios: yi+1 = yi + h2 [f (ti , yi ) + f (ti+1 , yi+1 )]
h2 0 hn (n−1)
Taylor de ordem n: yi+1 = yi + hf (ti , yi ) + 2
f (ti , yi ) + ··· + n!
f (ti , yi ); f 0 = ft0 + fy0 × f (t, y)
Runge-Kutta 2: yi+1 = yi + h2 (k1 + k2 ), k1 = f (ti , yi ), k2 = f (ti + h, yi + hk1 )
Runge-Kutta 4: yi+1 = yi + h6 (k1 + 2k2 + 2k3 + k4 ), k1 = f (ti , yi ), k2 = f (ti + h2 , yi + h2 k1 )
k3 = f (ti + h2 , yi + h2 k2 ), k4 = f (ti + h, yi + hk3 )
Adams-Bashforth 2: yi+1 = yi + h2 (3f (ti , yi ) − f (ti−1 , yi−1 ))
h
Adams-Bashforth 3: yi+1 = yi + 12
(23f (ti , yi ) − 16f (ti−1 , yi−1 ) + 5f (ti−2 , yi−2 ))
h
Adams-Bashforth 4: yi+1 = yi + 24
(55f (ti , yi ) − 59f (ti−1 , yi−1 ) + 37f (ti−2 , yi−2 ) − 9f (ti−3 , yi−3 ))
Adams-Multon 2: yi+1 = yi + h2 (f (ti+1 , yi+1 ) + f (ti , yi ))
h
Adams-Multon 3: yi+1 = yi + 12
(5f (ti+1 , yi+1 ) + 8f (ti , yi ) − f (ti−1 , yi−1 ))
h
Adams-Multon 4: yi+1 = yi + 24
(9f (ti+1 , yi+1 ) + 19f (ti , yi ) − 5f (ti−1 , yi−1 ) + f (ti−2 , yi−2 ))
ti = t0 + h × i, y(ti ) ≈ yi = yi,h
yi/2,2h − yi,h
Ea (yi,h ) ≈ , v − ordem do método,
1 − 2v
∗ 2v yi,h − yi/2,2h
Melhoramento da estimativa yi = v
Rt 2 −1
Picard : yi+1 (t) = y0 + t0 f (x, yi (x)) dx

José Duque 174

Você também pode gostar