Вы находитесь на странице: 1из 458

MÉTODOS NUMÉRICOS

MIEEC, FEUP

http://www.fe.up.pt/∼faf/mnum

Fernando Fontes 2008/2009

MIEEC (FEUP) MÉTODOS NUMÉRICOS 1 / 458


Conteúdo

Conteúdo I

1 Erros
Valores exacto e aproximado
Sistemas de vírgula flutuante
Aritmética em representações finitas
Propagação de erros no cálculo de funções
Erro no cálculo de séries
Exercícios
2 Equações não Lineares
Método das bissecções sucessivas
Método da falsa posição
Método iterativo simples
Método de Newton
Método da Secante
Ordem de convergência: definição
Raízes de Polinómios
3 Sistemas de equações não lineares
MIEEC (FEUP) MÉTODOS NUMÉRICOS 2 / 458
Conteúdo

Conteúdo II
Método iterativo simples
Método de Newton
4 Aproximação de funções
Aproximação dos mínimos quadrados
Aproximação em espaços vectoriais
Sistemas Sobredeterminados
5 Interpolação polinomial
Polinómio interpolador: unicidade e existência
Forma de Lagrange
Forma de Aitken-Neville
Forma de Newton
Diferenças divididas
Diferenças fiinitas
Interpolação directa e inversa
Dupla interpolação
Erro de interpolação
MIEEC (FEUP) MÉTODOS NUMÉRICOS 3 / 458
Conteúdo

Conteúdo III
Splines
6 Integração numérica
Regra dos trapézios
Regra de Simpson
Integração de Romberg
7 Sobre normas de vectores e matrizes
Norma de um vector
Norma de uma matriz
8 Sistemas de equações lineares
Eliminação gaussiana
Estratégias de pivotação
Erro e resíduo de uma solução aproximada
Perturbações no sistema de equações
Métodos iterativos
Inversão de matrizes
9 Integração de Equações diferenciais
MIEEC (FEUP) MÉTODOS NUMÉRICOS 4 / 458
Conteúdo

Conteúdo IV
Problema de valor inicial
Métodos de Euler
Método de Taylor
Consistência e Convergência
Métodos de Runge-Kutta
Sistemas de equações diferenciais
Equações diferenciais de ordem n

MIEEC (FEUP) MÉTODOS NUMÉRICOS 5 / 458


Apresentação

Docentes

C. Mendonça e Moura
cmm@fe.up.pt

Manuel J. Oliveira
moliv@fe.up.pt

M. Joana Peres
jperes@fe.up.pt

Fernando A. Fontes
faf@fe.up.pt

Agradecimentos aos anteriores docentes Aníbal Matos e Miguel Gomes


pelo material disponibilizado.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 6 / 458


Apresentação

Métodos Numéricos (Análise Numérica, Computação Numérica, ...)

Trata do estudo de métodos que permitam obter soluções aproximadas de


problemas com um esforço computacional razoável.

Está na fronteira entre a Matemática e Ciências de Computação.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 7 / 458


Apresentação

Objectivos da disciplina

Dotar os alunos da capacidade de aplicar criteriosamente técnicas


numéricas para a resolução de problemas de engenharia, o que exige:

1 compreender os fundamentos dos métodos


2 saber aplicar os métodos, recorrendo a
programação
calculadoras
aplicações computacionais

MIEEC (FEUP) MÉTODOS NUMÉRICOS 8 / 458


Apresentação

Importância da disciplina

Um computador é uma útil e poderosa ferramenta de cálculo de um


EEC.
Logo, é importante que ele conheça as potencialidades e fundamentos
dos métodos utilizados ...
Mas também as limitações desses métodos.
Exemplos de desastres devido ao uso incorrecto de métodos numéricos:
The explosion of the Ariane 5 rocket just after lift-off on its first voyage on
June 4, 1996, was ultimately the consequence of a simple overflow.
The Patriot Missile failure, in Dharan, Saudi Arabia, on February 25, 1991
which resulted in 28 deaths, is ultimately attributable to poor handling of
rounding errors.
The sinking of the Sleipner A offshore platform in Gandsfjorden, Norway, on
August 23, 1991, resulted in a loss of nearly one billion dollars. It was found
to be the result of inaccurate finite element analysis.
fonte/mais info: http://www.ima.umn.edu/~arnold/disasters/
MIEEC (FEUP) MÉTODOS NUMÉRICOS 9 / 458
Apresentação

Programa

Erros e representações numéricas


Equações não lineares
Sistemas de equações não lineares
Sistemas de equações lineares
Aproximação de funções
Interpolação polinomial
Integração numérica
Integração de Equações diferenciais

MIEEC (FEUP) MÉTODOS NUMÉRICOS 10 / 458


Apresentação

É expectável

Conhecimentos prévios de Matemática


⇒ derivação e integração, série de Taylor
⇒ matrizes, sistemas de equações
⇒ maturidade matemática (facilidade na manipulação de expressões,
saber ler e escrever matemática)
Conhecimentos prévios de Programação
⇒ entrada e saída de dados, passagem de parâmetros
⇒ ciclos e “arrays”
Estudo/Trabalho
⇒ 8 horas/semana para esta UC (4 de aulas)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 11 / 458


Apresentação

Aulas teóricas

⇒ 2×1 horas por semana

exposição e discussão da matéria


apresentação de exemplos ilustrativos
esclarecimento de dúvidas

MIEEC (FEUP) MÉTODOS NUMÉRICOS 12 / 458


Apresentação

Aulas teórico-práticas

⇒ bloco de 2 horas por semana


⇒ começam na semana de 9 de Março
⇒ salas de PCs
⇒ plano anunciado antecipadamente

programação de métodos numéricos


em linguagem C
grupos de 2 alunos
resolução de exercícios pelos alunos

MIEEC (FEUP) MÉTODOS NUMÉRICOS 13 / 458


Apresentação

Ferramentas

Uso obrigatório
calculadora científica
compilador de C

Uso incentivado
aplicações de cálculo numérico e simbólico
Matlab
Maple
...
folha de cálculo

MIEEC (FEUP) MÉTODOS NUMÉRICOS 14 / 458


Apresentação

Avaliação: distribuída com exame final

Exame Final (E )

Programas e Problemas (P)


A resolver nas aulas TP
Trabalhos de Programação (4)
(grupos 2 alunos, duração 1,5 h)
Resolução de problemas (5)
(individualmente, duração 30 min)
De entre os 4 programas + 5 problemas só contam para nota os 7 melhores.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 15 / 458


Apresentação

Classificação

A classificação final é

F = (0.1 + 0.01E ) · P + (0.9 − 0.01E ) · E

Motivação: a nota da avaliação prática vale tanto mais quanto melhor for
a nota do exame!

MIEEC (FEUP) MÉTODOS NUMÉRICOS 16 / 458


Apresentação

Obtenção de frequência

não exceder o limite de faltas às aulas TP;

obter pelo menos 6 valores na componente de trabalhos de


programação e resolução de problemas

MIEEC (FEUP) MÉTODOS NUMÉRICOS 17 / 458


Apresentação

Bibliografia e material de apoio

A. Matos, “Apontamentos de Análise Numérica”, FEUP.


S. Conte & C. de Boor, “An Introduction to Numerical Analysis”,
McGraw-Hill.
E. Fernandes, “Computação Numérica”, U. Minho.
H. Pina, “Métodos Numéricos”, McGraw-Hill.
R. Burden & J. Faires, “Numerical Analysis”, Brooks Cole.
W. Cheney & D. Kincaid, “Numerical Mathematics and Computing”,
Brooks Cole.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 18 / 458


Apresentação

Páginas disciplina

Página do SIFEUP e http://www.fe.up.pt/∼faf/mnum/


“Apontamentos de Análise Numérica”
Folhas de problemas (alguns resolvidos)
Testes de anos anteriores
Exercícios de programação de anos anteriores

Informação sobre funcionamento


plano das aulas
sumários
classificações
...

MIEEC (FEUP) MÉTODOS NUMÉRICOS 19 / 458


Erros

Um novo capítulo ...

1 Erros

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação polinomial

6 Integração numérica

7 Sobre normas de vectores e matrizes

8 Sistemas de equações lineares


MIEEC (FEUP) MÉTODOS NUMÉRICOS 20 / 458
Erros

1. Erros e representações numéricas

O que significa 1.2±0.1 ou 1.2±5%?

1.3 e 1.30 têm o mesmo significado?

Porque razão a operação 1 + 10−20 tem resultado 1 nas máquinas


calculadoras?

Porque nem sempre (a + b) + c é igual a a + (b + c) ?

Como minimizar as consequências da precisão finita?

Que precisão terá sin α se α tiver uma precisão de 2o ?



Quantos termos devemos usar para calcular 5 dígitos de 2 através de uma
série?

MIEEC (FEUP) MÉTODOS NUMÉRICOS 21 / 458


Erros Valores exacto e aproximado

Vamos agora ver ...

1 Erros
Valores exacto e aproximado
Sistemas de vírgula flutuante
Aritmética em representações finitas
Propagação de erros no cálculo de funções
Erro no cálculo de séries
Exercícios

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação polinomial
MIEEC (FEUP) MÉTODOS NUMÉRICOS 22 / 458
Erros Valores exacto e aproximado

Valores exacto e aproximado

Valor exacto: x
Valor aproximado: x∗
Erro (de aproximação): ∆x ∗ = x − x ∗

Δx*

x* x

Aproximação
por defeito: x∗ < x ⇔ ∆x ∗ > 0
por excesso: x ∗ > x ⇔ ∆x ∗ < 0

MIEEC (FEUP) MÉTODOS NUMÉRICOS 23 / 458


Erros Valores exacto e aproximado

Erro absoluto

Erro absoluto: |∆x ∗ | = |x − x ∗ |

Erro máximo absoluto: um majorante do erro absoluto

ε: |∆x ∗ | ≤ ε

Notação:
x = x∗ ± ε ⇔ x ∈ [x ∗ − ε, x ∗ + ε]

Exemplo: π = 3.14 ± 0.002 ⇔ π ∈ [3.138, 3.142]

MIEEC (FEUP) MÉTODOS NUMÉRICOS 24 / 458


Erros Valores exacto e aproximado

Erro relativo

|∆x ∗ | |∆x ∗ |
Erro relativo: ou aproximadamente
|x| |x ∗ |

→ exprime-se habitualmente em percentagem

Erro máximo relativo: um majorante do erro relativo


ε ε
ε0 = ' ∗
|x| |x |

Notação: x = x ∗ ± (100ε0 )% ⇔ x ∈ [x ∗ (1 − ε0 ), x ∗ (1 + ε0 )]

Exemplo: x = 2.0 ± 5% ⇔ x ∈ [1.9, 2.1]

MIEEC (FEUP) MÉTODOS NUMÉRICOS 25 / 458


Erros Valores exacto e aproximado

Notação científica

Notação científica na base 10 de x ∈ R

x = ±dn dn−1 · · · d1 d0 .d−1 d−2 d−3 · · · × 10e

mantissa: dn dn−1 . . . d1 d0 .d−1 d−2 d−3


expoente: e∈Z
Dígitos da mantissa: di ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

MIEEC (FEUP) MÉTODOS NUMÉRICOS 26 / 458


Erros Valores exacto e aproximado

Mantissa com n algarismos

E se a mantissa for d1 d2 · · · dn dn+1 dn+2 · · · ?

Truncatura
ignoram-se algarismos a partir do índice n + 1

Arredondamento
se 0.dn+1 dn+2 . . . > 0.5 soma-se uma unidade à casa n para
(arredondar para cima)
se 0.dn+1 dn+2 . . . < 0.5 mantém-se a casa n (arredondar para baixo)
se 0.dn+1 dn+2 . . . = 0.5 arredonda-se para cima ou para baixo ficando
a casa n par (por vezes também se arredonda para cima)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 27 / 458


Erros Valores exacto e aproximado

Notação compacta para aproximações

Como simplificar a notação x = x ∗ ± ε ?

Majorar erros absolutos por 0.5 × 10n e representar a aproximação até à


casa decimal 10n .

Os algarismos da mantissa (com excepção dos zeros à esquerda)


designam-se algarismos significativos.

Procedimento
1 majoração de ε por um número da forma 0.5 × 10n
2 arredondar x ∗ para a casa 10n

MIEEC (FEUP) MÉTODOS NUMÉRICOS 28 / 458


Erros Valores exacto e aproximado

Algarismos significativos e erro relativo

x∗ ε Intervalo Alg. significativos ε0


2.24 0.005 [2.235, 2.245] 3 2.2 × 10−3
2.240 0.0005 [2.2395, 2.2405] 4 2.2 × 10−4
1.5 × 102 5 [145, 155] 2 3.3 × 10−2
0.1 × 103 50 [50, 150] 1 5 × 10−1
1.00 × 10k 0.005 × 10k [0.995 × 10k , 1.005 × 10k ] 3 5 × 10−3

MIEEC (FEUP) MÉTODOS NUMÉRICOS 29 / 458


Erros Valores exacto e aproximado

Algarismos significativos e erro relativo

Teorema
Seja x 6= 0. Uma aproximação de x com n algarismos significativos tem um
erro relativo inferior a 5 × 10−n .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 30 / 458


Erros Sistemas de vírgula flutuante

Vamos agora ver ...

1 Erros
Valores exacto e aproximado
Sistemas de vírgula flutuante
Aritmética em representações finitas
Propagação de erros no cálculo de funções
Erro no cálculo de séries
Exercícios

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação polinomial
MIEEC (FEUP) MÉTODOS NUMÉRICOS 31 / 458
Erros Sistemas de vírgula flutuante

Sistemas de vírgula flutuante FP(β, n, m, M)

Números representáveis: x = ±(0.d1 d2 · · · dn ) × β e

β base de representação
n número de dígitos da mantissa (precisão)
m, M expoentes mínimo e máximo (gama representável)

Sistema normalizado: x = 0 ∨ d1 6= 0

MIEEC (FEUP) MÉTODOS NUMÉRICOS 32 / 458


Erros Sistemas de vírgula flutuante

Vírgula flutuante: números representáveis

overflow overflow
underflow

gama representável gama representável

−rmax −rmin 0 rmin rmax

MIEEC (FEUP) MÉTODOS NUMÉRICOS 33 / 458


Erros Sistemas de vírgula flutuante

Vírgula flutuante: algumas limitações

aproximação de números não representáveis


→ arredondamento
→ truncatura
⇒ erros de representação

x, y ∈ FP ; x ◦ y ∈ FP
⇒ erros de representação

underflow e overflow
⇒ impossibilidade de representação

MIEEC (FEUP) MÉTODOS NUMÉRICOS 34 / 458


Erros Sistemas de vírgula flutuante

Vírgula flutuante

Versões do mesmo sistema FP(β, n, m, M) podem diferir:


aproximação de números não representáveis
tratamento de excepções
algoritmos de cálculo
...
Desvantajoso em termos de
repetibilidade de resultados
portabilidade de código
validação de resultados

Norma IEEE 754

MIEEC (FEUP) MÉTODOS NUMÉRICOS 35 / 458


Erros Aritmética em representações finitas

Vamos agora ver ...

1 Erros
Valores exacto e aproximado
Sistemas de vírgula flutuante
Aritmética em representações finitas
Propagação de erros no cálculo de funções
Erro no cálculo de séries
Exercícios

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação polinomial
MIEEC (FEUP) MÉTODOS NUMÉRICOS 36 / 458
Erros Aritmética em representações finitas

Aritmética em representações finitas

ordem de realização de operações associativas pode influenciar


?
resultado: (a ◦ b) ◦ c = a ◦ (b ◦ c)
Ex: 1 + 0.24 + 0.14 com 2 dígitos.

cancelamento aditivo: a + b com a  b ou a  b


→ problemas com somas de muitas parcelas

cancelamento subtractivo: a − b com a ≈ b


→ podem perder-se algarismos significativos
→ podem conduzir a erros elevados
→ possível minorar rearranjando cálculos
Ex: 1.16 − 1.04 com 2 dígitos.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 37 / 458


Erros Propagação de erros no cálculo de funções

Vamos agora ver ...

1 Erros
Valores exacto e aproximado
Sistemas de vírgula flutuante
Aritmética em representações finitas
Propagação de erros no cálculo de funções
Erro no cálculo de séries
Exercícios

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação polinomial
MIEEC (FEUP) MÉTODOS NUMÉRICOS 38 / 458
Erros Propagação de erros no cálculo de funções

Propagação de erros no cálculo de y = f (x)

x ∗ valor aproximado de x. Como aproximar y = f (x)?


Será y ∗ = f (x ∗ ) uma boa aproximação?

f contínua: x ∗ próximo de x ⇒ y ∗ próximo de y

y* f

x x*

MIEEC (FEUP) MÉTODOS NUMÉRICOS 39 / 458


Erros Propagação de erros no cálculo de funções

Estimação do erro de y∗ =f (x ∗ )

f
f
y* y*
y
y

x x* x x*
f de variação lenta f de variação rápida

∆y ∗ = y − y ∗ = f (x) − f (x ∗ ) = f (x ∗ + ∆x ∗ ) − f (x ∗ )

Majorante para o erro absoluto da aproximação y ∗ de y


εy = |f 0 ||max · εx

MIEEC (FEUP) MÉTODOS NUMÉRICOS 40 / 458


Erros Propagação de erros no cálculo de funções

Propagação de erros: exemplo

Calcular um valor aproximado de y = sin x e o correspondente erro máximo


absoluto quando x ≈ 0.57, isto é, x = 0.57 ± 0.005.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 41 / 458


Erros Propagação de erros no cálculo de funções

Erro relativo no cálculo de y = f (x)

Majorante para o erro relativo de y ∗ = f (x ∗ )



0 x
ε0y = f (x) · · ε0
f (x) max x

0
xf (x)
f (x) designa-se número de condição de f em x.
0
xf (x)
→ f (x) reduzido: a função diz-se bem condicionada
0
xf (x)
→ f (x) elevado: a função diz-se mal condicionada

MIEEC (FEUP) MÉTODOS NUMÉRICOS 42 / 458


Erros Propagação de erros no cálculo de funções

Propagação de erros: exemplo

Quantos dígitos significativos se podem perder no cálculo da função


y = tan(x) quando x está próximo de 1? E quando x está próximo de 1.5?

MIEEC (FEUP) MÉTODOS NUMÉRICOS 43 / 458


Erros Propagação de erros no cálculo de funções

Erro no cálculo de y = f (x1 , x2 , . . . , xn )

xi∗ valor aproximado de xi , com erro máximo absoluto εxi .

y ∗ = f (x1∗ , x2∗ , . . . , xn∗ ) aproxima y = f (x1 , x2 , . . . , xn )


com erro máximo absoluto
n  
X ∂f
εy = · εxi
∂xi
i=1 max

e erro relativo máximo


n 
X 
∂f xi
ε0y ≤ 0
∂xi · f · εxi
i=1 max

Qn
Nota: os máximos são determinados em i =1 [xi − εxi , xi + εxi ]

MIEEC (FEUP) MÉTODOS NUMÉRICOS 44 / 458


Erros Propagação de erros no cálculo de funções

Propagação de erros: exemplos

1 Calcular majorante para o erro absoluto de s = a + b em função dos


erros máximos absolutos de a e de b.

2 Calcular o erro máximo relativo w = xyz a partir dos erros máximos


relativos em x, y e z.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 45 / 458


Erros Erro no cálculo de séries

Vamos agora ver ...

1 Erros
Valores exacto e aproximado
Sistemas de vírgula flutuante
Aritmética em representações finitas
Propagação de erros no cálculo de funções
Erro no cálculo de séries
Exercícios

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação polinomial
MIEEC (FEUP) MÉTODOS NUMÉRICOS 46 / 458
Erros Erro no cálculo de séries

Cálculo de séries: erro de truncatura

Quando se aproxima a série



X
S= ai
i=0

pela soma finita


n
X
Sn = ai
i=0

aparece o erro de truncatura

R n = S − Sn

MIEEC (FEUP) MÉTODOS NUMÉRICOS 47 / 458


Erros Erro no cálculo de séries

Erro de truncatura em séries alternadas

Teorema
Seja a sucessão {an }∞n=0 decrescente e de termos não negativos, isto é,
a0 ≥ a1 ≥ . . .P
≥ an ≥ . . . ≥ 0.
Estão a série ∞ i
i=0 (−1) ai é convergente para
P um número S.
Verifica-se ainda que a soma parcial Sn = ni=0 (−1)i ai satisfaz

|S − Sn | ≤ an+1 ,

ou seja, o erro de truncatura é, em valor absoluto, inferior ou igual ao


primeiro termo não considerado.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 48 / 458


Erros Erro no cálculo de séries

Erro de truncatura: exemplo de série alternada

A série alternada
1 1 1 1
1− + − + − ···
3 5 7 9
é convergente para o valor π4 .
Determinar quantos termos são necessários para calcular este valor com um
erro inferior a 10−4 .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 49 / 458


Erros Erro no cálculo de séries

Série de Taylor: erro de truncatura

Desenvolvimento de Taylor da função f em torno de x0


(x − x0 )n
f (x) = f (x0 ) + f 0 (x0 )(x − x0 ) + · · · + f (n) (x0 ) +Rx0 ,n (x)
| {z n! }
Px0 ,n (x)
n+1
onde Rx0 ,n (x) = f (n+1) (x0 + (x − x0 )θ) (x−x 0)
(n+1)! , θ ∈ [0, 1].

O erro de truncatura de f (x) ≈ Px0 ,n (x) é Rx0 ,n (x).

Este desenvolvimento pode ser utilizado para o cálculo de funções como


sin, cos, exp, . . .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 50 / 458


Erros Erro no cálculo de séries

Erro de truncatura: exemplo

Pretende-se aproximar a função e x no intervalo [−2, 2] por um polinómio


de Taylor.
Qual deverá ser o grau do polinómio se se pretender que o erro absoluto
devido à truncatura da série seja inferior a 5 × 10−5 ?

MIEEC (FEUP) MÉTODOS NUMÉRICOS 51 / 458


Erros Exercícios

Vamos agora ver ...

1 Erros
Valores exacto e aproximado
Sistemas de vírgula flutuante
Aritmética em representações finitas
Propagação de erros no cálculo de funções
Erro no cálculo de séries
Exercícios

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação polinomial
MIEEC (FEUP) MÉTODOS NUMÉRICOS 52 / 458
Erros Exercícios

Exercício: aritmética finita

A precisão de uma máquina pode ser avaliada determinando o valor δ > 0


tal que o resultado da operação 1 + ε seja igual 1, para todo o |ε| ≤ δ.
Estime o valor de δ da sua calculadora.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 53 / 458


Erros Exercícios

Exercício: propagação de erros

cos(x)
Considere a relação t = y + e −yz .
(a) Determine um valor aproximado de t e um majorante para o erro
absoluto quando

x = 1.3, sendo este valor exacto,


y = 0.25 ± 4%,
z = 1.7 ± 3 × 10−1 .

(b) Quantos algarismos significativos se podem perder no cálculo de t,


quando x = π2 e y = 3 (valores exactos) e z está próximo de 4?
Nota: exame de 23/Jan/2002.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 54 / 458


Erros Exercícios

Exercício: erro de truncatura

Pretende-se calcular a função sin(x) no intervalo [− π4 , π4 ] recorrendo a um


polinómio de Taylor.
Qual deverá ser o polinómio de modo a que o erro relativo, devido à
truncatura da série de Taylor, seja inferior a 5 × 10−8 ?

MIEEC (FEUP) MÉTODOS NUMÉRICOS 55 / 458


Equações não Lineares

Um novo capítulo ...

1 Erros

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação polinomial

6 Integração numérica

7 Sobre normas de vectores e matrizes

8 Sistemas de equações lineares


MIEEC (FEUP) MÉTODOS NUMÉRICOS 56 / 458
Equações não Lineares

2. Equações não lineares

Como se calcula a solução da equação e −x = x?

Quais são as raízes do polinómio x 5 + 2x 4 − x 3 + x − 1?

Com que rapidez podemos resolver estes problemas?

..
.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 57 / 458


Equações não Lineares

Equações não lineares ou zeros de funções

Problema
Dada uma função f determinar s tal que f (s) = 0.

f(x)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 58 / 458


Equações não Lineares

Métodos de resolução

Directos
soluções determinadas por expressões envolvendo f
fornecem soluções exactas (usando precisão infinita)
aplicáveis apenas a alguns tipos de problemas
→ Exemplo: fórmula resolvente de equações do 2o grau

Iterativos
geram sucessões de soluções aproximadas
aplicáveis a uma vasta gama de problemas

MIEEC (FEUP) MÉTODOS NUMÉRICOS 59 / 458


Equações não Lineares

Métodos iterativos: funcionamento

estimativa inicial x0 : f (x0 ) 6= 0


1a iteração ↓
x1 : f (x1 ) 6= 0
2a iteração ↓
x2 : f (x2 ) 6= 0

..
.
iteração n ↓
xn : f (xn ) ≈ 0

x0 , x1 , . . . , xn , . . . → s, onde f (s) = 0

MIEEC (FEUP) MÉTODOS NUMÉRICOS 60 / 458


Equações não Lineares

Métodos iterativos: implementação

definir_estimativa_inicial;
repetir
calcular_nova_estimativa;
até verificar_critério_paragem;

MIEEC (FEUP) MÉTODOS NUMÉRICOS 61 / 458


Equações não Lineares

Métodos iterativos: questões a considerar

1 estimativa inicial
como escolher x0 ?
2 convergência de {xn }
é convergente?
converge para uma solução?
3 critério de paragem
xn próximo de s?
f (xn ) próximo de 0?
número de iterações?
4 rapidez de convergência
quantas iterações são necessárias?

MIEEC (FEUP) MÉTODOS NUMÉRICOS 62 / 458


Equações não Lineares

Determinação de estimativa inicial

Aplicando um método iterativo calcula-se um zero


Múltiplos zeros
⇒ múltiplas aplicações de métodos iterativos
⇒ estimativas iniciais próximas dos zeros (ou intervalos contendo cada
zero)

Localização (ou separação) de zeros


→ cálculo de valores
→ estudo do gráfico
→ análise de propriedades

MIEEC (FEUP) MÉTODOS NUMÉRICOS 63 / 458


Equações não Lineares

Localização de zeros: cálculo de valores

Varrimento de um intervalo [a, b] em n subintervalos


b−a
1 definir passo h = n
2 calcular f nos pontos xi = a + ih, i = 0, . . . n
3 se f (xi )f (xi+1 ) < 0 então ∃ zero de f em [xi , xi+1 ]

Características
aplicação geral
simples de automatizar
possibilidade de falhar zeros ⇒ ajustar passo h . . .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 64 / 458


Equações não Lineares

Localização de zeros: métodos gráficos

f(x)

s3
s1 s2 x

O gráfico de f pode ser obtido


estudando as propriedades de f
utilizando meios computacionais

MIEEC (FEUP) MÉTODOS NUMÉRICOS 65 / 458


Equações não Lineares

Localização de zeros: métodos gráficos

Transformação de f (x) = 0 em g (x) = h(x)

Estudos das intersecções dos gráficos de g e h

g(x)
h(x)

s1 s2 x

MIEEC (FEUP) MÉTODOS NUMÉRICOS 66 / 458


Equações não Lineares

Localização de zeros: métodos analíticos


⇒ Monotonia de f

⇒ Números de Rolle de f : D → R
pontos fronteira de D
zeros da função f 0

Teorema
Se f é estritamente monótona em [a, b], então f tem no máximo um zero
em [a, b].

Teorema
Se f é diferenciável, então entre dois números de Rolle consecutivos f tem
no máximo um zero.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 67 / 458


Equações não Lineares

Localização de zeros: exemplos

1 Utilizando métodos gráficos localize os zeros de


1 f (x) = x 2 + sin(x) − 1
2 f (x) = e x ln(x) − 1

2 Utilizando os números de Rolle localize os zeros de


1 f (x) = e x − 3x
2 f (x) = x 3 − 3x + 1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 68 / 458


Equações não Lineares

Estimação do erro

Teorema
f continuamente diferenciável em [a, b] tal que m1 = min |f 0 (ξ)| > 0.
ξ∈[a,b]
Seja s ∈ [a, b] tal que f (s) = 0. Então

|f (x)|
|s − x| ≤ ∀x ∈ [a, b].
m1

Critério de paragem
Parando o método quando |f (xk )| ≤ δ garante-se que

δ
|xk − s| ≤
m1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 69 / 458


Equações não Lineares Método das bissecções sucessivas

Vamos agora ver ...

1 Erros

2 Equações não Lineares


Método das bissecções sucessivas
Método da falsa posição
Método iterativo simples
Método de Newton
Método da Secante
Ordem de convergência: definição
Raízes de Polinómios

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação
MIEEC (FEUP) polinomialMÉTODOS NUMÉRICOS 70 / 458
Equações não Lineares Método das bissecções sucessivas

Método das bissecções sucessivas

f(x)
Descrição
Parte-se de um intervalo tal que a função
tenha sinais contrários nos seus extremos.
Divide-se o intervalo a meio, escolhe-se o a
subintervalo onde a função tem sinais con- x1 b x
trários nos extremos e assim sucessivamente.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 71 / 458


Equações não Lineares Método das bissecções sucessivas

Bissecções sucessivas: algoritmo

Inicialização [a0 , b0 ] = [a, b]


1. xn+1 = an +b2 ;
n

2. Se f (xn+1 )f (an ) < 0


Repetir
Então an+1 = an ; bn+1 = xn+1 ;
Senão an+1 = xn+1 ; bn+1 = bn ;
Até verificar critério de paragem

MIEEC (FEUP) MÉTODOS NUMÉRICOS 72 / 458


Equações não Lineares Método das bissecções sucessivas

Bissecções sucessivas: convergência

Teorema
Seja f contínua em [a, b] tal que f (a)f (b) ≤ 0 e seja s o único zero de f
nesse intervalo. Então o método das bissecções sucessivas gera uma
sucessão que converge para s.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 73 / 458


Equações não Lineares Método das bissecções sucessivas

Bissecções sucessivas: estimação do erro

a+b b−a
x1 = ⇒ |s − x1 | ≤
2 2
a1 + b1 b1 − a1 b−a
x2 = ⇒ |s − x2 | ≤ =
2 2 22
..
.
an−1 + bn−1 bn−1 − an−1 b−a
xn = ⇒ |s − xn | ≤ =
2 2 2n

b−a
n ≥ log2 ⇒ |s − xn | ≤ δ
δ

MIEEC (FEUP) MÉTODOS NUMÉRICOS 74 / 458


Equações não Lineares Método das bissecções sucessivas

Bissecções sucessivas: exemplo

Determinar, com um erro absoluto inferior a 5 × 10−3 , a (única) solução da


equação 1 + x + e x = 0 que se sabe estar no intervalo [−2, −1].

MIEEC (FEUP) MÉTODOS NUMÉRICOS 75 / 458


Equações não Lineares Método das bissecções sucessivas

Bissecções sucessivas: exemplo

n an f (an ) bn f (bn ) xn+1 f (xn+1 )


0 −2.000 −0.865 −1.000 +0.368 −1.500 −0.277
1 −1.500 −0.277 −1.000 +0.368 −1.250 +0.037
2 −1.500 −0.277 −1.250 +0.037 −1.375 −0.122
3 −1.375 −0.122 −1.250 +0.037 −1.313 −0.043
4 −1.313 −0.043 −1.250 +0.037 −1.281 −0.004
5 −1.281 −0.004 −1.250 +0.037 −1.266 +0.016
6 −1.281 −0.004 −1.266 +0.016 −1.273 +0.006
7 −1.281 −0.004 −1.273 +0.006 −1.277 +0.001

Solução: s = −1.277 ± 4 × 10−3 ou s ∈ [−1.281, −1.273]

MIEEC (FEUP) MÉTODOS NUMÉRICOS 76 / 458


Equações não Lineares Método da falsa posição

Vamos agora ver ...

1 Erros

2 Equações não Lineares


Método das bissecções sucessivas
Método da falsa posição
Método iterativo simples
Método de Newton
Método da Secante
Ordem de convergência: definição
Raízes de Polinómios

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação
MIEEC (FEUP) polinomialMÉTODOS NUMÉRICOS 77 / 458
Equações não Lineares Método da falsa posição

Método da falsa posição (regula falsi)

Semelhante ao método das bissecções suces- f(x)


sivas, mas com o cálculo de xn+1 dado por

an f (bn ) − bn f (an )
xn+1 = an xn+1 x
f (bn ) − f (an )
bn
Este ponto corresponde à intersecção com
o eixo dos xx da recta que une os pontos
(an , f (an )) e (bn , f (bn )).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 78 / 458


Equações não Lineares Método da falsa posição

Falsa posição: algoritmo

Inicialização [a0 , b0 ] = [a, b]


1. xn+1 = an ff (b n )−bn f (an )
(bn )−f (an ) ;

Repetir 2. Se f (xn+1 )f (an ) < 0


Então an+1 = an ; bn+1 = xn+1 ;
Senão an+1 = xn+1 ; bn+1 = bn ;
Até verificar critério de paragem

MIEEC (FEUP) MÉTODOS NUMÉRICOS 79 / 458


Equações não Lineares Método da falsa posição

Falsa posição: estimação do erro

Teorema
Seja f continuamente diferenciável em [a, b] e tal que f (a)f (b) ≤ 0. Sejam
m1 = minξ∈[a,b] |f 0 (ξ)| > 0 e M1 = maxξ∈[a,b] |f 0 (ξ)|.
Então, o erro de aproximação de s, único zero de f em [a, b], pela
estimativa xn+1 satisfaz a relação

M1 − m1
|s − xn+1 | ≤ |xn+1 − xn |.
m1

Critério de paragem
M1 − m1
εn+1 = |xn+1 − xn | ≤ δ ⇒ |s − xn+1 | ≤ δ
m1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 80 / 458


Equações não Lineares Método da falsa posição

Falsa posição: exemplo 1

Utilizar o método da falsa posição para determinar, com um erro absoluto


inferior a 5 × 10−3 , o (único) zero da função f (x) = 1 + x + e x .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 81 / 458


Equações não Lineares Método da falsa posição

Falsa posição: exemplo 1

n an f (an ) bn f (bn ) xn+1 f (xn+1 ) εn+1


0 −2.000 −0.865 −1.000 +0.368 −1.298 −2.55 × 10−2 1.4 × 10−1
1 −1.298 −0.026 −1.000 +0.368 −1.279 −8.22 × 10−4 4.0 × 10−3

Solução: s ' −1.279, com erro absoluto máximo de 4.0 × 10−3

MIEEC (FEUP) MÉTODOS NUMÉRICOS 82 / 458


Equações não Lineares Método da falsa posição

Falsa posição: exemplo 2


5
Determinar o zero de f (x) = x + e x − 5 em [0, 1.3]

1.3
x1 x2 x3 s

MIEEC (FEUP) MÉTODOS NUMÉRICOS 83 / 458


Equações não Lineares Método da falsa posição

Falsa posição: exemplo 2

n an f (an ) bn f (bn ) xn+1 f (xn+1 ) εn+1


0 +0.000 −4.000 +1.300 +37.274 +0.126 −3.87 +3.87
1 +0.126 −3.874 +1.300 +37.274 +0.237 −3.76 +3.76
2 +0.237 −3.763 +1.300 +37.274 +0.334 −3.66 +3.66
3 +0.334 −3.662 +1.300 +37.274 +0.420 −3.57 +3.57
4 +0.420 −3.566 +1.300 +37.274 +0.497 −3.47 +3.47
5 +0.497 −3.472 +1.300 +37.274 +0.566 −3.37 +3.37
··· ··· ··· ··· ··· ··· ··· ···
50 +1.065 −0.008 +1.300 +37.274 +1.065 −6.64 × 10−3 +6.64 × 10−3
51 +1.065 −0.007 +1.300 +37.274 +1.065 −5.54 × 10−3 +5.54 × 10−3
52 +1.065 −0.006 +1.300 +37.274 +1.065 −4.63 × 10−3 +4.63 × 10−3

MIEEC (FEUP) MÉTODOS NUMÉRICOS 84 / 458


Equações não Lineares Método da falsa posição

Falsa posição: exemplo 2

O método das bissecções sucessivas aplicado a este problema garante o


mesmo erro máximo em 9 iterações!
n an f (an ) bn f (bn ) xn+1 f (xn+1 )
0 +0.000 −4.000 +1.300 +37.274 +0.650 −3.227
1 +0.650 −3.227 +1.300 +37.274 +0.975 −1.611
2 +0.975 −1.611 +1.300 +37.274 +1.138 +2.853
3 +0.975 −1.611 +1.138 +2.853 +1.056 −0.220
4 +1.056 −0.220 +1.138 +2.853 +1.097 +0.990
5 +1.056 −0.220 +1.097 +0.990 +1.077 +0.323
6 +1.056 −0.220 +1.077 +0.323 +1.066 +0.038
7 +1.056 −0.220 +1.066 +0.038 +1.061 −0.094
8 +1.061 −0.094 +1.066 +0.038 +1.064 −0.029

MIEEC (FEUP) MÉTODOS NUMÉRICOS 85 / 458


Equações não Lineares Método da falsa posição

Falsa posição: convergência

Teorema
Se f for estritamente monótona e duplamente diferenciável em [a, b], se
f (a)f (b) ≤ 0 e se o sinal de f 00 não variar em [a, b], então a sucessão
produzida pelo método da falsa posição converge monotonamente para o
zero de f nesse intervalo. Também se verifica que um dos extremos do
intervalo permanece inalterado.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 86 / 458


Equações não Lineares Método da falsa posição

Falsa posição modificado


Fb

Fb /2

Fb /4

x1 x2 x3
x4

MIEEC (FEUP) MÉTODOS NUMÉRICOS 87 / 458


Equações não Lineares Método da falsa posição

Falsa posição modificado: convergência

Teorema
Se f é contínua, estritamente monótona e tiver sinais contrários nos
extremos de um intervalo [a, b], a sucessão produzida pelo método da falsa
posição modificado converge para o zero de f em [a, b].

MIEEC (FEUP) MÉTODOS NUMÉRICOS 88 / 458


Equações não Lineares Método da falsa posição

Falsa posição modificado: algoritmo

Inicialização [a0 , b0 ] = [a, b]; Fa = f (a0 ); Fb = f (b0 )


a F −b F
1. xn+1 = n Fb −Fn a ;
b a
2. Se f (xn+1 )f (an ) < 0
Então an+1 = an ; bn+1 = xn+1 ; Fb = f (xn+1 );
Repetir
Se f (xn+1 )f (xn ) > 0 Então Fa = F2a ;
Senão an+1 = xn+1 ; bn+1 = bn ; Fa = f (xn+1 );
F
Se f (xn+1 )f (xn ) > 0 Então Fb = 2b ;
Até verificar critério de paragem

MIEEC (FEUP) MÉTODOS NUMÉRICOS 89 / 458


Equações não Lineares Método da falsa posição

Falsa posição modificado: exemplo

Determinar, com um erro absoluto inferior a 5 × 10−3 o zero de


5
f (x) = x + e x − 5 no intervalo [0, 1.3].

MIEEC (FEUP) MÉTODOS NUMÉRICOS 90 / 458


Equações não Lineares Método da falsa posição

Falsa posição modificado: exemplo

n an Fa bn Fb xn+1 f (xn+1 ) εn+1


0 +0.000 −4.000 +1.300 +37.274 +0.126 −3.87 +3.87
1 +0.126 −3.874 +1.300 +37.274 +0.237 −3.76 +3.76
2 +0.237 −3.763 +1.300 +18.637 +0.415 −3.57 +3.57
3 +0.415 −3.572 +1.300 +9.318 +0.660 −3.21 +3.21
4 +0.660 −3.206 +1.300 +4.659 +0.921 −2.14 +2.14
5 +0.921 −2.138 +1.300 +2.330 +1.102 +1.20 +1.20
6 +0.921 −2.138 +1.102 +1.198 +1.037 −6.39 × 10−1 +6.39 × 10−1
7 +1.037 −0.639 +1.102 +1.198 +1.060 −1.29 × 10−1 +1.29 × 10−1
8 +1.060 −0.129 +1.102 +0.599 +1.067 +6.65 × 10−2 +6.65 × 10−2
9 +1.060 −0.129 +1.067 +0.066 +1.065 −1.61 × 10−3 +1.61 × 10−3

MIEEC (FEUP) MÉTODOS NUMÉRICOS 91 / 458


Equações não Lineares Método iterativo simples

Vamos agora ver ...

1 Erros

2 Equações não Lineares


Método das bissecções sucessivas
Método da falsa posição
Método iterativo simples
Método de Newton
Método da Secante
Ordem de convergência: definição
Raízes de Polinómios

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação
MIEEC (FEUP) polinomialMÉTODOS NUMÉRICOS 92 / 458
Equações não Lineares Método iterativo simples

Método iterativo simples

1 Reescrever f (x) = 0 da forma equivalente x = F (x)

2 Escolher estimativa inicial x0

3 Gerar a sucessão xn+1 = F (xn ), n = 0, 1, . . .

→ F designa-se função de recorrência

→ s : F (s) = s designa-se ponto fixo de F

MIEEC (FEUP) MÉTODOS NUMÉRICOS 93 / 458


Equações não Lineares Método iterativo simples

Método iterativo simples

y =x

F (x0 )
F (x2 )

F (x1 )
y = F (x)

x0 x2 s x1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 94 / 458


Equações não Lineares Método iterativo simples

Método iterativo simples: algoritmo

Inicialização Escolher x0
Repetir xn+1 = F (xn )
Até verificar critério de paragem

MIEEC (FEUP) MÉTODOS NUMÉRICOS 95 / 458


Equações não Lineares Método iterativo simples

Método iterativo simples: comportamento

y=x
y = F(x)

x0 x1 x2 s x
Convergência monótona

MIEEC (FEUP) MÉTODOS NUMÉRICOS 96 / 458


Equações não Lineares Método iterativo simples

Método iterativo simples: comportamento

y = F(x) y=x

x0 x2 s x1 x
Convergência “alternada”

MIEEC (FEUP) MÉTODOS NUMÉRICOS 97 / 458


Equações não Lineares Método iterativo simples

Método iterativo simples: comportamento

y = F(x)
y=x

s x0 x1 x2 x
Divergência

MIEEC (FEUP) MÉTODOS NUMÉRICOS 98 / 458


Equações não Lineares Método iterativo simples

Método iterativo simples: convergência

Teorema
Se F é continuamente diferenciável em [a, b], maxx∈[a,b] |F 0 (x)| < 1 e
existe s ∈ [a, b] tal que s = F (s), então, para qualquer valor inicial
x0 ∈ [a, b], a sucessão gerada o método iterativo simples converge para s
(s será único! porquê?).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 99 / 458


Equações não Lineares Método iterativo simples

Método iterativo simples: erro

Majoração do erro
1−L
|xn+1 − s| ≤ |xn+1 − xn |
L

Critério de paragem
1−L
εn+1 = |xn+1 − xn | ≤ δ ⇒ |xn+1 − s| ≤ δ
L

MIEEC (FEUP) MÉTODOS NUMÉRICOS 100 / 458


Equações não Lineares Método iterativo simples

Método iterativo simples: exemplo

Determinar, com um erro absoluto inferior a 5 × 10−5 , o zero da função


f (x) = 1 + x + e x no intervalo [−2, −1].

MIEEC (FEUP) MÉTODOS NUMÉRICOS 101 / 458


Equações não Lineares Método iterativo simples

Método iterativo simples: exemplo

n xn xn+1 = F (xn ) εn+1


0 −2.00000 −1.13534 +5.0 × 10−1
1 −1.13534 −1.32131 +1.1 × 10−1
2 −1.32131 −1.26678 +3.2 × 10−2
3 −1.26678 −1.28174 +8.7 × 10−3
4 −1.28174 −1.27756 +2.4 × 10−3
5 −1.27756 −1.27872 +6.8 × 10−4
6 −1.27872 −1.27839 +1.9 × 10−4
7 −1.27839 −1.27848 +5.2 × 10−5
8 −1.27848 −1.27846 +1.5 × 10−5

MIEEC (FEUP) MÉTODOS NUMÉRICOS 102 / 458


Equações não Lineares Método de Newton

Vamos agora ver ...

1 Erros

2 Equações não Lineares


Método das bissecções sucessivas
Método da falsa posição
Método iterativo simples
Método de Newton
Método da Secante
Ordem de convergência: definição
Raízes de Polinómios

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação
MIEEC (FEUP) polinomialMÉTODOS NUMÉRICOS 103 / 458
Equações não Lineares Método de Newton

Método de Newton

f (x)

s x2 x1 x0

MIEEC (FEUP) MÉTODOS NUMÉRICOS 104 / 458


Equações não Lineares Método de Newton

Método de Newton: algoritmo

Inicialização Escolher x0
f (xn )
Repetir xn+1 = xn −
f 0 (xn )
Até verificar critério de paragem

MIEEC (FEUP) MÉTODOS NUMÉRICOS 105 / 458


Equações não Lineares Método de Newton

Método de Newton: divergência

y = f(x)

s x1 x0 x2 x
Anulamento da derivada

MIEEC (FEUP) MÉTODOS NUMÉRICOS 106 / 458


Equações não Lineares Método de Newton

Método de Newton: divergência

y = f(x)

x1
s x0 x2 x
Mudança de concavidade

MIEEC (FEUP) MÉTODOS NUMÉRICOS 107 / 458


Equações não Lineares Método de Newton

Método de Newton: convergência

Teorema
Seja f ∈ C 2 ([a, b]; R) tal que f 0 (x) 6= 0, e f 00 (x) ≤ 0 ou f 00 (x) ≥ 0 em
[a, b]. Seja ainda s o (único) zero de f em [a, b]. Então a sucessão gerada
pelo método de Newton converge para s sempre que o ponto inicial
x0 ∈ [a, b] satisfizer f (x0 )f 00 (x0 ) ≥ 0. Mais ainda, a sucessão gerada é
monótona.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 108 / 458


Equações não Lineares Método de Newton

Método de Newton: erro

Majoração do erro
M2
|xn+1 − s| ≤ |xn+1 − xn |2
2m1

Critério de paragem
M2
εn+1 = |xn+1 − xn |2 ≤ δ ⇒ |xn+1 − s| ≤ δ
2m1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 109 / 458


Equações não Lineares Método de Newton

Método de Newton: exemplo

Determinar, com um erro absoluto inferior a 5 × 10−6 , o zero da função


f (x) = 1 + x + e x , que se sabe estar no intervalo [−2, −1].

MIEEC (FEUP) MÉTODOS NUMÉRICOS 110 / 458


Equações não Lineares Método de Newton

Método de Newton: exemplo

n xn f (xn ) f 0 (xn ) xn+1 εn+1


0 −1.00000 +3.68 × 10−1 +1.368 −1.26894 +1.2 × 10−1
1 −1.26894 +1.22 × 10−2 +1.281 −1.27845 +1.5 × 10−5
2 −1.27845 +1.27 × 10−5 +1.278 −1.27846 +1.6 × 10−11

Solução: s ' −1.27846 (todos os algarismos exactos)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 111 / 458


Equações não Lineares Método de Newton

Método de Newton: convergência (2)

Teorema
Sejam f ∈ C 2 ([a, b]; R) e s um zero de f em [a, b] tal que f 0 (s) 6= 0.
Então existe δ > 0 tal que a sucessão {xn } gerada pelo método de Newton
converge para s sempre que x0 ∈ [s − δ, s + δ].

MIEEC (FEUP) MÉTODOS NUMÉRICOS 112 / 458


Equações não Lineares Método da Secante

Vamos agora ver ...

1 Erros

2 Equações não Lineares


Método das bissecções sucessivas
Método da falsa posição
Método iterativo simples
Método de Newton
Método da Secante
Ordem de convergência: definição
Raízes de Polinómios

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação
MIEEC (FEUP) polinomialMÉTODOS NUMÉRICOS 113 / 458
Equações não Lineares Método da Secante

Método da secante

y = f(x)

Semelhante ao método de Newton

Tangente ao gráfico substituída pela


secante nos dois últimos pontos

s xn+1 xn xn-1 x

xn−1 f (xn ) − xn f (xn−1 )


xn+1 =
f (xn ) − f (xn−1 )

MIEEC (FEUP) MÉTODOS NUMÉRICOS 114 / 458


Equações não Lineares Método da Secante

Método da secante: algoritmo

Inicialização Escolher x−1 e x0


xn−1 f (xn ) − xn f (xn−1 )
Repetir xn+1 =
f (xn ) − f (xn−1 )
Até verificar critério de paragem

MIEEC (FEUP) MÉTODOS NUMÉRICOS 115 / 458


Equações não Lineares Método da Secante

Método da secante: convergência

Teorema
Seja f ∈ C 2 ([a, b]; R) tal que f 0 (x) 6= 0, e f 00 (x) ≤ 0 ou f 00 (x) ≥ 0 em
[a, b]. Seja ainda s o (único) zero de f em [a, b].
Então a sucessão gerada pelo método da secante converge para s sempre
que os pontos iniciais x−1 , x0 ∈ [a, b] satisfizerem f (x−1 )f 00 (x−1 ) ≥ 0 e
f (x0 )f 00 (x0 ) ≥ 0. Mais ainda, a sucessão gerada é monótona.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 116 / 458


Equações não Lineares Método da Secante

Método da secante: erro

Majoração do erro
M2
|xn+1 − s| ≤ |xn+1 − xn | · |xn+1 − xn−1 |
2m1

Critério de paragem
M2
εn+1 = |xn+1 − xn | · |xn+1 − xn−1 | ≤ δ ⇒ |xn+1 − s| ≤ δ
2m1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 117 / 458


Equações não Lineares Método da Secante

Método da secante: exemplo

Determinar, com um erro absoluto inferior a 5 × 10−6 , o (único) zero da


função f (x) = 1 + x + e x , que se sabe estar no intervalo [−2, −1].

MIEEC (FEUP) MÉTODOS NUMÉRICOS 118 / 458


Equações não Lineares Método da Secante

Método da secante: exemplo

n xn−1 xn xn+1 f (xn+1 ) εn+1


0 −1.00000 −1.10000 −1.27249 +7.65 × 10−3 7.6 × 10−3
1 −1.10000 −1.27249 −1.27834 +1.55 × 10−4 1.7 × 10−4
2 −1.27249 −1.27834 −1.27846 +1.01 × 10−7 1.2 × 10−7

Solução: s ' −1.27846 (com todos os algarismos exactos)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 119 / 458


Equações não Lineares Ordem de convergência: definição

Vamos agora ver ...

1 Erros

2 Equações não Lineares


Método das bissecções sucessivas
Método da falsa posição
Método iterativo simples
Método de Newton
Método da Secante
Ordem de convergência: definição
Raízes de Polinómios

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação
MIEEC (FEUP) polinomialMÉTODOS NUMÉRICOS 120 / 458
Equações não Lineares Ordem de convergência: definição

Ordem de convergência dum método iterativo

Considere um método iterativo tal que:


função de recorrência: F
ponto fixo: s (s = F (s))

F 0 (s) = F 00 (s) = . . . = F (p−1) (s) = 0


F (p) (s) 6= 0

xn+1 = F (xn )
xn → s
o método têm convergência de ordem p

MIEEC (FEUP) MÉTODOS NUMÉRICOS 121 / 458


Equações não Lineares Ordem de convergência: definição

Ordem de convergência

∆n+1 ∝ ∆n p

p=1 → convergência linear ou de 1a ordem

p=2 → convergência quadrática ou de 2a ordem

MIEEC (FEUP) MÉTODOS NUMÉRICOS 122 / 458


Equações não Lineares Ordem de convergência: definição

Ordem de convergência: justificação

O desenvolvimento em série de F em torno de s

F (xn ) =F (s) + F 0 (s)(xn − s) + . . . +F (p−1) (s)(xn − s)p−1 /(p − 1)!+


+F (p) (ξ)(xn − s)p /p!
= s + F (p) (ξ)(xn − s)p /p!

Seja ∆n = s − xn , obtemos

F (p) (ξ)
p
|∆n+1 | = |xn+1 − s| = |F (xn ) − s| = ∆n
p!

ou seja
∆n+1 ∝ ∆n p

MIEEC (FEUP) MÉTODOS NUMÉRICOS 123 / 458


Equações não Lineares Ordem de convergência: definição

Ordem de convergência: exemplo

Considere dois métodos iterativos A e B, para os quais se tem


∆n+1 = 10−2 ∆n e ∆n+1 = ∆2n , respectivamente.
Se em ambos os casos se tiver ∆0 = 10−1 , determine a evolução do erro
para as primeiras 6 iterações de cada método.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 124 / 458


Equações não Lineares Ordem de convergência: definição

Ordem de convergência: exemplo

n ∆n (mét. A) ∆n (mét. B)
0 10−1 10−1
1 10−3 10−2
2 10−5 10−4
3 10−7 10−8
4 10−9 10−16
5 10−11 10−32
6 10−13 10−64

MIEEC (FEUP) MÉTODOS NUMÉRICOS 125 / 458


Equações não Lineares Ordem de convergência: definição

Método iterativo simples: convergência linear

1 + x + e x = 0, x ∈ [−2, −1] ⇒ x = F (x) = −1 − e x

n xn xn+1 = F (xn ) ∆n+1 ∆n+1 /∆n


0 −2.00000 −1.13534 −1.4 × 10−1 −
1 −1.13534 −1.32131 +4.3 × 10−2 −0.299
2 −1.32131 −1.26678 −1.2 × 10−2 −0.273
3 −1.26678 −1.28174 +3.3 × 10−3 −0.280
4 −1.28174 −1.27756 −9.1 × 10−4 −0.278
5 −1.27756 −1.27872 +2.5 × 10−4 −0.279
6 −1.27872 −1.27839 −7.1 × 10−5 −0.278
7 −1.27839 −1.27848 +2.0 × 10−5 −0.278
8 −1.27848 −1.27846 −5.5 × 10−6 −0.278

F 0 (x) = −e x F 0 (−1.27846) = −0.27846

MIEEC (FEUP) MÉTODOS NUMÉRICOS 126 / 458


Equações não Lineares Ordem de convergência: definição

Método de Newton: convergência quadrática

1 + x + e x = 0, x ∈ [−2, −1]

n xn f (xn ) f 0 (xn ) xn+1 ∆n+1 ∆n+1 /∆2


n
0 −1.00000 +3.68 × 10−1 +1.368 −1.26894 −9.5 × 10−3 −
1 −1.26894 +1.22 × 10−2 +1.281 −1.27845 −9.9 × 10−6 −0.1094
2 −1.27845 +1.27 × 10−5 +1.278 −1.27846 −1.1 × 10−11 −0.1089

MIEEC (FEUP) MÉTODOS NUMÉRICOS 127 / 458


Equações não Lineares Ordem de convergência: definição

Método de Newton: convergência quadrática

A função de recorrência neste método é

F (x) = x − f (x)/f 0 (x)

A primeira derivada

[f 0 (x)]2 − f (x)f 00 (x)


F 0 (x) = 1 −
[f 0 (x)]2

Como f (s) = 0, temos que F 0 (s) = 0.

A 2a derivada
f 00 (s)
F 00 (s) = . . . =
f 0 (s)
é em geral não nula. Logo o método é de 2a ordem.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 128 / 458


Equações não Lineares Ordem de convergência: definição

Ordem de convergência duma sucessão

{en } convergente para 0. Se existirem p, K > 0 tais que

|en+1 |
lim =K
n→+∞ |en |p

diz-se que {en } tem ordem de convergência p.

n elevado ⇒ |en+1 | ' K |en |p

p=1 → convergência linear


p>1 → convergência supralinear
p=2 → convergência quadrática

MIEEC (FEUP) MÉTODOS NUMÉRICOS 129 / 458


Equações não Lineares Ordem de convergência: definição

Ordem de convergência: método da secante

Teorema
Nas condições suficientes apresentadas para a convergência do método da
secante, pode ainda afirmar-se que sucessão dos erros de aproximação
gerada por este método tem convergência de ordem

1+ 5
(≈ 1.618).
2

MIEEC (FEUP) MÉTODOS NUMÉRICOS 130 / 458


Equações não Lineares Ordem de convergência: definição

Método da secante: ordem de convergência

1 + x + e x = 0, x ∈ [−2, −1]

n xn−1 xn xn+1 f (xn+1 ) εn+1 εn+1 /εp


n
0 −1.00000 −1.10000 −1.27249 +7.65 × 10−3 +1.5 × 10−1 −
1 −1.10000 −1.27249 −1.27834 +1.55 × 10−4 +2.1 × 10−2 0.479
2 −1.27249 −1.27834 −1.27846 +1.01 × 10−7 +5.0 × 10−4 0.255
3 −1.27834 −1.27846 −1.27846 +1.33 × 10−12 +1.7 × 10−6 0.377
4 −1.27846 −1.27846 −1.27846 +1.33 × 10−12 +1.4 × 10−10 0.296
5 −1.27846 −1.27846 −1.27846 +1.33 × 10−12 +4.0 × 10−17 0.344


1+ 5
p= 2

MIEEC (FEUP) MÉTODOS NUMÉRICOS 131 / 458


Equações não Lineares Raízes de Polinómios

Vamos agora ver ...

1 Erros

2 Equações não Lineares


Método das bissecções sucessivas
Método da falsa posição
Método iterativo simples
Método de Newton
Método da Secante
Ordem de convergência: definição
Raízes de Polinómios

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação
MIEEC (FEUP) polinomialMÉTODOS NUMÉRICOS 132 / 458
Equações não Lineares Raízes de Polinómios

Raízes de polinómios

p(x) → polinómio de coeficientes reais de grau n


p(x) = an x n + an−1 x n−1 + · · · + a1 x + a0 , ai ∈ R ∧ an 6= 0

Teorema
O polinómio p(x) tem n raízes (contando com a multiplicidade). Estas
raízes podem ser reais ou complexas, caso em quem surgem em pares
conjugados.

Teorema
Sejam r1 , r2 , . . . , rn as n raízes do polinómio de grau n p(x). Então, p(x)
pode ser escrito como

p(x) = an (x − r1 )(x − r2 ) · · · (x − rn )

MIEEC (FEUP) MÉTODOS NUMÉRICOS 133 / 458


Equações não Lineares Raízes de Polinómios

Polinómios: Regra de Ruffini

p(x) = (x − s)q(x) + r onde


q(x) = bn−1 x n−1 + . . . + b1 x + b0 é o quociente
r ∈C é o resto

an an−1 . . . a1 a0
s sbn−1 . . . sb1 sb0
bn−1 bn−2 . . . b0 || r

MIEEC (FEUP) MÉTODOS NUMÉRICOS 134 / 458


Equações não Lineares Raízes de Polinómios

Polinómios: “Regra de Ruffini” generalizada

Generalizando, p(x) = (x 2 − αx − β)q(x) + (rx + s), onde


q(x) = bn−2 x n−2 + . . . + b1 x + b0 é o quociente
rx + s é o resto

an an−1 an−2 . . . a2 a1 a0
β βbn−2 . . . βb2 βb1 βb0
α αbn−2 αbn−3 . . . αb1 αb0
bn−2 bn−3 bn−4 . . . b0 || r s

MIEEC (FEUP) MÉTODOS NUMÉRICOS 135 / 458


Equações não Lineares Raízes de Polinómios

Localização de raízes de polinómios

Regra dos sinais de Descartes I


O número de raízes reais positivas do polinómio p(x) é igual, ou menor
pela diferença de um número par, ao número de mudanças de sinal dos
seus coeficientes não nulos.

Regra dos sinais de Descartes II


O número de raízes reais negativas do polinómio p(x) é igual, ou menor
pela diferença de um número par, ao número de mudanças de sinal dos
coeficientes não nulos de p(−x).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 136 / 458


Equações não Lineares Raízes de Polinómios

Localização de raízes de polinómios

Exemplo:
p(x) = x 5 − 5x 4 + 10x 3 − 6x 2 − 12x + 16
tem 4 mudanças de sinal

p(−x) = −x 5 − 5x 4 − 10x 3 − 6x 2 + 12x + 16

tem uma mudança de sinal.


Logo as raizes do polinómio serão:
1 real negativa e 4 reais positiva, ou
1 real negativa, 2 reais positivas e 2 complexas, ou
1 real negativa, 0 reais positivas, 4 complexas.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 137 / 458


Equações não Lineares Raízes de Polinómios

Localização de raízes de polinómios

Teorema
Todos os zeros do polinómio p(x) situam-se no interior do círculo (no
plano complexo) centrado na origem e de raio

ak
1 + max
0≤k≤n−1 an

MIEEC (FEUP) MÉTODOS NUMÉRICOS 138 / 458


Equações não Lineares Raízes de Polinómios

Polinómios: determinação de todas as raízes

Conhecendo k raízes r1 , . . . , rk de p(x), as restantes n − k raízes podem


ser obtidas como sendo as raízes de q(x) que é o polinómio quociente da
divisão de p(x) pelo polinómio (x − r1 ) · · · (x − rk ).

Estratégia
Ir obtendo raízes, uma de cada vez, e dividir o polinómio até se obter um
polinómio de grau 1 ou 2, casos em que a determinação de raízes é trivial.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 139 / 458


Equações não Lineares Raízes de Polinómios

Método de Newton para polinómios

A expressão de recorrência é

p(xk )
xk+1 = xk −
p 0 (xk )

x0 ∈ C é escolhido como uma das soluções de

an x 2 + an−1 x + an−2 = 0

MIEEC (FEUP) MÉTODOS NUMÉRICOS 140 / 458


Equações não Lineares Raízes de Polinómios

Método de Newton para polinómios: exemplo

Determinar todas as raízes do polinómio

p(x) = x 4 + 2x 3 + 10x 2 + 24x + 80

aplicando o método de Newton.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 141 / 458


Equações não Lineares Raízes de Polinómios

Método de Newton para polinómios: exemplo

Determinação x0

x02 + 2x0 + 10 = 0 ⇔ x0 = −1 ± 3j

k xk p(xk ) p 0 (xk )
0 −1.00 + j3.00 56.00 + j72.00 60.00 − j48.00
1 −0.98 + j1.81 43.35 + j23.00 25.40 + j12.07
2 −2.73 + j1.74 −2.57 − j69.73 13.53 + j111.88
3 −2.11 + j1.79 8.26 − j15.13 32.70 + j63.12
4 −1.97 + j1.99 1.84 + j0.91 47.11 + j54.20
5 −2.00 + j2.00 −0.02 − j0.02 48.01 + j56.03
6 −2.00 + j2.00 ≈0

r1 = −2 + 2j r2 = −2 − 2j
Depois, determinar as raízes do polinómio:
p(x) p(x)
= 2 = x 2 − 2x + 10
(x − r1 )(x − r2 ) x + 4x + 8

MIEEC (FEUP) MÉTODOS NUMÉRICOS 142 / 458


Equações não Lineares Raízes de Polinómios

Método de Lin

Construir sucessões {pi } e {qi } convergentes para p̄ e q̄ de forma a que


x 2 + p̄x + q̄ seja divisor de p(x).

Em cada iteração é realizada a divisão polinomial

p(x) rx + s
= q(x) + 2
x2 + pi x + qi x + pi x + qi

que é parada após se obter de q(x), substituindo-se pi → pi+1 e qi → qi+1


de modo a anular o resto rx + s.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 143 / 458


Equações não Lineares Raízes de Polinómios

Método de Lin

an an−1 ... a2 a1 a0
−qi . . . −qi b2 −qi b1 −qi+1 b0
−pi −pi bn−2 . . . −pi b1 −pi+1 b0
bn−2 bn−3 ... b0 || 0 0

(
a1 − qi b1 − pi+1 b0 = 0
a0 − qi+1 b0 = 0

MIEEC (FEUP) MÉTODOS NUMÉRICOS 144 / 458


Equações não Lineares Raízes de Polinómios

Método de Lin: exemplo

Determinar os zeros de

p(x) = x 4 − 6x 3 + 18x 2 − 24x + 16

pelo método de Lin.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 145 / 458


Equações não Lineares Raízes de Polinómios

Método de Lin: exemplo

p(x)
k pk qk quociente da divisão x 2 +pk x+qk
0 1 1 x2 − 7x + 24
1 −0.708333 0.666667 x 2 − 5.2917x + 13.5851
2 −1.506965 1.177764 x 2 − 4.4930x + 10.0514
3 −1.861262 1.591820 x 2 − 4.1387x + 8.7049
4 −2.000237 1.838044 x 2 − 3.9998x + 8.1615
5 −2.039857 1.960428 x 2 − 3.9601x + 7.9614
6 −2.039382 2.009685 x 2 − 3.9606x + 7.9131

x 4 − 6x 3 + 18x 2 − 24x + 16 é divisível por x 2 − 2x + 2

MIEEC (FEUP) MÉTODOS NUMÉRICOS 146 / 458


Sistemas de equações não lineares

Um novo capítulo ...

1 Erros

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação polinomial

6 Integração numérica

7 Sobre normas de vectores e matrizes

8 Sistemas de equações lineares


MIEEC (FEUP) MÉTODOS NUMÉRICOS 147 / 458
Sistemas de equações não lineares

Sistemas de equações não lineares

n equações nas n variáveis x1 , x2 , . . . , xn :




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

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

 .


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

onde f1 , f2 , . . . , fn : Rn → R

MIEEC (FEUP) MÉTODOS NUMÉRICOS 148 / 458


Sistemas de equações não lineares

Sistemas de equações não lineares

Definindo x = (x1 , x2 , . . . , xn )T e F : Rn → Rn como


   
f1 (x) f1 (x1 , x2 , . . . , xn )
 f2 (x)   f2 (x1 , x2 , . . . , xn ) 
   
F (x) =  .  =  .. 
 ..   . 
fn (x) fn (x1 , x2 , . . . , xn )

o sistema pode ser escrito como

F (x) = 0

MIEEC (FEUP) MÉTODOS NUMÉRICOS 149 / 458


Sistemas de equações não lineares

Sistemas de equações não lineares

Métodos iterativos
método iterativo simples (iteração de ponto fixo)
método de Newton
...

MIEEC (FEUP) MÉTODOS NUMÉRICOS 150 / 458


Sistemas de equações não lineares Método iterativo simples

Vamos agora ver ...

1 Erros

2 Equações não Lineares

3 Sistemas de equações não lineares


Método iterativo simples
Método de Newton

4 Aproximação de funções

5 Interpolação polinomial

6 Integração numérica

7 Sobre normas de vectores e matrizes


MIEEC (FEUP) MÉTODOS NUMÉRICOS 151 / 458
Sistemas de equações não lineares Método iterativo simples

Método iterativo simples

Reescrever o sistema de equações F (x) = 0 na forma

x = G (x), G : Rn → Rn

ou seja 

 x1 = g1 (x1 , x2 , . . . , xn )

 x2 = g2 (x1 , x2 , . . . , xn )
..

 .


xn = gn (x1 , x2 , . . . , xn )

MIEEC (FEUP) MÉTODOS NUMÉRICOS 152 / 458


Sistemas de equações não lineares Método iterativo simples

Método iterativo simples

1 Escolher um ponto inicial x(0)

2 Determinar os termos da sucessão {x(k) } pela expressão de recorrência

x(k+1) = G (x(k) )

x(k) → s tal que s = G (s) (ponto fixo de G ) ⇔ F (s) = 0

MIEEC (FEUP) MÉTODOS NUMÉRICOS 153 / 458


Sistemas de equações não lineares Método iterativo simples

Método iterativo simples: exemplo

Considere o sistema de equações



4x1 − ln(x1 x2 ) − 8 = 0

2x1 − 4x2 + x1 x2 − 3 = 0

(a) Reescreva-o numa forma apropriada para aplicação do método


iterativo simples.
(b) Efectue 11 iterações deste método partindo do ponto (1.5, 1).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 154 / 458


Sistemas de equações não lineares Método iterativo simples

Método iterativo simples: exemplo


x1 = [ln(x1 x2 ) + 8]/4 = 0

x2 = [2x1 + x1 x2 − 3]/4
k x1,(k) x2,(k) g1 (x1,(k) , x2,(k) ) g2 (x1,(k) , x2,(k) )
0 1.50000 1.00000 2.10137 0.30619
1 2.10137 0.30619 1.88976 0.50122
2 1.88976 0.50122 1.98643 0.43819
3 1.98643 0.43819 1.96531 0.47646
4 1.96531 0.47646 1.98357 0.47457
5 1.98357 0.47457 1.98489 0.48434
6 1.98489 0.48434 1.99015 0.48757
7 1.99015 0.48757 1.99247 0.49134
8 1.99247 0.49134 1.99469 0.49359
9 1.99469 0.49359 1.99611 0.49541
10 1.99611 0.49541 1.99721 0.49666

MIEEC (FEUP) MÉTODOS NUMÉRICOS 155 / 458


Sistemas de equações não lineares Método iterativo simples

Método iterativo simples: convergência


Teorema
Seja D ⊂ Rn um conjunto fechado e convexo. Seja G : D → Rn de classe
C 1 . Se
i) existe um número
L < 1 tal que
∂gi
maxj ∂xj (x) ≤ L ∀i = 1 . . . n ∀x ∈ D
ii) G (D) ⊂ D
então
i) existe um e só um z ∈ D tal que z = G (z)
ii) o método iterativo simples converge para z, ∀x(0) ∈ D
iii) verifica-se que

L
kz − x(k) k ≤ kx − x(k−1) k
1 − L (k)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 156 / 458


Sistemas de equações não lineares Método iterativo simples

Método iterativo simples: exemplo 2

Considere o sistema de equações definido em R2 .



4x1 − cos(x1 + x2 ) = 4,
3x2 − sin(x1 + x2 ) = 6.

(a) Verifique que o sistema tem uma e uma só solução.


(b) Aplicando o método iterativo simples, determine tal solução com um
erro máximo de 10−5 na soma dos módulos de cada uma das
componentes do erro (norma 1).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 157 / 458


Sistemas de equações não lineares Método iterativo simples

Método iterativo simples: exemplo 2

k x1,(k) x2,(k) g1 (x1,(k) , x2,(k) ) g2 (x1,(k) , x2,(k) ) εk+1


0 1.000000 1.000000 0.895963 2.303099 2.0
1 0.895963 2.303099 0.750413 1.980854 6.5 × 10−1
2 0.750413 1.980854 0.770752 2.132969 2.4 × 10−1
3 0.770752 2.132969 0.757040 2.078545 9.5 × 10−2
4 0.757040 2.078545 0.761614 2.100418 3.7 × 10−2
5 0.761614 2.100418 0.759706 2.091978 1.4 × 10−2
6 0.759706 2.091978 0.760433 2.095288 5.7 × 10−3
7 0.760433 2.095288 0.760146 2.093998 2.2 × 10−3
8 0.760146 2.093998 0.760257 2.094502 8.6 × 10−4
9 0.760257 2.094502 0.760214 2.094305 3.4 × 10−4
10 0.760214 2.094305 0.760231 2.094382 1.3 × 10−4
11 0.760231 2.094382 0.760224 2.094352 5.1 × 10−5
12 0.760224 2.094352 0.760227 2.094364 2.0 × 10−5
13 0.760227 2.094364 0.760226 2.094359 7.8 × 10−6

MIEEC (FEUP) MÉTODOS NUMÉRICOS 158 / 458


Sistemas de equações não lineares Método de Newton

Vamos agora ver ...

1 Erros

2 Equações não Lineares

3 Sistemas de equações não lineares


Método iterativo simples
Método de Newton

4 Aproximação de funções

5 Interpolação polinomial

6 Integração numérica

7 Sobre normas de vectores e matrizes


MIEEC (FEUP) MÉTODOS NUMÉRICOS 159 / 458
Sistemas de equações não lineares Método de Newton

Método de Newton

Sendo JF (x) não singular tem-se

F (x) = 0 ⇔ [JF (x)]−1 F (x) = 0

ou ainda
x = x − [JF (x)]−1 F (x)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 160 / 458


Sistemas de equações não lineares Método de Newton

Método de Newton

Expressão de recorrência

x(k+1) = x(k) − [JF (x(k) )]−1 F (x(k) ), k = 0, 1, . . .

Determinação de x(k+1)
1 calcular F (x(k) )
2 calcular JF (x(k) )
3 calcular v(k) resolvendo o SEL JF (x(k) ) v(k) = F (x(k) )
4 calcular x(k+1) = x(k) − v(k)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 161 / 458


Sistemas de equações não lineares Método de Newton

Método de Newton: caso R2


f1 (x1 , x2 ) = 0
Para o sistema de equações ,
f2 (x1 , x2 ) = 0
  " #
∂f1 ∂f1
a b
a matriz jacobiana JF (x1 , x2 ) = = ∂x 1
∂f2
∂x2
∂f2
c d ∂x1
  ∂x2
d −b
tem como inversa JF−1 (x1 , x2 ) = ad−bc1
.
−c a
Logo      
x1,(k+1) x1,(k) f1
= − JF−1 (x1,(k) , x2,(k) )
x2,(k+1) x2,(k) f2
     
x1,(k+1) x1,(k) 1 df1 − bf2
= − (x1,(k) , x2,(k) )
x2,(k+1) x2,(k) ad − bc −cf1 + af2

MIEEC (FEUP) MÉTODOS NUMÉRICOS 162 / 458


Sistemas de equações não lineares Método de Newton

Método de Newton: convergência

Teorema
Sejam F de classe C 2 e z tal que F (z) = 0.
Se det(JF (z)) 6= 0 a sucessão gerada pelo método de Newton converge
para z qualquer que seja o ponto inicial x(0) suficientemente próximo de z.
Verifica-se ainda que existe uma constante positiva c tal que

kz − x(k) k ≤ c kz − x(k−1) k2 ,

ou seja, a convergência é quadrática.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 163 / 458


Sistemas de equações não lineares Método de Newton

Método de Newton: exemplo

Aplique o método de Newton para resolver o sistema de equações



4x1 x22 − 2x12 x2 + 2 = 0

2x1 − 4x2 + x1 x2 − 3 = 0.

Parta do ponto (1.5, 1) e termine a aplicação do método assim que da


diferença entre duas estimativas consecutivas seja inferior 5 × 10−6 em
qualquer das componentes do erro (norma ∞)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 164 / 458


Sistemas de equações não lineares Método de Newton

Método de Newton: exemplo

k x1,(k) x2,(k) v1,(k) v2,(k) x1,(k+1) x2,(k+1) kx(k+1) − x(k) k∞


0 1.500000 1.000000 −0.793659 0.255024 2.293659 0.744976 7.9 × 10−1
1 2.293659 0.744976 0.360263 0.290966 1.933395 0.454010 3.6 × 10−1
2 1.933395 0.454010 −0.066606 −0.046156 2.000001 0.500166 6.7 × 10−2
3 2.000001 0.500166 0.000001 0.000166 2.000000 0.500000 1.7 × 10−4
4 2.000000 0.500000 0.000000 0.000000 2.000000 0.500000 7.3 × 10−8

MIEEC (FEUP) MÉTODOS NUMÉRICOS 165 / 458


Sistemas de equações não lineares Método de Newton

Método de Newton: algumas dificuldades

Cálculo de JF e resolução do sistema JF · v = F

→ aproximar numericamente as derivadas


→ não recalcular JF em todas as iterações

Dificuldades de convergência

→ x(k+1) = x(k) − αk · [JF (x(k) )]−1 F (x(k) )

αk tal que kF (x(k+1) )k ≤ kF (x(k) )k

→ ...

MIEEC (FEUP) MÉTODOS NUMÉRICOS 166 / 458


Aproximação de funções

Um novo capítulo ...

1 Erros

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação polinomial

6 Integração numérica

7 Sobre normas de vectores e matrizes

8 Sistemas de equações lineares


MIEEC (FEUP) MÉTODOS NUMÉRICOS 167 / 458
Aproximação de funções

Aproximação de funções

Qual a recta y = ax + b que melhor aproxima um dado conjunto de pontos


(xi , yi )?

E se for uma parábola y = ax 2 + bx + c?

E se for uma função y = a sin x + b cos x?

Como é que estes problemas se relacionam com projectar pontos em


planos?

..
.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 168 / 458


Aproximação de funções

Aproximação

bc
bc
(xn , yn )
g (x)

bc

bc
bc
(x1 , y1 ) (x2 , y2 )
x

Dados os pontos (x1 , y1 ), (x2 , y2 ), . . . , (xn , yn )

Determinar uma função g : R → R tal que

g (xi ) seja próximo de yi

MIEEC (FEUP) MÉTODOS NUMÉRICOS 169 / 458


Aproximação de funções

Funções aproximantes

A função aproximante depende de constantes c1 , c2 , . . . , ck

g (x) = F (x; c1 , c2 , . . . , ck )

O problema de aproximação consiste em determinar o vector de parâmetros


(c1 , . . . , ck ) tal que a função g melhor aproxime os pontos dados.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 170 / 458


Aproximação de funções

Critérios de aproximação

Para determinar a função que melhor aproxima os pontos dados é


necessário definir um critério que permita comparar funções aproximantes.

Este critério deverá depender dos desvios di definidos por

di = yi − F (xi ; c1 , . . . , ck ) i = 1, . . . , n

e deverá garantir que a função aproximante torne os desvios “pequenos”.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 171 / 458


Aproximação de funções

Critérios de aproximação

Alguns dos critérios utilizados são


Pn
1 minimizar
i=1 |di |

2 minimizar max |di |


1≤i≤n
Pn 2
3 minimizar i=1 di

MIEEC (FEUP) MÉTODOS NUMÉRICOS 172 / 458


Aproximação de funções

Funções aproximantes

Em muitas situações, F (x; c1 , . . . , ck ) é escolhida como uma combinação


linear de funções φ1 , . . . , φk

F (x; c1 , . . . , ck ) = c1 φ1 (x) + · · · + ck φk (x)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 173 / 458


Aproximação de funções Aproximação dos mínimos quadrados

Vamos agora ver ...

1 Erros

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções
Aproximação dos mínimos quadrados
Aproximação em espaços vectoriais
Sistemas Sobredeterminados

5 Interpolação polinomial

6 Integração numérica

MIEEC (FEUP) MÉTODOS NUMÉRICOS 174 / 458


Aproximação de funções Aproximação dos mínimos quadrados

Aproximação dos mínimos quadrados

Dados os pares (xi , yi )ni=1 e as funções φ1 , . . . , φk , calcular os parâmetros


c1 , . . . , ck que minimizam
n
X n
X
e(c1 , . . . , ck ) = di2 = [yi − ( c1 φ1 (xi ) + . . . + ck φk (xi ) )]2
i=1 i=1

isto é, que minimizam a soma dos quadrados dos desvios.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 175 / 458


Aproximação de funções Aproximação dos mínimos quadrados

Mínimos quadrados: equações normais

 n n n n
 X X X X

 c φ 2
(x ) + c φ (x )φ (x ) + · · · + c φ (x )φ (x ) = yi φ1 (xi )

 1 1 i 2 1 i 2 i k 1 i k i



 i =1 i =1 i =1 i =1
 n n n n
 c X φ (x )φ (x ) + c X φ2 (x ) + · · · + c X φ (x )φ (x ) = X y φ (x )

1 2 i 1 i 2 2 i k 2 i k i i 2 i

 i =1 i =1 i =1 i =1

 .........



 X n X n Xn X n


 c1
 φk (xi )φ1 (xi ) + c2 φk (xi )φ2 (xi ) + · · · + ck φ2k (xi ) = yi φk (xi )
i =1 i =1 i =1 i =1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 176 / 458


Aproximação de funções Aproximação dos mínimos quadrados

MQ: aproximação por uma recta

As funções aproximantes serão da forma g (x) = c1 + c2 x, ou seja, k = 2,


φ1 (x) = 1 e φ2 (x) = x.

O sistema de equações a resolver é


   
X
n X
n
  X
n
 1 xi  c 1  yi 
 i=1   
 n i=1   =  i=1 
 X Xn   X
n 
 xi xi2  c2  xi yi 
i=1 i=1 i=1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 177 / 458


Aproximação de funções Aproximação dos mínimos quadrados

MQ: aproximação por uma recta

Os somatórios envolvidos são facilmente determinados com base na tabela


xi yi xi2 xi yi
x1 y1 x12 x1 y1
x2 y2 x22 x2 y2
... ... ... ...
xn yn 2
P P Pxn 2 Pn yn
x
xi yi xi xi yi

MIEEC (FEUP) MÉTODOS NUMÉRICOS 178 / 458


Aproximação de funções Aproximação dos mínimos quadrados

MQ: aproximação por uma parábola

As funções aproximantes são do tipo g (x) = c1 + c2 x + c3 x 2 , ou seja,


k = 3, φ1 (x) = 1, φ2 (x) = x e φ3 (x) = x 2 .

O sistema de equações a resolver é


 X n X
n X
n   X n 
1 xi xi2   yi
  c1  
 i=1   i=1 
 X i=1
X
i=1
X    X 
 n n n
   n 
 xi xi2 xi3   c2  =  xi yi 
    
 i=1    i=1 
 Xn
i=1
X
n
i=1
X
n   X
n 
  c3  
xi2 xi3 xi4 xi2 yi
i=1 i=1 i=1 i=1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 179 / 458


Aproximação de funções Aproximação dos mínimos quadrados

Mínimos quadrados: exemplo

Determine a aproximação dos mínimos quadrados aos pontos da tabela

x 1 2 4 5 7 8 10
y 1 1 4 4 6 6 7
por
a) uma recta
b) uma parábola
c) uma recta que minimize o erro em x

MIEEC (FEUP) MÉTODOS NUMÉRICOS 180 / 458


Aproximação de funções Aproximação dos mínimos quadrados

Exemplo

bc

bc bc

bc bc
y = 0.3333 + 0.7207x

y = −0.5372 + 1.1901x − 0.04353x 2

x = −0.1475 + 1.3115y

bc bc

MIEEC (FEUP) MÉTODOS NUMÉRICOS 181 / 458


Aproximação de funções Aproximação dos mínimos quadrados

Redução a problemas de mínimos quadrados

Se a função aproximante não puder ser escrita como

F (x; c1 , . . . , ck ) = c1 φ1 (x) + . . . + c2 φk (x)

a aproximação dos mínimos quadrados origina um sistema de equações


não lineares (resolução "difícil").

Contudo, se existir uma função g tal que

g (F (x; c1 , . . . , ck )) = b1 φ1 (x) + · · · + bk φk (x)

e b1 = ψ1 (c1 ), b2 = ψ1 (c2 ), . . . , bk = ψk (ck )

obtém-se uma função aproximante resolvendo um SEL.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 182 / 458


Aproximação de funções Aproximação dos mínimos quadrados

Redução a problemas de mínimos quadrados

Para tal, deverá ser determinada a função

b1 φ1 (x) + · · · + bk φk (x)

que melhor aproxima os pontos (xi , g (yi )) no sentido dos mínimos


quadrados, isto é, que minimiza a soma dos quadrados dos desvios
modificados
d̃i = g (yi ) − g (F (xi ; c1 , . . . , ck ))

Após a resolução deste problema, os cj calculam-se por

cj = ψj−1 (bj ), j = 1, . . . , k.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 183 / 458


Aproximação de funções Aproximação dos mínimos quadrados

Redução a problemas de MQ: exemplo

Aproximar por uma função da forma y = c1 x c2 os pontos

x 1 1.2 1.6 2
y 1 1.3 1.4 1.7

MIEEC (FEUP) MÉTODOS NUMÉRICOS 184 / 458


Aproximação de funções Aproximação dos mínimos quadrados

Redução a problemas de MQ: exemplo

bc

y = 1.05x 0.69
bc

bc

bc

MIEEC (FEUP) MÉTODOS NUMÉRICOS 185 / 458


Aproximação de funções Aproximação em espaços vectoriais

Vamos agora ver ...

1 Erros

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções
Aproximação dos mínimos quadrados
Aproximação em espaços vectoriais
Sistemas Sobredeterminados

5 Interpolação polinomial

6 Integração numérica

MIEEC (FEUP) MÉTODOS NUMÉRICOS 186 / 458


Aproximação de funções Aproximação em espaços vectoriais

Aproximação em espaços vectoriais

V espaço vectorial com o produto interno h·, ·i

k · k norma em V induzida pelo produto interno, isto é,


p
kv k = hv , v i , v ∈V

{v1 , v2 , . . . , vk } vectores de V linearmente independentes

Dado u ∈ V pretende-se determinar a combinação linear


c1 v1 + c2 v2 + · · · + ck vk que melhor aproxima u, no sentido de tornar
mínimo,
ku − (c1 v1 + c2 v2 + · · · + ck vk )k2

MIEEC (FEUP) MÉTODOS NUMÉRICOS 187 / 458


Aproximação de funções Aproximação em espaços vectoriais

Aproximação em espaços vectoriais

Teorema
Sejam os vectores {v1 , v2 , . . . , vk } de V linearmente independentes e um
vector u ∈ V . A combinação linear c1 v1 + c2 v2 + · · · + ck vk que torna
mínimo o valor
ku − (c1 v1 + c2 v2 + · · · + ck vk )k2
satisfaz as relações

h vj , u − (c1 v1 + c2 v2 + · · · + ck vk ) i = 0, j = 1, 2, . . . , k.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 188 / 458


Aproximação de funções Aproximação em espaços vectoriais

Aproximação em espaços vectoriais

O sistema de equações que determina c1 , c2 , . . . , ck é


    
hv1 , v1 i hv1 , v2 i . . . hv1 , vk i c1 hv1 , ui
 hv2 , v1 i hv2 , v2 i . . . hv2 , vk i   c2   hv2 , ui 
    
 .. .. .. ..   ..  =  .. 
 . . . .  .   . 
hvk , v1 i hvk , v2 i . . . hvk , vk i ck hvk , ui

e designa-se por sistema de equações normais.

Sendo v1 , v2 , . . . , vk linearmente independentes, este sistema tem solução


única, qualquer que seja u ∈ V .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 189 / 458


Aproximação de funções Aproximação em espaços vectoriais

MQ e aproximação em espaços vectoriais

Dados os pares (xi , yi )ni=1 e as funções φ1 (x), . . . , φk (x) pretende-se


determinar a combinação linear

c1 φ1 (x) + · · · + ck φk (x)

que minimiza a soma dos quadrados dos desvios.

Definam-se φ̄1 , . . . , φ̄k , ȳ ∈ Rn de acordo com


     
φ1 (x1 ) φk (x1 ) y1
 φ1 (x2 )   φk (x2 )   y2 
     
φ̄1 =  ..  , . . . , φ̄k =  .. , e ȳ =  .. 
 .   .   . 
φ1 (xn ) φk (xn ) yn

MIEEC (FEUP) MÉTODOS NUMÉRICOS 190 / 458


Aproximação de funções Aproximação em espaços vectoriais

MQ e aproximação em espaços vectoriais

Determinar a combinação linear c1 φ1 (x) + · · · + ck φk (x) que minimiza a


soma dos quadrados dos desvios

é equivalente a

Determinar a combinação linear c1 φ̄1 + · · · + ck φ̄k que minimiza o valor

kȳ − (c1 φ̄1 + · · · + ck φ̄k )k2

MIEEC (FEUP) MÉTODOS NUMÉRICOS 191 / 458


Aproximação de funções Aproximação em espaços vectoriais

MQ e aproximação em espaços vectoriais

Os valores c1 , c2 , . . . , ck são determinados resolvendo


    
hφ̄1 , φ̄1 i hφ̄1 , φ̄2 i . . . hφ̄1 , φ̄k i c1 hφ̄1 , ȳ i
 hφ̄2 , φ̄1 i hφ̄2 , φ̄2 i    
. . . hφ̄2 , φ̄k i   c2   hφ̄2 , ȳ i 
 
 .. .. .. ..   ..  =  .. 
 . . . .  .   . 
hφ̄k , φ̄1 i hφ̄k , φ̄2 i . . . hφ̄k , φ̄k i ck hφ̄k , ȳ i

MIEEC (FEUP) MÉTODOS NUMÉRICOS 192 / 458


Aproximação de funções Aproximação em espaços vectoriais

MQ e aproximação em espaços vectoriais

Este sistema de equações pode ser escrito na forma


 n n n 
X X X  X 
n
 φ1 (xi )φ1 (xi ) φ1 (xi )φ2 (xi ) ... φ1 (xi )φk (xi ) 
   φ1 (xi )yi 
 i =1 i =1 i =1    i =1 
 X n X n X n  c1  n 
   X 
 φ2 (xi )φ1 (xi ) φ2 (xi )φ2 (xi ) ... φ2 (xi )φk (xi )   c2   
   φ2 (xi )yi
 i =1 i =1 i =1  . =



  .   i =1 
 . . .. .  .   
 . . .   ... 
 . . . .  ck  X n 
   
 n
X n
X X n  φk (xi )yi
 
φk (xi )φ1 (xi ) φk (xi )φ2 (xi ) ... φk (xi )φk (xi )
i =1
i =1 i =1 i =1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 193 / 458


Aproximação de funções Aproximação em espaços vectoriais

MQ e aproximação em espaços vectoriais

Este sistema tem solução única se os vectores φ̄1 , φ̄2 , . . . , φ̄k , forem
linearmente independentes.

Neste caso, diz-se que as funções φ1 , . . . , φk são linearmente


independentes nos pontos x1 , x2 , . . . , xn .

Então, o número de pontos (n) deverá ser sempre superior ou igual ao


número de funções consideradas (k).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 194 / 458


Aproximação de funções Aproximação em espaços vectoriais

Exercício

Determine a melhor aproximação y = a sin(x) + b cos(x), no sentido dos


mínimos quadrados, dos pontos da tabela.
π 3π
x 0 2 π 2
y −1.3 1.55 1.2 −1.45

Resolva o exercício usando o formalismo da aproximação em espaços


vectoriais.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 195 / 458


Aproximação de funções Aproximação em espaços vectoriais

Vectores ortogonais

Se hvi , vj i = 0 para i 6= j (vectores ortogonais), então


    
hv1 , v1 i 0 ... 0 c1 hv1 , ui
 0 hv , v i . . . 0     
 2 2   2   hv2 , ui
c 
 .. .. . .. .
..   ..  =  .. 
 . .  .   . 
0 0 . . . hvk , vk i ck hvk , ui

Concluindo-se que
hvj , ui
cj =
hvj , vj i

MIEEC (FEUP) MÉTODOS NUMÉRICOS 196 / 458


Aproximação de funções Aproximação em espaços vectoriais

Exercício: aprox. por exponenciais complexas

Z T
Sejam f , g : [0, T ] → C e defina-se hf , g i = f ∗ (t)g (t)dt.
0

2kπ
j T t
1 Verifique que
√ as funções vk (t) = e com k ∈ Z são ortogonais.
Nota: j = −1.
(
1 se 0 ≤ t ≤ T2
2 Considere a função h(t) =
0 se T2 < t ≤ T
Qual a combinação linear de v−N , . . . , v0 , . . . , vN que melhor aproxima
h no sentido dos mínimos quadrados?

MIEEC (FEUP) MÉTODOS NUMÉRICOS 197 / 458


Aproximação de funções Aproximação em espaços vectoriais

Exemplo

MIEEC (FEUP) MÉTODOS NUMÉRICOS 198 / 458


Aproximação de funções Sistemas Sobredeterminados

Vamos agora ver ...

1 Erros

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções
Aproximação dos mínimos quadrados
Aproximação em espaços vectoriais
Sistemas Sobredeterminados

5 Interpolação polinomial

6 Integração numérica

MIEEC (FEUP) MÉTODOS NUMÉRICOS 199 / 458


Aproximação de funções Sistemas Sobredeterminados

Sistemas Sobredeterminados

O sistema de equações (na variável c = c1 , . . . , ck )


  Pk
 F (x1 , c) = y1
 
 j=1 φj (x1 )cj = y1
.. ⇔ .. ⇔ Ac = y
 .  .
  Pk
F (xm , c) = ym j=1 φj (xm )cj = ym

é, para um problema de MQ, em geral sobredeterminado (n.o de equações


m > n.o incógnitas k). Não tem solução se n.o linhas lin. indep. > k).

Defina-se “solução mínimos quadrados” deste sistema o vector c ∈ R que


minimiza a soma dos quadrados dos desvios

kd k2 = ky − Ack2

MIEEC (FEUP) MÉTODOS NUMÉRICOS 200 / 458


Aproximação de funções Sistemas Sobredeterminados

Desenvolvendo a expressão

kd k2 = ky − Ack2 = (y − Ac)T (y − Ac) =


= y T y − 2y T Ac − c T AT AC

Derivando em ordem a c e igualando a zero

−2y T A + 2c T AT A = 0

⇔ AT Ac = AT y (1)

Se a matriz AT A possuir inversa (se as colunas de A forem lin. indep.)


então
c = (AT A)−1 AT y

MIEEC (FEUP) MÉTODOS NUMÉRICOS 201 / 458


Aproximação de funções Sistemas Sobredeterminados

Pseudo-inversa

A matriz (AT A)−1 AT designa-se por pseudo-inversa e representa-se por


A+ . No caso em que A admite inversa A+ = A−1 .
Teorema
Seja Ac = y um sistema (sobredeterminado ou não) em que as colunas de
A são linearmente independentes. Então a solução de mínimos quadrados
do sistema é dada por
c = A+ y
onde A+ = (AT A)−1 AT .

Em alguns sistemas de computação numérica (ex: Matlab) a solução de


sistemas sobredeterminados é dada desta forma.
Exemplo: Em Matlab
» c=inv(A)*y
dá-nos a solução de MQ do sistema Ac = y .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 202 / 458


Aproximação de funções Sistemas Sobredeterminados

Normalidade

A expressão (1)
AT Ac = AT y
é uma outra forma de escrever as equações normais, pois reescrevendo
como
AT (Ac − y ) = 0 ⇔ AT d = 0

verificamos que os desvios são ortogonais às colunas de A.

(Comparar com o 1o teorema deste capítulo.)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 203 / 458


Interpolação polinomial

Um novo capítulo ...

1 Erros

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação polinomial

6 Integração numérica

7 Sobre normas de vectores e matrizes

8 Sistemas de equações lineares


MIEEC (FEUP) MÉTODOS NUMÉRICOS 204 / 458
Interpolação polinomial

Interpolação

Por 2 pontos passa uma recta.


Por 3 será uma parábola?
E por 4? uma cúbica!? . . .

Como podem os polinómios ajudar a resolver equações não lineares?

O que são cubic splines?

..
.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 205 / 458


Interpolação polinomial

Interpolação

y
bc

g (x) bc

(xn , yn )

bc

bc
bc
(x0 , y0 ) (x1 , y1 )
x

Dados os pontos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn )

Determinar uma função g : R → R tal que


g (x0 ) = y0 , g (x1 ) = y1 , ..., g (xn ) = yn

x0 , x1 , . . . , xn são os nós de interpolação (i 6= j ⇒ xi 6= xj )

MIEEC (FEUP) MÉTODOS NUMÉRICOS 206 / 458


Interpolação polinomial

Aplicações da interpolação

Cálculo de funções fornecidas por tabelas

Quando se conhecem apenas alguns dos valores de uma função, por


exemplo obtidos experimentalmente

Aproximação de funções cujo cálculo seja complexo ou exija grande


esforço

Base de muitos métodos numéricos

MIEEC (FEUP) MÉTODOS NUMÉRICOS 207 / 458


Interpolação polinomial

Interpolação polinomial

Uma função p diz-se polinomial de grau n se puder ser escrita na forma

p(x) = an x n + an−1 x n−1 + · · · + a1 x + a0

onde n ∈ N0 e an 6= 0.

Se p(x) = 0, o polinómio diz-se nulo, e o seu grau é, por convenção, −∞.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 208 / 458


Interpolação polinomial

Interpolação polinomial

Utilização de funções interpoladoras polinomiais

o seu cálculo é feito com um número finito de multiplicações e somas

as operações de derivação e primitivação são simples

são funções de classe C ∞

aproximam tanto quanto se queira qualquer função contínua num


intervalo finito

MIEEC (FEUP) MÉTODOS NUMÉRICOS 209 / 458


Interpolação polinomial

Aproximação por polinómios

Teorema (Weierstrass)

Seja [a, b] um intervalo real e f uma função contínua em [a, b]. Então,
qualquer que seja ε > 0, existe uma função polinomial p tal que

max |f (x) − p(x)| < ε.


x∈[a,b]

y
f (x) + ε
f (x)
f (x) − ε

p(x)

a b x
MIEEC (FEUP) MÉTODOS NUMÉRICOS 210 / 458
Interpolação polinomial

Formas polinomiais

Forma de potências simples

p(x) = a0 + a1 x + a2 x 2 + · · · + an x n

Forma de potências centradas

p(x) = ā0 + ā1 (x − c) + ā2 (x − c)2 + · · · + ān (x − c)n

Forma de Newton
p(x) = ã0 + ã1 (x − c1 ) + ã2 (x − c1 )(x − c2 ) + · · · + ãn (x − c1 ) · · · (x − cn )

MIEEC (FEUP) MÉTODOS NUMÉRICOS 211 / 458


Interpolação polinomial

Cálculo de polinómios: algoritmo de Horner

Forma de potências simples:

p(x) = a0 + a1 x + · · · + an x n

y ← an
Para i = n − 1 até 0 fazer
y ← ai + y · x

MIEEC (FEUP) MÉTODOS NUMÉRICOS 212 / 458


Interpolação polinomial

Cálculo de polinómios: algoritmo de Horner

Forma de Newton:

p(x) = a0 + a1 (x − c1 ) + · · · + an (x − c1 ) · · · (x − cn )

y ← an
Para i = n − 1 até 0 fazer
y ← ai + y · (x − ci+1 )

MIEEC (FEUP) MÉTODOS NUMÉRICOS 213 / 458


Interpolação polinomial Polinómio interpolador: unicidade e existência

Vamos agora ver ...

5 Interpolação polinomial
Polinómio interpolador: unicidade e existência
Forma de Lagrange
Forma de Aitken-Neville
Forma de Newton
Diferenças divididas
Diferenças fiinitas
Interpolação directa e inversa
Dupla interpolação
Erro de interpolação
Splines

MIEEC (FEUP) MÉTODOS NUMÉRICOS 214 / 458


Interpolação polinomial Polinómio interpolador: unicidade e existência

Polinómio interpolador: unicidade e existência

Teorema
Dados os nós distintos x0 , x1 , . . . , xn e os valores nodais y0 , y1 , . . . , yn ,
existe um e um só polinómio p de grau menor ou igual a n que interpola
os valores yi nos nós xi , ou seja, tal que

p(xi ) = yi , i = 0, 1, . . . , n.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 215 / 458


Interpolação polinomial Polinómio interpolador: unicidade e existência

Existência e unicidade de polinómio interpolador

Os coeficientes do polinómio interpolador verificam


 n
 a0 + a1 x0 + . . . + an x0n = y0


a0 + a1 x1 + . . . + an x1 = y1

 . ..

a0 + a1 xn + . . . + an xnn = yn

que não é mais do que um sistema de n + 1 equações lineares nas n + 1


incógnitas a0 , a1 , . . . , an .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 216 / 458


Interpolação polinomial Polinómio interpolador: unicidade e existência

Determinante de Vandermonde


1 x0 x02 . . . x0n−1 x0n

1 x1 x12 . . . x1n−1 x1n

v (x0 , x1 , . . . , xn ) = .. .. .. . . .. ..
. . . . . .

1 xn xn2 . . . xnn−1 xnn

MIEEC (FEUP) MÉTODOS NUMÉRICOS 217 / 458


Interpolação polinomial Polinómio interpolador: unicidade e existência

Determinante de Vandermonde


1 x0 x02 . . . x0n−1 0

1 x1 x12 . . . x1n−1 x1n−1 (x1 − x0 )

.. .. .. . . .. ..
. . . . . .

1 xn xn2 . . . xnn−1 xnn−1 (xn − x0 )

MIEEC (FEUP) MÉTODOS NUMÉRICOS 218 / 458


Interpolação polinomial Polinómio interpolador: unicidade e existência

Determinante de Vandermonde


1 x0 x02 ... x0n−2 0 0

1 x1 x12 ... x1n−2 x1n−2 (x1 − x0 )
x1n−1 (x1 − x0 )

.. .. .. .. .. .. ..
. . . . . . .

1 xn xn2 ... xnn−2 xn (xn − x0 ) xn (xn − x0 )
n−2 n−1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 219 / 458


Interpolação polinomial Polinómio interpolador: unicidade e existência

Determinante de Vandermonde


1 0 0 ... 0 0

1 x1 − x0 x1 (x1 − x0 ) ... x1n−2 (x1 − x0 )
x1n−1 (x1 − x0 )

.. .. .. .. .. ..
. . . . . .

1 xn − x0 xn (xn − x0 ) . . . xn (xn − x0 ) xn (xn − x0 )
n−2 n−1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 220 / 458


Interpolação polinomial Polinómio interpolador: unicidade e existência

Determinante de Vandermonde


x1 − x0 x1 (x1 − x0 ) ... x1n−2 (x1 − x0 )
x1n−1 (x1 − x0 )

x2 − x0 x2 (x2 − x0 ) ... x2n−2 (x2 − x0 )
x2n−1 (x2 − x0 )

.. .. .. .. ..
. . . . .

xn − x0 xn (xn − x0 ) . . . xn (xn − x0 ) xn (xn − x0 )
n−2 n−1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 221 / 458


Interpolação polinomial Polinómio interpolador: unicidade e existência

Determinante de Vandermonde


1 x1 x12 ... x1n−1

1 x2 x22 ... x2n−1

(x1 − x0 ) · (x2 − x0 ) · · · (xn − x0 ) · .. .. .. .. ..
. . . . .

1 xn xn2 ... xnn−1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 222 / 458


Interpolação polinomial Polinómio interpolador: unicidade e existência

Determinante de Vandermonde

 
Yn
v (x0 , x1 , . . . , xn ) =  (xj − x0 ) · v (x1 , . . . , xn )
j=1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 223 / 458


Interpolação polinomial Polinómio interpolador: unicidade e existência

Determinante de Vandermonde

     
Yn Y
n Yn
v (x0 , x1 , . . . , xn ) =  (xj − x0 ) ·  (xj − x1 ) · . . . ·  (xj − xn−1 )
j=1 j=2 j=n

é não nulo se os nós forem distintos!

MIEEC (FEUP) MÉTODOS NUMÉRICOS 224 / 458


Interpolação polinomial Polinómio interpolador: unicidade e existência

Construção do polinómio interpolador

Dados os valores (yi )ni=0 nos nós distintos (xi )ni=0 , como se determina o
polinómio interpolador p, de grau ≤ n?

Uma possibilidade é resolver o sistema de equações




 a0 + a1 x0 + . . . + an x0n = y0

a0 + a1 x1 + . . . + an x1n = y1

 ...

a0 + a1 xn + . . . + an xnn = yn

Abordagem não aconselhável . . . vamos estudar outras!

MIEEC (FEUP) MÉTODOS NUMÉRICOS 225 / 458


Interpolação polinomial Forma de Lagrange

Vamos agora ver ...

5 Interpolação polinomial
Polinómio interpolador: unicidade e existência
Forma de Lagrange
Forma de Aitken-Neville
Forma de Newton
Diferenças divididas
Diferenças fiinitas
Interpolação directa e inversa
Dupla interpolação
Erro de interpolação
Splines

MIEEC (FEUP) MÉTODOS NUMÉRICOS 226 / 458


Interpolação polinomial Forma de Lagrange

Forma de Lagrange

Os polinómios de Lagrange definem-se por


n
Y x − xi
Lk (x) =
xk − xi
i=0
i6=k

e verificam as relações
(
1 se k = j
Lk (xj ) = δkj =
0 se k 6= j

onde δkj é o designado delta de Kronecker

MIEEC (FEUP) MÉTODOS NUMÉRICOS 227 / 458


Interpolação polinomial Forma de Lagrange

Forma de Lagrange: polinómios Lk (x)

L0 (x)
L1 (x) L3 (x)

x0 x1 x2 x3 x

L2 (x)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 228 / 458


Interpolação polinomial Forma de Lagrange

Existência e unicidade: outra vez

Mostramos assim de uma outra forma, construtiva, a existência do


polinómio interpolador.
Teorema
O polinómio
n
X
p(x) = yk Lk (x),
k=0

tem grau menor ou igual a n e interpola os valores y0 , y1 , . . . , yn nos nós


distintos x0 , x1 , . . . , xn .

A unicidade mostra-se facilmente. Suponha-se que p1 (x) e p2 (x) são dois


polinómios interpoladores de grau menor ou igual que ≤ n. O polinómio
d (x) = p1 (x) − p2 (x) tem grau ≤ n e tem pelo menos n + 1 zeros nos nós.
Logo d (x) = 0.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 229 / 458


Interpolação polinomial Forma de Lagrange

Forma de Lagrange: exemplo

Determinar o polinómio de grau menor ou igual a 3 que interpola os valores

x −1 0 2 3
y 6 −12 18 24

MIEEC (FEUP) MÉTODOS NUMÉRICOS 230 / 458


Interpolação polinomial Forma de Lagrange

Forma de Lagrange

Quando se altera ou adiciona um nó é necessário recalcular todos os


polinómios Lk

Se um ou mais valores nodais forem alterados, os polinómios Lk


mantêm-se, sendo apenas necessário recalcular a combinação destes
para obter p(x)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 231 / 458


Interpolação polinomial Forma de Aitken-Neville

Vamos agora ver ...

5 Interpolação polinomial
Polinómio interpolador: unicidade e existência
Forma de Lagrange
Forma de Aitken-Neville
Forma de Newton
Diferenças divididas
Diferenças fiinitas
Interpolação directa e inversa
Dupla interpolação
Erro de interpolação
Splines

MIEEC (FEUP) MÉTODOS NUMÉRICOS 232 / 458


Interpolação polinomial Forma de Aitken-Neville

Forma de Aitken-Neville

pm+1,k (x)
ym+k bc

ym+k+1 bc

pm,k+1 (x)

ym bc

ym+1 bc

pm,k (x)

xm xm+1 xm+k xm+k+1 x

MIEEC (FEUP) MÉTODOS NUMÉRICOS 233 / 458


Interpolação polinomial Forma de Aitken-Neville

Forma de Aitken-Neville

Se pm,k (x) interpola (yi )m+k m+k


i=m nos nós (xi )i=m

m+k+1 m+k+1
e se pm+1,k (x) interpola (yi )i=m+1 nos nós (xi )i=m+1

então

(x − xm+k+1 ) · pm,k (x) + (xm − x) · pm+1,k (x)


pm,k+1 (x) =
xm − xm+k+1

interpola (yi )m+k+1


i=m
m+k+1
nos nós (xi )i=m .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 234 / 458


Interpolação polinomial Forma de Aitken-Neville

Forma de Aitken-Neville

A expressão de recorrência

(x − xm+k+1 ) · pm,k (x) + (xm − x) · pm+1,k (x)


xm − xm+k+1

é uma generalização da expressão

(x − x1 ) · y0 + (x0 − x) · y1
x0 − x1

designando-se também por interpolação linear iterada

MIEEC (FEUP) MÉTODOS NUMÉRICOS 235 / 458


Interpolação polinomial Forma de Aitken-Neville

Forma de Aitken-Neville

A expressão de recorrência pode ainda ser escrita como

pm,k (x) x − xm
pm+1,k (x) x − xm+k+1
pm,k+1 (x) =
xm − xm+k+1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 236 / 458


Interpolação polinomial Forma de Aitken-Neville

Forma de Aitken-Neville

Para determinar p(x) que interpola (yi )ni=0 em (xi )ni=0 é necessário obter os
polinómios

pi,0 (x), i = 0, . . . , n
pi,1 (x), i = 0, . . . , n − 1
... e, finalmente
p0,n (x) = p(x).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 237 / 458


Interpolação polinomial Forma de Aitken-Neville

Forma de Aitken-Neville

y0 x − x0 y1 x − x1
y1 x − x1 y2 x − x2
y01 (x) = , y12 (x) = ,...
x0 − x1 x1 − x2

y01 (x) x − x0
y12 (x) x − x2
y012 (x) = , y123 (x) = . . .
x0 − x2

..
.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 238 / 458


Interpolação polinomial Forma de Aitken-Neville

Forma de Aitken-Neville: exemplo

Determinar, em x = 1, o valor do polinómio de grau menor ou igual a 3


que interpola
x −1 0 2 3
y 6 −12 18 24

MIEEC (FEUP) MÉTODOS NUMÉRICOS 239 / 458


Interpolação polinomial Forma de Aitken-Neville

Forma de Aitken-Neville

Permite calcular o valor do polinómio interpolador num ponto, sem


determinar os seus coeficientes.

É possível adicionar e retirar nós nos “extremos” reutilizando os


cálculos já efectuados.

Se os valores nodais forem alterados é necessário repetir os cálculos.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 240 / 458


Interpolação polinomial Forma de Newton

Vamos agora ver ...

5 Interpolação polinomial
Polinómio interpolador: unicidade e existência
Forma de Lagrange
Forma de Aitken-Neville
Forma de Newton
Diferenças divididas
Diferenças fiinitas
Interpolação directa e inversa
Dupla interpolação
Erro de interpolação
Splines

MIEEC (FEUP) MÉTODOS NUMÉRICOS 241 / 458


Interpolação polinomial Forma de Newton

Forma de Newton

O polinómio interpolador p é obtido na forma de Newton tomando como


centros os nós distintos x0 , x1 , . . . , xn−1

p(x) = a0 + a1 W0 (x) + · · · + an Wn−1 (x)

onde

W0 (x) = x − x0
W1 (x) = (x − x0 )(x − x1 )
...
Wn−1 (x) = (x − x0 )(x − x1 ) · · · (x − xn−1 )

MIEEC (FEUP) MÉTODOS NUMÉRICOS 242 / 458


Interpolação polinomial Forma de Newton

Forma de Newton

Teorema
Sendo os polinómios p0 , p1 , . . . , pn definidos por

p0 (x) = a0 ,
pk (x) = pk−1 (x) + ak Wk−1 (x), k = 1, . . . , n,

e definindo os valores

a0 = y0 ,
yk − pk−1 (xk )
ak = , k = 1, . . . , n,
Wk−1 (xk )

então, para k = 0, 1, . . . , n, pk interpola (yj )kj=0 nos nós (xj )kj=0 .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 243 / 458


Interpolação polinomial Forma de Newton

Forma de Newton: exemplo

Determinar o polinómio de grau menor ou igual a 2 que interpola

x −1 2 3
y 1 3 5

MIEEC (FEUP) MÉTODOS NUMÉRICOS 244 / 458


Interpolação polinomial Diferenças divididas

Vamos agora ver ...

5 Interpolação polinomial
Polinómio interpolador: unicidade e existência
Forma de Lagrange
Forma de Aitken-Neville
Forma de Newton
Diferenças divididas
Diferenças fiinitas
Interpolação directa e inversa
Dupla interpolação
Erro de interpolação
Splines

MIEEC (FEUP) MÉTODOS NUMÉRICOS 245 / 458


Interpolação polinomial Diferenças divididas

Diferenças divididas

pm,k (x) interpola (xi , yi )m+k


i=m

pm,k (x) = am,0 + am,1 (x − xm ) + · · · + am,k (x − xm ) · · · (x − xm+k−1 )

m+k+1
pm,k+1 (x) interpola (xi , yi )i=m

pm,k+1 (x) = am,0 + am,1 (x − xm ) + · · · + am,k+1 (x − xm ) · · · (x − xm+k )

am,j depende de (xi , yi )m+j


i=m → am,j = y [xm , . . . , xm+j ]

e designa-se diferença dividida (nos nós xm , . . . , xm+j ).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 246 / 458


Interpolação polinomial Diferenças divididas

Diferenças divididas

Teorema
As diferenças dividas satisfazem y [xj ] = yj , e

y [xm+1 , . . . , xm+k+1 ] − y [xm , . . . , xm+k ]


y [xm , . . . , xm+k+1 ] = .
xm+k+1 − xm

MIEEC (FEUP) MÉTODOS NUMÉRICOS 247 / 458


Interpolação polinomial Diferenças divididas

Diferenças divididas: forma de Newton

O polinómio interpolador na forma de Newton fica agora

p(x) = y [x0 ] + y [x0 , x1 ](x − x0 ) + · · · + y [x0 , . . . , xn ](x − x0 ) · · · (x − xn−1 )

onde

y [x0 ] = y0
y [x1 ] − y [x0 ]
y [x0 , x1 ] =
x1 − x0
y [x1 , x2 ] − y [x0 , x1 ]
y [x0 , x1 , x2 ] =
x2 − x0
...

MIEEC (FEUP) MÉTODOS NUMÉRICOS 248 / 458


Interpolação polinomial Diferenças divididas

Diferenças divididas: forma tabular

Exemplo com 4 nós

x y [·] y [·, ·] y [·, ·, ·] y [·, ·, ·, ·]


x0 y0
y [x0 , x1 ]
x1 y1 y [x0 , x1 , x2 ]
y [x1 , x2 ] y [x0 , x1 , x2 , x3 ]
x2 y2 y [x1 , x2 , x3 ]
y [x2 , x3 ]
x3 y3

MIEEC (FEUP) MÉTODOS NUMÉRICOS 249 / 458


Interpolação polinomial Diferenças divididas

Diferenças divididas: exemplo

Determinar, na forma de Newton, o polinómio de grau menor ou igual a 3


que interpola
x −1 0 2 3
y 6 −12 18 24

MIEEC (FEUP) MÉTODOS NUMÉRICOS 250 / 458


Interpolação polinomial Diferenças fiinitas

Vamos agora ver ...

5 Interpolação polinomial
Polinómio interpolador: unicidade e existência
Forma de Lagrange
Forma de Aitken-Neville
Forma de Newton
Diferenças divididas
Diferenças fiinitas
Interpolação directa e inversa
Dupla interpolação
Erro de interpolação
Splines

MIEEC (FEUP) MÉTODOS NUMÉRICOS 251 / 458


Interpolação polinomial Diferenças fiinitas

Diferenças finitas

Definição

A diferença finita de ordem k ∈ N0 e passo h > 0 da função f


representa-se por ∆kh f e o seu valor no ponto x é

∆0h f (x) = f (x),


∆k+1 k k
h f (x) = ∆h f (x + h) − ∆h f (x), k = 0, 1, . . .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 252 / 458


Interpolação polinomial Diferenças fiinitas

Diferenças finitas: forma tabular

x y ∆y ∆2 y ... ∆n−1 y ∆n y
x0 y0
∆y0
x1 y1 ∆ 2 y0
∆y1 ...
... ... ... ∆n−1 y0
... ... ∆n y0
... ... ... ∆n−1 y1
∆yn−2 ...
xn−1 yn−1 ∆2 yn−2
∆yn−1
xn yn

MIEEC (FEUP) MÉTODOS NUMÉRICOS 253 / 458


Interpolação polinomial Diferenças fiinitas

Diferenças finitas e diferenças divididas

Teorema
A diferença dividida de ordem k dos valores nodais y nos nós
h-equidistantes xi , xi+1 , . . . , xi+k satisfaz

1
y [xi , . . . , xi+k ] = ∆k yi
k!hk

MIEEC (FEUP) MÉTODOS NUMÉRICOS 254 / 458


Interpolação polinomial Diferenças fiinitas

Nós equidistantes: exemplo

Determinar o polinómio p, de grau menor ou igual a 3,


que interpola os valores da seguinte tabela.

x −1 1 3 5
y 2 5 3 1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 255 / 458


Interpolação polinomial Diferenças fiinitas

Forma de Newton

É possível adicionar nós e retirar nós nos “extremos” reaproveitando os


cálculos já efectuados.

A alteração dos valores nodais obriga a refazer os cálculos.

Os cálculos tornam-se mais simples se os nós estiverem igualmente


espaçados.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 256 / 458


Interpolação polinomial Interpolação directa e inversa

Vamos agora ver ...

5 Interpolação polinomial
Polinómio interpolador: unicidade e existência
Forma de Lagrange
Forma de Aitken-Neville
Forma de Newton
Diferenças divididas
Diferenças fiinitas
Interpolação directa e inversa
Dupla interpolação
Erro de interpolação
Splines

MIEEC (FEUP) MÉTODOS NUMÉRICOS 257 / 458


Interpolação polinomial Interpolação directa e inversa

Interpolação directa e inversa

Sejam f : [a, b] → R , (xi )ni=0 nós distintos em [a, b] e yi = f (xi ),


i = 0, 1, . . . , n.

A interpolação directa de f consiste em obter o polinómio p de menor


grau tal que p(xi ) = yi , i = 0, 1, . . . , n.

Se f admitir inversa então a interpolação inversa de f consiste em obter


o polinómio q de menor grau tal que

q(yi ) = xi , i = 0, 1, . . . , n.

Agora (yi )ni=0 são os nós de interpolação e (xi )ni=0 são os valores nodais, da
função f −1 a interpolar.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 258 / 458


Interpolação polinomial Interpolação directa e inversa

Interpolação inversa: exemplo de aplicação

Determinar, por interpolação inversa, um valor aproximado do zero de


f (x) = 32 sin(x) − e −x no intervalo [0, 1].

MIEEC (FEUP) MÉTODOS NUMÉRICOS 259 / 458


Interpolação polinomial Dupla interpolação

Vamos agora ver ...

5 Interpolação polinomial
Polinómio interpolador: unicidade e existência
Forma de Lagrange
Forma de Aitken-Neville
Forma de Newton
Diferenças divididas
Diferenças fiinitas
Interpolação directa e inversa
Dupla interpolação
Erro de interpolação
Splines

MIEEC (FEUP) MÉTODOS NUMÉRICOS 260 / 458


Interpolação polinomial Dupla interpolação

Dupla interpolação

Sejam f : R2 → R, (xi )ni=0 distintos, e (yj )m


i=0 distintos

Dados os valores zij = f (xi , yj ) pretende-se obter f (x̄, ȳ )

Pode utilizar-se dupla interpolação, que consiste em efectuar


interpolações polinomiais independentes nas duas variáveis

MIEEC (FEUP) MÉTODOS NUMÉRICOS 261 / 458


Interpolação polinomial Dupla interpolação

Dupla interpolação: primeira alternativa

1 Interpolando em x, obtém-se para cada j o polinómio pj que interpola


os valores (zij )ni=0 nos nós (xi )ni=0 .

2 Posteriormente, determina-se o polinómio q que interpola os valores


pj (x̄) nos nós (yj )m
j=0 .

3 O valor procurado será q(ȳ ).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 262 / 458


Interpolação polinomial Dupla interpolação

Dupla interpolação

f (x, y ) y0 ... yl ȳ yl+1 ... ym


x0 z00 ... z0l z0,l+1 ... z0m
.. .. .. .. .. .. ..
. . . . . . .
xk zk0 ... zkl zk,l+1 ... zkm
x̄ p0 (x̄) ... pl (x̄) q(ȳ ) pl+1 (x̄) ... pm (x̄)
xk+1 zk+1,0 ... zk+1,l zk+1,l+1 ... zk+1,m
.. .. .. .. .. .. ..
. . . . . . .
xn zn0 ... znl zn,l+1 ... znm

MIEEC (FEUP) MÉTODOS NUMÉRICOS 263 / 458


Interpolação polinomial Dupla interpolação

Dupla interpolação: segunda alternativa

1 Interpolando em y , obtém-se para cada i o polinómio qi que interpola


os valores (zij )m m
j=0 nos nós (yj )j=0 .

2 Posteriormente, determina-se o polinómio p que interpola os valores


qi (ȳ ) nos nós (xi )ni=0 .

3 O valor procurado será p(x̄).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 264 / 458


Interpolação polinomial Dupla interpolação

Dupla interpolação

f (x, y ) y0 ... yl ȳ yl+1 ... ym


x0 z00 ... z0l q0 (ȳ ) z0,l+1 ... z0m
.. .. .. .. .. .. .. ..
. . . . . . . .
xk zk0 ... zkl qk (ȳ ) zk,l+1 ...zkm
x̄ p(x̄)
xk+1 zk+1,0 . . . zk+1,l qk+1 (ȳ ) zk+1,l+1 . . . zk+1,m
.. .. .. .. .. .. .. ..
. . . . . . . .
xn zn0 ... znl qn (ȳ ) zn,l+1 . . . znm

MIEEC (FEUP) MÉTODOS NUMÉRICOS 265 / 458


Interpolação polinomial Dupla interpolação

Dupla interpolação: exemplo

1 Considere a tabela com valores de z(x, y ) conhecidos.


y
z 1 2 4 6
1 10 15 18 22
x 2 7 12 15 20
5 5 8 10 14

1 Com interpolação linear em x e em y , estime z(4, 5)


1 interpolando primeiro em x.
2 interpolando primeiro em y .

2 Estime agora z(4, 5) utilizando primeiro interpolação linear em x e


depois quadrática em y .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 266 / 458


Interpolação polinomial Erro de interpolação

Vamos agora ver ...

5 Interpolação polinomial
Polinómio interpolador: unicidade e existência
Forma de Lagrange
Forma de Aitken-Neville
Forma de Newton
Diferenças divididas
Diferenças fiinitas
Interpolação directa e inversa
Dupla interpolação
Erro de interpolação
Splines

MIEEC (FEUP) MÉTODOS NUMÉRICOS 267 / 458


Interpolação polinomial Erro de interpolação

Erro na interpolação de funções

Sejam f : [a, b] → R e os nós (xi )ni=0 em [a, b]

Seja p o polinómio de menor grau que interpola f em (xi )ni=0

Qual o erro que se comete ao aproximar f (x) por p(x)?

MIEEC (FEUP) MÉTODOS NUMÉRICOS 268 / 458


Interpolação polinomial Erro de interpolação

Erro de interpolação

Teorema
Sejam f ∈ C n+1 ([a, b]; R) e p o polinómio de grau menor ou igual a n que
interpola f nos nós distintos (xi )ni=0 , pertencentes a [a, b]. Então, para
qualquer x ∈ [a, b] existe ξ ∈ [a, b] tal que

1
e(x) ≡ f (x) − p(x) = f (n+1) (ξ)Wn (x),
(n + 1)!

onde Wn (x) = (x − x0 )(x − x1 ) · · · (x − xn ).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 269 / 458


Interpolação polinomial Erro de interpolação

Diferenças divididas e derivadas

Lema
Sejam f ∈ C k ([a, b]; R) e (xi )ki=0 um conjunto de nós distintos em [a, b].
Então existe ξ ∈ [a, b] tal que

1 (k)
f [x0 , x1 , . . . , xk ] = f (ξ).
k!

MIEEC (FEUP) MÉTODOS NUMÉRICOS 270 / 458


Interpolação polinomial Erro de interpolação

Erro de interpolação

Estando os nós ordenados de forma crescente e sendo h o espaçamento


máximo entre nós consecutivos, a majoração de |Wn | conduz a

hn+1
|e(x)| ≤ · max |f (n+1) (z)|
4(n + 1) z∈[a,b]

válida para todo o x ∈ [x0 , xn ].

MIEEC (FEUP) MÉTODOS NUMÉRICOS 271 / 458


Interpolação polinomial Erro de interpolação

Erro de interpolação: exercício 1

Pretende-se construir uma tabela da função f (x) = tan(x) no intervalo


[0, π4 ] com nós equidistantes, por forma a que o erro absoluto cometido
quando se interpola linearmente nesta tabela não exceda 5 × 10−5 . Qual o
espaçamento mínimo entre os nós?

MIEEC (FEUP) MÉTODOS NUMÉRICOS 272 / 458


Interpolação polinomial Erro de interpolação

Erro de interpolação: exercício 2

Pretende-se aproximar a função e x no intervalo [−1, 1] por um polinómio


interpolador em nós igualmente espaçados, de forma a que o erro absoluto
cometido seja inferior a 5 × 10−8 . Determine a ordem mínima para o
polinómio interpolador.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 273 / 458


Interpolação polinomial Erro de interpolação

Aproximação por polinómios interpoladores


1
Interpolação de f (x) = 1+25x 2
em [−1, 1] (nós equidistantes)

5 nós

7 nós

9 nós

MIEEC (FEUP) MÉTODOS NUMÉRICOS 274 / 458


Interpolação polinomial Erro de interpolação

Rigidez dos polinómios

Oscilações crescentes ao aumentar o grau do polinómio.

Como evitar este fenómeno?

escolhendo criteriosamente a localização dos nós

utilizar outras funções interpoladoras

MIEEC (FEUP) MÉTODOS NUMÉRICOS 275 / 458


Interpolação polinomial Splines

Vamos agora ver ...

5 Interpolação polinomial
Polinómio interpolador: unicidade e existência
Forma de Lagrange
Forma de Aitken-Neville
Forma de Newton
Diferenças divididas
Diferenças fiinitas
Interpolação directa e inversa
Dupla interpolação
Erro de interpolação
Splines

MIEEC (FEUP) MÉTODOS NUMÉRICOS 276 / 458


Interpolação polinomial Splines

Splines polinomiais

Definição

Uma função S diz-se um spline polinomial de grau m (onde m ∈ N),


relativo aos nós a = x0 < x1 < · · · < xn = b, quando
1 S coincide com um polinómio Si de grau menor ou igual a m em cada
subintervalo [xi−1 , xi ], i = 1, . . . , n.
2 S ∈ C m−1 ([a, b]; R).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 277 / 458


Interpolação polinomial Splines

Interpolação por splines polinomiais

Dados os nós x0 < x1 < · · · < xn e os valores nodais y0 , y1 , . . . , yn , a


interpolação por splines de grau m consiste em encontrar um spline S
de grau m relativo
aos nós x0 < x1 < · · · < xn tal que

S(xi ) = yi , i = 0, 1, . . . , n.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 278 / 458


Interpolação polinomial Splines

Interpolação por splines polinomiais

Algumas questões importantes:

será que existe spline interpolador?

será que o spline interpolador é único?

como determinar os polinómios Si que o definem?

qual o erro na interpolação de uma função por splines?

MIEEC (FEUP) MÉTODOS NUMÉRICOS 279 / 458


Interpolação polinomial Splines

Splines lineares (ou de grau 1)

O spline S coincide em [xi−1 , xi ] com o segmento de recta que passa pelos


pontos (xi−1 , yi−1 ) e (xi , yi ).

y y2

y0 y1 y4
y3

x0 x1 x2 x3 x4 x

MIEEC (FEUP) MÉTODOS NUMÉRICOS 280 / 458


Interpolação polinomial Splines

Splines lineares

Os polinómios Si , definidores do spline, satisfazem

Si (xi−1 ) = yi−1 i = 1, . . . , n,
Si (xi ) = yi i = 1, . . . , n.

de onde resultam 2n equações.

Spline é definido por 2n coeficientes.

Spline existe e é único.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 281 / 458


Interpolação polinomial Splines

Splines lineares

Os polinómios Si , definidores do spline, serão dados por

xi − x x − xi−1
Si (x) = yi−1 + yi
hi hi

para i = 1, 2, . . . , n. Nota: hi = xi − xi−1 .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 282 / 458


Interpolação polinomial Splines

Aproximação por splines lineares

Sendo yi = f (xi ), onde f é de classe C 2 , o erro de aproximação por um


spline de grau 1 é majorado por

1
|e| ≤ · |f 00 | · h2
8 max

com h = max{hi : 1 ≤ i ≤ n}.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 283 / 458


Interpolação polinomial Splines

Splines quadráticos (ou de grau 2)

O spline coincide em cada intervalo [xi−1 , xi ] com um arco de parábola.

Estes arcos ligam-se de forma contínua, deverão passar pelos valores a


interpolar e assegurar a continuidade da primeira derivada nos nós
x1 , x2 , . . . , xn−1 .

y y2

y0 y1 y4
y3

x0 x1 x2 x3 x4 x

MIEEC (FEUP) MÉTODOS NUMÉRICOS 284 / 458


Interpolação polinomial Splines

Splines quadráticos

As condições a impor aos polinómios Si , definidores do spline S, serão

Si (xi−1 ) = yi−1 i = 1, . . . , n,
Si (xi ) = yi i = 1, . . . , n,
Si0 (xi ) = 0
Si+1 (xi ) i = 1, . . . , n − 1.

que resultam em 3n − 1 equações.

Spline é definido por 3n coeficientes.

Spline não único: necessário impor condição adicional.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 285 / 458


Interpolação polinomial Splines

Splines quadráticos

Definindo Si , i = 1, . . . , n, como
Mi
Si (x) = yi−1 + mi−1 (x − xi−1 ) + (x − xi−1 )2
2

os valores mi e Mi determinam-se por recorrência


yi − yi−1
mi = 2 · − mi−1 i = 1, . . . , n,
hi
mi − mi−1
Mi = i = 1, . . . , n.
hi

sendo necessário definir o valor adicional m0 .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 286 / 458


Interpolação polinomial Splines

Splines quadráticos

São pouco utilizados, pois habitualmente apresentam um comportamento


com grandes oscilações.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 287 / 458


Interpolação polinomial Splines

Splines cúbicos (ou de grau 3)

Em [xi−1 , xi ] o spline S coincide com um polinómio de grau menor ou igual


a 3.

Estas funções polinomiais ligam-se de forma contínua, deverão passar pelos


valores a interpolar e assegurar a continuidade da primeira e segunda
derivadas nos nós x1 , x2 , . . . , xn−1 .

y y2

y0 y1 y4
y3

x0 x1 x2 x3 x4 x

MIEEC (FEUP) MÉTODOS NUMÉRICOS 288 / 458


Interpolação polinomial Splines

Splines cúbicos

As condições a impor aos polinómios Si , definidores do spline S, serão

Si (xi−1 ) = yi−1 i = 1, . . . , n,
Si (xi ) = yi i = 1, . . . , n,
Si0 (xi ) = Si+1
0
(xi ) i = 1, . . . , n − 1,
00 00
Si (xi ) = Si+1 (xi ) i = 1, . . . , n − 1.

que resultam em 4n − 2 equações.

Spline é definido por 4n coeficientes.

Spline não único: necessárias duas condições adicionais.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 289 / 458


Interpolação polinomial Splines

Splines cúbicos

Definindo Mi = S 00 (xi ), para i = 0, 1, . . . , n, a continuidade da segunda


derivada fica assegurada se
xi − x x − xi−1
Si00 (x) = Mi−1 + Mi
hi hi

Os parâmetros Mi são habitualmente designados por momentos.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 290 / 458


Interpolação polinomial Splines

Splines cúbicos

(xi − x)3 (x − xi−1 )3


Si (x) = Mi−1 + Mi +
6hi 6hi
   
Mi−1 hi2 xi − x Mi hi2 x − xi−1
yi−1 − + yi −
6 hi 6 hi

MIEEC (FEUP) MÉTODOS NUMÉRICOS 291 / 458


Interpolação polinomial Splines

Splines cúbicos

Os momentos M0 , . . . , Mn deverão satisfazer as equações

hi hi + hi+1 hi+1 yi+1 − yi yi − yi−1


Mi−1 + Mi + Mi+1 = −
6 3 6 hi+1 hi

para i = 1, 2, . . . , n − 1.

Sistema de n − 1 equações lineares com n + 1 incógnitas.

Impondo-se M0 = 0 e Mn = 0 obtém-se o spline natural.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 292 / 458


Interpolação polinomial Splines

Splines cúbicos: propriedades

Teorema
Sejam os nós a = x0 < · · · < xn = b e os valores nodais y0 , . . . , yn . Então,
de todas as funções g ∈ C 2 ([a, b]; R) que interpolam estes pontos, o spline
cúbico natural é a única que torna mínimo o valor de
Z b
[g 00 (x)]2 dx.
a

MIEEC (FEUP) MÉTODOS NUMÉRICOS 293 / 458


Interpolação polinomial Splines

Splines cúbicos interpoladores

Caso os valores nodais obedeçam a yi = f (xi ), onde f é uma função de


classe C 4 , o erro de interpolação por um spline cúbico é majorado por

5
|e| ≤ · |f (4) | · h4
384 max

onde h = max{hi : 1 ≤ i ≤ n}.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 294 / 458


Interpolação polinomial Splines

Interpolação por splines: exemplo

Interpolar, por splines polinomiais, a função


1
f (x) = x ∈ [−1, 1]
1 + 25x 2
utilizando 7 pontos equidistantes do intervalo [−1, 1].

MIEEC (FEUP) MÉTODOS NUMÉRICOS 295 / 458


Interpolação polinomial Splines

Interpolação por splines: exemplo

Os polinómios definidores do spline linear serão

S1 (x) = 0.17078 + 0.13232x, x ∈ [−1, − 23 ]


S2 (x) = 0.44684 + 0.54641x, x ∈ [− 23 , − 13 ]
S3 (x) = 1 + 2.20588x, x ∈ [− 13 , 0]
S4 (x) = 1 − 2.20588x, x ∈ [0, 13 ]
S5 (x) = 0.44684 − 0.54641x, x ∈ [ 13 , 23 ]
S6 (x) = 0.17078 − 0.13232x, x ∈ [ 23 , 1]

MIEEC (FEUP) MÉTODOS NUMÉRICOS 296 / 458


Interpolação polinomial Splines

Interpolação por splines: exemplo

Os polinómios definidores do spline quadrático serão

S1 (x) = 0.43543 + 0.79393x + 0.39697x 2 , x ∈ [−1, − 32 ]


S2 (x) = 0.63469 + 1.39171x + 0.84530x 2 , x ∈ [− 23 , − 13 ]
S3 (x) = 1 + 3.58359x + 4.13311x 2 , x ∈ [− 13 , 0]
S4 (x) = 1 + 3.58359x − 17.36841x 2 , x ∈ [0, 13 ]
S5 (x) = 5.41280 − 22.89323x + 22.34682x 2 , x ∈ [ 13 , 23 ]
S6 (x) = −13.89892 + 35.04193x − 21.10455x 2 , x ∈ [ 23 , 1]

MIEEC (FEUP) MÉTODOS NUMÉRICOS 297 / 458


Interpolação polinomial Splines

Interpolação por splines: exemplo

Os polinómios definidores do spline cúbico serão


S1 (x) = −0.63728 − 2.49388x − 2.72721x 2 − 0.90907x 3 , x ∈ [−1, − 32 ]
S2 (x) = 2.08308 + 9.74775x + 15.63523x 2 + 8.27215x 3 , x ∈ [− 23 , − 13 ]
2 3
S3 (x) = 1 − 13.60801x − 20.97109x , x ∈ [− 13 , 0]
S4 (x) = 1 − 13.60801x 2 + 20.97109x 3 , x ∈ [0, 13 ]
2 3
S5 (x) = 2.08308 − 9.74775x + 15.63523x − 8.27215x , x ∈ [ 31 , 23 ]
S6 (x) = −0.63728 + 2.49388x − 2.72721x 2 + 0.90907x 3 , x ∈ [ 32 , 1]

MIEEC (FEUP) MÉTODOS NUMÉRICOS 298 / 458


Interpolação polinomial Splines

Interpolação por splines: exemplo

linear

quadratico

cubico

MIEEC (FEUP) MÉTODOS NUMÉRICOS 299 / 458


Integração numérica

Um novo capítulo ...

1 Erros

2 Equações não Lineares

3 Sistemas de equações não lineares

4 Aproximação de funções

5 Interpolação polinomial

6 Integração numérica

7 Sobre normas de vectores e matrizes

8 Sistemas de equações lineares


MIEEC (FEUP) MÉTODOS NUMÉRICOS 300 / 458
Integração numérica

Integração numérica

Z 1
Para calcular sin x 2 dx, encontra-se h(x) tal que h0 (x) = sin x 2 e
0
calcula-se h(1) − h(0).

Mas h(x) não pode ser escrita à custa de um número finito de funções
conhecidas!

MIEEC (FEUP) MÉTODOS NUMÉRICOS 301 / 458


Integração numérica

Integração numérica

Dada uma função f definida num intervalo [a, b], consiste em obter valores
aproximados de
Z b
I (f ) = f (x)dx
a
sem obter uma primitiva de f .

f(x)

a b x

MIEEC (FEUP) MÉTODOS NUMÉRICOS 302 / 458


Integração numérica

Integração numérica: interesse

1 quando não se conhece expressão analítica de f

2 quando não se conhecem expressões analíticas de primitivas de f

3 quando o cálculo de primitivas de f é dispendioso

MIEEC (FEUP) MÉTODOS NUMÉRICOS 303 / 458


Integração numérica

Integração numérica: metodologia

1 Aproximar f por uma função g de primitivação simples


(vamos usar polinómios!)

2 Aproximar o integral de f por


Z b
I (f ) ' I (g ) = g (x)dx
a

3 O erro cometido é

E (f ) = I (f ) − I (g ) = I (f − g )

MIEEC (FEUP) MÉTODOS NUMÉRICOS 304 / 458


Integração numérica

Regras de integração básicas

Rb Rb
Aproximar a f (x)dx por a pn (x)dx, onde pn é o polinómio de menor grau
que interpola f nos nós x0 < x1 < · · · < xn de [a, b].

P
Como pn (x) = ni=0 f (xi )Li (x), onde os Li são os polinómios de Lagrange
nos nós (xi )ni=0 , temos
Z b Z b Z b X
n
! n
X
f (x)dx ' pn (x)dx = f (xi )Li (x) dx = Ai f (xi )
a a a i=0 i=0

Rb
onde Ai = a Li (x)dx.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 305 / 458


Integração numérica

Regras de integração básicas: exemplos

y0 f(x) y1
p1(x)

a x0 x1 b x
Polinómio interpolador em 2 nós

MIEEC (FEUP) MÉTODOS NUMÉRICOS 306 / 458


Integração numérica

Regras de integração básicas: exemplos

y0 f(x) y2 p2(x)

y1

a x0 x1 x2 b x
Polinómio interpolador em 3 nós

MIEEC (FEUP) MÉTODOS NUMÉRICOS 307 / 458


Integração numérica

Regras de integração básicas: exactidão

Definição

Uma regra de integração diz-se de grau ou exactidão n se integrar


exactamente todos os polinómios de grau menor ou igual a n e existir pelo
menos um polinómio de grau n + 1 que não é integrado exactamente.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 308 / 458


Integração numérica

Regras de integração básicas: erro

O erro de integração será


Z b Z b
E (f ) = e(x)dx = f [x0 , . . . , xn , x]Wn (x)dx
a a

Nota: Se f é C n+1 então x 7→ f [x0 , x1 , . . . , xn , x] é contínua e existe


1
ξ ∈ [a, b] tal que f [x0 , x1 , . . . , xn , x] = (n+1)! f (n+1) (ξ).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 309 / 458


Integração numérica

Regras de integração compostas

Sejam a = a0 < a1 < · · · < an = b. Em cada subintervalo [ai−1 , ai ], a


função f é interpolada por um polinómio pi , de grau menor ou igual a ki .
Rb
A aproximação de a f (x)dx será
Z b n Z
X ai n Z
X ai
I (f ) = f (x)dx = f (x)dx ' pi (x)dx
a i=1 ai −1 i=1 ai −1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 310 / 458


Integração numérica Regra dos trapézios

Vamos agora ver ...

6 Integração numérica
Regra dos trapézios
Regra de Simpson
Integração de Romberg

MIEEC (FEUP) MÉTODOS NUMÉRICOS 311 / 458


Integração numérica Regra dos trapézios

Regra dos trapézios

Em cada subintervalo é utilizado o polinómio de grau menor ou igual a 1


que interpola f nos seus extremos.

y1 f(x) yn-1
y0 y2 yn
...

a=x0 x1 x2 xn-1 xn=b x

MIEEC (FEUP) MÉTODOS NUMÉRICOS 312 / 458


Integração numérica Regra dos trapézios

Regra dos trapézios

A expressão da regra de integração dos trapézios é

h
I (f ) ' (y0 + 2y1 + 2y2 + · · · + 2yn−1 + yn )
2

MIEEC (FEUP) MÉTODOS NUMÉRICOS 313 / 458


Integração numérica Regra dos trapézios

Regra dos trapézios: erro de truncatura

O erro de truncatura da regra dos trapézios é dado por

h2
E (f ) = − (b − a)f 00 (ξ)
12

podendo usar-se o majorante

h2
|E (f )| = (b − a) max |f 00 (x)|
12 x∈[a,b]

MIEEC (FEUP) MÉTODOS NUMÉRICOS 314 / 458


Integração numérica Regra dos trapézios

Regra dos trapézios: erro de arredondamento

Tendo cada yi um erro absoluto máximo ε, o erro de arredondamento εa na


regra dos trapézios satisfará

εa ≤ (b − a)ε

Um majorante para o erro absoluto total, na aplicação da regra dos


trapézios será
|E (f )| + εa

MIEEC (FEUP) MÉTODOS NUMÉRICOS 315 / 458


Integração numérica Regra dos trapézios

Regra dos trapézios: exemplo

R1 2
Calcular um valor aproximado de 0 e −x dx, utilizando a regra dos
trapézios com 20 subintervalos e obter um majorante para o erro cometido,
considerando que os valores de f são exactos.
Qual o erro máximo absoluto admissível para os valores de f se se pretender
que o erro de arredondamento não seja superior ao erro de truncatura?

MIEEC (FEUP) MÉTODOS NUMÉRICOS 316 / 458


Integração numérica Regra de Simpson

Vamos agora ver ...

6 Integração numérica
Regra dos trapézios
Regra de Simpson
Integração de Romberg

MIEEC (FEUP) MÉTODOS NUMÉRICOS 317 / 458


Integração numérica Regra de Simpson

Regra de Simpson

Consideram-se agora polinómios de grau menor ou igual a 2, cada um


interpolando f em três pontos igualmente espaçados.

O número n de subintervalos deverá ser par, pois cada parábola


interpoladora é definida em dois subintervalos consecutivos (3 pontos).

y2 y3 f(x)
y1
y0 y4 yn
...

a=x0 x1 x2 x3 x4 xn=b x

MIEEC (FEUP) MÉTODOS NUMÉRICOS 318 / 458


Integração numérica Regra de Simpson

Regra de Simpson

A expressão da regra de integração de Simpson é

h
I (f ) ' (y0 + 4y1 + 2y2 + 4y3 + 2y4 + · · · + 4yn−1 + yn )
3

MIEEC (FEUP) MÉTODOS NUMÉRICOS 319 / 458


Integração numérica Regra de Simpson

Regra de Simpson: erro de truncatura

O erro de truncatura da regra de Simpson é dado por

h4
E (f ) = − (b − a)f (4) (ξ)
180

podendo usar-se o majorante

h4
|E (f )| = (b − a) max |f (4) (x)|
180 x∈[a,b]

MIEEC (FEUP) MÉTODOS NUMÉRICOS 320 / 458


Integração numérica Regra de Simpson

Regra de Simpson: erro de arredondamento

Tendo cada yi um erro absoluto máximo ε, o erro de arredondamento εa na


regra de Simpson satisfará

εa ≤ (b − a)ε

Um majorante para o erro absoluto total na aplicação da regra de


Simpson será
|E (f )| + εa

MIEEC (FEUP) MÉTODOS NUMÉRICOS 321 / 458


Integração numérica Regra de Simpson

Regra de Simpson: exemplo

R1 2
Calcular um valor aproximado de 0 e −x dx, utilizando a regra de Simpson
com 12 subintervalos e obter um majorante para o erro cometido,
considerando que os valores de f são exactos.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 322 / 458


Integração numérica Integração de Romberg

Vamos agora ver ...

6 Integração numérica
Regra dos trapézios
Regra de Simpson
Integração de Romberg

MIEEC (FEUP) MÉTODOS NUMÉRICOS 323 / 458


Integração numérica Integração de Romberg

Integração de Romberg

Rb
Consiste em obter estimativas de I = a f (x)dx partindo de várias
aplicações da regra dos trapézios, com subintervalos de larguras diferentes.

Sendo T (h) o valor aproximado de I dado pela regra dos trapézios com
subintervalos de largura h, tem-se que

I = T (h) + K1 h2 + K2 h4 + K3 h6 + · · ·

onde K1 , K2 , K3 , . . . são constantes independentes de h.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 324 / 458


Integração numérica Integração de Romberg

Integração de Romberg

4T (h/2)−T (h)
Se T1 (h) = 3 então I = T1 (h) + K10 h4 + K20 h6 + · · ·

16T1 (h/2)−T1 (h)


Se T2 (h) = 15 então I = T2 (h) + K100 h6 + K200 h8 + · · ·

64T2 (h/2)−T2 (h)


Se T3 (h) = 63 então I = T3 (h) + K1000 h8 + K2000 h10 + · · ·

...

MIEEC (FEUP) MÉTODOS NUMÉRICOS 325 / 458


Integração numérica Integração de Romberg

Integração de Romberg

Definindo

T0 (h) = T (h)
4n Tn−1 (h/2) − Tn−1 (h)
Tn (h) = , n = 1, 2, . . .
4n − 1
verifica-se que

I = Tn (h) + Kn,1 h2n+2 + Kn,2 h2n+4 + · · ·

MIEEC (FEUP) MÉTODOS NUMÉRICOS 326 / 458


Integração numérica Integração de Romberg

Integração de Romberg: exemplo

R1 dx
Obter uma estimativa de 0 1+x 2 com erro de ordem 8, utilizando um valor
de inicial de h = 0.25.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 327 / 458


Integração numérica Integração de Romberg

Integração de Romberg: exemplo

Valores obtidos com a regra dos trapézios

h T (h)
0.25 0.7827941176471
0.125 0.7847471236228
0.0625 0.7852354030103
0.03125 0.7853574732937

MIEEC (FEUP) MÉTODOS NUMÉRICOS 328 / 458


Integração numérica Integração de Romberg

Integração de Romberg: exemplo

Os valores extrapolados encontram-se na tabela seguinte


h T (h) T1 (h) T2 (h) T3 (h)
0.25 0.7827941176471 0.7853981256147 0.7853981652856 0.7853981633975
0.125 0.7847471236228 0.7853981628062 0.7853981634270
0.0625 0.7852354030103 0.7853981633882
0.03125 0.7853574732937

π
O valor do integral a calcular é 4 = 0.78539816339744830963 . . .

O erro de T3 (0.25) é cerca de 10−13 ,


enquanto o erro de T (0.03125) é cerca de 4 × 10−5 !!!!

MIEEC (FEUP) MÉTODOS NUMÉRICOS 329 / 458


Sobre normas de vectores e matrizes

Um novo capítulo ...

4 Aproximação de funções

5 Interpolação polinomial

6 Integração numérica

7 Sobre normas de vectores e matrizes

8 Sistemas de equações lineares

9 Integração de Equações diferenciais

MIEEC (FEUP) MÉTODOS NUMÉRICOS 330 / 458


Sobre normas de vectores e matrizes Norma de um vector

Vamos agora ver ...

7 Sobre normas de vectores e matrizes


Norma de um vector
Norma de uma matriz

MIEEC (FEUP) MÉTODOS NUMÉRICOS 331 / 458


Sobre normas de vectores e matrizes Norma de um vector

Norma de um vector

V : espaço vectorial

norma: k·k:V →R

1 kxk ≥ 0 ∀x ∈ V e kxk = 0 ⇒ x = 0
2 kαxk = |α| · kxk ∀α ∈ R, ∀x ∈ V
3 kx + y k ≤ kxk + ky k ∀x, y ∈ V

MIEEC (FEUP) MÉTODOS NUMÉRICOS 332 / 458


Sobre normas de vectores e matrizes Norma de um vector

Norma euclidiana em Rn

x = (x1 , x2 , . . . , xn ) ∈ Rn

q n
!1
X 2

kxk2 = x12 + x22 + · · · + xn2 = xi2


i=1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 333 / 458


Sobre normas de vectores e matrizes Norma de um vector

Outras normas em Rn

n
X
→ norma 1 |xi |
i=1

→ norma ∞ max |xi |


1≤i≤n

n
!1
X p

→ norma p |xi |p , (com p ≥ 1)


i=1

→ ...

MIEEC (FEUP) MÉTODOS NUMÉRICOS 334 / 458


Sobre normas de vectores e matrizes Norma de um vector

Normas em Rn : exemplos para n = 2

x2
kxk1 = 1
1
kxk1.4 = 1
kxk2 = 1
kxk3 = 1
kxk∞ = 1
1 x1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 335 / 458


Sobre normas de vectores e matrizes Norma de um vector

Equivalência de normas

Teorema
Sejam k · kα e k · kβ duas normas definidas em Rn .
Então existem constantes k1 , k2 > 0 tais que

k1 kxkα ≤ kxkβ ≤ k2 kxkα , ∀x ∈ Rn .


Exemplo: kxk∞ ≤ kxk2 ≤ n kxk∞ , ∀x ∈ Rn

MIEEC (FEUP) MÉTODOS NUMÉRICOS 336 / 458


Sobre normas de vectores e matrizes Norma de um vector

Convergência em Rn
Sejam
→ x(k) = (x1,(k) , . . . , xn,(k) ) ∈ Rn , k ∈N
→ s = (s1 , . . . , sn ) ∈ Rn

Definição

Diz-se que {x(k) } converge para s (x(k) → s) se

lim kx(k) − sk = 0.
k→+∞

Teorema
x(k) → s se e só se xi,(k) → si , i = 1, . . . , n.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 337 / 458


Sobre normas de vectores e matrizes Norma de uma matriz

Vamos agora ver ...

7 Sobre normas de vectores e matrizes


Norma de um vector
Norma de uma matriz

MIEEC (FEUP) MÉTODOS NUMÉRICOS 338 / 458


Sobre normas de vectores e matrizes Norma de uma matriz

Norma de uma matriz

Dada uma norma k · k em Rn , define-se norma induzida da matriz


A ∈ Rn×n como
kAxk
kAk = sup
x6=0 kxk

Esta definição é equivalente a

kAk = max kAxk


kxk=1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 339 / 458


Sobre normas de vectores e matrizes Norma de uma matriz

Norma induzida: propriedades

1 Para A ∈ Rn×n tem-se

1 ∀x ∈ Rn kAxk ≤ kAk · kxk


2 ∃x ∈ Rn \ {0} kAxk ≥ kAk · kxk

2 kABk ≤ kAk · kBk ∀A, B ∈ Rn×n

3 kI k = 1, onde I é a matriz identidade

MIEEC (FEUP) MÉTODOS NUMÉRICOS 340 / 458


Sobre normas de vectores e matrizes Norma de uma matriz

Normas de matrizes

Diferentes normas em Rn originam diferentes normas induzidas:

kAk2 = max kAxk2


kxk2 =1

kAk1 = max kAxk1


kxk1 =1

kAk∞ = max kAxk∞


kxk∞ =1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 341 / 458


Sobre normas de vectores e matrizes Norma de uma matriz

Norma 2 de uma matriz: exemplo


 
2 1
A= kAk2 =?
0 1

x2
{x : kxk2 = 1}

1
{Ax : kxk2 = 1}

1 x1
p √
kAk2 = 3+ 5

MIEEC (FEUP) MÉTODOS NUMÉRICOS 342 / 458


Sobre normas de vectores e matrizes Norma de uma matriz

Norma 1 de uma matriz: exemplo


 
2 1
A= kAk1 =?
0 1

x2
{x : kxk1 = 1}

1
{Ax : kxk1 = 1}

1 x1

kAk1 = 2

MIEEC (FEUP) MÉTODOS NUMÉRICOS 343 / 458


Sobre normas de vectores e matrizes Norma de uma matriz

Norma ∞ de uma matriz: exemplo


 
2 1
A= kAk∞ =?
0 1

x2

{x : kxk∞ = 1}
1
{Ax : kxk∞ = 1}

1 x1

kAk∞ = 3

MIEEC (FEUP) MÉTODOS NUMÉRICOS 344 / 458


Sobre normas de vectores e matrizes Norma de uma matriz

Norma 1 de uma matriz

Teorema
Seja A ∈ Rn×n de elemento genérico aij . Então verifica-se
n
X
kAk1 = max |aij |,
j=1,...,n
i=1

ou seja, kAk1 é o máximo das somas por colunas dos valores absolutos dos
elementos de A.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 345 / 458


Sobre normas de vectores e matrizes Norma de uma matriz

Norma ∞ de uma matriz

Teorema
Seja A ∈ Rn×n de elemento genérico aij . Então verifica-se
n
X
kAk∞ = max |aij |,
i=1,...,n
j=1

ou seja, kAk∞ é o máximo das somas por linhas dos valores absolutos dos
elementos de A.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 346 / 458


Sobre normas de vectores e matrizes Norma de uma matriz

Normas de matrizes: exemplo

Sendo  
−2 0 1 6
 −3 −1 2 4 
A=
 2

1 −1 1 
3 −2 2 5
calcular kAk1 e kAk∞ .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 347 / 458


Sobre normas de vectores e matrizes Norma de uma matriz

Norma 2 de uma matriz. Raio Espectral

Teorema
q
Seja A ∈ Rn×n . Então verifica-se kAk2 = ρ(AT A).

ρ(C ) é o raio espectral de C ∈ Rn×n definido por

ρ(C ) = max |λi |


1≤i≤n

onde λ1 , . . . , λn são os valores próprios de C .

Raio espectral e norma 2 são de cálculo trabalhoso!

MIEEC (FEUP) MÉTODOS NUMÉRICOS 348 / 458


Sobre normas de vectores e matrizes Norma de uma matriz

Raio espectral e normas

Teorema
Para qualquer norma induzida k · k e para qualquer A ∈ Rn×n tem-se

ρ(A) ≤ kAk.

Dados A ∈ Rn×n e ε > 0, existe uma norma induzida k · k tal que

kAk ≤ ρ(A) + ε.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 349 / 458


Sistemas de equações lineares

Um novo capítulo ...

4 Aproximação de funções

5 Interpolação polinomial

6 Integração numérica

7 Sobre normas de vectores e matrizes

8 Sistemas de equações lineares

9 Integração de Equações diferenciais

MIEEC (FEUP) MÉTODOS NUMÉRICOS 350 / 458


Sistemas de equações lineares

4. Sistemas de equações lineares

Porque nem sempre é a regra de Cramer um bom método para resolver


sistemas de equações lineares?

Como se propagam os erros (de arredondamento) ao resolver um sistema


de equações? Como se evita que estes sejam grandes?

O que é um sistema de equações mal condicionado?

..
.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 351 / 458


Sistemas de equações lineares

Sistemas de equações lineares



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

 a21 x1 + a22 x2 + · · · + a2n xn = b2
.. ..

 . .


am1 x1 + am2 x2 + · · · + amn xn = bm

em forma compacta: Ax = b

A ∈ Rm×n matriz dos coeficientes, de elementos aij


b ∈ Rm vector dos termos independentes, de elementos bi
x ∈ Rn vector de incógnitas, de elementos xj

MIEEC (FEUP) MÉTODOS NUMÉRICOS 352 / 458


Sistemas de equações lineares

Sistemas de n equações a n incógnitas

Teorema
O sistema de n equações a n incógnitas tem solução única se e só se
det A 6= 0.

Podem ser resolvidos pela regra de Cramer:

det Ai
xi =
det A

MIEEC (FEUP) MÉTODOS NUMÉRICOS 353 / 458


Sistemas de equações lineares

Métodos de resolução

Objectivo: estudar métodos de resolução numérica


→ eficientes: baixo número de operações
→ eficazes: boas aproximações

Serão estudados dois tipos de métodos


→ directos: eliminação gaussiana (ou método de Gauss)
→ iterativos: métodos de Jacobi e de Gauss-Seidel

MIEEC (FEUP) MÉTODOS NUMÉRICOS 354 / 458


Sistemas de equações lineares

Sistemas na forma triangular


 a11 x1 + a12 x2 + · · · + a1,n−1 xn−1 + a1n xn = b1



 a22 x2 + · · · + a2,n−1 xn−1 + a2n xn = b2

.. ..

 . .

 an−1,n−1 xn−1 + an−1,n xn = bn−1


ann xn = bn

Substituição inversa
bn
xn =
ann
Pn
bi − j=i +1 aij xj
xi = i = n − 1, . . . , 1
aii

MIEEC (FEUP) MÉTODOS NUMÉRICOS 355 / 458


Sistemas de equações lineares Eliminação gaussiana

Vamos agora ver ...

8 Sistemas de equações lineares


Eliminação gaussiana
Estratégias de pivotação
Erro e resíduo de uma solução aproximada
Perturbações no sistema de equações
Métodos iterativos
Inversão de matrizes

MIEEC (FEUP) MÉTODOS NUMÉRICOS 356 / 458


Sistemas de equações lineares Eliminação gaussiana

Eliminação gaussiana

Redução à forma triangular superior

Na etapa j anulam-se os coeficientes aij com i > j


equação j designa-se equação pivot
elemento ajj designa-se elemento pivot
à equação i (> j) soma-se o múltiplo mij da equação j
aij
mij = −
ajj

se ajj = 0 troca-se a equação j com a i tal que aij 6= 0

MIEEC (FEUP) MÉTODOS NUMÉRICOS 357 / 458


Sistemas de equações lineares Eliminação gaussiana

Eliminação gaussiana: aritmética finita

Resolver o sistema com aritmética de 4 dígitos.



0.0002x1 + 1.672x2 = 1.673
1.336x1 − 2.471x2 = 4.209

MIEEC (FEUP) MÉTODOS NUMÉRICOS 358 / 458


Sistemas de equações lineares Eliminação gaussiana

Eliminação gaussiana: aritmética finita

Pn
bi − j=i+1 aij xj
Na substituição inversa xi =
aii
n
X |aij |
a propagação de erros é εxi ≤ εx
|aii | j
j=i+1

|aij |
Então interessa que os quocientes sejam pequenos!
|aii |

Para tal usam-se estratégias de escolha de pivot

MIEEC (FEUP) MÉTODOS NUMÉRICOS 359 / 458


Sistemas de equações lineares Estratégias de pivotação

Vamos agora ver ...

8 Sistemas de equações lineares


Eliminação gaussiana
Estratégias de pivotação
Erro e resíduo de uma solução aproximada
Perturbações no sistema de equações
Métodos iterativos
Inversão de matrizes

MIEEC (FEUP) MÉTODOS NUMÉRICOS 360 / 458


Sistemas de equações lineares Estratégias de pivotação

Estratégia parcial de pivot

1 Na etapa j é escolhida a equação pivot k ( j ≤ k ≤ n)

1 calculam-se os valores di = max |ail | i = j, . . . , n


j≤l≤n
|aij |
2 calculam-se os quocientes i = j, . . . , n
di
3 selecciona-se para equação pivot aquela em que

|akj |
é máximo
dk

2 Troca-se a equação k com a j


3 Realiza-se a eliminação

MIEEC (FEUP) MÉTODOS NUMÉRICOS 361 / 458


Sistemas de equações lineares Estratégias de pivotação

Pivotação parcial: exemplo

Resolver por eliminação gaussiana, utilizando pivotação parcial e


arredondando os resultados para 2 algarismos significativos.
    
0.1 0.9 2.3 x1 1
 0.25 0.71 3.2   x2  =  2 
1.2 2.6 1.3 x3 3

MIEEC (FEUP) MÉTODOS NUMÉRICOS 362 / 458


Sistemas de equações lineares Estratégias de pivotação

Estratégia total de pivot

1 Na etapa j escolhe-se o elemento pivot akl (k, l ∈ {j, . . . , n})

→ |akl | é máximo

2 Troca-se a equação j com a equação k

3 Troca-se a variável xj com a variável xl

4 Realiza-se a eliminação

MIEEC (FEUP) MÉTODOS NUMÉRICOS 363 / 458


Sistemas de equações lineares Estratégias de pivotação

Pivotação total: exemplo

Resolver por eliminação gaussiana, utilizando pivotação total e


arredondando os resultados para 2 algarismos significativos.
    
0.1 0.9 2.3 x1 1
 0.25 0.71 3.2   x2  =  2 
1.2 2.6 1.3 x3 3

MIEEC (FEUP) MÉTODOS NUMÉRICOS 364 / 458


Sistemas de equações lineares Estratégias de pivotação

Pivotação parcial vs. pivotação total

A pivotação parcial apenas exige trocas de linhas.

A pivotação total exige ainda a troca de colunas, e logo é mais “cara”


em esforço computacional.

A pivotação total conduz geralmente a resultados melhores.

No entanto, a pivotação parcial produz resultados suficientemente


bons na maioria das situações.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 365 / 458


Sistemas de equações lineares Erro e resíduo de uma solução aproximada

Vamos agora ver ...

8 Sistemas de equações lineares


Eliminação gaussiana
Estratégias de pivotação
Erro e resíduo de uma solução aproximada
Perturbações no sistema de equações
Métodos iterativos
Inversão de matrizes

MIEEC (FEUP) MÉTODOS NUMÉRICOS 366 / 458


Sistemas de equações lineares Erro e resíduo de uma solução aproximada

Erro e resíduo de uma solução aproximada

Sistema de equações: Ax = b (A não singular)


x̄: solução exacta
x̃: solução aproximada

Erro da solução aproximada: e = x̄ − x̃

Resíduo da solução aproximada: r = b − Ax̃

Relação entre erro e resíduo: r = Ae

MIEEC (FEUP) MÉTODOS NUMÉRICOS 367 / 458


Sistemas de equações lineares Erro e resíduo de uma solução aproximada

Erro e resíduo de uma solução aproximada

x̃ = x̄ ⇒ e =0∧r =0

x̃ 6= x̄ ⇒ ?
?
erro pequeno ⇒ resíduo pequeno
?
resíduo pequeno ⇒ erro pequeno

MIEEC (FEUP) MÉTODOS NUMÉRICOS 368 / 458


Sistemas de equações lineares Erro e resíduo de uma solução aproximada

Erro e resíduo: exemplo 1

 1.01 0.99
 x1
  2
  1

0.99 1.01 x2 = 2 tem solução exacta x̄ = 1

 1.01
  −0.01
  −0.02

→ se x̃ = 1.01 tem-se e = −0.01 er= −0.02

erro relativo: 1% em cada componente


resíduo relativo: 1% em cada componente

 2
  −1
  −0.02

→ se x̂ = 0 tem-se e = 1 er= 0.02

erro relativo: 100% em cada componente


resíduo relativo: 1% em cada componente

MIEEC (FEUP) MÉTODOS NUMÉRICOS 369 / 458


Sistemas de equações lineares Erro e resíduo de uma solução aproximada

Erro e resíduo: exemplo 2

 1.01 0.99
 x1
  2
  100

0.99 1.01 x2 = −2 tem solução exacta x̄ = −100

 101
  −1
  −2

→ se x̃ = −99 tem-se e = −1 er= −2

erro relativo: 1% em cada componente


resíduo relativo: 100% em cada componente

MIEEC (FEUP) MÉTODOS NUMÉRICOS 370 / 458


Sistemas de equações lineares Erro e resíduo de uma solução aproximada

Número de condição

O número de condição da matriz A é definido por

cond(A) = kAk · kA−1 k

A relação entre erro e resíduo fica agora

1 kr k kek kr k
≤ ≤ cond(A)
cond(A) kbk kx̄k kbk

MIEEC (FEUP) MÉTODOS NUMÉRICOS 371 / 458


Sistemas de equações lineares Erro e resíduo de uma solução aproximada

Número de condição

Se A é invertível então I = AA−1 e logo

1 = kI k = kA A−1 k ≤ kAk kA−1 k = cond(A)

Se cond(A) ≈ 1 a matriz diz-se bem condicionada

Se cond(A)  1 a matriz diz-se mal condicionada

MIEEC (FEUP) MÉTODOS NUMÉRICOS 372 / 458


Sistemas de equações lineares Erro e resíduo de uma solução aproximada

Cálculo do número de condição

Teorema
Se A é não singular tem-se que
 
kAk
cond(A) = max .
B singular kA − Bk

Sendo B singular conclui-se que

kAk
cond(A) ≥
kA − Bk

MIEEC (FEUP) MÉTODOS NUMÉRICOS 373 / 458


Sistemas de equações lineares Erro e resíduo de uma solução aproximada

Cálculo do número de condição: exemplo

Estimar o número de condição (na norma ∞) da matriz


 
1.01 0.99
A=
0.99 1.01

MIEEC (FEUP) MÉTODOS NUMÉRICOS 374 / 458


Sistemas de equações lineares Perturbações no sistema de equações

Vamos agora ver ...

8 Sistemas de equações lineares


Eliminação gaussiana
Estratégias de pivotação
Erro e resíduo de uma solução aproximada
Perturbações no sistema de equações
Métodos iterativos
Inversão de matrizes

MIEEC (FEUP) MÉTODOS NUMÉRICOS 375 / 458


Sistemas de equações lineares Perturbações no sistema de equações

Perturbações no sistema de equações

Sistema de equações Ax = b com solução x̄

Influência de perturbações nos elementos de A ou b em x̄

Estas perturbações podem resultar de


erros de medida
erros de arredondamento

MIEEC (FEUP) MÉTODOS NUMÉRICOS 376 / 458


Sistemas de equações lineares Perturbações no sistema de equações

Perturbação nos termos independentes

Teorema
Seja x̄ a solução do sistema de equações Ax = b, onde A é não singular e b
é não nulo.
Seja x̃ a solução do sistema de equações (perturbado) Ax = b̃.
Então verifica-se que

kx̄ − x̃k kb − b̃k


≤ cond(A) .
kx̄k kbk

MIEEC (FEUP) MÉTODOS NUMÉRICOS 377 / 458


Sistemas de equações lineares Perturbações no sistema de equações

Perturbação nos termos independentes

O sistema de equações Ax = b, onde


h 1 2 4 i h 1
i
A= 4 3 1 e b= 2 .
2 2 3 1

tem solução x̄ = [ −0.2 1 −0.2 ]T .

Se b̃ = [ 1.1 2.2 0.9 ]T , a solução é x̃ = [ −0.62 1.7 −0.42 ]T

Compare a variação relativa dos termos independentes com a variação


relativa das soluções.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 378 / 458


Sistemas de equações lineares Perturbações no sistema de equações

Perturbação na matriz dos coeficientes

Teorema
Seja x̄ a solução do sistema de equações Ax = b, onde A é não singular.
Seja x̃ a solução do sistema de equações (perturbado) Ãx = b, onde à é
não singular.
Então verifica-se que

kx̄ − x̃k kà − Ak


≤ cond(A) .
kx̃k kAk

MIEEC (FEUP) MÉTODOS NUMÉRICOS 379 / 458


Sistemas de equações lineares Perturbações no sistema de equações

Perturbação na matriz dos coeficientes: exemplo

O sistema de equações Ax = b, onde


h 1 5 10 i h 16
i
A = 0 1 −6 e b= −5 ,
0 0 1 1

tem solução x̄ = [ 1 1 1 ]T . h i
1 5 10
Se a matriz dos coeficientes for à = 0 1 −6 a solução é
0 0 1.1
T
x̃ = [ 51
11
5
11
10
11 ] .

Compare a variação relativa da matriz de coeficientes com a variação


relativa das soluções.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 380 / 458


Sistemas de equações lineares Métodos iterativos

Vamos agora ver ...

8 Sistemas de equações lineares


Eliminação gaussiana
Estratégias de pivotação
Erro e resíduo de uma solução aproximada
Perturbações no sistema de equações
Métodos iterativos
Inversão de matrizes

MIEEC (FEUP) MÉTODOS NUMÉRICOS 381 / 458


Sistemas de equações lineares Métodos iterativos

Métodos iterativos

1 Substituir a equação Ax = b pela equação equivalente

x = Gx + d

2 Escolher um valor inicial x(0) ∈ Rn

3 Gerar a sucessão {x(k) }, pela relação de recorrência

x(k+1) = Gx(k) + d k = 0, 1, . . . .

A sucessão {x(k) } deverá ser convergente para A−1 b!

MIEEC (FEUP) MÉTODOS NUMÉRICOS 382 / 458


Sistemas de equações lineares Métodos iterativos

Métodos iterativos

Algumas questões importantes

Como determinar G e d a partir de A e b?

Em que condições converge o método iterativo?

Que critério de paragem utilizar?

Será possível estimar o erro?

MIEEC (FEUP) MÉTODOS NUMÉRICOS 383 / 458


Sistemas de equações lineares Métodos iterativos

Métodos iterativos

Dado o sistema de equações, onde aii 6= 0 ∀i,




 a11 x1 + a12 x2 + · · · + a1n xn = b1
 a21 x1 + a22 x2 + · · · + a2n xn = b2
.. ..

 . .

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

e resolvendo cada equação i em ordem a xi , obtém-se

MIEEC (FEUP) MÉTODOS NUMÉRICOS 384 / 458


Sistemas de equações lineares Métodos iterativos

Métodos iterativos


 x1 = − aa12 x2 − aa11
13
x3 − · · · − aa1n xn + b1

 11 11 a11





 x2 = − a22 x1
a21
− aa23
22
x3 − · · · − aa2n
22
xn + b2
a22


 .. ..

 . .





xn = − aann
n1
x1 − aann
n2
x2 − aann
n3
x3 − ··· + bn
ann

MIEEC (FEUP) MÉTODOS NUMÉRICOS 385 / 458


Sistemas de equações lineares Métodos iterativos

Métodos iterativos

Definindo B ∈ Rn×n e c ∈ Rn respectivamente por


( a
− aijii se i 6= j
bij = i, j = 1, . . . , n, e
0 se i = j
bi
ci = i = 1, . . . , n,
aii
este último sistema pode ser escrito como

x = Bx + c

MIEEC (FEUP) MÉTODOS NUMÉRICOS 386 / 458


Sistemas de equações lineares Métodos iterativos

Método de Jacobi

Utiliza a relação de recorrência

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

ou, equivalentemente
n
X  
xi,(k+1) = bij xj,(k) + ci i = 1, . . . , n
j=1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 387 / 458


Sistemas de equações lineares Métodos iterativos

Método de Jacobi: exemplo

Aplicar o método de Jacobi para resolver o sistema


" #" # " #
3 −1 1 x1 3
0 2 1 x2 = 3 .
1 −2 4 x3 3

MIEEC (FEUP) MÉTODOS NUMÉRICOS 388 / 458


Sistemas de equações lineares Métodos iterativos

Método de Jacobi: exemplo

k x1,(k) x2,(k) x3,(k)


0 0 0 0
1 1.0000 1.5000 0.7500
2 1.2500 1.1250 1.2500
3 0.9583 0.8750 1.0000
4 0.9583 1.0000 0.9479
5 1.0174 1.0260 1.0104
6 1.0052 0.9948 1.0087
7 0.9954 0.9957 0.9961
8 0.9999 1.0020 0.9990
9 1.0010 1.0005 1.0010
10 0.9998 0.9995 1.0000
11 0.9998 0.9999 0.9998
... ... ... ...

MIEEC (FEUP) MÉTODOS NUMÉRICOS 389 / 458


Sistemas de equações lineares Métodos iterativos

Método de Gauss-Seidel

Semelhante ao método de Jacobi, mas utiliza sempre a última estimativa


disponível de cada variável.

Ao calcular xi,(k+1) já estão disponíveis os valores xj,(k+1) para


j = 1, . . . , i − 1.

A expressão de recorrência é

i−1
X n
X
   
xi,(k+1) = bij xj,(k+1) + bij xj,(k) + ci
j=1 j=i+1

MIEEC (FEUP) MÉTODOS NUMÉRICOS 390 / 458


Sistemas de equações lineares Métodos iterativos

Método de Gauss-Seidel: exemplo

Aplicar o método de Gauss-Seidel para resolver o sistema


" #" # " #
3 −1 1 x1 3
0 2 1 x2 = 3 .
1 −2 4 x3 3

MIEEC (FEUP) MÉTODOS NUMÉRICOS 391 / 458


Sistemas de equações lineares Métodos iterativos

Método de Gauss-Seidel: exemplo

k x1,(k) x2,(k) x3,(k)


0 0 0 0
1 1.0000 1.5000 1.2500
2 1.0833 0.8750 0.9167
3 0.9861 1.0417 1.0243
4 1.0058 0.9878 0.9925
5 0.9985 1.0038 1.0023
6 1.0005 0.9989 0.9993
7 0.9999 1.0003 1.0002
8 1.0000 0.9999 0.9999
... ... ... ...

MIEEC (FEUP) MÉTODOS NUMÉRICOS 392 / 458


Sistemas de equações lineares Métodos iterativos

Exemplo2: métodos de Jacobi e Gauss-Seidel

Resolver o sistema
" #" # " #
1 −1 1 x1 1
0 2 −1 x2 = 1
1 −2 2 x3 1

(a) aplicando o método de Jacobi;


(b) aplicando o método de Gauss-Seidel.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 393 / 458


Sistemas de equações lineares Métodos iterativos

Exemplo2: método de Jacobi

k x1,(k) x2,(k) x3,(k)


0 0 0 0
1 1.0000 0.5000 0.5000
2 1.0000 0.7500 0.5000
3 1.2500 0.7500 0.7500
4 1.0000 0.8750 0.6250
5 1.2500 0.8125 0.8750
6 0.9375 0.9375 0.6875
7 1.2500 0.8438 0.9688
8 0.8750 0.9844 0.7188
9 1.2656 0.8594 1.0469
... ... ... ...

MIEEC (FEUP) MÉTODOS NUMÉRICOS 394 / 458


Sistemas de equações lineares Métodos iterativos

Exemplo2: método de Gauss-Seidel

k x1,(k) x2,(k) x3,(k)


0 0 0 0
1 1.0000 0.5000 0.5000
2 1.0000 0.7500 0.7500
3 1.0000 0.8750 0.8750
4 1.0000 0.9375 0.9375
5 1.0000 0.9688 0.9688
6 1.0000 0.9844 0.9844
7 1.0000 0.9922 0.9922
8 1.0000 0.9961 0.9961
9 1.0000 0.9980 0.9980
... ... ... ...

MIEEC (FEUP) MÉTODOS NUMÉRICOS 395 / 458


Sistemas de equações lineares Métodos iterativos

Convergência de métodos iterativos


Teorema
Sejam G ∈ Rn×n e d ∈ Rn . Se kG k < 1, então
1 existe uma e uma só solução x̄ ∈ Rn da equação

x = Gx + d ,

2 a sucessão {x(k) }, gerada por

x(k+1) = Gx(k) + d , k = 0, 2, . . . ,

converge para x̄, qualquer que seja o ponto inicial x(0) ,


3 o erro de aproximação de x̄ por x(k+1) , x̄ − x(k+1) , satisfaz

kG k
kx̄ − x(k+1) k ≤ kx − x(k) k, k = 1, 2, . . . .
1 − kG k (k+1)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 396 / 458


Sistemas de equações lineares Métodos iterativos

Matriz diagonalmente dominante por linhas

Uma matriz A ∈ Rn×n diz-se estritamente diagonalmente dominante


por linhas quando
n
X
|aii | > |aij |, i = 1, . . . , n.
j=1
j6=i

MIEEC (FEUP) MÉTODOS NUMÉRICOS 397 / 458


Sistemas de equações lineares Métodos iterativos

Método de Jacobi: convergência

Teorema
Sejam A ∈ Rn×n e b ∈ Rn . Se a matriz A for estritamente diagonalmente
dominante por linhas então a sucessão gerada pelo método de Jacobi
converge para a única solução do sistema de equações Ax = b, qualquer
que seja o ponto inicial x(0) .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 398 / 458


Sistemas de equações lineares Métodos iterativos

Convergência do método de Jacobi: exemplo

Aplicando o método de Jacobi, obter uma solução aproximada do sistema


de equações, com um erro máximo absoluto em cada variável de 5 × 10−3 .
(
4x1 − 2x2 + x3 =3
x1 − x2 + 3x3 =3
−x1 + 3x2 =2

MIEEC (FEUP) MÉTODOS NUMÉRICOS 399 / 458


Sistemas de equações lineares Métodos iterativos

Convergência do método de Jacobi: exemplo

k x1,(k) x2,(k) x3,(k) εk


0 0 0 0 −
1 0.75000 0.66667 1.00000 3
2 0.83333 0.91667 0.97222 7.5 × 10−1
3 0.96528 0.94444 1.02778 4.0 × 10−1
4 0.96528 0.98843 0.99306 1.3 × 10−1
5 0.99595 0.98843 1.00772 9.2 × 10−2
6 0.99228 0.99865 0.99749 3.1 × 10−2
7 0.99995 0.99743 1.00212 2.3 × 10−2
8 0.99818 0.99998 0.99916 8.9 × 10−3
9 1.00020 0.99939 1.00060 6.0 × 10−3
10 0.99955 1.00007 0.99973 2.6 × 10−3

MIEEC (FEUP) MÉTODOS NUMÉRICOS 400 / 458


Sistemas de equações lineares Métodos iterativos

Método de Gauss-Seidel: convergência

Teorema
Sejam A ∈ Rn×n e b ∈ Rn . Se a matriz A for estritamente diagonalmente
dominante por linhas então a sucessão gerada pelo método de Gauss-Seidel
converge para a única solução do sistema de equações Ax = b, qualquer
que seja o ponto inicial x(0) .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 401 / 458


Sistemas de equações lineares Métodos iterativos

Método de Gauss-Seidel: exemplo

Aplicando o método de Gauss-Seidel, obter uma solução aproximada do


sistema de equações. Terminar o método assim que a diferença entre duas
estimativas consecutivas seja inferior ou igual a 10−3 , em todas as variáveis.
(
x1 − 4x3 = −3
4x2 − 2x3 =2
4x1 − 2x3 =2

MIEEC (FEUP) MÉTODOS NUMÉRICOS 402 / 458


Sistemas de equações lineares Métodos iterativos

Método de Gauss-Seidel: exemplo

k x1,(k) x2,(k) x3,(k) kx(k) − x(k−1) k∞


0 0 0 0 −
1 0.50000 0.50000 0.87500 8.8 × 10−1
2 0.93750 0.93750 0.98438 4.4 × 10−1
3 0.99219 0.99219 0.99805 5.5 × 10−2
4 0.99902 0.99902 0.99976 6.8 × 10−3
5 0.99988 0.99988 0.99997 8.5 × 10−4

MIEEC (FEUP) MÉTODOS NUMÉRICOS 403 / 458


Sistemas de equações lineares Métodos iterativos

Relaxação do método de Jacobi

Expressão de recorrência
 
n
X
1 
xi,(k+1) = xi,(k) + bi − aij xj,(k) 
aii
j=1

Expressão de recorrência com relaxação (ω > 0)


 
n
X
1 
xi,(k+1) = xi,(k) + ω · bi − aij xj,(k) 
aii
j=1

0<ω<1 → sub-relaxação
ω>1 → sobre-relaxação

MIEEC (FEUP) MÉTODOS NUMÉRICOS 404 / 458


Sistemas de equações lineares Métodos iterativos

Relaxação do método de Gauss-Seidel

Expressão de recorrência
 
i−1
X n
X
1 
xi,(k+1) = xi,(k) + bi − aij xj,(k+1) − aij xj,(k) 
aii
j=1 j=i

Expressão de recorrência com relaxação (ω > 0)


 
i−1
X n
X
1 
xi,(k+1) = xi,(k) + ω · bi − aij xj,(k+1) − aij xj,(k) 
aii
j=1 j=i

0<ω<1 → sub-relaxação
ω>1 → sobre-relaxação (SOR)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 405 / 458


Sistemas de equações lineares Métodos iterativos

Gauss-Seidel com relaxamento: exemplo

Comparar o método de Gauss-Seidel e o método SOR com ω = 1.25 na


resolução do sistema de equações
(
4x1 + 3x2 = 24
3x1 + 4x2 − x3 = 30
−x2 + 4x3 = −24

cuja solução é x1 = 3, x2 = 4, x3 = −5. Em ambos os casos partir de


x1,(0) = x2,(0) = x3,(0) = 1.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 406 / 458


Sistemas de equações lineares Métodos iterativos

Exemplo: Gauss-Seidel

k x1,(k) x2,(k) x3,(k)


0 1.00000 1.00000 1.00000
1 5.25000 3.81250 −5.04688
2 3.14063 3.88281 −5.02930
3 3.08789 3.92676 −5.01831
4 3.05493 3.95422 −5.01144
5 3.03433 3.97139 −5.00715
6 3.02146 3.98212 −5.00447
7 3.01341 3.98882 −5.00279
8 3.00838 3.99302 −5.00175

MIEEC (FEUP) MÉTODOS NUMÉRICOS 407 / 458


Sistemas de equações lineares Métodos iterativos

Exemplo: SOR

k x1,(k) x2,(k) x3,(k)


0 1.00000 1.00000 1.00000
1 6.10000 3.61000 −6.31700
2 2.73100 3.92500 −4.75910
3 3.12130 3.97810 −5.05475
4 2.99545 3.99205 −4.99144
5 3.00807 3.99690 −5.00264
6 3.00118 3.99877 −4.99984
7 3.00087 3.99951 −5.00018
8 3.00027 3.99980 −5.00002

MIEEC (FEUP) MÉTODOS NUMÉRICOS 408 / 458


Sistemas de equações lineares Inversão de matrizes

Vamos agora ver ...

8 Sistemas de equações lineares


Eliminação gaussiana
Estratégias de pivotação
Erro e resíduo de uma solução aproximada
Perturbações no sistema de equações
Métodos iterativos
Inversão de matrizes

MIEEC (FEUP) MÉTODOS NUMÉRICOS 409 / 458


Sistemas de equações lineares Inversão de matrizes

Inversão de matrizes

Calcular A−1 é equivalente a resolver AX = I


Ou seja, resolver simultaneamente n sistemas de n equações
Eliminação de Gauss-Jordan

MIEEC (FEUP) MÉTODOS NUMÉRICOS 410 / 458


Sistemas de equações lineares Inversão de matrizes

Inversão de matrizes

 a11 a12 ··· a1n 1 0 ··· 0



a21 a22 ··· a2n 0 1 ··· 0
 .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

. . . . . . . .
an1 an2 ··· ann 0 0 ··· 1

 1 0 ··· 0 x11 x12 ··· x1n



0 1 ··· 0 x21 x22 ··· x2n
 .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

. . . . . . . .
0 0 ··· 1 xn1 xn2 ··· xnn

MIEEC (FEUP) MÉTODOS NUMÉRICOS 411 / 458


Sistemas de equações lineares Inversão de matrizes

Inversão de matrizes

Em cada etapa
efectuar escolha de pivot
pivotação parcial
pivotação total
anular toda a coluna

Nota: Na pivotação total trocas de colunas em A reflectem-se em trocas


de linhas em X !

MIEEC (FEUP) MÉTODOS NUMÉRICOS 412 / 458


Integração de Equações diferenciais

Um novo capítulo ...

4 Aproximação de funções

5 Interpolação polinomial

6 Integração numérica

7 Sobre normas de vectores e matrizes

8 Sistemas de equações lineares

9 Integração de Equações diferenciais

MIEEC (FEUP) MÉTODOS NUMÉRICOS 413 / 458


Integração de Equações diferenciais Problema de valor inicial

Vamos agora ver ...

9 Integração de Equações diferenciais


Problema de valor inicial
Métodos de Euler
Método de Taylor
Consistência e Convergência
Métodos de Runge-Kutta
Sistemas de equações diferenciais
Equações diferenciais de ordem n

MIEEC (FEUP) MÉTODOS NUMÉRICOS 414 / 458


Integração de Equações diferenciais Problema de valor inicial

EDOs — problema de valor inicial

Dados
uma função f : R × R → R
um intervalo real [t0 , T ]
e valores x0,0 , x0,1 , . . . , x0,n−1 ∈ R
consiste em determinar x : [t0 , T ] → R que verifique

x (n) (t) = f (t, x(t), x 0 (t), . . . , x (n−1) (t)), t ∈ ]t0 , T [ ,

com a condições iniciais

x(t0 ) = x0,0 x 0 (t0 ) = x0,1 ... x (n−1) (t0 ) = x0,n−1 .

MIEEC (FEUP) MÉTODOS NUMÉRICOS 415 / 458


Integração de Equações diferenciais Problema de valor inicial

Métodos numéricos: descrição geral

Produzem valores aproximados da solução da EDO num conjunto de


pontos {ti }ni=0 tal que

t0 < t1 < · · · < tN = T .

designado por malha.

os pontos ti são os nós da malha

as distâncias hi = ti − ti−1 designam-se por passos

a malha é uniforme se todos os passos forem iguais

o valor h = max hi é o passo da malha


1≤i≤N

MIEEC (FEUP) MÉTODOS NUMÉRICOS 416 / 458


Integração de Equações diferenciais Problema de valor inicial

Métodos numéricos: descrição geral

Resolução numérica de um problema de valor inicial:


1 Definir uma malha {ti }N
i=0 no intervalo [t0 , T ];
2 Para i de 1 até N determinar xi , que será o valor da solução
aproximada no nó ti . Nota: x0 é dado!

x x1 xN-1
x2
x0
xN

t0 t1 t2 tN-1 tN t

MIEEC (FEUP) MÉTODOS NUMÉRICOS 417 / 458


Integração de Equações diferenciais Problema de valor inicial

EDO de ordem 1: soluções aproximadas

x → solução exacta

x(h) → solução aproximada (com passo h)

e(h) = x − x(h)

x(h) definida nos nós ti → xi = x(h) (ti )

MIEEC (FEUP) MÉTODOS NUMÉRICOS 418 / 458


Integração de Equações diferenciais Problema de valor inicial

EDO de ordem 1: soluções aproximadas


Z t+h
x(t + h) = x(t) + f (t, ξ(t))dt
t
Z t+h
x(t+h)−x(t) 1
h = h f (t, ξ(t))dt = F (t, x) = Fh (t, x) + Th (t, x)
t

Z t+h
1
Fh (t, x) ≈ h f (t, ξ(t))dt
t

x(t + h) ≈ x(t) + hFh (t, x)

Th (t, x) erro de truncatura

MIEEC (FEUP) MÉTODOS NUMÉRICOS 419 / 458


Integração de Equações diferenciais Problema de valor inicial

EDO de ordem 1: soluções aproximadas

Os valores xi obtêm-se pela expressão de recorrência

xi+1 = xi + hFh (ti , xi ), i = 0, 1, . . . , N − 1.

x0 é o valor inicial dado

MIEEC (FEUP) MÉTODOS NUMÉRICOS 420 / 458


Integração de Equações diferenciais Métodos de Euler

Vamos agora ver ...

9 Integração de Equações diferenciais


Problema de valor inicial
Métodos de Euler
Método de Taylor
Consistência e Convergência
Métodos de Runge-Kutta
Sistemas de equações diferenciais
Equações diferenciais de ordem n

MIEEC (FEUP) MÉTODOS NUMÉRICOS 421 / 458


Integração de Equações diferenciais Métodos de Euler

Métodos de Euler

Z t+h
O integral f (ξ, x(ξ))d ξ pode ser aproximado pelas áreas dos
t
rectângulos como se mostra nas figuras.

f f
f(t, x(t))

f(t+h, x(t+h))

t t+h ξ t t+h ξ
Rectângulo à esquerda Rectângulo à direita

MIEEC (FEUP) MÉTODOS NUMÉRICOS 422 / 458


Integração de Equações diferenciais Métodos de Euler

Método de Euler (progressivo)

Caracteriza-se por
Fh (t, x) = f (t, x(t))
Th (t, x) = h2 f 0 (ζ, x(ζ))

A expressão de recorrência para determinação de xh será

xi+1 = xi + hf (ti , xi ), i = 0, 1, . . . , N − 1,

onde x0 = x(t0 ) é a condição inicial.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 423 / 458


Integração de Equações diferenciais Métodos de Euler

Método de Euler progressivo: exemplo

Utilizar o método de Euler progressivo com passo h = 0.1 para obter uma
solução aproximada de

x 0 = 1 + t − x, t ∈ [0, 1]

com x(0) = 1.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 424 / 458


Integração de Equações diferenciais Métodos de Euler

Método de Euler progressivo: exemplo

ti xi xi +1
0.0 1.0000 1.0000
0.1 1.0000 1.0100
0.2 1.0100 1.0290
0.3 1.0290 1.0561
0.4 1.0561 1.0905
0.5 1.0905 1.1314
0.6 1.1314 1.1783
0.7 1.1783 1.2305
0.8 1.2305 1.2874
0.9 1.2874 1.3487
1.0 1.3487 —

MIEEC (FEUP) MÉTODOS NUMÉRICOS 425 / 458


Integração de Equações diferenciais Métodos de Euler

Método de Euler regressivo

Caracteriza-se por
Fh (t, x) = f (t + h, x(t + h))
Th (t, x) = − h2 f 0 (ζ, x(ζ))

A expressão de recorrência para determinação de xh será

xi+1 = xi + hf (ti+1 , xi+1 ), i = 0, 1, . . . , N − 1,

onde x0 = x(t0 ) é a condição inicial.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 426 / 458


Integração de Equações diferenciais Métodos de Euler

Método de Euler regressivo: exemplo

Utilizar o método de Euler regressivo com passo h = 0.1 para obter uma
solução aproximada de

x 0 = 1 + t − x, t ∈ [0, 1]

com x(0) = 1.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 427 / 458


Integração de Equações diferenciais Métodos de Euler

Método de Euler regressivo: exemplo

ti xi xi +1
0.0 1.0000 1.0091
0.1 1.0091 1.0264
0.2 1.0264 1.0513
0.3 1.0513 1.0830
0.4 1.0830 1.1209
0.5 1.1209 1.1645
0.6 1.1645 1.2132
0.7 1.2132 1.2665
0.8 1.2665 1.3241
0.9 1.3241 1.3855
1.0 1.3855 —

MIEEC (FEUP) MÉTODOS NUMÉRICOS 428 / 458


Integração de Equações diferenciais Método de Taylor

Vamos agora ver ...

9 Integração de Equações diferenciais


Problema de valor inicial
Métodos de Euler
Método de Taylor
Consistência e Convergência
Métodos de Runge-Kutta
Sistemas de equações diferenciais
Equações diferenciais de ordem n

MIEEC (FEUP) MÉTODOS NUMÉRICOS 429 / 458


Integração de Equações diferenciais Método de Taylor

Método de Taylor de ordem p

Caracteriza-se por
h hp−1 (p−1)
• Fh (t, x) = f (t, x(t)) + f 0 (t, x(t)) + · · · + f (t, x(t))
2 p!
hp
• Th (t, x) = f (p) (ζ, x(ζ)), ζ ∈ [t, t + h]
(p + 1)!

A expressão de recorrência é

h2 0 hp
xi+1 = xi + hf (ti , xi ) + f (ti , xi ) + · · · + f (p−1) (ti , xi )
2 p!

para i = 0, 1, . . . , N − 1.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 430 / 458


Integração de Equações diferenciais Método de Taylor

Métodos de Taylor: exemplo

Utilizar o método de Taylor de ordem 2 com passo h = 0.1 para obter uma
solução aproximada de

x 0 = 1 + t − x, t ∈ [0, 1]

com x(0) = 1.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 431 / 458


Integração de Equações diferenciais Método de Taylor

Métodos de Taylor: exemplo

ti xi xi +1
0.0 1.0000 1.0050
0.1 1.0050 1.0190
0.2 1.0190 1.0412
0.3 1.0412 1.0708
0.4 1.0708 1.1071
0.5 1.1071 1.1494
0.6 1.1494 1.1972
0.7 1.1972 1.2500
0.8 1.2500 1.3072
0.9 1.3072 1.3685
1.0 1.3685 —

MIEEC (FEUP) MÉTODOS NUMÉRICOS 432 / 458


Integração de Equações diferenciais Consistência e Convergência

Vamos agora ver ...

9 Integração de Equações diferenciais


Problema de valor inicial
Métodos de Euler
Método de Taylor
Consistência e Convergência
Métodos de Runge-Kutta
Sistemas de equações diferenciais
Equações diferenciais de ordem n

MIEEC (FEUP) MÉTODOS NUMÉRICOS 433 / 458


Integração de Equações diferenciais Consistência e Convergência

Consistência

Método consistente se

lim kTh k = 0
h→0

Ordem de consistência p > 0 se

kTh k ≤ chp

MIEEC (FEUP) MÉTODOS NUMÉRICOS 434 / 458


Integração de Equações diferenciais Consistência e Convergência

Convergência

Método convergente se

lim ke(h) k = lim max |e(h) (t)| = 0


h→0 h→0 t∈[t0 ,T ]

Ordem de convergência p > 0 se

ke(h) k ≤ chp

MIEEC (FEUP) MÉTODOS NUMÉRICOS 435 / 458


Integração de Equações diferenciais Consistência e Convergência

Consistência e convergência

Teorema
Se um método de passo simples verificar a condição

|Fh (t, v ) − Fh (t, w )| ≤ Lh |v − w |, t ∈ [t0 , T ],

para todo o h > 0 suficientemente pequeno, onde Lh é independente de h


(condição de Lipschitz) então será consistente se e só se for convergente.
Mais ainda, para h suficientemente pequeno, tem-se que

kTh k Lh (t−t0 )
|e(h) (t)| ≤ e Lh (t−t0 ) |e0 | + [e − 1], t ∈ [t0 , T ],
Lh

onde e0 = x(t0 ) − x(h) (t0 ).

MIEEC (FEUP) MÉTODOS NUMÉRICOS 436 / 458


Integração de Equações diferenciais Consistência e Convergência

Convergência e arredondamento

Se o cálculo de cada valor xi estiver associado um erro de arredondamento


majorado por δ é possível verificar que

 
Lh (t−t0 ) kTh k δ
|e(h) (t)| ≤ e |e0 | + + [e Lh (t−t0 ) − 1], t ∈ [t0 , T ]
Lh h

pelo que quando h → 0 o termo δ/h impede que o erro e(h) se aproxime de
zero.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 437 / 458


Integração de Equações diferenciais Métodos de Runge-Kutta

Vamos agora ver ...

9 Integração de Equações diferenciais


Problema de valor inicial
Métodos de Euler
Método de Taylor
Consistência e Convergência
Métodos de Runge-Kutta
Sistemas de equações diferenciais
Equações diferenciais de ordem n

MIEEC (FEUP) MÉTODOS NUMÉRICOS 438 / 458


Integração de Equações diferenciais Métodos de Runge-Kutta

Métodos de Runge-Kutta

têm ordens de consistência elevadas

não necessitam de calcular derivadas de f

o cálculo de xi+1 é feito avaliando f em pontos “intermédios” entre


(ti , xi ) e (ti+1 , xi+1 )

ordem de convergência é igual à ordem de consistência

MIEEC (FEUP) MÉTODOS NUMÉRICOS 439 / 458


Integração de Equações diferenciais Métodos de Runge-Kutta

Métodos de Runge-Kutta

xi+1 é obtido calculando f em s pontos

F1 = f (ti , xi )
F2 = f (ti + α2 h, xi + hβ21 F1 )
F3 = f (ti + α3 h, xi + h(β31 F1 + β32 F2 ))
...
Fs = f (ti + αs h, xi + h(βs,1 F1 + βs,2 F2 + . . . + βs,s−1 Fs−1 ))

xi+1 = xi + h(w1 F1 + w2 F2 + . . . + ws Fs )

s = ordem de consistência (para s ≤ 4)

MIEEC (FEUP) MÉTODOS NUMÉRICOS 440 / 458


Integração de Equações diferenciais Métodos de Runge-Kutta

Runge-Kutta de 2a ordem

Expressão de recorrência

F1 = f (ti , xi )
F2 = f (ti + α2 h, xi + hβ21 F1 )
xi+1 = xi + h(w1 F1 + w2 F2 )

Condições para obter ordem de consistência 2

w1 + w2 = 1
1
α 2 w2 =2
β21 w2 = 12

MIEEC (FEUP) MÉTODOS NUMÉRICOS 441 / 458


Integração de Equações diferenciais Métodos de Runge-Kutta

Runge-Kutta de 2a ordem

Método de Euler modificado w1 = w2 = 12 , α2 = β21 = 1

F1 = f (ti , xi )
F2 = f (ti + h, xi + hF1 )
xi+1 = xi + h2 (F1 + F2 )

Método de Heun w1 = 14 , w2 = 43 , α2 = β21 = 2


3

F1 = f (ti , xi )
F2 = f (ti + 32 h, xi + 23 hF1 )
xi+1 = xi + h4 (F1 + 3F2 )

MIEEC (FEUP) MÉTODOS NUMÉRICOS 442 / 458


Integração de Equações diferenciais Métodos de Runge-Kutta

Runge-Kutta de 4a ordem

Um dos métodos mais usados é

F1 = f (ti , xi )
F2 = f (ti + h2 , xi + h2 F1 )
F3 = f (ti + h2 , xi + h2 F2 )
F4 = f (ti + h, xi + hF3 )

xi+1 = xi + h6 (F1 + 2F2 + 2F3 + F4 )

MIEEC (FEUP) MÉTODOS NUMÉRICOS 443 / 458


Integração de Equações diferenciais Métodos de Runge-Kutta

Métodos de Runge-Kutta: exemplo

Com um passo h = 0.1 obter uma solução aproximada de

x 0 = 1 + t − x, t ∈ [0, 1]
x(0) = 1

pelo método
a) de Euler modificado;
b) de Runge-Kutta de 4a ordem.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 444 / 458


Integração de Equações diferenciais Métodos de Runge-Kutta

Método de Euler modificado: exemplo

ti xi F1 F2 xi +1
0.0 1.000000 0.000000 0.100000 1.005000
0.1 1.005000 0.095000 0.185500 1.019025
0.2 1.019025 0.180975 0.262878 1.041218
0.3 1.041218 0.258782 0.332904 1.070802
0.4 1.070802 0.329198 0.396278 1.107076
0.5 1.107076 0.392924 0.453632 1.149404
0.6 1.149404 0.450596 0.505537 1.197210
0.7 1.197210 0.502790 0.552511 1.249975
0.8 1.249975 0.550025 0.595022 1.307228
0.9 1.307228 0.592772 0.633495 1.368541
1.0 1.368541 — — —

MIEEC (FEUP) MÉTODOS NUMÉRICOS 445 / 458


Integração de Equações diferenciais Métodos de Runge-Kutta

Runge-Kutta de 4a ordem: exemplo

ti xi F1,i F2,i F3,i F4,i xi +1


0.0 1.00000 0.00000 0.05000 0.04750 0.09525 1.00484
0.1 1.00484 0.09516 0.14040 0.13814 0.18135 1.01873
0.2 1.01873 0.18127 0.22221 0.22016 0.25925 1.04082
0.3 1.04082 0.25918 0.29622 0.29437 0.32974 1.07032
0.4 1.07032 0.32968 0.36320 0.36152 0.39353 1.10653
0.5 1.10653 0.39347 0.42380 0.42228 0.45124 1.14881
0.6 1.14881 0.45119 0.47863 0.47726 0.50346 1.19659
0.7 1.19659 0.50341 0.52824 0.52700 0.55071 1.24933
0.8 1.24933 0.55067 0.57314 0.57201 0.59347 1.30657
0.9 1.30657 0.59343 0.61376 0.61274 0.63216 1.36788
1.0 1.36788 — — — — —

MIEEC (FEUP) MÉTODOS NUMÉRICOS 446 / 458


Integração de Equações diferenciais Métodos de Runge-Kutta

Comparação entre métodos: exemplo

ti Euler prog. Euler reg. Taylor 2 R-K 4 Sol. exacta


0.0 1.000000 1.000000 1.000000 1.000000 1.000000
0.1 1.000000 1.009091 1.005000 1.004838 1.004837
0.2 1.010000 1.026446 1.019025 1.018731 1.018731
0.3 1.029000 1.051315 1.041218 1.040818 1.040818
0.4 1.056100 1.083013 1.070802 1.070320 1.070320
0.5 1.090490 1.120921 1.107076 1.106531 1.106531
0.6 1.131441 1.164474 1.149404 1.148812 1.148812
0.7 1.178297 1.213158 1.197210 1.196586 1.196585
0.8 1.230467 1.266507 1.249975 1.249329 1.249329
0.9 1.287420 1.324098 1.307228 1.306570 1.306570
1.0 1.348678 1.385543 1.368541 1.367880 1.367879

MIEEC (FEUP) MÉTODOS NUMÉRICOS 447 / 458


Integração de Equações diferenciais Sistemas de equações diferenciais

Vamos agora ver ...

9 Integração de Equações diferenciais


Problema de valor inicial
Métodos de Euler
Método de Taylor
Consistência e Convergência
Métodos de Runge-Kutta
Sistemas de equações diferenciais
Equações diferenciais de ordem n

MIEEC (FEUP) MÉTODOS NUMÉRICOS 448 / 458


Integração de Equações diferenciais Sistemas de equações diferenciais

Sistemas de equações diferenciais

 0

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

 x 0 (t) = f2 (t, x1 (t), x2 (t), . . . , xn (t))
2
..

 .

 0
xn (t) = fn (t, x1 (t), x2 (t), . . . , xn (t))

Problema de valor inicial: determinar as funções x1 , x2 , . . . , xn que


satisfazem estas equações diferenciais num intervalo [t0 , T ] e as condições
iniciais
x1 (t0 ) = x1,0 , x2 (t0 ) = x2,0 , . . . , xn (t0 ) = xn,0

MIEEC (FEUP) MÉTODOS NUMÉRICOS 449 / 458


Integração de Equações diferenciais Sistemas de equações diferenciais

Sistemas de equações diferenciais

Em notação vectorial
x0 (t) = f(t, x(t))
onde f : R1+n → Rn é definida por f = [f1 f2 ... fn ]T e x : R → Rn é
definida por x = [x1 x2 . . . xn ]T .

Problema de valor inicial: determinar a função x que satisfaz a equação


diferencial vectorial num intervalo [t0 , T ] e a condição inicial

x(t0 ) = x0 ,

MIEEC (FEUP) MÉTODOS NUMÉRICOS 450 / 458


Integração de Equações diferenciais Sistemas de equações diferenciais

Sistemas de EDO — Métodos numéricos

Malha {ti }N
i=0 de passo h no intervalo [t0 , T ]

xh → solução aproximada do problema de valor inicial

xi = xh (ti ) obtidos pela expressão de recorrência

xi+1 = xi + hFh (ti , xi )

para i = 0, 1, . . . , N − 1, sendo x0 dado.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 451 / 458


Integração de Equações diferenciais Sistemas de equações diferenciais

Sistemas de EDO — Métodos numéricos


Método de Euler progressivo

xi+1 = xi + hf(ti , xi )

Método de Taylor de ordem 2


h2 0
xi+1 = xi + hf(ti , xi ) + 2 f (ti , xi )

Método de Euler modificado

F1 = f(ti , xi )
F2 = f(ti + h, xi + hF1 )
xi+1 = xi + h2 (F1 + F2 )

...
MIEEC (FEUP) MÉTODOS NUMÉRICOS 452 / 458
Integração de Equações diferenciais Equações diferenciais de ordem n

Vamos agora ver ...

9 Integração de Equações diferenciais


Problema de valor inicial
Métodos de Euler
Método de Taylor
Consistência e Convergência
Métodos de Runge-Kutta
Sistemas de equações diferenciais
Equações diferenciais de ordem n

MIEEC (FEUP) MÉTODOS NUMÉRICOS 453 / 458


Integração de Equações diferenciais Equações diferenciais de ordem n

Equações diferenciais de ordem n

Determinar a função x : R → R que é solução de

x (n) (t) = f (t, x(t), x 0 (t), . . . , x (n−1) (t))

no intervalo [t0 , T ] e satisfaz as condições iniciais

x(t0 ) = x0
x 0 (t0 ) = x00
···
(n−1)
x (n−1) (t0 ) = x0

MIEEC (FEUP) MÉTODOS NUMÉRICOS 454 / 458


Integração de Equações diferenciais Equações diferenciais de ordem n

Equações diferenciais de ordem n

Considerando as funções x1 , x2 , . . . , xn definidas por

x1 (t) = x(t)
x2 (t) = x 0 (t)
···
xn (t) = x (n−1) (t)

conclui-se que xi0 (t) = xi+1 (t) para i = 1, 2, . . . , n − 1


e também que
h i0
xn0 (t) = x (n−1) (t) = x (n) (t) = f (t, x1 (t), x2 (t), . . . , xn (t))

MIEEC (FEUP) MÉTODOS NUMÉRICOS 455 / 458


Integração de Equações diferenciais Equações diferenciais de ordem n

Equações diferenciais de ordem n

O sistema de equações diferenciais toma a forma

x10 (t) = x2 (t)


x20 (t) = x3 (t)
···
xn0 (t) = f (t, x1 (t), x2 (t), . . . , xn (t))

devendo a sua solução satisfazer as condições iniciais


(n−1)
x1 (t0 ) = x0 , x2 (t0 ) = x00 , ..., xn (t0 ) = x0

MIEEC (FEUP) MÉTODOS NUMÉRICOS 456 / 458


Integração de Equações diferenciais Equações diferenciais de ordem n

Equações de ordem n: exemplo

Determinar, pelo método de Euler progressivo com passo 0.05, uma


solução aproximada de

θ00 + 10 sin θ = 0, t ∈ [0, 0.5], θ(0) = 0.1, θ0 (0) = 0.

MIEEC (FEUP) MÉTODOS NUMÉRICOS 457 / 458


Integração de Equações diferenciais Equações diferenciais de ordem n

Sistemas de equações diferenciais: exemplo

ti x1,i = θi x2,i x1,i +1 x2,i +1


0.00 0.1000 0.0000 0.1000 −0.0499
0.05 0.1000 −0.0499 0.0975 −0.0998
0.10 0.0975 −0.0998 0.0925 −0.1485
0.15 0.0925 −0.1485 0.0851 −0.1947
0.20 0.0851 −0.1947 0.0754 −0.2372
0.25 0.0754 −0.2372 0.0635 −0.2748
0.30 0.0635 −0.2748 0.0498 −0.3066
0.35 0.0498 −0.3066 0.0344 −0.3314
0.40 0.0344 −0.3314 0.0179 −0.3486
0.45 0.0179 −0.3486 0.0004 −0.3576
0.50 0.0004 −0.3576 — —

MIEEC (FEUP) MÉTODOS NUMÉRICOS 458 / 458

Вам также может понравиться