Você está na página 1de 332

UNIVERSIDADE DE COIMBRA

Faculdade de Ciências e Tecnologia


Departamento de Engenharia Civil

Métodos Numéricos em Engenharia

José Manuel Abreu


José Simão Antunes do Carmo

Coimbra
Setembro de 2020
ÍNDICE
_______________________________________________________________________________________________________________

Capítulo 1 - INTRODUÇÃO. ERROS EM CÁLCULO NUMÉRICO

1. Objetivos 1
2. Engenharia, modelação matemática e métodos numéricos 2
2.1 Introdução 2
2.2 O que é um “Modelo”? 5
2.3 Modelação matemática 9
3. Tipos de erros na resolução numérica de problemas de Engenharia 14
4. Erros de truncatura. Série de Taylor. 17
5. Erros de arredondamento e aritmética computacional 21
5.1 Representação de números inteiros 22
5.1.1 Sistemas de numeração – da pré-história ao sistema 22
posicional de base 10
5.1.2 Sistemas de numeração posicionais com bases distintas 29
5.1.3 Representação interna de números inteiros 31
5.2 Representação de números reais 34
5.2.1 Conversão entre representações em diferentes bases 34
5.2.2 Caraterísticas gerais da representação interna de reais 36
5.2.3 A norma IEEE 754 e a representação de binários em ponto 41
flutuante
6. Valores aproximados, erros e precisão. 48
6.1 Erro absoluto e erro relativo 48
6.2 Épsilon da máquina 49
6.3 Erro relativo e número de algarismos significativos corretos 51
7. Propagação do erro 54
8. Discretização 59
9. Métodos iterativos 61
Exercícios propostos 62

Capítulo 2 - RESOLUÇÃO DE EQUAÇÕES NÃO-LINEARES

1. Introdução 69
2. Localização, contagem e separação das raízes 77
2.1 Métodos gráficos 78
2.2 Métodos analíticos 79
2.2.1 Método de Newton (delimitação das raízes) 79
2.2.2 Método de Rolle 81

i
2.2.3 Método de Fourier 85
2.2.4 Regra de sinais de Descartes 87
3. Métodos iterativos para a determinação de raízes 88
3.1 Introdução 88
3.2 Métodos iterativos dependentes de um só ponto 88
3.2.1 Método do ponto fixo 88
3.2.2 Método de Newton-Raphson 100
3.3 Métodos iterativos de ponto múltiplo 109
3.3.1 Método da secante 109
3.4 Métodos que enquadram a raiz 111
3.4.1 Método da bissecção 112
3.4.2 Método da falsa posição 114
Exercícios propostos 118

Capítulo 3 - I N T E R P O L A Ç Ã O

1. Introdução. Interpolação e Aproximação. 123


2. Interpolação polinomial 126
2.1 Cálculo eficiente de um polinómio. Algoritmo de Horner 128
2.2 Polinómio interpolador de Newton 129
2.3 Polinómio interpolador de Lagrange 137
2.4 Newton ou Lagrange? 139
2.5 Interpolação com pontos de base igualmente espaçados 140
2.6 O problema das oscilações na interpolação polinomial 145
2.7 Majorante do erro com pontos igualmente espaçados 146
2.8 Interpolação com raízes de Chebyshev 148
2.9 Polinómio interpolador de Hermite 150
2.10 Interpolação com "SPLINES" cúbicos 153
2.11 Quadro resumo dos esquemas de interpolação 160
Exercícios propostos 161

Capítulo 4 - APROXIMAÇÃO. MÉTODO DOS MÍNIMOS QUADRADOS

1. Introdução 165
2. O critério dos mínimos quadrados 166
3. Regressão linear 168
4. Modelos de dois parâmetros 170
5. Linearização 173
6. Modelos lineares de n parâmetros 176
7. Índice de determinação 180
Exercícios propostos 181

ii
Capítulo 5 - I N T E G R A Ç Ã O N U M É R I C A

1. Introdução 183
2. Intervalos escolhidos ou impostos previamente 185
2.1 Caso geral: pontos de base com espaçamento arbitrário 185
2.2 Pontos de base equidistantes 188
2.2.1 Regra do Trapézio 189
2.2.2 Regra de Simpson 195
2.2.3 Fórmulas de Newton-Cotes. Caso geral 198
3. Quadratura de Gauss 200
Exercícios propostos 204

Capítulo 6 - RESOLUÇÃO DE SISTEMAS DE EQUAÇÕES

1. Preâmbulo 207
2. Intervalos escolhidos ou impostos previamente 207
2.1 Introdução 207
2.2 Solução por inversão de matrizes. Regra de Cramer 210
2.3 Métodos diretos 211
2.3.1 Método de eliminação de Gauss 212
2.3.2 Método de eliminação de Gauss-Jordan 220
2.3.3 Pivotagem 222
2.3.4 Sistemas mal-condicionados 225
2.3.5 Sistemas tridiagonais 228
2.3.6 Método da factorização – LU 232
2.4 Métodos iterativos 235
2.4.1 Método de Jacobi 235
2.4.2 Método de Gauss-Seidel 238
2.5 Comparação entre os métodos diretos e iterativos 240
3. Sistemas de equações não-lineares (breve introdução) 241
3.1 Sistemas não lineares 2  2 241
3.2 Método de Newton-Raphson para sistemas 2  2 243
Exercícios propostos 246

iii
Capítulo 7 - EQUAÇÕES DIFERENCIAIS ORDINÁRIAS (EDO)

1. Introdução 249
2. Preâmbulo matemático 249
2.1 Equações lineares 250
2.2 Equações não-lineares 252
2.3 Equações às diferenças 253
3. Integração numérica de equações diferenciais ordinárias 254
3.1 Formulações de um passo 254
3.1.1 Métodos baseados na série de Taylor 254
3.1.2 Métodos de Runge-Kutta 260
3.2 Formulações com vários passos 266
3.3 Métodos de previsão-correção 268
4. Estabilidade dos métodos numéricos 272
Exercícios propostos 277

Capítulo 8 - EQUAÇÕES ÀS DERIVADAS PARCIAIS (EDP)

1. Introdução 281
2. Resolução numérica de equações às derivadas parciais 283
2.1 Método das diferenças finitas 283
2.2 Método dos elementos finitos 285
2.2.1 Funções de aproximação para elementos a uma dimensão 287
2.2.2 Funções de aproximação para elementos a duas dimensões 289
3. Estabilidade 292
3.1 Coeficiente de amplificação 292
3.2 Matriz de amplificação 295
4. Formas das equações às derivadas parciais 297
4.1 Equação diferencial parabólica 298
4.1.1 Caso linear a uma dimensão 298
4.1.2 Caso não-linear a uma dimensão 301
4.1.3 Equação parabólica a duas dimensões (x, y, t) 302
4.2 Equação diferencial hiperbólica 303
4.3 Equação diferencial elíptica 309
4.3.1 Resolução numérica por diferenças finitas 309
4.3.2 Resolução numérica por elementos finitos 312
Exercícios propostos 318

REFERENCIAS BIBLIOGRÁFICAS 321


ANEXO (soluções de alguns problemas propostos) 323

iv
CAPÍTULO 1
_______________________________________________________________________________________________________________

ERROS EM CÁLCULO NUMÉRICO

1. Objetivos

O objetivo principal desta unidade curricular é o de apresentar, analisar e implementar


métodos (algoritmos) que permitam resolver numericamente, de forma eficiente, os tipos de
problemas matemáticos mais frequentes gerados por aplicações no âmbito da Engenharia
(geralmente demasiado complicados para serem tratados analiticamente).

O estudo da matemática introduz conceitos que auxiliam a resolução dos mais diversos
problemas científicos. No entanto, existem numerosos problemas matemáticos para os quais não
se conhece nenhuma solução analítica. Devido às complexidades envolvidas na maioria das
aplicações de engenharia, os métodos analíticos “exatos”, baseados em técnicas da análise
matemática, são geralmente incapazes de fornecer uma solução para as equações que
caracterizam o seu comportamento. São então necessários outros tipos de métodos (métodos
numéricos) para obter informações quantitativas, mesmo que aproximadas, sobre as
quantidades físicas de interesse.

Métodos numéricos são técnicas pelas quais os problemas matemáticos são formulados para
que possam ser resolvidos através de operações aritméticas ou lógicas elementares (Chapra e
Canale, 2014). Estas técnicas, quando aplicadas na resolução de problemas práticos,
requerem, em geral, uma grande quantidade de cálculos. Por isso os métodos numéricos são
particularmente adequados para resolver problemas de cálculo em computadores.

Para implementar um método numérico, nomeadamente num computador, é necessário


elaborar um algoritmo. Numa visão simplista, um algoritmo é uma “receita” para executar
bem e eficazmente uma dada tarefa (no caso presente, os cálculos necessários à solução de
um problema matemático). Um algoritmo numérico consistirá numa sequência pré-definida
e finita de regras (operações aritméticas e decisões lógicas) a aplicar segundo uma ordem
determinada (e sem qualquer ambiguidade) a um conjunto finito de dados para se obter, com
a exatidão desejada num número finito de etapas, um resultado que é, em geral, a solução
aproximada de um problema matemático. Os valores obtidos por um método numérico
designam-se por soluções numéricas. A seleção ou construção de algoritmos eficientes,
facilmente adaptáveis à implementação em computador, é o objetivo da análise numérica.

-1-
Capítulo 1 Erros em cálculo numérico

Um programa informático é um algoritmo redigido numa linguagem (código) compreendida


pelo computador.

Os algoritmos numéricos envolvem, em geral, um grande número de cálculos aritméticos.


Não é, pois, de estranhar que, nas últimas décadas, com o rápido crescimento das
potencialidades dos computadores digitais, o papel dos Métodos Numéricos na resolução de
problemas de engenharia tenha sofrido grande incremento, abrindo caminho para lidar com
problemas de complexidade e escala crescentes.

Pretende-se dotar os leitores da capacidade de aplicar criteriosamente técnicas numéricas na


resolução de problemas de engenharia, o que exige:

1. compreender as potencialidades e fundamentos dos vários métodos, bem como as


respetivas limitações;
2. saber aplicar os métodos, recorrendo a procedimentos computacionais detalhados
que possam ser implementados em computador e analisar as respetivas
características e desempenho.

2. Engenharia, modelação matemática e métodos numéricos


2.1 Introdução

Com o objetivo de enquadrar os métodos numéricos na solução dos problemas de engenharia,


efetua-se uma breve descrição de alguns aspetos da estratégia normalmente utilizada na
abordagem de um problema particular de engenharia.

De acordo com o dicionário da Língua Portuguesa Contemporânea (Academia das Ciências


de Lisboa, Verbo, 2001), Engenharia é “o conjunto de conhecimentos e de técnicas que
permitem aplicar o saber científico à utilização da matéria e das fontes de energia, por forma
a criar estruturas, dispositivos e processos aptos a responder a necessidades humanas. […]”

Em termos práticos, os engenheiros tentam compreender, projetar, construir, gerir, controlar


ou otimizar o que iremos designar genericamente de "sistemas". De forma ampla, "sistema"
refere-se ao objeto de interesse, que pode ser uma parte da natureza (uma bacia hidrográfica,
a área afetada por um problema ambiental, sistema solar, etc.) ou um sistema tecnológico
artificial (estrutura de um edifício, sistema de transportes de uma cidade, campo de coletores
solares para produção de energia, etc.).

-2-
Capítulo 1 Erros em cálculo numérico

A noção de sistema pode ser explicitada de uma forma mais específica, através das suas duas
principais caraterísticas distintivas:

i) Um sistema é um conjunto de componentes interconectados que interagindo trabalham


juntos de forma organizada para cumprir uma finalidade ou função específica.

ii) Um sistema é assumido como uma entidade separável do resto do universo (meio
envolvente ou exterior ao sistema) por meio de um limite físico ou conceitual (fronteira
do sistema).

Para que se possa proceder ao seu estudo, um sistema é assumido como uma entidade
separável do resto do universo (meio envolvente), ou seja, uma região restrita do espaço (ou
uma dada quantidade de matéria), delimitada por uma superfície fechada, real (limite físico)
ou imaginária (conceitual) – fronteira do sistema. A limitação das fronteiras é, em geral,
arbitrária, e a sua definição vai depender do fenómeno a ser analisado, das variáveis que o
influenciam e do grau de entendimento e exatidão desejados.

A fronteira do sistema define as variáveis que pertencem ao sistema e as que pertencem ao


meio envolvente. É através da fronteira que o sistema interage com o meio envolvente,
trocando material, energia e informação (entradas e saídas). A região no interior da fronteira,
sobre a qual incide o estudo, designa-se por sistema físico, ou simplesmente sistema. Tudo
que seja exterior ao sistema e que possa interagir com o mesmo, através da respetiva fronteira,
denomina-se meio envolvente, que pode ser considerado outro sistema. O conjunto do sistema
e meio envolvente constituirá o Universo (figura1).

Um sistema, por definição, combina vários componentes ou elementos diferentes. Eles estão
conectados uns com os outros através de interações mútuas que se designam por relações
internas. Cada um dos elementos por si só tem uma função limitada e definida. No entanto,
quando são reunidos num sistema, esses elementos são capazes de produzir resultados que
são mais do que a soma de cada parte e que não poderiam ser alcançados fora do sistema.

Figura 1 – Representação esquemática de um sistema.

-3-
Capítulo 1 Erros em cálculo numérico

O isolamento de um sistema do meio envolvente é puramente conceitual. Em geral, todo


sistema interage com seu ambiente através de dois grupos de variáveis (figura 2). As variáveis
do primeiro grupo são originadas fora do sistema e não dependem diretamente do que
acontece no sistema. No entanto têm a capacidade de estimular (excitar) o sistema de forma
independente e, assim, induzir mudanças nas condições internas do mesmo. Essas variáveis
são chamadas de variáveis de entrada ou simplesmente entradas (inputs). O outro grupo
compreende as variáveis geradas pelo sistema à medida que ele interage com seu ambiente.
As variáveis dependentes deste grupo são as de interesse primário para o engenheiro pois são
aquelas através das quais se obtém informação sobre o estado interno do sistema. São
chamadas de variáveis de saída ou simplesmente saídas (outputs).

O comportamento do sistema é assim especificado por uma relação entrada-saída, que


constitui a descrição de como a saída (vetor Z) é afetada pela entrada (vetor X). A relação
entrada-saída expressa o comportamento de causa-efeito. Quaisquer causas que atuem no
sistema a partir do meio envolvente através da fronteira do sistema são consideradas entradas.
Estas operam no sistema para produzir uma resposta chamada saída (output). Essa descrição,
é representada graficamente pelo diagrama da figura 2.

Figura 2 - Uma vez definido um sistema, é possível identificar estímulos ou


perturbações, chamadas entradas (inputs), originadas fora do sistema e que operam no
sistema para produzir uma resposta chamada saída (output).

A Engenharia (ou a mera curiosidade humana) tenta responder a questões sobre estes
sistemas. A forma mais imediata para adquirir o conhecimento necessário acerca das
caraterísticas de um sistema é realizar experimentação sobre o mesmo (experimentação
direta). Testar o sistema real e ver o que acontece! Esta é a base do “Método Experimental”
que se baseia no ciclo: observação - hipótese - experimentação. Embora baseado em sólidos
princípios científicos, o método experimental tem limitações. Como ocorre frequentemente
em engenharia, pode ser desadequado ou até mesmo impossível realizar experiências no
sistema real. Por diferentes motivos:

• Pode acontecer que o sistema não exista, já que o pretendido é o seu


dimensionamento (projeto de novos sistemas);

-4-
Capítulo 1 Erros em cálculo numérico

• A experimentação no sistema real pode ser economicamente inviável; por exemplo:


avaliar o efeito de diferentes formas das asas na performance aerodinâmica de um
avião;
• Pode ser impossível experimentar o sistema real; por exemplo, previsão
meteorológica;
• Pode ser eticamente reprovável.

Quando a experimentação direta é inviável, pelas razões anteriormente apresentadas ou por


qualquer outra dificuldade que restrinja o uso desse tipo de abordagem, é necessário, de
alguma forma, planear outro tipo de procedimentos. Nestas circunstâncias, a solução
frequentemente adotada é a de construir ou criar um modelo que represente adequadamente o
sistema, de forma a que sobre ele se possam, posteriormente, executar os referidos testes
(figura 3).

Figura 3 – Experimentação direta versus modelação.

2.2 O que é um “Modelo”?

O termo “modelo” possui diferentes significados na linguagem corrente. O significado


cotidiano da palavra "modelo" é definido no dicionário fundamentalmente de duas formas.
Um modelo pode ser "um objeto de imitação", como uma pessoa que posa para artistas (figura
4a), um modelo a seguir, ou seja, um "exemplo de excelência" (o professor modelo). Um

-5-
Capítulo 1 Erros em cálculo numérico

modelo também pode ser uma "representação" ou “réplica” de algo. Nesse sentido, um
modelo pode ser uma maquete para um novo projeto (figura 4b). Neste curso, usa-se a palavra
"modelo" nesta segunda aceção, ou seja, para designar um tipo de representação. Em situações
práticas, os modelos são representações, propositadamente simplificadas, de um sistema real.

(a) (b)
Figura 4 – Modelos: (a) modelo de pintor; (b) maquete de um conjunto de edifícios.

Diferentes modelos podem ser utilizados para analisar o desempenho de um sistema sob
diferentes pontos de vista. Considerando a forma como se constrói a réplica do sistema, os
modelos podem ser classificados basicamente em dois tipos, a saber:

• modelos físicos (icónicos);


• modelos simbólicos (matemáticos).

Um modelo físico pode ser um protótipo, uma versão em escala reduzida ou mesmo em escala
ampliada do sistema real, o qual é geralmente construído e testado em laboratório. No
passado, antes da “revolução informática”, havia uma dependência muito maior dos modelos
físicos no apoio ao dimensionamento de grandes estruturas de engenharia civil (barragens,
pontes, edifícios). Era habitual, por exemplo, um projetista optar por construir um modelo
reduzido de um descarregador de cheias de uma barragem (figura 5a) de forma a avaliar o
funcionamento hidráulico da forma projetada para o mesmo. Os testes eram efetuados sobre
o modelo físico e a partir daí inferido o comportamento do sistema real. Embora menos
utilizados atualmente em engenharia civil, principalmente pelo fator custo e tempo de
construção, quando comparados com os modelos matemáticos, continuam a ter um papel
importante para complementar aqueles na análise de processos complexos e na respetiva
calibração.

-6-
Capítulo 1 Erros em cálculo numérico

A modelação física segue, no entanto, pujante em outros domínios, como por exemplo, nos
estudos aerodinâmicos em túnel de vento realizados pela indústria automóvel e aeronáutica
(figura 5b).

Os modelos físicos que têm uma aparência semelhante ao sistema original são frequentemente
denominados modelos icónicos. A expressão "modelos icónicos" vem de ícone, sinónimo de
imagem. De facto, neste tipo de modelo são representadas, geralmente com modificação da
escala, as propriedades mais importantes dos sistemas, tal como elas aparecem no original ou
como se supõe que sejam na realidade. Assim, esses modelos parecem-se visualmente com
os sistemas que representam, mas diferem deles, eventualmente, na complexidade e dimensão
(escala). São também considerados modelos icónicos, modelos bidimensionais como mapas,
plantas ou fotografias.

Também é possível criar modelos físicos que não se assemelham ao sistema original. São os
chamados modelos analógicos. Por exemplo, circuitos elétricos podem ser usados para
representar o escoamento de águas subterrâneas.

(a) (b)
Figura 5 – Modelos físicos: (a) Descarregador de barragem;
(b) Ensaios aerodinâmicos em túnel de vento.

Nos modelos simbólicos as propriedades do fenómeno real são expressas simbolicamente.


Estes modelos usam símbolos na forma de letras, operadores matemáticos ou quaisquer outros
símbolos para representar as propriedades do sistema. Assim, os modelos simbólicos podem
ser classificados em verbais, gráficos e modelos matemáticos. Atualmente, os modelos
matemáticos são de longe os mais usados, principalmente devido aos exponenciais ritmos de
evolução das capacidades computacionais (hardware e software) e o crescente

-7-
Capítulo 1 Erros em cálculo numérico

desenvolvimento dos métodos numéricos. A modelação matemática consiste no


estabelecimento de um conjunto de equações e ferramentas matemáticas que representem de
alguma forma o sistema ou a situação (fragmento da realidade) a estudar.

Em relação aos objetivos perseguidos pela utilização de um modelo na resolução de


problemas práticos de engenharia, podem-se distinguir os seguintes três tipos de problemas
(cf. figura 6):

• Problema de análise: é o também denominado problema direto, já que nele as variáveis de


saída do modelo (Z) representam as variáveis de saída do sistema real. O termo análise é
aplicado à atividade de prever como um sistema de engenharia e seus componentes se
comportam quando submetidos a um conjunto específico de condições de operação e
condições ambientais. Entende-se por “simulação” o processo de imitar (reproduzir) o
funcionamento de um sistema ao longo de um período de tempo. Os modelos de simulação
permitem ao engenheiro a experimentação de diferentes cenários e realizar estudos sobre os
correspondentes sistemas para responder a questões do tipo: “o que aconteceria se?”.

Tipo de Problema Dados Incógnita

Análise X e p Z
(resposta do sistema)

Dimensionamento X e Z p
(caraterísticas do sistema)

Controlo Z e p X
(“input”)

Figura 6 – Os três tipos de problemas em engenharia em função da incógnita selecionada.

• Problema de dimensionamento: neste caso, as saídas (incógnitas) do modelo corresponderão


a determinar os parâmetros do sistema real (p). É o tipo de modelo usado no projeto de novos

-8-
Capítulo 1 Erros em cálculo numérico

sistemas, no qual o problema matemático consiste em determinar os parâmetros para os quais


o sistema produzirá as saídas desejadas correspondentes a um conjunto de entradas
especificadas. Em geral o modelo é elaborado segundo técnicas que permitem encontrar a
melhor solução, i.e., técnicas de otimização

• Problema de controlo: as variáveis de saída do modelo representam as variáveis de entrada


do sistema real (X). Este tipo de modelo é usado para determinar os valores que as entradas
do sistema devem adotar para produzir os resultados desejados. É utilizado na prática de
engenharia quando se pretende melhorar as condições operacionais de um sistema existente.

2.3 Modelação matemática

Os modelos matemáticos podem ser classificados em dois grupos:

• empíricos, se a análise dos processos em jogo se reduz à procura de uma relação causa-
efeito entre variáveis de entrada (dados) e variáveis de saída (resultados),

• mecanicistas ou fisicamente baseados, se procuram reproduzir as leis físicas que


regem os fenómenos no interior do sistema (relações internas).

Os modelos empíricos recorrem à representação simplificada dos processos físicos, com base
em resultados obtidos experimentalmente. São baseados em observações de como o sistema
responde sob diferentes condições de entrada ou estímulo. A representação não tenta
descrever nenhum dos processos detalhados envolvidos no interior do sistema (relações
internas) ou determinar porque o sistema responde da maneira como o faz. O sistema pode
ser considerado uma “caixa negra” (figura 7).

Figura 7 – Modelos empíricos: o sistema é considerado uma caixa negra.

Um exemplo de modelo empírico poderá consistir num simples ajuste de um conjunto de


pontos (dados) experimentais a uma equação (ver figura 8) utilizando o método de mínimos
quadrados (matéria a ser tratada no Cap. 4).

-9-
Capítulo 1 Erros em cálculo numérico

Figura 8 – Exemplo de um modelo empírico de previsão da elevação do nível médio


das águas do mar na Flórida. A Flórida, no sudeste dos EUA, tem a maior quantidade
de grandes cidades norte-americanas ameaçadas pela subida das águas do mar,
resultantes do aquecimento global. A cidade de Miami (foto no canto superior direito
da figura) é uma das mais vulneráveis.

Um modelo mecanicista é aquele que procura explicar e reproduzir matematicamente o


comportamento interno da globalidade do sistema através da caraterização individual de cada
um dos seus elementos e das interações que ocorrem entre eles. Tais modelos, particularmente
os dinâmicos, para além das variáveis de entrada e saída, são compostos por variáveis que
descrevem o sistema físico (parâmetros do sistema) e por variáveis que, em cada instante,
descrevem o estado do sistema (variáveis de estado). O modelo é construído a partir do
conhecimento dos mecanismos físicos que relacionam essas variáveis (figura 9).

Figura 9 – Modelo mecanicista: diagrama esquemático.

As variáveis de estado (vetor Y) constituem uma descrição interna do sistema e permitem


caracterizar completamente o estado do sistema em qualquer instante. As variáveis de saída
que são o que, em geral, pretendemos observar, medir ou calcular, exprimem-se em funções
das variáveis de estado do sistema e das variáveis de entrada.

- 10 -
Capítulo 1 Erros em cálculo numérico

Os parâmetros são variáveis cujo valor deverá ser conhecido antes das equações do modelo
serem resolvidas. Exemplos são parâmetros dependentes da constituição do sistema (volume,
diâmetro, massa etc.), variáveis hidráulicas (por exemplo, rugosidade da parede ou
viscosidade do fluido) e propriedades do material (por exemplo, permeabilidade de um solo,
coeficiente de resistência aerodinâmico, coeficientes de difusão).

Em geral, a construção de um modelo mecanicista é baseada em dois ingredientes principais:


leis gerais e relações constitutivas. As leis gerais oriundas da mecânica do contínuo aparecem
como leis de conservação ou equilíbrio (por exemplo, massa, energia, quantidade de
movimento, etc.). As relações constitutivas são de natureza experimental e dependem
fortemente das características dos fenómenos em consideração. Exemplos são a lei de Fourier
da condução de calor ou a lei de Fick para a difusão de uma substância. O resultado da
combinação dos dois ingredientes é geralmente uma equação diferencial ás derivadas parciais
ou um sistema de equações diferenciais.

Como exemplo de um modelo mecanicista, a figura 10 resume a estrutura típica e as variáveis


de um modelo hidrológico destinado a simular processos hidrológicos que ocorrem numa
bacia hidrográfica.

Figura 10 – Estrutura e variáveis de um modelo hidrológico mecanicista.


(adaptado de Hingray et al. (2015))

- 11 -
Capítulo 1 Erros em cálculo numérico

O processo de resolução de um problema de engenharia (ver figura 11) pode ser visto como
uma sequência de etapas que devem ser realizadas e repetidas ciclicamente, até que o modelo
matemático construído para a representação do problema forneça resultados “ajustados” à
situação real.

O processo inicia-se com a definição da situação real que se pretende estudar; ou seja,
identificar com precisão em que consiste o problema (definição do problema). Esta etapa
engloba uma recolha de dados, o mais abrangente possível, de forma a conhecer as
caraterísticas intrínsecas do sistema a estudar. Devem identificar-se as entidades associadas
ao problema: os dados (o que é conhecido), o objetivo (que é desconhecido e pretende-se
determinar) e as restrições (as condições do problema apresentadas).

Figura 11 – Fases do processo de resolução de um problema de engenharia através da


modelação matemática.

O próximo passo (modelo conceptual) consiste em investigar os processos físicos e


fenómenos que ocorrem no sistema, relevantes para o objetivo de modelação. A construção
de um modelo conceptual começa com a esquematização e simplificação da realidade, através

- 12 -
Capítulo 1 Erros em cálculo numérico

de um processo de abstração: reduzimos a complexidade do sistema em função da questão


proposta. Em face da complexidade do mundo “real”, um modelo deverá simplificar essa
realidade, suprimindo detalhes irrelevantes e retendo os aspetos essenciais, de modo que a
essência do sistema seja melhor conhecida e possamos enfrentar a sua complexidade. O
modelo conceptual é, pois, uma descrição estruturada que fornece um entendimento genérico
e simplificado da estrutura, organização e comportamento do sistema. O seu objetivo é o de
fornecer ao engenheiro uma forma de pensar o sistema. É com base neste que se avança para
o próximo passo (modelo matemático), que corresponde à matematização do problema, ou
seja, traduzir o modelo conceptual em linguagem matemática.

Uma vez obtido o modelo matemático, a natureza das equações do modelo é que geralmente
determina o tipo de método para obtenção da solução a ser selecionado. Em geral, para
resolução de problemas matemáticos, os métodos analíticos são preferíveis uma vez que dão
soluções gerais, expressas de forma literal e que, por isso, oferecem uma maior informação
quanto à natureza e dependência dessas soluções. No entanto, em engenharia, problemas que
possuem solução analítica são aqueles que envolvem equações, geometrias e condições de
contorno e iniciais muito simples, ou seja, são as exceções.

A máxima da simulação diz que “é preferível ter a solução aproximada de um modelo bastante
realista do que a solução exata de um modelo com muitas aproximações”. No entanto estes
problemas simplificados, com soluções analíticas conhecidas, podem ser de grande utilidade
no fornecimento de "casos de verificação" para o problema mais geral, como veremos
seguidamente.

Sendo, na maioria das vezes, a solução numérica a única opção, na etapa seguinte (modelo
numérico) é efetuada a seleção do método numérico (ou métodos numéricos) mais apropriado
para resolver o problema, de acordo com a respetiva velocidade de convergência, esforço
computacional despendido e exatidão desejada para os resultados. Depois de feita a seleção
do método, este é descrito através de um algoritmo, o qual é posteriormente implementado
num computador através de uma linguagem de programação.

Antes de se poder usar o modelo, é necessário testá-lo. O primeiro teste consiste na chamada
verificação do modelo computacional. Corresponde ao processo de determinar se o modelo
computacional representa com exatidão o modelo matemático desenvolvido e a respetiva
solução. De forma simples, corresponde a dar resposta à questão: estamos a resolver as
equações corretamente? Para o efeito, é necessário verificar o código (procurando detetar

- 13 -
Capítulo 1 Erros em cálculo numérico

erros de programação e lógicos no programa de computador) e verificar o próprio cálculo


numérico. Esta verificação será efetuada comparando as soluções numéricas com soluções
analíticas ou soluções de referência suficientemente exatas (benchmark).

A validação é o processo de determinar em que grau o modelo é uma representação precisa


do mundo real em face da utilização pretendida do modelo. A validação é efetuada através da
comparação dos resultados do modelo com dados obtidos através de ensaios laboratoriais ou
de observações da realidade. Aqui procura-se dar resposta à questão: estamos a resolver as
equações corretas? Em resumo, a verificação lida com a matemática associada ao modelo,
enquanto a validação lida com a física associada ao modelo.

Antes da validação do modelo é frequentemente necessário efetuar uma outra etapa: a


calibração. Define-se calibração como sendo o processo de estimar os parâmetros do modelo
que fornecem a melhor correspondência, dentro de um determinado intervalo de exatidão,
com dados experimentais ou outros dados de referência. Os dados usados para calibrar um
modelo não podem ser usados para a respetiva validação.

A validação de um modelo implica frequentemente a sua reformulação, efetuada percorrendo


ciclicamente a sequência de etapas (mutuamente dependentes) anteriormente referidas até à
obtenção de um modelo “ajustado” à situação real. Este processo sequencial é habitualmente
designado por ciclo de modelação.

3. Tipos de erros na resolução numérica de problemas de Engenharia

Como anteriormente referido, ao contrário das soluções analíticas, que conduzem a soluções
exatas para os problemas, os métodos numéricos produzem, em geral, apenas soluções
aproximadas. Por este facto, antes da utilização de qualquer método numérico é necessário
decidir qual a exatidão com que se pretende obter a solução numérica desejada. A exatidão dos
cálculos numéricos é também, como veremos, um importante critério para a seleção de um
algoritmo particular na resolução de um dado problema.

Mesmo nos casos em que existe uma fórmula disponível, deve ter-se algum cuidado pois, como
mostram os exemplos que se seguem, existem cálculos matemáticos que oferecem respostas
corretas quando se efetuam utilizando números reais exatos, mas dão respostas erradas quando
se realizam em computador com precisão finita.

- 14 -
Capítulo 1 Erros em cálculo numérico

Exemplo 1.1: Efetue um programa de cálculo que adicione dez mil vezes o valor
0.00001 a uma unidade. Compare o resultado obtido com o resultado exato
calculando a percentagem de erro.

O resultado obtido num PC a trabalhar em simples precisão é: SUM=1.100136. Como


o resultado exato é SUM=1.1, vem

1.1 − 1.100136
 100  0.0124 %
1.1

Exemplo 1.2: (Cálculo de uma derivada). A definição de derivada

f ( x + Δx) − f(x)
f ' ( x) = lim
Δx →0 Δx

 f
sugere que o quociente pode aproximar f ' ( x) , se existe, quando  x → 0 . No
x
entanto, tal não é provável que suceda se os cálculos se realizam num computador, a não
ser que f ' ( x) seja zero. Para o confirmar, suponha que queremos calcular a derivada
da função f (x) = sin x para x=1.

Solução analítica: f ' ( x) = cos x


f ' (1) = cos1  0.54030

sin (1 +  x) − sin (1)


Solução numérica: d=
x

x d Valor exato - d
_______________________________________________________________

0.1 0.49736 0.042938


0.01 0.53609 0.004212
0.001 0.53996 0.000344
0.0001 0.54061 - 0.000312
0.00001 0.54240 - 0.002100
0.000001 0.53644 0.003860
0.000000001 0.0 ! 0.540300

Ao longo do restante capítulo procuraremos explicar a origem destes erros.

- 15 -
Capítulo 1 Erros em cálculo numérico

A resolução de um problema de Engenharia num computador utilizando um modelo numérico


na resolução do correspondente modelo matemático produz, em geral, uma solução aproximada
do problema. A introdução de erros na resolução de um problema pode ser devida a vários
fatores. Em função da sua origem, e das etapas de resolução de um problema de Engenharia, é
possível considerar essencialmente quatro tipos de erros (figura 12).

Figura 12 - Tipos de erros nas diferentes fases de resolução de um problema de engenharia.

1) Erros inerentes ao modelo – Como se referiu anteriormente, os modelos matemáticos


raramente constituem uma representação exata dos fenómenos reais. Na grande maioria dos
casos são apenas modelos idealizados, já que ao estudar os fenómenos da natureza vemo-nos
forçados, regra geral, a aceitar certas condições que simplificam o problema de forma a torná-lo
tratável. Os melhores modelos são os que incluem apenas aquelas características do problema
real necessárias para reduzir os erros nesta fase a um nível aceitável.

2) Erros inerentes aos dados - Um modelo matemático, como também já se viu, não contem
apenas equações e relações; também contem dados e parâmetros que, frequentemente, são
medidos experimentalmente e, portanto, aproximados. As aproximações nos dados podem ter
grande repercussão no resultado final.

3) Erros de truncatura - Muitas equações matemáticas têm soluções que apenas podem ser
construídas no sentido que um processo infinito possa ser descrito como limite da solução em
questão. Por definição, um processo infinito não pode ser completado, por isso tem de ser

- 16 -
Capítulo 1 Erros em cálculo numérico

truncado após certo número finito de operações. Esta substituição de um processo infinito por
um processo finito (ou a substituição de um problema contínuo por outro discreto), resulta num
tipo de erro designado erro de truncatura. Em muitos casos, o erro de truncatura é precisamente
a diferença entre o modelo matemático e o modelo numérico.

4) Erros de arredondamento - Quer os cálculos sejam efetuados manualmente quer obtidos


por computador somos conduzidos a utilizar uma aritmética de precisão finita, ou seja, apenas
podemos ter em consideração um número finito de dígitos. O erro devido a desprezar os outros
e arredondar o número é designado por erro de arredondamento.

Os erros inerentes ao modelo e aos dados são erros iniciais, exteriores ao processo de cálculo;
os erros de truncatura e de arredondamento ocorrem no decurso do processo de cálculo duma
solução numérica no computador. A análise destes dois últimos, com especial relevância para
os erros de arredondamento, constitui assim o objetivo principal deste capítulo.

4. Erros de truncatura. Série de Taylor.


Não se vai dar grande relevo neste capítulo aos erros de truncatura pois, como referido
anteriormente, dependem do método numérico utilizado e por isso serão individualmente
analisados ao estudar os vários métodos no decurso dos diferentes capítulos. Vamos limitar a
análise a um exemplo concreto que ajuda a uma melhor perceção deste tipo de erros e introduz
uma das formulações matemáticas mais utilizadas no âmbito dos métodos numéricos: a série de
Taylor. Constitui o fundamento de vários métodos numéricos e a partir dela podemos obter
estimativas de erro das muitas técnicas numéricas utilizadas. Será usada na maioria dos
capítulos deste texto.

Como é que os computadores representam as funções? Como referido, os computadores


apenas podem executar as quatro operações aritméticas básicas: adição, subtração,
multiplicação e divisão. Assim, por exemplo, um computador pode representar facilmente
f ( x) = a x 2 + b x + c pois esta função envolve apenas operações aritméticas básicas. Em contraste,
x dy
funções transcendentes, como por exemplo, ln x =  , envolvem, para além das operações
1 y

aritméticas básicas, outras operações, neste caso integração. Revisitemos então uma das
formulações matemáticas mais utilizadas no âmbito dos métodos numéricos para exprimir
funções: a série de Taylor.

- 17 -
Capítulo 1 Erros em cálculo numérico

Consideremos uma função f(x) contínua e com derivadas contínuas, de qualquer ordem, na
vizinhança de x = x0 . Esta função pode ser representada de forma única em qualquer ponto x na
vizinhança de x = x0 (mais exatamente, no intervalo x0 − R, x0 + R , denominado intervalo de
convergência, onde R é o raio de convergência da série para x = x0 ) através da série de potências
infinita:

f ' ' ( x0 ) f ( n ) ( x0 )
f ( x) = f ( x0 ) + f ' ( x0 ) ( x − x0 ) + ( x − x0 ) + ... +
2
( x − x0 ) n + ... =
2! n!
(1)
 (k )
f ( x0 )
=  k!
( x − x0 ) k
k =0

designada representação em série de Taylor da função f(x) no ponto x0.

Embora a série de Taylor se possa sempre formar caso a função seja indefinidamente
diferenciável num certo ponto, isso não garante que, em alguma vizinhança de x0, a soma da
série seja igual à própria função. Demonstra-se, no entanto, que (ver, por exemplo, Campos
Ferreira (2008)) se uma função indefinidamente diferenciável tiver todas as suas derivadas
globalmente limitadas nalguma vizinhança de x0, então, nessa vizinhança de x0, a função
coincide com o respetivo desenvolvimento em série de Taylor. Uma função nestas condições
diz-se analítica.

No caso particular em que x = x0 = 0 , a expansão de Taylor é designada por série de Maclaurin,


f (0) 2 f (n) (0) n f (k) (0) k
f ( x) = f (0) + f  (0) x + x + ... + x + ... =  x (2)
2! n! k= 0 k!
A título de exemplo, as séries de Maclaurin de ex, sin x e cos x são, respetivamente,

2 3 n
x x x
e =1+ x + + + ... + + ...
x
(3)
2! 3! n!

3 5 7
x x x
sin x = x − + − + ... (4)
3! 5! 7!

2 4 6
x x x
cos x = 1 − + − + ... (5)
2! 4! 6!

- 18 -
Capítulo 1 Erros em cálculo numérico

Embora muitas funções possam ser perfeitamente representadas por sequências infinitas e
operações aritméticas básicas, os computadores apenas podem armazenar sequências finitas.
Então, a sequência infinita que representa a função exata terá de ser artificialmente truncada para
um número finito de termos. Muitos problemas envolvem não apenas funções contínuas, mas
também operações sobre funções contínuas como integração e diferenciação. Se as funções
contínuas são substituídas por funções definidas discretamente, então todos os operadores sobre
funções contínuas têm também de ser substituídos por operadores sobre funções definidas
discretamente.

Se a série de Taylor (1) for truncada após o termo de ordem n, será expressa como:

(n)
f '' ( x0 ) f ( x0 )
f ( x) = f ( x0 ) + f '( x0 )( x − x0 ) + ( x − x0 )2 + ... + ( x − x0 )n + Rn ( x)
2! n!

pn ( x)

em que p n (x ) é designado por polinómio de Taylor de ordem n para f em torno de x0 e Rn (x)

designado por erro de truncatura (representa o erro da aproximação f ( x)  p n ( x) ao truncar os

termos de ordem n+1 e superiores) associado a p n (x ) . Este erro pode ser expresso, através da

chamada fórmula do resto de Lagrange, por:

( n +1)
f ( )
R n ( x) = ( x - x0 )n+1 (6)
(n + 1)!

com  entre x e x0 . No caso de se verificar que R n ( x) → 0 a aproximação por polinómios de


n →

Taylor pode ser tão exata quanto se queira, bastando para tal considerar um número
suficientemente elevado de termos. Como ξ não pode, em geral, ser determinado é apenas
possível calcular um limite superior para R n (x) pela consideração de um majorante para
( n +1)
f ( ) .

- 19 -
Capítulo 1 Erros em cálculo numérico

x
 1
Exemplo 1.1: Da análise matemática sabemos que existe o limite: lim 1 +  cujo
x →  x
valor é o número irracional “e”. Através da definição não é possível calcular o valor
exato de “e”, tanto pela complexidade das operações a efetuar como pela
impossibilidade de atingir o limite. Recorre-se então a um processo de cálculo mais
simples, que fornece um valor aproximado desse número dentro de um certo grau de
precisão considerado satisfatório.
Utilizando (2) o valor de “e” pode ser expresso pela soma infinita (recorde que, por
definição, 0!=1):

1
e=
i =0 i!
Truncando a série, por exemplo após os 8 primeiros termos, obtemos:
7

 i!  2.7182539 , cujas primeiras 4 casas decimais coincidem com o valor exato


1
e=
i =0

f ( )
( 8)
de “e”. Utilizando a fórmula do erro (6) R7 ( x) = R7 (1) = (1 - 0 )8 , com 0    1 .
(7 + 1)!

Como f ( 8) ( x) = e x o valor máximo da derivada 0  x  1 será e, pelo que


e
R7 ( x)   0.67  10 − 4 , o que, como veremos posteriormente, garante pelo menos 3
8!
casas decimais corretas. No caso deste exemplo, como R n ( x) → 0 , quanto maior for
n →

o número de termos da série de Taylor considerados, mais nos aproximamos do valor


exato.

O exemplo anterior ilustra um método numérico para o cálculo do número "e" entre outros
possíveis.

- 20 -
Capítulo 1 Erros em cálculo numérico

Exemplo 1.2: A figura 23 ilustra graficamente a forma como a função cos x é aproximada
no intervalo 0  x   utilizando diferentes polinómios pk (x) , k=1, 2 e 3, obtidos truncando
a série de Maclaurin (2), ou seja:
k
 cos 2 4 6
cos x =  2 x k = 1 − x + x − x + ...
k =0 k! 2! 4! 6!

2 4
x x
x
2 1− +
1− 2 4!
2
2 4 6
x x x
1− + − cos ( x)
2 4! 6!

(  )

Figura 23 - Gráficos de f ( x) = cos x e das aproximações obtidas por (3) para k = 1, 2 e 3.

Utilizando a expansão em série de Taylor, truncamos a série infinita, utilizando uma soma
parcial. Este tipo de erro, motivado por truncar uma série - erro de truncatura - é inerente à
maioria dos métodos numéricos.

5. Erros de arredondamento e aritmética computacional

Os números são as personagens centrais dos métodos numéricos. O primeiro tipo de erros que
cometemos nos cálculos surge do processo de representação dos números. O conjunto dos
números reais R é infinito, contínuo e ilimitado. Pelo contrário, o conjunto dos números que
se podem representar exatamente em computador, pelo facto destes utilizarem um número
limitado de dígitos para aquela representação, é finito, discreto e limitado. Isto significa que a
utilização de computadores na resolução de problemas numéricos origina o aparecimento de
um certo tipo de erros, que não surgiriam se fosse possível usar aritmética exata. Por outras
palavras, quando usamos aritmética computacional estamos constantemente a cometer erros de
arredondamento na representação dos resultados das sucessivas operações realizadas.

- 21 -
Capítulo 1 Erros em cálculo numérico

Para compreender a natureza dos erros de arredondamento, é necessário saber de que forma os
números são armazenados e como são efetuadas as operações em computador. Assim, a primeira
parte do capítulo descreve as principais características dos sistemas de numeração de
computadores e as consequências da sua utilização em cálculo numérico.

5.1 Representação de números inteiros

5.1.1 Sistemas de numeração – da pré-história ao sistema posicional de base 10

Um sistema de numeração é meramente uma forma de representar os números, i.e., um


conjunto finito de símbolos (alfabeto ordenado) e regras que permitam escrever e relacionar
os números de uma forma consistente.

O conjunto de símbolos permitirá associar a cada número um numeral. Embora


frequentemente se utilizem indistintamente as palavras número e numeral, em termos
matemáticos, estes termos representam dois conceitos diferentes. Numeral é qualquer símbolo
(gráfico ou não) ou grupo de símbolos utilizado para representar o conceito (abstrato) de
número, que é a quantidade em si. A representação escrita pode ser feita pelas palavras em
extenso ou pela representação simbólica utilizando algarismos. Assim, a um mesmo número
podem corresponder diferentes representações (numerais), quando se utilizam, por exemplo,
diferentes sistemas de numeração (os numerais 12 e XII representam o mesmo número). Na
prática, usualmente, utilizamos a palavra número para nos referirmos também a um numeral.

Ao longo da história da humanidade, diversas foram as maneiras de escrever números e


expressar quantidades. Diferentes culturas em diferentes períodos adotaram vários métodos,
desde o básico «um, dois, três, muitos» até à muito sofisticada notação posicional decimal
que se utiliza atualmente. Sumariemos, rapidamente, esse percurso.

O número é, pois, um conceito abstrato que representa a ideia de quantidade. Acredita-se que
a necessidade de criação de números veio com a necessidade de contar. Contar terá sido a
primeira “atividade” matemática da Humanidade. Não é possível estabelecer como e quando
surgiu a necessidade de contar, embora seja natural imaginar que essa necessidade tenha
surgido como parte da vida diária do homem. Desde os tempos pré-históricos, os seres
humanos foram desenvolvendo a capacidade de identificar quantidades e de registá-las. Mas
tal ocorreu de forma lenta e gradual.

Um dos primeiros sistemas de contagem foi desenvolvido tendo como base os dedos das

- 22 -
Capítulo 1 Erros em cálculo numérico

mãos; pois, somando os dedos das duas mãos, conseguia-se representar até dez elementos e,
combinando-os com os dedos dos pés, podia-se chegar até 20. A palavra digito, que hoje
usamos com o significado de algarismo, deriva do latim “digitus” que significa dedo.

A partir do momento em que os dedos se tornaram inadequados, ou insuficientes, para esse


processo, passou-se à utilização de conjuntos de pequenas pedras para representação, através
de uma correspondência biunívoca, dos elementos de um conjunto. Consiste em fazer
corresponder a cada objeto de uma coleção um objeto da outra. Por exemplo, para cada ovelha
que saia pela manhã o pastor colocava uma pedrinha num saco, ao entardecer ele retirava uma
pedra para cada animal que retornava. Desta forma controlava o seu rebanho, utilizando um
sistema de enumeração baseado na correspondência um-para- um (uma «pedrinha»
correspondia a um animal, ...). Uma evidência dessa prática de utilização de pequenas pedras
como ferramenta na aprendizagem da contagem e na aritmética fundamental está na palavra
“cálculo”, com origem no vocábulo latino calculus, que significa exatamente “pequena
pedra” (atualmente ainda mantem a significação original quando denomina os cálculos
renais).

Após essa primeira noção de quantidade, e dado que as pedras constituem um mecanismo
muito efémero para conservar a informação, surgiu o desejo de conservar os registros
simbolizados por essas pedras. Foi a partir daí que começaram as primeiras relações entre
quantidades e símbolos. De facto, a necessidade de representar os números levou os homens
à criação de diversos sistemas com essa finalidade, aquilo a que atualmente designamos por
sistemas de numeração. Para efetuar os seus primeiros registos numéricos o homem, antes
mesmo de possuir uma linguagem escrita, terá começado por recorrer a incisões ou traços,
como o comprovam diversos testemunhos que remontam ao Paleolítico Superior (40000 a
10000 a. C.). Desta prática de entalhe em pedaços de madeira, ossos ou em paredes de
cavernas, em que a cada entalhe se fazia corresponder uma unidade, resultou o mais antigo (e
simples) sistema de numeração utilizado pelo homem, que se pode traduzir graficamente da
seguinte forma:
I II III IIII ... IIIIIIIIII IIIIIIIIIII
Ou seja,
• um sistema de numeração com um único símbolo, a saber, um traço vertical, S={I},
representando a unidade;
• A regra utilizada baseia-se no denominado princípio aditivo, isto é, para se conhecer
o valor representado, simplesmente adicionam-se os valores dos símbolos utilizados.

- 23 -
Capítulo 1 Erros em cálculo numérico

Neste caso, representa-se o valor desejado repetindo o uso do símbolo o número de


vezes necessário, ou seja, dada a representação de um número, para se obter a
representação do seu sucessor basta acrescentar uma unidade às unidades do número
dado.

Denominamos a esse sistema de numeração de sistema aditivo de base um, ou, simplesmente,
de sistema de base um. Em termos não muito formais, mas suficientemente descritivos,
diremos que “base” é o número (constante) de unidades que se convenciona tomar para com
elas construir uma unidade maior, de ordem imediatamente superior, num processo que, em
princípio, se pode repetir até ao infinito.

O sistema de numeração de base um podia ser conveniente para o homem pré-histórico, cujas
necessidades de contar eram certamente diminutas. O uso desse sistema numa civilização
como a nossa traria sérios inconvenientes, tanto para o reconhecimento do número (é
necessário contar a quantidade de símbolos) como pelo espaço ocupado pela representação,
mesmo para valores modestos. Quando se tornou necessário efetuar contagens mais extensas,
o processo de contar foi sistematizado e, dos esforços para se efetuarem registos permanentes,
vários outros sistemas de numeração escritos mais elaborados foram emergindo.

O próximo passo na evolução dos sistemas de numeração consistiu no simples agrupamento


de símbolos, ou seja, na utilização de bases superiores à unidade. Foi isso que fizeram os
egípcios, uma das mais importantes civilizações antigas que floresceu em torno do rio Nilo e
respetivo delta entre 3.150 e 31 a.C.. O sistema decimal egípcio já estava desenvolvido por
volta do ano 3000 a.C., ou seja, antes da unificação do Egito sob o regime dos faraós. A
civilização egípcia criou um sistema de numeração cujos símbolos eram chamados
hieróglifos. Utiliza como símbolo para a unidade o pequeno traço vertical usado desde os
primórdios da civilização, o qual repete para simbolizar os números até 9. Em seguida,
aparecem símbolos especiais para representar as diferentes potências de 10, desde 10 (o
símbolo da dezena é uma ferradura) até 107 (figura 14). Dentro das dezenas, repete-se o
símbolo de forma idêntica, aparecendo símbolos novos a cada potência de 10: centenas,
milhares, etc. O símbolo para a dezena é semelhante a uma ferradura, a centena é representada
por uma espiral, o milhar é uma flor de lótus estilizada. Para a dezena de milhar usavam um
dedo erguido, ligeiramente inclinado, a centena de milhar lembra um girino ou uma rã e o
milhão, um homem de joelhos com os braços para cima, parecendo maravilhado com
quantidade tão grande.

- 24 -
Capítulo 1 Erros em cálculo numérico

Figura 14 - Símbolos (hieróglifos) do sistema de numeração egípcio.

Como se referiu, a quantidade adotada para efetuar cada agrupamento é o que denominamos
base do sistema de numeração. Assim, no caso do sistema de numeração egípcio, a base será
10, pois os agrupamentos são feitos de 10 em 10 unidades (os dez dedos do homem deixaram
uma marca indelével). Vejamos agora de modo mais sistemático como se define um sistema
de numeração aditivo não posicional (o valor atribuído a um símbolo é inalterável,
independente da posição em que se encontre no conjunto de símbolos que representam um
número) de base b:

• Inicialmente escolhe-se um número b (base) e adotam-se símbolos para 1, b, b2, etc.

• Seguidamente qualquer número pode ser expresso pelo uso desses símbolos
aditivamente, repetindo cada um deles o número necessário de vezes.

No entanto este sistema de numeração egípcio continha algumas dificuldades do ponto de


vista prático, pois, por exemplo, para escrever o número 5.724, teriam que se agrupar cinco
símbolos de 1.000, sete símbolos de 100, dois do número 10 e quatro do 1; no total, dezoito
símbolos! Por outro lado, como referido, no sistema egípcio, há símbolos diferentes para
representar os números um, dez, cem, mil e um milhão. Seguindo o mesmo principio, seriam
necessários outros símbolos para representar números maiores. E esse processo não teria fim.

Entre os sistemas do tipo não posicional, o mais conhecido, por ser tradicionalmente ensinado
na escola e ainda atualmente utlizado, principalmente para expressar os séculos, é o sistema
de numeração romano. O sistema romano foi desenvolvido a partir do Século III a. C., e
utilizado na Europa até ao Século XVI. Nesse período houve muitas variações tanto no
desenho dos símbolos quanto na metodologia da representação. Os Romanos utilizaram letras
do seu alfabeto para representar números. O sistema de numeração romano é composto por

- 25 -
Capítulo 1 Erros em cálculo numérico

sete letras: I, V, X, L, C, D e M. É um sistema, originariamente, aditivo, sendo o valor do


número representado pela soma dos valores representados por cada uma das letras. Embora
seja decimal, como o sistema egípcio, este possui o número 5 como base auxiliar, pelo que
um mesmo símbolo podia ser repetido até, no máximo, quatro vezes. Os romanos encontraram
assim uma solução diferente para evitar a repetição de um mesmo algarismo diversas vezes.
Com o passar dos anos, o sistema de numeração romano sofreu um longo processo de
evolução. Também por simplificação de escrita, os símbolos começaram a ser utilizados de
modo subtrativo, introduzindo uma regra de acordo com a qual um símbolo colocado à
esquerda de um símbolo de maior valor teria que ser subtraído daquele (IX representa 9, em
vez da forma inicial VIIII). Este sistema mais evoluído respeitava um conjunto de regras, das
quais as mais importantes seriam:

• Todo símbolo numérico que possui valor menor ou igual do que o que está à sua
esquerda, deve ser somado ao maior (VI = 5 + 1 = 6);
• Todo símbolo numérico que possui valor menor ao que está à sua direita, deve ser
subtraído do maior (IV = 5 – 1 = 4);
• Na representação dum número os símbolos I, X, C e M podem repetir-se lado a lado,
no máximo, três vezes consecutivas (CCC = 300); os outros apenas são utilizados uma
vez.
• Para representar um número mil vezes superior era colocado um traço horizontal por
cima do número considerado ( X L = 40  1000 = 40000 ).

Como exemplo de utilização do princípio aqui descrito, podemos apresentar o caso do número
1944. Se o único princípio aplicado fosse o aditivo, este número escrever-se-ia
MDCCCCXXXXIIII . Aplicando-se o princípio subtrativo, o número será representado pela
sequência MCMXLIV.

Os romanos não tinham um símbolo para o zero. Há que ter em conta que o sistema romano,
não sendo um sistema posicional, não requer o zero. O número zero, que representa o nada, a
inexistência de algo, não era necessário num sistema de contagem aditivo como o romano.

Os primeiros a utilizar um sistema essencialmente posicional foram os babilónios, que


viveram na Mesopotâmia, nos vales dos rios Tigre e Eufrades (região atualmente ocupada
pelo Iraque) por volta do ano 2500 a.C.. Pioneiros na arte de calcular, criaram o que hoje se
chama de “sistema de numeração posicional”, ou seja, um modo de representação numérica
na qual o valor de cada algarismo depende da sua posição relativa na composição do numeral,
i.e., o mesmo símbolo representa valores diferentes dependendo da sua posição.

- 26 -
Capítulo 1 Erros em cálculo numérico

Usavam apenas dois símbolos: o símbolo do cravo, que representava a unidade ( = 1) e o


símbolo asna representando a quantidade dez ( = 10), símbolos cuja grafia é denominada
“cuneiforme” em virtude de seu aspeto em forma de “cunhas e de “cravos” ou “pregos”). Até
ao número 59 utilizavam o princípio aditivo, repetindo cada um desses dois símbolos tantas
vezes quantas fosse necessário (conferir figura 15 ) e, a partir daí, era então utilizado o sistema
posicional.

Figura 15 - Símbolos (cuneiformes) do sistema de numeração babilónico.

Inicialmente não existia um símbolo para a ausência de valor em alguma das ordens do
sistema (isto é, não havia zero) e, como consequência, podiam aparecer expressões ambíguas,
só possíveis de perceber no contexto. Mais tarde ficou claro que a ausência de valor de alguma
das ordens teria que ser representada de alguma forma e a partir de certa altura, sempre que
necessário, aparecia um espaço entre os símbolos para indicar um lugar vazio (onde hoje
utilizaríamos o símbolo zero). Assim, por exemplo, a repetição de três cravos (símbolos que
representam a unidade) separados por espaços entre eles representariam o número 3661:

= 1  60 2 + 1  60 + 1 = 3661

Muitos séculos mais tarde, por volta de 300 a.C., os babilónios inventaram um símbolo para
substituir esse espaço vazio: duas ‘cunhas’ inclinadas ( ). Este símbolo não tinha, contudo,
existência própria (era um simples separador). Não se usava isolado, ou no final de um
número. Faltava um ‘conceito’ de zero.

A invenção do zero possibilitou o derradeiro passo na evolução dos sistemas de numeração,

- 27 -
Capítulo 1 Erros em cálculo numérico

conduzindo ao nosso atual sistema posicional de base 10. A grande invenção prática do zero,
com o duplo significado atual, enquanto número e enquanto valor posicional, é atribuída aos
hindus. A origem do nosso sistema de numeração decimal (o indo-árabe) começou a ser criada
no vale do Rio Indo, pela civilização Indiana, há cerca de 3000 anos. Pode atualmente afirmar-
se com certeza que, apenas por volta do ano 600 d.C., o zero, que até aí fora, quando muito,
um “marcador de lugar” passou a ter um estatuto de número. A notação posicional de base 10
com 9 “figuras” e o símbolo zero tornou-se standard na India. Foi posteriormente conhecido
e adotado durante séculos pelos árabes (que cultivavam relações comerciais com os hindus)
no Médio Oriente. Um longo caminho haveria a percorrer após ter transitado e ser divulgado,
de forma lenta, durante o período de 1200 a 1600, através do comércio árabe (daí ser também
frequentemente designado apenas por sistema de numeração árabe), até ao seu uso
generalizado na Europa.

Num sistema de numeração posicional, a representação de um número inteiro é efetuada


utilizando uma sequência de algarismos (ou dígitos) onde, a cada posição da sequência, está
associado um peso ou fator de ponderação. Quando escrevemos, por exemplo, o número 352,
sabemos que o algarismo 3 representa 300 unidades, o algarismo 5 representa 50 unidades e
o algarismo 2 representa 2 unidades. Assim, a cada dígito está associado um valor facial (valor
absoluto), mas, o valor local (valor relativo) de um dígito é determinado pela sua posição no
número, à qual se pode associar um peso. Isso pode ser indicado mais formalmente do
seguinte modo:
valor valor

local
 
facial peso

352 = 300 + 50 + 2 = 3  100 + 5  10 + 2

O valor de um número decimal é, pois, a soma dos valores relativos de cada dígito, ou seja, a
soma dos valores faciais dos dígitos após prévia multiplicação pelo respetivo peso. No sistema
decimal, o peso de cada dígito corresponde às potências inteiras de dez positivas que
aumentam da direita para a esquerda, começando com 100 = 1, ou seja, a cada posição i
corresponde o peso 10i, como se verifica ao explicitar as potências de 10 envolvidas

352 = 3 102 + 5 101 + 2 100

na qual o 2ª membro constitui a decomposição polinomial de 352 em base 10.

- 28 -
Capítulo 1 Erros em cálculo numérico

A ordem de um dígito dentro de um número é dada pela posição que esse dígito ocupa no
número: 0 é a ordem do primeiro algarismo da direita (representa a ordem das unidades)
crescendo no sentido da esquerda.

Generalizando este conceito, utilizando o símbolo di para representar o dígito decimal colocado
na posição i a contar da direita, qualquer inteiro positivo N, com n+1 dígitos, pode ser
representado de maneira única da seguinte forma:

N = (d n d n −1 ... d 1 d 0 )10 = d n  10n + d n −1  10n −1 + ...+ d 1  101 + d 0  100 (7)

com 0  di  9, i=0,1,...,n.

5.1.2 Sistemas de numeração posicionais com bases distintas

Apesar da base 10 ser usada quase universalmente hoje em dia, ao longo da história foram
usadas diferentes bases numéricas. Como referido, os povos mesopotâmicos, por exemplo,
usavam a base 60. Outras bases foram utilizadas por diferentes civilizações, tais como 5 (Índios
Norte Americanos e Esquimós) e 20 (Civilização Maia e Celtas). Não existe qualquer razão
intrínseca para se usar a base 10. Num sistema de numeração posicional pode utilizar-se
qualquer base b 2.

O sistema binário (base 2) adquiriu uma importância especial com o advento dos computadores
digitais. Os computadores leem impulsos enviados pelas suas componentes eletrónicas. O estado
de um impulso é "on" ou "off ". Se identificarmos esses estados com os dígitos 0 e 1, obtemos
de imediato uma correspondência entre os estados do computador e os números representados
na forma binária. É então conveniente representar os números em computador no sistema
binário. É usual designar por “bit” (binary digit) o elemento de memória básico que assume
os dois estados que se associam aos dígitos 0 e 1.

No entanto, se olharmos para as linguagens das máquinas, rapidamente nos apercebemos que
outros sistemas de números, múltiplos de dois, particularmente os sistemas octal (base 8) e
hexadecimal (base 16), são também utilizados.

Um sistema de numeração posicional de base b é caracterizado pela utilização de b dígitos


distintos. A base de um sistema de numeração posicional corresponde, pois, ao número de
dígitos diferentes que podem ser utilizados em cada posição de um número. Assim, a qualquer

- 29 -
Capítulo 1 Erros em cálculo numérico

base bN, b 2, pode associar-se o conjunto de símbolos Sb, com b símbolos distintos (de 0
a b-1), como ilustram os seguintes exemplos:

S10 = {0, 1, … , 9};

S2 = {0, 1};

S16 = {0, 1, … , 9, A, B, C, D, E, F};

A base de um número deverá ser indicada explicitamente por um sub-índice a seguir ao número
sempre que haja ambiguidade em relação à base numérica em que o mesmo é representado: por
exemplo (3.224)10 é 3.224 na base 10 (decimal), (1001.11)2 é 1001.11 na base 2 (binário), e
(18C7.90)16 é 18C7.90 na base 16 (hexadecimal). Como referido, o sistema hexadecimal utiliza
16 dígitos: {0,1, 2, ...,9, A, B, C, D, E, F} em que os caracteres A, B, ... ,F representam os
números 10,11,...,15, respetivamente. Sempre que um número for apresentado sem índice que
indique a sua base de numeração, subtende-se que a base é a decimal.

Por analogia, a generalização da expressão (7) a uma base b 2, diferente de 10, é imediata:

(N )b = (d n d n −1 ... d 1 d 0 )b = dn 

 b
n
+
 -1  b
d n 
n -1
+ ...
+d
1 b + d0  b
1
 
0
(8)
forma compacta forma exp andida
( forma posicional ) ( forma polinomial )

com 0  di  b-1, i=0,1,...,n.


Ao trabalhar com bases distintas, torna-se frequentemente necessário conhecer o equivalente,
num dado sistema de numeração, de um número expresso noutro sistema de base diferente.

• Mudança da base b para a base 10

A forma expandida (membro direito da expressão (8) ) constitui o equivalente decimal de um


número inteiro na base b, ou seja, permite efetuar a representação no sistema decimal de um
número na base b. A conversão de um número numa base b, diferente de 10, para a base
decimal reduz-se assim a representar esse número como um polinómio (obtido multiplicando
cada dígito pela base b elevada à ordem do dígito) e, de seguida, determinar o respetivo
equivalente decimal, conforme ilustra o exemplo que se segue.

Exemplo 1.3: Converter (7D3)16 à base 10


(7D3)16 = 7 162 + 13  161 + 3  160 = 1792 + 208 + 3 = 2003

- 30 -
Capítulo 1 Erros em cálculo numérico

• Mudança da base 10 para a base b

A conversão inversa, de um número representado em base 10 para a sua representação em


base b é um pouco mais trabalhosa, mas igualmente simples. Um dos métodos mais comuns
é o método das divisões sucessivas. Considere-se, então, um número N representado em base
b, de acordo com a equação (8). Se se dividir o número por b obtém-se

N d
= d n bn −1 + d n-1 bn- 2 + ...+ d 1 b0 + 0
b b

onde d0 é o resto da divisão de N por b (recorde-se que d0 <b). Determina-se assim o dígito de
menor ordem, d0, da representação de N na base b. Dividindo o quociente resultante por b, obtém-
se como resto o dígito d1, e assim sucessivamente. O quociente da enésima e última divisão é dn.

Em resumo, para se converter um número inteiro decimal para o equivalente binário, basta
efetuar divisões sucessivas por 2, até que o quociente seja inferior ao divisor. O número
binário resulta do agrupar do último quociente e dos restos da divisão por ordem inversa
àquela pela qual foram encontrados, conforme ilustra o exemplo que se segue.

Exemplo 1.4: Converter (2003)10 à base hexadecimal


2003 |16
040 125 |16
083 13 7
03
Logo, (2003)10 = (7D3)16

5.1.3 Representação interna de números inteiros

Passa agora a expor-se, de uma forma sintética, a forma como os números inteiros são
representados internamente num computador. Como anteriormente referido, os computadores
utilizam, para armazenar informação, dispositivos físicos que podem assumir dois estados
distintos. Esta característica privilegia a base 2 ou base binária para representação de números
nestas máquinas. O "bit", acrónimo de "binary digit", dígito binário em português, representa o
elemento de memória básico (menor unidade de informação que pode ser armazenada ou
transmitida) que assume os dois estados que se associam aos dígitos 0 e 1.

- 31 -
Capítulo 1 Erros em cálculo numérico

Uma vez que um único bit não é capaz de representar todos os números que é necessário
processar através do computador, os bits são agrupados. Os computadores dividem a memória
em cadeias de bits designadas por “palavras”. A quantidade de bits por palavra (tamanho da
palavra) é uma caraterística importante da arquitetura de um computador. Computadores
diferentes (diferente tipo de processador) podem usar palavras de tamanho diferente. Os
primeiros computadores pessoais utilizavam palavras de oito bits (um agrupamento de oito
bits é denominado byte). Computadores pessoais atuais utilizam palavras de 32 ou 64 bits,
enquanto estações de trabalho e computadores de maior porte utilizam palavras de 128 bits.

A questão que agora se coloca é: supondo um determinado tamanho de palavra como se


armazena na mesma um dado número inteiro? Considere-se, por simplificação de exposição,
uma palavra com 16 bits (na linguagem FORTRAN, uma variável declarada como INTEGER*2
utiliza 2 bytes, ou seja, 16 bits, para representar um inteiro).

Os números inteiros poderão ser positivos ou negativos. Em matemática, os números


negativos, em qualquer base, são representados antecedidos de um sinal −. No entanto, na
palavra do computador, os números são representados em binário apenas, sem símbolos
extras, requerendo assim um método de codificação para os números negativos.

Como o sinal (+/−) do número é uma quantidade binária, poder-se-á armazenar essa
informação num único bit. A ideia mais simples será então representar o número com duas
partes sinal e módulo. O primeiro bit armazena o sinal: positivo se é 0, ou negativo se é 1. Os
restantes 15 bits são utilizados para armazenar os o valor absoluto do número. Assim o maior
inteiro positivo representável é:
0111 1111 1111 1111

sendo o correspondente valor decimal(1)


14
 2 i = 215 − 1 = 32768 − 1 = 32767
i =0

A representação de um número inteiro negativo poder-se-ia efetuar utilizando os mesmos dígitos


do correspondente número inteiro positivo exceto o primeiro bit que passaria a ser 1. No entanto,
esta representação conduziria a que o inteiro zero fosse representado por duas configurações de

bn − 1
(1)
a + a b + a b 2 + ... + a b n −1 = a , para qualquer b  1 . Para o caso particular: a=1 e b=2 obtém-se:
b −1
n −1

 2i = 2 n − 1 .
i =0

- 32 -
Capítulo 1 Erros em cálculo numérico

bits distintas (+0 e -0) o que constituiria um inconveniente. Assim, e porque facilita também as
operações (permite a realização da adição e subtração com o mesmo hardware), é geralmente
utilizada outra técnica designada por "complemento para 2". Por exemplo, o complemento para
dois de (-32767)10 é:

1000 0000 0000 0001

em que os dígitos binários foram obtidos substituindo cada bit 0 por 1 e cada 1 por 0 do inteiro
positivo 32767 e somando 1. Esta conversão é extremamente fácil de efetuar em computador.
Nesta forma, o valor decimal é determinado supondo em primeiro lugar que o conjunto dos 16
bits expressa um número positivo. Se este número for menor que 215, ou seja 32768, então o
número é interpretado como um inteiro positivo. No caso de ser maior ou igual, é convertido
num inteiro negativo por subtração de 216.

No exemplo anterior, o decimal equivalente a (1000000000000001)2 é 215+1=32769 > 32768,


pelo que, de acordo com a regra anterior, representará o inteiro negativo:

32769 - 65536 = -32767

O menor inteiro negativo em valor absoluto será representado como

(1111 1111 1111 1111)2

que corresponde a -1 em decimal.

Um INTEGER*4 utiliza 4 bytes (ou seja, uma palavra de 32 bits) para representar um inteiro.
Neste caso, o maior inteiro positivo representável (figura 16) será o decimal
30
 2 i = 231 − 1= 2147483648 − 1= 2147483647
i=0

Conjunto de inteiros representáveis


Overflow Overflow

 
N min. -2 -1 0 1 2 N max.
=
=

31
- 2 = - 2.147.483.648 231- 1 = 2.147.483.647

Figura 16 - Gama de inteiros representáveis numa palavra de 32 bits.

- 33 -
Capítulo 1 Erros em cálculo numérico

Em qualquer dos casos, importa sobretudo sublinhar que todos os computadores estão limitados
na sua capacidade de representação de números inteiros. Todos os inteiros entre zero e o valor
máximo possuem representação exata e também são exatas as operações aritméticas cujos
operandos e resultados sejam inteiros nesta gama. Inteiros fora do intervalo [-M,N] (M,N>0)
não poderão ser representados, e a tentativa de o fazer conduz à conhecida condição de
`overflow`. Uma limitação mais severa ocorre no armazenamento e manipulação de números
reais como veremos em seguida.

5.2 Representação de números reais


Este parágrafo apresenta a forma como os dispositivos digitais utilizam uma variante da notação
científica (representação de ponto flutuante) para armazenar números reais de uma forma eficaz
e examina os erros introduzidos no processo.

Neste texto a separação entre a parte inteira e a parte fracionária de um número real é efetuada
por um ponto de acordo com notação anglo-saxónica, e não por uma vírgula,
fundamentalmente por ser essa a convenção utilizada computacionalmente em todas as
linguagens de programação.

5.2.1 Conversão entre representações em diferentes bases

A representação posicional dos inteiros (equação 8) pode ser generalizada para representar
números reais considerando-se potências negativas da base. A representação de um número
real X na base b é efetuada como:

X = ( d n d n-1 ... d 1 d 0 . d -1 d -2 ... d -k )b = d n bn + d n-1 bn-1 + ...+ d 1 b1 + d 0 b0


(9)
+ d -1 b-1 + d - 2 b- 2 + ...+ d -k b-k

na qual, o conjunto de dígitos ( d n d n −1 , ... , d1 d 0 )b constituem a parte inteira e os dígitos


( d −1 d − 2 ... d -k )b a parte fracionária da representação do número X na base b.

Vamos ver como se efetua, no caso de um número real, a conversão entre diferentes bases.

- 34 -
Capítulo 1 Erros em cálculo numérico

• Mudança da base b para a base 10

Tal como ocorria com os inteiros, a forma expandida (membro direito da expressão (9) ) constitui
o equivalente decimal de um número real na base b, ou seja, permite efetuar a representação no
sistema decimal de um número na base b, como o exemplo seguinte ilustra.

Exemplo 1.5: Converter (1.101)2 à base 10


(1.101)2 = 1  20 + 1  2−1 + 0  2−2 + 1  2−3 = 1 + 0.5 + 0 + 0.125 = 1.625

• Mudança da base 10 para a base b

Suponha-se agora que se pretende obter a representação na base b de um número real decimal
(base 10). A conversão é, em geral, realizada em dois passos, ou seja, procede-se separadamente
à conversão da parte inteira e da parte fracionária do real. Como a conversão da parte inteira é
efetuada de forma similar à referida para um número inteiro, admita-se, para simplificar, que X
é um número fracionário puro, da forma:

X = (d -1 d -2 ... d -k )b = d -1 b−1 + d -2 b−2 + ...+ d -k b−k

Se multiplicarmos X por b, verificamos que d-1 é a parte inteira do resultado, enquanto


−1 −k +1
d -2 b + ...+ d -k b é a correspondente parte fracionária. Multiplicando esta última
novamente por b e tomando a parte inteira do resultado obtemos d-2, e assim sucessivamente.

O algoritmo para a parte fracionária consiste assim numa série de multiplicações sucessivas
do número fracionário a ser convertido pela base. A parte inteira do resultado da primeira
multiplicação será o valor do primeiro dígito da base b (o mais significativo, i.e., mais junto
ao ponto decimal) e a parte fracionária será de novo multiplicada pela base. O processo é
repetido sucessivamente até o resultado da parte fracionária ser zero, como se verifica no
exemplo que se segue.

Exemplo 1.6: Converter (0.625)10 à base 2


0.625  2 = 1.250  o primeiro dígito é 1
0.250  2 = 0.500  o segundo dígito é 0
0.500  2 = 1.000  o terceiro dígito é 1

Assim, (0.625)10 = (.101)2

- 35 -
Capítulo 1 Erros em cálculo numérico

Como se verifica no exemplo, sendo a parte fracionária sempre menor que 1, multiplicando
sucessivamente por 2 e conservando apenas a parte fracionária do resultado, obtém-se um
número cuja parte inteira é 0 ou 1. A sequência gerada pela parte inteira dos resultados destas
multiplicações sucessivas é exatamente a representação, em base 2, da parte fracionária do
número decimal original.

Considere-se um outro exemplo:

Exemplo 1.7: Converter (0.1)10 à base 2

0.1  2 = 0.2  o primeiro dígito é 0


0.2  2 = 0.4  o segundo dígito é 0
0.4  2 = 0.8  o terceiro dígito é 0
0.8  2 = 1.6  o quarto dígito é 1
0.6  2 = 1.2  o quinto dígito é 1
0.2  2 = 0.4  o sexto dígito é 0

Donde, (0.1)10 = (.000110011 ...)2

Conclusão: o número real 0.1 não tem uma representação binária finita (o
conjunto de dígitos 0011 repete-se indefinidamente na respetiva representação
binária).

O exemplo anterior ilustra o facto de existirem números reais cuja parte fracionária, no
sistema decimal, tem um número finito de dígitos, para os quais a sua representação em
binário apresenta um número infinito de dígitos. Tal significa que a simples conversão de um
real a binário é possível fonte de erro.

5.2.2 Caraterísticas gerais da representação interna de números reais

A forma usual de representação de números reais: parte inteira, ponto (ou vírgula), parte
fracionária, de acordo com (3), é designada por representação em ponto fixo. Esta
representação, embora cómoda para cálculos no papel, não é adequada para processamento
no computador. É simples perceber uma das razões desse facto. Ocupando o ponto binário
uma posição fixa na palavra, o tamanho da parte inteira e da parte fracionária ficam pré-
definidos (fixos) em relação ao seu armazenamento em memória (quantidade pré-definida de
bits à esquerda e à direita do ponto). Assim, para números unicamente com parte fracionária

- 36 -
Capítulo 1 Erros em cálculo numérico

a região alocada para armazenar a parte inteira, será inutilizada e vice-versa. Este desperdício
de informação terá como consequência direta uma redução substancial do intervalo de
representação dos números.

Para obviar o problema utiliza-se a denominada representação de ponto flutuante, baseada na


notação científica dos números. Como é sabido, para resolver as dificuldades inerentes à
representação de números muito grandes ou muito pequenos, é conveniente utilizar a notação
científica dos números, que consiste em representar cada número real X na forma:

X =  M  bE

na qual, M é um número real não negativo denominado mantissa, b2 é um inteiro positivo
denominado base e E é um inteiro denominado expoente. Fixada a base b, esta representação
não é única pois, por exemplo, X=0.1 pode ser escrito na base 10 de várias formas:

X = 0.1 = 0.1 100 = 1.0  10−1 = 0.01 101 = ...

Para resolver esta ambiguidade impõe-se que a mantissa cumpra uma norma de representação,
e diz-se que a representação é normalizada quando se cumpre essa norma. Por exemplo,
caso a mantissa satisfaça as seguintes condições:

M = 0 se X = 0

1
 b  M  1 se X  0

obtém-se uma representação normalizada para a qual a mantissa de qualquer número diferente
de zero é um número fracionário cujo primeiro dígito é sempre diferente de 0, o que garante a
unicidade da representação (verifique!). Como o zero não pode cumprir essa restrição, será uma
exceção e tratado separadamente (como se verá oportunamente).

É obvio que a notação científica, tal como anteriormente apresentada, não pode ser
implementada em computador, pois, para representar todos os números reais, a mantissa e o
expoente exigiriam um número infinito de dígitos. A notação científica é então modificada de
forma a se utilizar um número finito de dígitos (t) para a mantissa e um número finito de dígitos
(p) para o expoente. Obtém-se desta forma o denominado sistema de numeração de ponto
flutuante normalizado caracterizado por quatro parâmetros: a base (b), que é um inteiro ≥2,
o número de dígitos da mantissa (t) e os valores mínimo e máximo do expoente (Emin e Emax,
respetivamente). Este sistema, habitualmente representado por F = F (b, t , Emin , Emax ) , é

- 37 -
Capítulo 1 Erros em cálculo numérico

constituído pelo subconjunto dos números racionais da forma:

 1 1
  M 1− t
X =  M b E
em que :  b b
E  | E |  E
 min max

acrescido de uma representação especial para X = 0 .


Ao ter que cumprir aquela restrição no domínio da mantissa, podemos imaginar que o ponto
decimal da representação de X é movido para a esquerda ou direita, ajustando-se
convenientemente o valor de E. Daí o nome “ponto-flutuante”.
Supondo b=2
X = (-1)S  M  2 E

na qual na qual, S{0,1} é o bit de sinal (S=0  real positivo; S=1  real negativo) e a
mantissa normalizada, M, satisfaz
1
 M 1
2

Desta forma um X não nulo pode armazenar-se na palavra do computador (com um comprimento
de p+t+1 bits) codificando a mesma, após a sua divisão em três campos, como se ilustra na
figura 17, da seguinte forma:

• S representa o bit de sinal (para o qual é alocado apenas 1 bit, S{0,1})


• o expoente (p bits) codifica E (mas não é igual a E, por causa do sinal do expoente)
• a mantissa (t bits) armazena M (fracionário puro) sem sinal, M = ( . d −1 d − 2 ... d −t ) 2

com d −1 = 1 .

Figura 17: Codificação do número em ponto flutuante na palavra do computador.

De facto, para permitir uma mais rápida comparação das grandezas dos reais em ponto
flutuante, a codificação do expoente (número inteiro) deveria ser tal que os expoentes de
menor valor (os negativos) tivessem uma representação binária menor que os valores
positivos. As codificações usando complemento para 2 (ou a representação usando sinal e

- 38 -
Capítulo 1 Erros em cálculo numérico

magnitude), não possuem este comportamento, i.e., os valores negativos têm o bit mais
significativo (à esquerda) igual a 1, o que os torna, como números binários, maiores que os
números positivos. A notação que satisfaz este requisito é a denominada representação por
excesso, na qual se efetua um deslocamento na gama de valores decimais (expoente
enviesado). A utilização do excesso vai permitir que o padrão de bits tudo zeros (00...00)
corresponda ao menor expoente, e o padrão de bits tudo 1’s (11…11) represente o maior
expoente. Deste modo, o que é armazenado no campo do expoente é um número binário
superior ao expoente em E0, que denominaremos por caraterística, C, i.e., C=E+ E0.

Este sistema de numeração de ponto flutuante, F, pode então, em alternativa, ser caracterizado
pelos seguintes quatro parâmetros: a base b, o número t de dígitos da mantissa, o número p de
dígitos da característica e a extensão E0, ou, de acordo com a notação anterior

F = F ( b, t, p, E0 )

Existem 2p características E+E0, sendo a menor e a maior, respetivamente

(0...00)2 = 0

(1...11)2 = 1x2p-1 + ... + 1 x 21 + 1 x 20 = 2p - 1

A extensão E0 é fixada, como veremos, em função da gama de expoentes pretendidos. Por


exemplo, considerando E0 igual a 2p-1, vem

E  (2 p − 1) − 2 p −1 = 2 p −1 − 1

pelo que,
− 2 p −1  E  2 p −1 − 1

p −1
ou seja, Emin = − 2 p −1 e Emax = 2 − 1

▪ Exemplo da representação de números reais em ponto flutuante

Como referimos, os sistemas de numeração utilizados pelos computadores contêm apenas um


número finito de números, cada um com um número finito de dígitos. Quais os números que
fazem parte desses sistemas? Vamos procurar responder a esta questão através de um exemplo
simples.

- 39 -
Capítulo 1 Erros em cálculo numérico

Exemplo 1.8: Considere o sistema hipotético F (2, 3, − 1, 2) . Determine quais os números que
fazem parte desse sistema de ponto flutuante e a forma como os mesmos se situam ao longo
da reta real.
1
Como b=2, x =  M  2 E em que a mantissa normalizada M satisfaz  M  1 . As mantissas
2
normalizadas serão da forma (1 ? ? ) . Portanto, os números reais positivos representados
neste sistema serão formados pelos seguintes 4 conjuntos de números:

(.0100)2=1/4 (.0101)2=5/16 (.0110)2=6/16 (.0111)2=7/16, para E –1


(.100)2=1/2 (.101)2=5/8 (.110)2=6/8 (.111)2=7/8, para E= 0
(1.00)2=1 (1.01)2=5/4 (1.10)2=6/4 (1.11)2=7/4, para E=1
(10.0)2=2 (10.1)2=5/2 (11.0)2=6/2 (11.1)2=7/2, para E=2

Estes números estão representados na figura 24. Os restantes elementos de F são os simétricos
dos anteriores e o número zero, perfazendo um total de 33 números. É de salientar a não
existência de números nos intervalos [-1/4,0] e [0,1/4], sendo o número positivo mais pequeno
representável xmin =1 / 4 . Verifica-se que os elementos de F são mais densos próximo de xmin
e menos densos quando se aproximam de xmax . De facto, quando o expoente é incrementado
de uma unidade o espaçamento entre os reais gerados duplica. Tal como nos inteiros, um
número superior a xmax produz uma mensagem de erro de “overflow”; por outro lado, um
número positivo inferior xmin produz uma mensagem de erro chamada “underflow”.

Figura 24 - Números reais positivos que fazem parte do sistema de ponto flutuante

Com base no exemplo anterior é relativamente simples extrair algumas conclusões de caráter
geral. A saber:

• A malha gerada é não uniforme porque o espaçamento entre números é dado por:
 = 2 −t  2 E
onde 2-t corresponde ao espaçamento uniforme entre as mantissas.

• A vantagem da malha não uniforme (em relação a uma malha uniforme) é a de manter o
erro relativo de qualquer número real, não representado de forma exata, aproximadamente
constante ao longo da reta real.

- 40 -
Capítulo 1 Erros em cálculo numérico

• O valor de E0 é simétrico de Emin. Na realidade, como C = E + E0 , obtém-se:

Emin = Cmin − E0 = 0 − E0 = − E0

• Como, por outro lado, Emax = Cmax − E0 = 2 p − 1 − E0 é imediato concluir que conhecer
F ( b, t, p, E0 ) é equivalente a conhecer F ( b, t, Emin , Emax ) .

• Sendo o espaçamento entre números reais representáveis exatamente em ponto flutuante


−t E
dado por  = 2 2 , é óbvio concluir que quanto maior o valor de t menor será esse
espaçamento; no entanto, para um comprimento da palavra fixo, aumentar o valor de t
implica diminuir o valor de p, o que terá como consequência uma menor gama de reais
representados. Conclui-se, assim, que para cada comprimento de palavra haverá que
buscar uma solução de compromisso para os valores a atribuir a t e p.

5.2.3 A norma IEEE 754 e a representação de binários em ponto flutuante

• Introdução

Os números binários em formato ponto flutuante começaram a ser usados em meados dos
anos 50. Até à década de 1980, cada fabricante de computadores adotava convenções próprias
sobre a forma como os números em ponto flutuante eram representados e os detalhes das
operações com eles executadas. Não havia assim uniformidade nos padrões utilizados, o que
era desvantajoso nomeadamente em termos de repetibilidade de resultados (as mesmas
operações aritméticas, com os mesmos dados de entrada, podiam produzir resultados
diferentes) e portabilidade do código entre diferentes sistemas. Em meados da década de
1980, com o advento dos computadores pessoais, o número de bits usados para armazenar
números de ponto flutuante foi padronizado como 32 bits, e foi formado um grupo liderado
pelo IEEE (Institute of Electrical and Electronic Engineers - EUA) para definir algumas
regras de normalização a serem seguidas nas operações e representações de números binários
em ponto flutuante. Este trabalho culminou em 1985 com a publicação da norma IEEE 754,
a qual é agora (desde 1997) utilizada por todos os fabricantes de computadores ao projetar
unidades aritméticas de ponto flutuante.

Em 2008, foi publicada uma versão atualizada, sendo denominada IEEE 754-2008.

- 41 -
Capítulo 1 Erros em cálculo numérico

• Aspetos gerais

Tal como foi visto anteriormente, qualquer número real, X, em ponto flutuante (base 2) é
expresso em notação científica (ou exponencial) pela expressão geral:

na
X = (−1) S  M  2 E (10)

qual, S{0,1} é o bit de sinal (S=0  real positivo; S=1  real negativo), M é um número
real não negativo denominado mantissa (significante na norma IEEE 754) e E é um inteiro
denominado expoente. Para garantir a unicidade do número e uma maior gama de reais a
mantissa é normalizada. A normalização é efetuada, de acordo com a norma IEEE 754, de
uma forma diferente: sempre que o real seja diferente de zero, a mantissa ficará sujeita à
seguinte restrição: (1)10  M  (b)10 . Considerando b=2, ter-se-á: (1)10  M  (2)10 , ou, com
os limites expressos em binário, (1) 2  M  (10) 2 (note que, 10(2) ≡ 2(10) ). A razão de ser
desta normalização será percebida já de seguida. Tal como salientado anteriormente, o valor
zero não pode ser normalizado e terá uma representação especial, como se verá.

A equação (10) é codificada na palavra do computador, tal como ocorria anteriormente,


dividindo-se a sequência de bits da palavra em três campos (ver figura 17), com uma única
diferença: o campo da mantissa codifica M, mas não é igual a M. A explicação deste facto é
a que se segue.

Ao se normalizar um número real, diferente de zero, com a restrição (1)10  M  (b)10 , sucede
que o primeiro dígito da mantissa não poderá ser zero. Se pensarmos em termos do sistema
de numeração é decimal, um valor normalizado terá sempre um dígito diferente de zero à
esquerda do ponto decimal, já que: (1)10  M  (10)10 . No caso do sistema decimal, esse dígito
pode ser um de entre 9 possíveis {1, 2, …, 9}; se o sistema de numeração é binário, esse dígito
só pode ser o binário 1. Assim, e apenas na representação binária, o dígito à esquerda do ponto
binário toma sempre o mesmo valor. Qualquer mantissa, com t bits, normalizada poderá
escrever-se na forma:

M = (d 0 . d −1d −2 ... d −(t −1) ) 2 = (1. f ) 2 (11)

na qual, f é a parte fracionária da mantissa, ou seja, M = 1 . f .

Como constituiria um desperdício do espaço de memória estar a representar fisicamente esse


primeiro bit fixo da mantissa, o bit “1”, à esquerda do ponto binário de (11), não é armazenado

- 42 -
Capítulo 1 Erros em cálculo numérico

(é o denominado bit implícito ou bit escondido). Deste modo, ganha-se um bit e melhora-se a
precisão da mantissa.

Para atender a diferentes aplicações, a norma define dois formatos básicos: o formato simples
(“single”) com 32 bits e o formato duplo (“double”), com 64 bits. A figura 19 ilustra o modo
como os bits são alocados nesses dois formatos de ponto flutuante.

Figura 19 - Formatos IEEE para representação em ponto flutuante (distribuição dos bits).

• Representações especiais

Para resolver algumas questões em aberto, nomeadamente a forma de representar o real 0,


considera-se, de acordo com a IEEE 754, em função dos valores que assuma a caraterística,
3 tipos de números em ponto flutuante, como se representa, esquematicamente, na figura 20.

Figura 20 - Diferentes “tipos” de números em ponto flutuante de acordo com a IEEE 754.

- 43 -
Capítulo 1 Erros em cálculo numérico

Os números desnormalizados servem dois propósitos. Primeiro, fornecem uma forma de


representar o valor numérico 0 pois, ao considerar um número normalizado, sempre se cumpre
M ≥ 1 e, portanto, não é possível representar o real 0. A representação de ponto flutuante de
+0.0 tem um padrão com todos os bits zeros: o bit de sinal é 0, o campo expoente é preenchido
com zeros (indicando um valor desnormalizado) e o campo dos valores fracionários, f, é
também preenchido com zeros (M = f = 0). Por outro lado, quando o bit de sinal é 1, mas os
outros campos são todos zeros, obtemos o valor -0.0. De acordo com o formato de ponto
flutuante IEEE, os valores −0.0 e +0.0 são considerados diferentes em alguns aspetos e
coincidentes em outros.

Uma segunda função dos números desnormalizados é diminuir a zona de “underflow”.


Originam uma propriedade, conhecida como “underflow gradual”, onde alguns valores
numéricos, que não seriam representáveis, aparecem espaçados uniformemente na imediata
vizinhança do real 0.0.

- Números no formato de precisão simples (32 bits)

Para fins ilustrativos, considere-se uma palavra de 32 bits. O valor codificado através de uma
dada representação de bits, dependendo do valor da caraterística, pode ser dividido, como
referido, em três casos distintos (os últimos dois, cada um deles, com duas variantes). Estes
vários casos, para o formato de precisão simples, encontram-se ilustrados na figura 21.

Figura 21 - Diferentes “tipos” de números IEEE 754 em simples precisão (32 bits).

- 44 -
Capítulo 1 Erros em cálculo numérico

Caso 1 – Valores normalizados

A grande maioria dos números de ponto flutuante, diferentes de zero, que um computador
pode armazenar é normalizada. Este é o caso mais comum, já que ocorre quando o padrão de
bits na caraterística não corresponde nem ao caso de todos os bits serem iguais a zero (valor
numérico 0) nem todos os bits serem 1´s (valor numérico 255 para precisão simples, 2047
para dupla). Para esta situação, o valor do expoente é E = C – E0, onde E0 tem um valor igual
a 2p − 1 - 1 (127 para precisão simples e 1023 para dupla). Gera-se deste modo uma gama de
expoentes de Emin= -126 a Emax = +127 no caso de precisão simples (-1022 a +1023 para
precisão dupla).

Como referido, as sequencias de bits da caraterística "00000000" e "11111111", que


corresponderiam, teoricamente, aos valores extremos dos expoentes: –127 e + 128, são
reservadas para representar um outro tipo de números especiais que discutiremos mais
adiante.

O campo fracionário, f, onde 0 ≤ f < 1, permite representar a mantissa normalizada M=1+f. A


precisão da mantissa corresponde assim a 24 bits (t=24); 23 bits na parte fracionária, f, que é
armazenada na memória e um 1 (bit implícito) não armazenado.

Em resumo, o valor decimal de um ponto flutuante em binário (normalizado) é dado por:

X = (−1) S  (1. f )  2C −127 (12)

Observe que o bit implícito 1, o bit mais significativo da mantissa, é explicitamente mostrado
na expressão (12) para maior clareza (embora não seja armazenado).
Por exemplo, o real 1 = (1.000 … 00)2 x 20 é armazenado como:

O menor número positivo normalizado é

−126
correspondente a: X min = (1.000 ... 00) 2  2 = 2−126  1.2 10−38 .

O maior número positivo normalizado é

+127
correspondente a: X max = (1.111 ... 11) 2  2 = (2 − 223 )  2127  3.4 1038 .

- 45 -
Capítulo 1 Erros em cálculo numérico

Caso 2 – Valores desnormalizados

Quando a caraterística é totalmente preenchida com zeros, C=0000 0000, o número


representado encontra-se na denominada forma desnormalizada. Nesse caso, o valor do
expoente é E = 1− E0 (considerar o expoente igual a 1− E0 e não igual a − E0 pode parecer
contraintuitivo; ver-se-á brevemente que tal proporciona uma transição suave entre os valores
desnormalizados e os normalizados). O valor da mantissa é M = f, ou seja, idêntico ao valor
do campo fracionário sem consideração do bit implícito (que, neste caso, não existe – número
não normalizado).

Representação do zero: caso particular de um valor desnormalizado, onde C = 0 e f = 0.

A representação dos restantes números desnormalizados, utiliza a combinação de uma


caraterística zero com uma parte fracionária, f, diferente de 0, correspondente a um valor
decimal dado por

X = (−1) S  (0. f )  2−126

Como se indicou anteriormente o valor do mínimo real normalizado é 2-126, o que origina uma
zona de underflow com grande amplitude relativa (cf. figura 22(a)). A possibilidade de
utilização de quantidades desnormalizadas evita a existência de um espaço vazio tão
significativo entre o menor inteiro positivo e zero, permitindo um “underflow gradual” para
zero (cf. figura 22(b)).

(a) Representação apenas com números normalizados

(b) Representação incluindo números desnormalizados

Figura 22 - Números reais positivos “vizinhos” de zero - precisão simples (32 bits) -

- 46 -
Capítulo 1 Erros em cálculo numérico

Caso 3 – Valores especiais


A norma IEEE 754 reserva o outro extremo da representação das caraterísticas, ou seja,
quando C = 1111 1111, para representar valores especiais, os quais permitem tratar exceções.
De facto, alguns resultados de operações aritméticas não são suportados pela máquina, como
sejam a divisão por zero, casos de overflow, etc. Desta forma, eles serão representados de
forma especial.
Representação de ±: C = 1111 1111 e f=0. Valores infinitos ocorrem em caso de
underflow, ou seja, o valor que se deseja representar supera os limites máximo ou mínimo
estabelecidos pelo padrão, assim como em caso de divisão por zero.
Representação de um número não real (NaN; “not a number”): C = 1111 1111 e f diferente
de 0. Quando o valor que se pretende representar não é um número real (imaginário por
exemplo), ou é uma representação resultado de operações - ∞ , ∞/∞ , 0 × ∞ , ou ainda, √x,
quando x < 0.

Exemplo 1.9: Considere um computador hipotético com uma palavra de 5 bits e um


sistema de ponto flutuante cumprindo a norma IEEE 754. Considere ainda a seguinte
alocação dos bits: 1 bit para a representação do sinal, 2 bits para o expoente (p=2) e 2 bits
p −1
para a mantissa (t=3) e que E0 = 2 − 1 = 1. Represente na reta real os números reais
positivos representados neste sistema. Compare os resultados com os obtidos no exemplo
1.8 e comente as semelhanças e diferenças encontradas.

O quadro que se segue resume os cálculos efetuados para a obtenção dos vários números
e casos possíveis.
Binário C (base 10) E=C-E0 f M Número
0 00 00 0 0 (E0=0) .00 0.00 0
0 00 01 0 0 .01= 1/4 0.01 = 1/4 0.25
0 00 10 0 0 .10= 1/2 0.10 = 1/2 0.5
0 00 11 0 0 .11= 3/4 0.11= 3/4 0.75

0 01 00 1 0 (E0=1) .00 1.00 = 1 1


0 01 01 1 0 .01= 1/4 1.01 = 5/4 1.25
0 01 10 1 0 .10= 1/2 1.10 = 6/4 1.5
0 01 11 1 0 .11= 3/4 1.11 = 7/4 1.75

0 10 00 2 1 .00 1.00 = 1 2
0 10 01 2 1 .01= 1/4 1.01 = 5/4 2.5
0 10 10 2 1 .10= 1/2 1.10 = 6/4 3.0
0 10 11 2 1 .11= 3/4 1.11 = 7/4 3.5

0 11 00 - - - - +
0 11 01 - - - - NaN
0 11 10 - - - - NaN
0 11 11 - - - - NaN

- 47 -
Capítulo 1 Erros em cálculo numérico

6. Valores aproximados, erros e precisão.

6.1 Erro absoluto e erro relativo

Quando um real não pertence ao sistema de numeração dum computador é representado por um
número desse sistema por arredondamento. A discrepância entre o real e o valor arredondado é
denominada de erro de arredondamento. Duas medidas podem ser utilizadas para quantificar a
qualidade da aproximação: o erro absoluto e o erro relativo.

Seja x o valor aproximado duma quantidade cujo valor exato é x. O erro de x é definido como:
 x= x−x

Assim,  x é o valor que deve somar-se à aproximação x para obter o valor exato x. Diz-se que

o erro de x é por excesso ou por defeito, conforme x > x (  x negativo) ou x < x (  x positivo).
Em muitos casos o sinal do erro não é conhecido. É, portanto, aconselhável definir o erro

absoluto de x como o valor absoluto de Δx,  x = x − x .

22
Exemplo 1.10: No cálculo do perímetro molhado de um colector considerou-se  = como
7
aproximação de  = 3.14159265... . Qual o erro da referida aproximação?

Convertendo 22/7 na forma decimal, vem


 = 3.14159265...
 = 3.14285714...
logo,  = − 0.00126449...

Nos números anteriores, os ... indicam que os números possuíam mais dígitos, mas que nós não
queremos ou não podemos continuar a representá-los. Uma situação deste tipo ocorre sempre
que um número não pode ser representado por um número finito de casas decimais. Sempre que
no decurso dos cálculos ocorra uma situação análoga, temos que decidir com quantos dígitos
queremos trabalhar. Este aspeto é de particular importância no caso de utilizarmos computador
pois, como vimos anteriormente, este retém apenas um número fixo de algarismos (precisão
fixa).

Como estamos a lidar com aproximações, é necessário estabelecer critérios para avaliar o seu
grau de exatidão. Para o exemplo anterior, se estivéssemos a trabalhar com 3 casas decimais,

 = 3.142 e  = 0.0004073 ...  0.5  10−3

- 48 -
Capítulo 1 Erros em cálculo numérico

Em geral, diz-se que x é o valor aproximado de x, arredondado para k casas decimais corretas,
se e só se:

|  x |= | x − x |  0.5 10− k (13)

A importância dum erro pode, em geral, ser melhor apreciada se o compararmos à quantidade a
ser aproximada, i.e., utilizando o erro relativo:

x x
rx = ou rx =
x x

O erro relativo expressa o erro como uma fração de | x | e está relacionado com o erro percentual,

ou percentagem de erro, definido como: 100  rx .

Na prática o que se utiliza é um limite superior de qualquer dos erros, uma vez que para
conhecermos Δx ou rx teríamos de conhecer o valor exato de x.
Necessitamos então de uma fórmula em função do valor aproximado x . Como:

| x | = | x − ( x − x) |  | x | − | x − x | = | x | − | x |
obtemos
| x |
|rx| (14)
| x | - | x |

Portanto, conhecido x e um limite superior para |  x | podemos obter um limite superior para
| r x | . Se soubermos que |  x | é muito pequeno quando comparado com x então (14) pode
simplificar-se para:

| x |
|rx|
x

6.2 Épsilon da máquina

Um indicador importante da exatidão do sistema de ponto flutuante utilizado pelo computador


consiste em saber qual a diferença entre dois números possíveis de serem representados. Qual
será a diferença entre dois números consecutivos representados pelo computador? Essa
diferença dependerá da grandeza dos números. Se o número positivo for x1 = M 1  2 E , o
número seguinte com o mesmo expoente que o computador armazena será
x2 = ( M1 + 2−t )  2 E (o qual corresponde a aumentar em uma unidade o dígito menos

- 49 -
Capítulo 1 Erros em cálculo numérico

significativo da mantissa). Portanto teremos x2 − x1 = 2 E −t . Observe-se que qualquer número

x = M  2 E no intervalo ( x1 , x2 ) será aproximado por arredondamento a fl ( x) = x1 ou

fl ( x) = x2 , segundo o extremo do intervalo do qual esteja mais perto. O erro absoluto cometido

será então x − fl ( x) = x2 − x1 / 2 = 2 E −t −1 . Claramente, o erro absoluto será tanto maior

quanto maior for o valor de x.

A cota para o erro relativo, pelo contrário, permanece constante. Com efeito,

x − fl ( x) x2 − x1 2 E −t −1 1
rx =  = =  2 −t −1  2 −t
x 2 x M 2 E
M

É fácil comprovar que a cota do erro relativo se multiplicaria por 2 no caso de se utilizar
arredondamento por corte, ou seja:

x − fl ( x) 2 −t para arredondamento simétrico


rx = 
x 21−t para arredondamento por corte

A diferença entre 1 e o menor número 1+ε que é maior que 1 mas que não se armazena como 1
é designado épsilon da máquina ou unidade de arredondamento da máquina. Denota-se M. Para
um computador que armazena mantissas normalizadas de t bits,

 21−t se o computador trunca ao armazenar


M =  −t
2 se o computador arredonda ao armazenar

pelo que M é um majorante do erro relativo, ou seja, se fl(x) é a representação em F de um


número real x, o seu erro relativo não excede M ( fl ( x) = x (1 +  ) ,    M ). É por isso

fundamental conhecer o M do sistema de ponto flutuante que se utiliza, já que o mesmo


carateriza a sua exatidão (Heath, 2018).
Em resumo, a explicação anterior do armazenamento de reais no computador permite então
concluir que:

• qualquer computador apenas pode armazenar um número finito de números


reais;

• os números diferentes de zero estão armazenados nos intervalos [-R,-r] e [r,R]


duma forma não uniforme. A máxima densidade encontra-se nas

- 50 -
Capítulo 1 Erros em cálculo numérico

proximidades de r (real mais pequeno) e a mínima densidade próximo a R


(maior real representável);

• o erro absoluto na representação de um real X num sistema de ponto flutuante


F(b,t,p,E0) depende da grandeza de X. Quanto maior o valor absoluto de X,
maior o erro de arredondamento. No entanto, o erro relativo permanece
sensivelmente constante ao longo da reta real. O épsilon da máquina é uma
cota ou limite superior desse erro.

6.3 Erro relativo e número de algarismos significativos corretos

Na representação decimal de um número, um algarismo diz-se significativo se é qualquer dos


dígitos: 1, 2, ..., 9 ou 0, desde que não sirva simplesmente para fixar a posição do ponto
decimal ou preencher o lugar de dígitos desconhecidos. Por exemplo, cada um dos números:
1360, 1.360, 0.001360 tem 4 algarismos significativos.

O erro relativo está relacionado com o número de algarismos significativos corretos. Dizemos
que um algarismo significativo é correto, se arredondado o número aproximado precisamente
depois desse dígito vier um erro absoluto inferior em 0.5 na posição daquele dígito. Assim, no
caso de escrevermos os números em notação científica normalizada diz-se que
x =  (0. d1 d 2 ... d n )10  10 E é uma aproximação de x com n algarismos significativos, se:

 x = x − x  0.5 10 E −n (15)

expressão equivalente a (13). Alternativamente, o número de algarismos significativos dum valor


aproximado, o qual dá boa informação sobre a qualidade dessa aproximação, pode também
relacionar-se com o erro relativo dessa aproximação. Em particular, se conhecermos um número
podemos calcular um limite superior para o erro relativo do respetivo valor aproximado e vice-
versa. Assim:

• Teorema 1: Se o primeiro algarismo significativo do valor aproximado é a1  0 e esse

valor aproximado tem pelo menos n algarismos significativos corretos, então o seu erro
relativo não excede:
1
(16)
a1  10n−1

- 51 -
Capítulo 1 Erros em cálculo numérico

Demonstração: considere um valor aproximado x =  (0. a1 a2 ... an )  10 , com p


p

inteiro, possuindo n algarismos significativos corretos. Então, de acordo com (15),


1
x = x−x   10 p −n
2

Como, por definição: x −  x  x  x +  x poderá escrever-se:

x  x −  x  0. a1  10 p −  x

pelo que,
x 0.5  10 p −n
rx = 
x 0.a1  10 p − 0.5  10 p −n
ou:
1
rx 
2 a1  10n−1 − 1
Como, por outro lado:

2 a1  10n−1 − 1  a1  10n−1
vem:
1
rx  c.q.d.
a1  10n −1

Pode igualmente demonstrar-se o seguinte resultado:

• Corolário: Se o valor aproximado x tiver dois ou mais algarismos significativos corretos,


isto é, n2, então,

1
|rx| (17)
2  a1  10n−1

Exemplo 1.11: Qual o limite superior do erro relativo quando se toma  =3.14?

Como a1=3 e n=3, obtém-se de (17):


1 1
| r |  3−1
=
2  3  10 600

- 52 -
Capítulo 1 Erros em cálculo numérico

Exemplo 1.12: Quantos algarismos significativos corretos devem considerar-se


no cálculo de 20 de forma que o erro não exceda 0.1% ?

Como o primeiro dígito é 4 (20=4.4721...),


1
 0.001
4  10 n−1
pelo que:
10 n −1  250 e n  4.

O Teorema e Corolário anteriores permitem determinar limites superiores para os erros relativos
a partir do número de algarismos significativos corretos.

Para solucionar o problema inverso, ou seja, determinar o número de algarismos significativos


corretos de um número aproximado conhecido o erro relativo, não se pode utilizar o recíproco
do teorema anterior, pois, em geral, não é verdadeiro (verifique, por exemplo, com  =3.141).

Pode porém afirmar-se o seguinte:

• Teorema 2: Se a10 é o primeiro algarismo significativo do valor aproximado x de um


número cujo erro relativo não excede

1
(18)
2 ( a1 + 1 )  10 n−1

então esse valor aproximado x tem pelo menos n algarismos significativos corretos.

1 −n
Como 1a19 então 2a1+110 pelo que o mínimo valor da fração (18) é: 10 . Por
2
conseguinte:

• Corolário: x aproxima x com pelo menos n algarismos significativos corretos se

| rx |  0.5  10 − n (19)

Verifique-se a analogia entre (19) e (13).

- 53 -
Capítulo 1 Erros em cálculo numérico

7. Propagação do erro
É verdade que os erros de arredondamento são geralmente pequenos mas, quando repetidos
em algoritmos longos e complexos, podem ter efeitos catastróficos. Neste ponto iremos
analisar como se propagam os erros de arredondamento no cálculo de funções.

Abordaremos primeiro o caso de uma função de uma variável. Suponhamos, então, que
pretendemos calcular o valor y = f (x) utilizando uma aproximação x de x. Em geral, f (x )
não coincide com f (x) . Seja, assim, por definição y = f (x ) . Qual será o erro cometido nesta
aproximação?

É claro que o erro  f =  y = y − y dependerá do erro |  x | e também da função f . Se a


função f for continuamente diferenciável, a aplicação do teorema do valor médio permite
escrever
|  f | = | f ' ( ) | |  x |

com   ( x , x) . Como este ponto não é conhecido com rigor, poderemos conhecer um majorante
de |  f | se substituirmos a derivada de f por um seu limite superior, ou seja

|  f |  | f ' ( x) |max. |  x | (20)


Nesta expressão, o valor máximo da derivada é calculado no intervalo x −  x , x +  x . 

Exemplo 1.13: Determine um majorante do erro (absoluto) que se comete ao aproximar


o valor x por x , onde x = 4.00 é um valor aproximado de x com 3 algarismos
significativos corretos.
1
Como f ( x) = x vem f ' ( x) = .
2 x
Sendo x = 4.00 com n=3 podemos concluir que 3.995  x  4.005 . Então:

1
max f ' ( x) = , pelo que:
3.995 x  4.005 2 3.995
1
f   0.5 10−2  0.12508 10−2
2 3.995

A relação (20) é facilmente generalizável a uma função f que dependa de qualquer número de
variáveis. Seja f ( x1 , x1 , ... , xn ) uma função de R em Rn, que se considera continuamente
diferenciável. A aplicação do teorema do valor médio para funções de n variáveis permite obter:

- 54 -
Capítulo 1 Erros em cálculo numérico

n  f 
| f |    x |  xi |

(21)
i =1  i max 

que constitui a chamada fórmula de propagação do erro absoluto.

Exemplo 1.14: Dada uma função f(x,y,z) das variáveis x,y,z determinar um limite
superior do valor absoluto do erro que vem para o valor da função f , quando se

utilizam os valores aproximados x , y , z .

A aplicação da fórmula de propagação do erro (21) a este problema conduz a:

f f f
| f |  | x | + | y | + | z |
x max y max
z max

Em geral, em problemas práticos, esta expressão é substituída por:


f f f
| f |  | x | + | y | + | z |
x ( x, y , z ) y ( x, y , z )
z ( x, y , z )

Exemplo 1.15: Determinar um limite superior do erro absoluto do volume de uma


1
esfera, V =  d 3 , se o diâmetro é d= 3.7 ± 0.05 cm e 3.14.
6
Considerando  e d como variáveis, calculam-se as derivadas parciais
V 1 3 V 1
= d = 8.44 ; =  d 2 = 21.5
 6 d 2

Utilizando a fórmula de propagação do erro (21)

V V
|V |   + d =
 d
= 8.44  0.005 + 21.5  0.05 = 1.117 cm 3  1.1 cm 3

1
e portanto: V =  d 3  26.5 cm 3  1.1 cm 3
6

- 55 -
Capítulo 1 Erros em cálculo numérico

Com base na fórmula de propagação do erro (21), podemos facilmente encontrar as regras para
a propagação de erros nas 4 operações aritméticas. Assim, para o erro absoluto:

|  ( x  y) |  |  x | + |  y |

|  ( x  y ) |  | x || y | + | y || x |

| x || y | + | y || x |
|  ( x/y ) | 
y2
Enquanto que para o erro relativo virá:

x y
| r ( x y ) |  | | |rx|+| || r y |
x y x y

| r ( x y ) |  | r x | + | r y |

| r ( x/y ) |  | r x | + | r y |

Analisando as expressões anteriores, verifica-se que dois tipos de situações podem constituir
uma importante fonte de erros ao trabalhar com aritmética de ponto flutuante:

(a) quando se soma (ou subtrai) um número muito pequeno a (de) um número de muito
maior ordem de grandeza;
(b) quando se subtraem números muito próximos.

Para efetuar um teste do caso (a), em computador, considere novamente o Exemplo 1.1, referido
no início do capítulo.

Exemplo 1.1: Efetue um programa de cálculo que adicione dez mil vezes o valor
0.00001 a uma unidade. Compare o resultado obtido com o resultado exato
calculando a percentagem de erro.
O resultado obtido num PC a trabalhar em simples precisão é: SUM=1.100136. Como
o resultado exato é SUM=1.1, vem

1.1 − 1.100136
 100  0.0124 %
1.1

- 56 -
Capítulo 1 Erros em cálculo numérico

Para explicar porque ocorrem os erros de arredondamento do exemplo 1.1, considere-se o


cálculo de 1+0.00001 num computador em simples precisão. As representações binárias
de 1 e de 0.00001 são, respetivamente,

(1)10 = ( .1000 0000 0000 0000 0000 0000 ) 2  21

(0.00001)10 = ( .1010 0111 1100 0101 1010 1100 ) 2  2 −16

A soma destes dois números resulta

(1)10 + (0.00001)10 =

= ( .1000 0000 0000 0000 0101 0011 1110 0010 1101 0110 0 ) 2  21

No entanto, os últimos dígitos da mantissa (sublinhados) terão que ser aproximados, já


que a mantissa pode apenas armazenar 24 dígitos. Logo, o resultado do cálculo será
armazenado como

(1)10 + (0.00001)10  ( .1000 0000 0000 0000 0101 0100 ) 2  21

que é equivalente a (1.0000 0001 36)10 . Então, sempre que 0.00001 é somado a 1, o
resultado tem um erro de 0.0000000136. Quando a adição é repetida dez mil vezes, é
gerado um erro de exatamente dez mil vezes 0.0000000136.

Atente-se agora no segundo tipo de situação que pode constituir importante fonte de erros,
referenciada anteriormente por (b). Analisando a fórmula do erro relativo da subtração, conclui-
se que se x e y são números muito próximos o valor x-y torna-se muito pequeno, e
consequentemente o erro relativo da diferença dos dois números pode amplificar-se muito. Esta
amplificação do erro relativo designa-se por “cancelamento subtrativo” e corresponde,
portanto, à perda de algarismos significativos (e consequente aumento do erro relativo)
resultante da subtração de números muito próximos.

- 57 -
Capítulo 1 Erros em cálculo numérico

Exemplo 1.16: Para x = 14000 , determine x +1 − x , arredondando todos os números (base


10) a 7 algarismos significativos. Sugira uma forma de evitar o cancelamento subtrativo.

Como x + 1 118.3258 (7 a.s.c.) e x 118.3216 (7 a.s.c.) , vem:

x + 1 − x  118.3258 − 118.3216 = 0.0042 ,

que apenas tem 2 a.s.c.. De facto, para valores de x positivos e “elevados”, x + 1  x , o que

irá implicar cancelamento subtrativo no cálculo de x +1 − x .

Uma possível solução consiste em utilizar a fórmula de cálculo alternativa

x +1 − x = ( x +1 − x ) x +1 +
x +1 +
x
x
=
1
x +1 + x
.

Ora, 1
14001 − 14000 = 
14001 + 14000

1
 = 0.004225696
118.3258 + 118.3216

que tem 7 a.s.c., já que: 14001 − 14000 = 0.004225695816...

Exemplo 1.17: Um fenómeno idêntico pode ocorrer no cálculo das raízes de uma equação
do 2º grau utilizando a fórmula habitual. No caso de

b2  | 4 a c | , então b2 - 4 a c  | b |

pelo que ocorre no numerador da fórmula resolvente um cancelamento subtrativo.

Neste caso pode obviar-se ao problema se utilizarmos a seguinte forma alternativa para
calcular as raízes da equação do 2º grau:

−2c −b − b −4ac
2
x1 = , x2 = se b  0
b+ b2 − 4 a c 2a

−b + b −4ac
2
−2c
x1 = , x2 = se b  0
2a b − b2 − 4 a c

- 58 -
Capítulo 1 Erros em cálculo numérico

O cancelamento subtrativo explica também os resultados obtidos no Exemplo 1.2, ou seja, a


razão porque a aproximação não se torna mais exata quando Δx se aproxima de zero. Para um
Δx suficientemente pequeno, o numerador de d perde significado devido ao cancelamento
subtrativo e este erro, por sua vez, amplifica-se quando se divide por Δx. Uma vez iniciado o
cancelamento subtrativo, as diminuições sucessivas de Δx fazem com que a+Δx se arredonde a
a ou f(a+Δx) e f(a) coincidam com a precisão da máquina, pelo que se obtém d=0.

A propagação do erro pode também estar relacionada com o tipo de problema matemático que
se pretende resolver. Em geral, diz-se que um problema matemático é mal condicionado se for
muito sensível a pequenas alterações nos seus dados; se a solução apresenta fraca
sensibilidade às variações nos dados, o problema diz-se bem condicionado.

Exemplo 1.18: (problema mal condicionado) Considere-se o problema de resolver a


x 1 1
equação de 2º grau: x 2 − + = 0 cujas raízes são x1 = x2 = . Se usarmos
3 36 6
coeficientes arredondados a 6 casas decimais corretas (pequena variação nos dados)

obtém-se a equação: x 2 − 0.333333 x + 0.027778 = 0 , que não tem raízes reais!

Um método numérico diz-se instável se os erros se amplificam no decurso dos cálculos, de


forma a afetar significativamente o resultado final; caso contrário, o método diz-se estável.
Um método estável produz sempre bons resultados (aplicado a problemas bem
condicionados).

8. Discretização

Um dos conceitos fundamentais do cálculo numérico é o de discretização. Consiste na


substituição de um problema contínuo (por exemplo, cálculo de uma derivada ou integral) por
um problema discreto. Suponhamos que se pretende calcular o perímetro de uma determinada
elipse com eixo maior e menor a e b, respetivamente. Esse perímetro será dado analiticamente
pelo integral

 ds =  (a )
2
P = 2
sin 2 x + b2 cos2 x d
0

que é um integral elíptico de segundo tipo, que não admite solução analítica. Por isso é que,
contrariamente ao caso do círculo para o qual

- 59 -
Capítulo 1 Erros em cálculo numérico

2
 ds =  r d = r  0 = 2  R
2
P = (22)
0

não se conhece a fórmula analítica do perímetro de uma elipse. O cálculo terá de ser efetuado
numericamente. Como veremos no Capítulo 5, o problema contínuo do cálculo do integral será
substituído pelo problema discreto do cálculo de uma soma, introduzindo um erro de
discretização.

Exemplo 1.21: (Exemplo simples do conceito de discretização). Considere que se efetua o


cálculo aproximado do integral (22) pelo processo que se indica na Figura 25, isto é, dividindo
o perímetro do círculo em n partes iguais através da construção gráfica que se ilustra
2
(discretização do domínio). Como  = e o lado, l, de cada triângulo é dado por
n
 
l = 2 R sin   o valor aproximado do perímetro do círculo é:
2
sin ( / 2)
Paprox. = n l = 2  R .
 /2
Como se verifica na Figura 5(b), quando n →  o perímetro calculado numericamente tende

para o valor exato ( Paprox . → P ). No entanto, qualquer que seja o valor n (finito), obteremos

sempre um valor aproximado para o perímetro do círculo devido ao erro de discretização


(truncatura) introduzido.

(a) (b)

Figura 25 – Determinação aproximada do perímetro de um círculo: (a) discretização efetuada;


(b) convergência para o valor exato quando n aumenta.

- 60 -
Capítulo 1 Erros em cálculo numérico

9. Métodos iterativos

Outra das ideias fundamentais dos métodos numéricos é a de iteração ou aproximação


sucessiva. Num sentido amplo, iteração significa a repetição de um processo. Um método
iterativo é um método numérico em que a solução do problema matemático é definida como
o limite de uma sequência

x1 , x2 , x3 , ... , xn , ...

definida por iteração, ou seja, através de uma equação iterativa.

O caso mais geral de uma fórmula de iteração estacionária de n pontos é

xk = g ( xk −1 , xk −2 ,... , xk −n ) , k = n, n + 1,...

em que a função de iteração g será, em geral, não apenas função de xk −1 , xk −2 ,... , xk −n mas
também de valores de f(x) e das suas derivadas em um ou mais desses pontos.

O caso mais simples corresponde às fórmulas de iteração estacionárias de um ponto que, como
veremos no Capítulo 2, têm a forma:

xk = g ( xk −1 ) , k = 1, 2, ...
Cada passo tem o nome de iteração. O índice k indica a iteração presente. O processo tem que
ser iniciado com uma aproximação inicial, x0.
Dada a aproximação inicial x0[a, b], um método iterativo diz-se convergente no caso das
sucessivas aproximações:
x1 , x2 , x3 , ... , xk , ...

tenderem para α, ou seja, lim xk =  .


k →

Como os nossos meios de cálculo são limitados, os processos iterativos devem ser terminados
ao fim de um número finito de iterações. Na prática, o processo termina quando uma certa
exatidão for alcançada. As condições impostas para que esta situação se verifique definem o
chamado critério de paragem (ou convergência) do processo iterativo (por exemplo, xk estar

próximo de  ou f ( xk ) ser próximo de 0, ou após um número máximo de iterações).

O erro de truncatura cometido corresponde à diferença entre o valor obtido, quando da


paragem do processo iterativo, e o valor exato que seria obtido no limite.

- 61 -
Capítulo 1 Erros em cálculo numérico

Exercícios propostos

1. Quantos termos da série de Maclaurin da função f(x)=ex são necessários para obter uma
aproximação de e com um erro inferior a 10-6?

2. Utilize o desenvolvimento em série de Taylor para aproximar f(x)=cos x em xi+1=π/3 com base
no valor conhecido da função cosseno em xi=/4. Determine os erros relativos (em percentagem)
cometidos ao considerar aproximações de ordem 0, 1 e 2.

3. Efetue a representação interna do número: (-1000)10 como INTEGER*2.

4. Considere as seguintes representações hexadecimais (base 16) num INTEGER*2: 005C e


FFA4.
a) Mostre a relação existente entre aqueles dois inteiros na base 10.
b) Mostre as relações existentes na base 10 entre aquelas duas representações num INTEGER*2
e as representações hexadecimais 0000005C e 0000FFA4 num INTEGER*4.

5. A uma variável inteira, declarada como INTEGER*2, corresponde a seguinte representação


interna em computador:
1000 0000 1000 1111
Qual o valor dessa variável? Justifique.

6. A duas variáveis inteiras declaradas como INTEGER*2, N1 e N2, correspondem as seguintes


representações internas:

N1 : 1000 0000 1000 1110


N2 : 0100 0000 0000 0010

a) Qual o valor dessas variáveis?


b) Qual será a representação interna correspondente à soma de N1 com N2.
c) Qual seria o resultado correspondente à soma de N1 com a variável inteira N3 dada por:
N3 : 1100 0000 0000 0010
1
7. Mostre que o número não pode ser representado por uma expressão finita no sistema
5
binário.

8. Considere um sistema de ponto flutuante normalizado de base 2, constituído por palavras de


8 bits, sendo 1 bit reservado para o sinal da mantissa, 3 bits para a magnitude do expoente (E0=4)
e 4 bits para a magnitude da mantissa. Calcule em decimal os limites positivos de overflow e
underflow desse sistema.

- 62 -
Capítulo 1 Erros em cálculo numérico

9. Considere um computador hipotético que utiliza a representação de ponto flutuante


normalizada: F(b,p,t,E0) = F(2,4,12,8)
a) Determine o número de reais diferentes que esse computador consegue representar e o valor
do menor e do maior reais positivos desse conjunto.
b) Verifique se os reais: X1=(0.0390625)10 e X2=(0.05)10 pertencem ao conjunto finito dos
números reais representáveis. Justifique.
c) Qual o máximo erro que o referido computador pode cometer ao armazenar um número
real positivo no intervalo determinado em a). Justifique.
d) Qual a representação interna do número inteiro (-300)10.

10. Considere um computador hipotético com uma palavra de 10 bits e um sistema de numeração
em ponto flutuante F(2,5,4,8).
a) Efetue a representação interna dos números: –10 (inteiro) e -10.0 (real).
b) Verifique se é possível representar de forma exata o real: X=35.0.

11. Considere o formato para reais em ponto flutuante: F(2,8,24,127), de acordo com a
norma IEEE 754. Efetue a representação do decimal: (-57.234375)10.

12. Considere um computador que utiliza a norma IEEE 754 e uma representação de ponto
flutuante normalizada F(2,8,24,127)
a) Efetue a representação interna do número real (-2/15)10.
b) Efetue a representação interna do número inteiro (-10)10 , sabendo que o mesmo foi
declarado como INTEGER*2.

13. a) Considere um computador que utiliza a norma IEEE 754 e um sistema de numeração em
ponto flutuante F(2,8,24,127). Efetue a representação interna do decimal: (-450.10)10.
b) Qual a gama de inteiros que o referido computador consegue representar quando a variável é
declarada como INTEGER*2? Justifique a sua resposta.

14. Considere a seguinte representação interna correspondente a um computador hipotético que


utiliza a norma IEEE 754 e para o qual Emin = − 2( p −1
)
−1 :

a) Quais os valores dos parâmetros do sistema F(b,p,t,E0) do referido computador ?


b) Qual o número real acima representado?
c) Qual seria nesse computador a representação interna do número inteiro (-350200)10 ?

- 63 -
Capítulo 1 Erros em cálculo numérico

15. Considere um computador que utiliza a norma IEEE 754 e uma representação de ponto
flutuante normalizada F(2,8,24,127)
a) Efetue a representação interna do número real (-1/15)10.
b) Efetue a representação interna do número inteiro (-5000)10 , sabendo que foi declarado
como INTEGER*2.

16. Mostre que: “ num sistema de ponto flutuante de um computador o valor do expoente
p −1
máximo é dado por: Emax = 2 p − 1 − E0 , sendo o valor de E0 dado, em geral, por: E0 = 2 , onde
p representa o número de bits reservado para a característica C (C=E+E0)”. Justifique
convenientemente a sua resposta.

17. a) Mostre que num sistema de numeração de virgula flutuante normalizado F=F(b, t, p, E0),
no qual todos os dígitos da mantissa são armazenados, existem
2 (b − 1) b t − 1 ( E max − E min + 1 ) + 1

números reais distintos (Emin e Emax correspondem, respetivamente, ao mínimo (negativo) e ao


máximo (positivo) valores dos expoentes).
b) Considere b=2, t=2, p=3, E0=2p-1. Quais os números reais positivos representados neste
sistema?

18. Considere um sistema hipotético de ponto flutuante normalizado de base 2 que efetue a
representação de números através de uma palavra de 7 "bits" (b=2, t=3, p=3, E0=4).
a) Calcule em decimal os limites positivos de “underflow” e “overflow” e determine quantos
números distintos se podem representar nesse sistema.
b) Mostre que o maior número inteiro N (base 10), que tem a particularidade de qualquer inteiro
x satisfazendo: 0  x  N ser representado de modo exato em forma de ponto flutuante, é dado
t
por: N = 2 .

19. Do cimo de uma torre foi lançado verticalmente um corpo. A equação que rege o respetivo
movimento é:
1
s (t ) = v0 t + g t2
2
na qual g é a aceleração da gravidade (9.8 m/s2), s é o espaço percorrido (m), v0 é a velocidade
inicial com que o corpo é lançado (m/s) e t é o tempo de queda (s).
Sabendo que o corpo foi lançado com velocidade inicial de 5 m/s, podendo este valor estar
afetado de um erro absoluto que não excede 0.1 m/s, e que o tempo que o corpo levou a atingir
o solo foi estimado em 10 ± 0.1 s, determine um valor aproximado para a altura da torre e obtenha
um majorante para o respetivo erro.

- 64 -
Capítulo 1 Erros em cálculo numérico

20. O valor 1.315, com as três casas decimais corretas, corresponde ao raio, em metros, de
um círculo. Calcular a área do mesmo, assim como o número de algarismos significativos do
respetivo resultado. Considere para  o valor 3.142.

21. Justificando convenientemente os cálculos, determine o número de algarismos significativos


corretos que podemos garantir no resultado do quociente de e2 por  , quando e = 2.718 e
 = 3.14 .

22. A aceleração da gravidade (g) pode ser determinada empiricamente por medição do
período de oscilação (T) de um pêndulo de comprimento L através de: g = 4  L / T .
2 2

Qual o número de algarismos significativos corretos necessários na medição de T para


garantir uma exatidão de 0.2% na determinação de g, sabendo que o comprimento do pêndulo
foi avaliado em L = 5 ± 0.005 m. Considere, em primeira aproximação, que o número de
dígitos corretos utilizados na aproximação de  é suficientemente grande para se poder
desprezar o respetivo erro.

23. A capacidade de um depósito cilíndrico é dada por V =  (R − e ) h , onde R é o raio


2

exterior, e a espessura da parede e h a altura do depósito. Utilizando um aparelho que garante


uma exatidão mínima de 0.1%, um operador obteve os seguintes valores aproximados:
R = 2.51 m , e = 0,20 m e h = 6,01 m .
a) Quantos algarismos significativos corretos tem cada uma daquelas medições?
b) Qual a aproximação a utilizar para π para garantir um erro máximo de 1% no cálculo do
volume do depósito?

24. O raio de uma esfera com 3 algarismos significativos corretos é igual a 1.00 m. Determinar
a aproximação que deve tomar para π , por forma a obter o volume da esfera ( V = 4 3  R3 )
com uma exatidão mínima de 5%.

25. Um depósito cilíndrico tem um raio de 10.5 m. Determine o número mínimo de casas
decimais na aproximação de  para garantir um erro não superior a 1% no cálculo do
perímetro da secção transversal do depósito.

26. Justificando convenientemente os cálculos, determine o número de casas decimais corretas


a obter na medição do raio e da altura de um depósito cilíndrico, com uma capacidade de
aproximadamente 25.00 m3. Considere o valor de  a utilizar nos cálculos com 5 algarismos
significativos corretos e que a altura do reservatório é aproximadamente igual a duas vezes o
respetivo raio.

- 65 -
Capítulo 1 Erros em cálculo numérico

1
27. Pretende-se obter a capacidade de um reservatório cónico circular ( V =  r 2 h ) com 4
3
algarismos significativos corretos. Supondo que se utiliza nos cálculos um valor de  com 6 casas
decimais corretas, qual terá de ser a exatidão do aparelho de medida a utilizar na obtenção das
respetivas dimensões lineares do reservatório (raio, r, e altura, h). Justifique a sua resposta.

28. Um construtor civil comprou um terreno de habitação à Câmara Municipal com uma área de
aproximadamente 150x200 m2. Na medição de cada um dos lados do terreno, comprimento e
largura, tolerou-se um erro de ± 5 cm por cada 10 metros.
a) Calcule a percentagem máxima de erro de que vem afetado o valor da área do terreno, devido
ao facto dos seus lados não terem sido medidos exatamente.
b) O construtor deseja dividir o referido terreno em lotes para habitação com aproximadamente
600 m2 cada um, admitindo uma percentagem máxima de erro de 1% em cada um deles. Por este
facto, não lhe é possível determinar com exatidão o número de lotes que se podem obter com a
área total do terreno. Qual é então o número máximo e o número mínimo de lotes que o
construtor poderá obter? Justifique.

29. Um depósito cilíndrico de secção elíptica tem um volume interior aproximadamente igual a
25 m3 (V=abh, sendo a e b os semi-eixos da elipse e h a altura do depósito). Pretendendo-se
efetuar uma determinação mais rigorosa daquele volume interior (com 3 algarismos
significativos corretos), considerou-se o valor de  com 4 algarismos significativos corretos e

mediram-se a e b, tendo-se obtido a=1.311±0.001 m e o valor arredondado b =2.100 m.


a) Determinar limites superiores para os erros absolutos e relativos de π, a e b.
b) Determinar qual a exatidão com que deve ser efetuada a medição da última dimensão, h, por
forma a conseguir-se o cálculo de V com a exatidão desejada.
c) Supor agora que se pretende determinar V com 4 algarismos significativos corretos, verificar
se tal é possível recorrendo apenas ao aumento do número de algarismos significativos de  e,
em caso afirmativo, determinar esse número.

30. A capacidade de um depósito cilíndrico é dada por V=  (R-E)2 h, onde E representa a


espessura da parede, R o raio exterior da base e h a altura do depósito.
Dois operadores diferentes efetuaram as seguintes medições:

- 66 -
Capítulo 1 Erros em cálculo numérico

 E = 0.20  0.02 m  E = 0.18  0.03 m


 
1º operador  R = 2.60  0.05 m 2º operador  R = 2.55  0.05 m
 h = 4.95  0.10 m  h = 5.05  0.08 m
 
Utilizando com 4 algarismos significativos corretos, determinar:
a) O conjunto de medições mais correto (medições que minimizam o erro relativo de V).
b) Os erros relativos máximos a consentir nas medições de E,R e h, de modo a garantir uma
capacidade V com 2 algarismos significativos corretos.

31. O módulo de Young E (módulo de elasticidade) pode ser determinado com base na deflexão
s que uma barra de secção retangular sofre quando sobre a mesma se exerce uma força F, através
da seguinte expressão:

1 F l3
E=
4 a 3b s

onde l e a.b são, respetivamente, o comprimento da barra e a área da sua secção.


Sabendo que se conhecem os valores aproximados: F=20 Kgf, com erro relativo rF=10-3, e
s=2.5 cm, l=50 cm, a=3 mm, b=44 mm, com erros relativos rs = rl = ra = rb=10-2, calcular uma
aproximação Ē do valor exato do módulo de Young E, e determinar uma estimativa da
percentagem de erro de que vem afetada essa aproximação.

32. Quantos algarismos significativos corretos se pode garantir que existem no resultado do
produto de 13.2 por 0.012579, supondo que os algarismos significativos destes números são,
todos eles, corretos. Justificar a resposta.

33. A capacidade de um depósito cilíndrico é dada por: V =  R 2 h onde, R é o raio interno e h a


altura do depósito. Supondo que: R = 2.5  0.01 m e h = 4.0  0.01 m .
a) Verifique se é possível calcular o volume do depósito com uma exatidão de 1%.
b) Determine qual o menor número de algarismos significativos que deve tomar para o valor de
π, por forma a obter o volume do depósito com uma exatidão mínima de 2%.

34. Dado 10 = 3.162278 , calcule com uma exatidão mínima absoluta de 10-5 o valor de
10 −  . Justifique os cálculos.

- 67 -
Capítulo 1 Erros em cálculo numérico

- 68 -
CAPÍTULO 2
_______________________________________________________________________________________________________________

RESOLUÇÃO DE EQUAÇÕES NÃO-LINEARES

1. Introdução

No presente capítulo tratar-se-á da resolução da equação (algébrica ou transcendente) a uma


variável representada por:

f ( x) = 0 (1)

Uma solução da equação f(x)=0 é um valor de x, seja α, para o qual a função f(x) se anula, i.e.,
tal que f(α)=0. Esta solução é designada por zero da função f(x) ou raiz da equação f(x)=0. As
raízes de uma equação tanto podem ser reais como complexas. Neste capitulo vamos limitar-nos
à determinação de raízes reais.

Geometricamente, uma raiz real da equação f(x)=0 é representada pela abcissa x=α, para a qual
o gráfico da função f(x) intercepta o eixo Ox.

Uma equação da forma geral (1) pode ter ou não raízes reais. No primeiro caso pode haver apenas
uma raiz ou várias. Por exemplo, a equação quadrática a x 2 + b x + c não tem raízes reais se
b 2  4 a c ; caso contrário terá duas raízes (figura 1). Naturalmente, se b2=4ac, as duas raízes
serão idênticas (raiz de multiplicidade 2 ou raiz dupla)2. A função intercepta o eixo das abcissas,
mas fá-lo de modo a que o zero seja um ponto de tangencia com o eixo. Neste caso, a função à
direita e à esquerda da raiz não muda de sinal.

1 2 

Figura 1 – Ilustração gráfica das possíveis soluções de uma equação quadrática.

2
A função f ( x ) , m vezes continuamente diferenciável em α, tem um zero de multiplicidade m em
( m −1 )
α sse: f ( ) = f ' ( ) = f ' ' ( ) = ... = f ( ) = 0 e f (m)
( )  0

- 69 -
Capítulo 2 Resolução de equações não-lineares

No que se refere ao tipo de função elementar f as equações podem classificar-se em equações


algébricas e transcendentes. Uma equação algébrica real na variável x é uma relação
matemática que envolve apenas um número finito de operações de soma, subtração, produto,
divisão e radiciação de termos envolvendo a variável x. São exemplos,

f ( x )  x 4 − 4 x 3 − 3 x 2 + 13 x − 4 = 0

x3
f ( x)  = 0
x 2 −1
f ( x )  3 x 2 + 7 x1/ 2 − 2 x − 3 = 0

Enquanto a primeira é uma equação polinomial (a função f é uma função algébrica racional
inteira), a segunda (na qual f é uma função algébrica racional fracionária, ou seja, que se pode
expressar como quociente de dois polinómios) e a terceira (na qual f é uma função algébrica
irracional) são equações algébricas não polinomiais.

Exemplo 2.1: Exemplo de uma equação polinomial aplicada a um problema de engenharia


– deformação de uma viga em consola (carga vertical uniforme)

  max
x=αL

x=0 x=L
α=0 α α=1

A deformação linear  num ponto ( x = α L) está relacionada com a deformação máxima


max através de:

f ( ) =  4 − 4  3 + 6  2 − 3 =0
 max

Designam-se por equações transcendentes, as que não são algébricas, ou seja, que envolvem
funções trigonométricas e outras funções especiais (exponenciais, logarítmicas, entre outras).
São exemplos, os casos:

- 70 -
Capítulo 2 Resolução de equações não-lineares

f ( x) = x e x − 1 = 0
f ( x ) = x + ln( x ) = 0
f ( x ) = x tg ( x ) − 1 = 0

Exemplo 2.2: Exemplo de uma equação transcendente aplicada a um problema de


engenharia – perda de carga numa conduta uniforme

L Q2
H = f
D 2 g A2

p
1 L

Q
w p
2
z1 
z2
z=0

A perda de carga (perda de energia por unidade de peso),  H , numa conduta uniforme
pode ser calculada em função do denominado fator de atrito f calculado por uma equação
do tipo
1  C 
= − 2 log  C1 + 2 
f  f 

na qual C1 e C 2 são coeficientes função das características do fluido, velocidade de


escoamento e do diâmetro e material de revestimento da conduta (dados do problema).

As equações não lineares, exceto em casos particulares, não podem ser resolvidas através de
métodos diretos, i.e., algoritmos que permitem obter uma solução num número finito e
predeterminado de passos de cálculo (se o computador trabalhasse com aritmética exata, ou seja,
na ausência de erros de arredondamento, a solução obtida seria exata). Considere-se o exemplo
de uma equação polinomial

f ( x )  a n x n + a n−1 x n−1 + ... + a1 x + a0 = 0

- 71 -
Capítulo 2 Resolução de equações não-lineares

em que a n , a n−1 , ... , a 0 são números reais designados por coeficientes e n é um número
inteiro positivo, designado por grau da função polinomial. Para equações de grau menor ou igual
a 4, todas as raízes podem ser obtidas diretamente por fórmulas algébricas, embora para equações
de grau 3 e 4 esse não seja o procedimento mais eficiente. Para n>4 há que recorrer a métodos
iterativos.

Quando se pretende determinar não apenas uma, mas várias das soluções de uma equação, será
necessário aplicar o método iterativo para cada uma das soluções a calcular. Estas aplicações
deverão necessariamente partir de estimativas iniciais x0 diferentes. A implementação
computacional de qualquer método iterativo apresenta três componentes essenciais:

i) uma estimativa inicial da solução;


ii) um processo para calcular uma nova aproximação melhorada
- fórmula recursiva ou de iteração - ;
iii) um critério para terminar o processo de atualização
- critério de paragem ou de convergência -.

A ligação entre as diferentes componentes deste processo encontra-se representada, através de


um diagrama de blocos, na figura 2.

INÍCIO

ESTIMATIVA INICIAL

FÓRMULA DE ITERAÇÃO

NÃO
FIM ?

SIM

PARAR

Figura 2 - Implementação de um algoritmo iterativo.

- 72 -
Capítulo 2 Resolução de equações não-lineares

É importante efetuar a distinção entre o algoritmo iterativo - processo global desde o "início" até
ao "parar" - e a principal componente desse processo designada por fórmula de iteração, a qual
será distinta em função do método iterativo utilizado.

O caso mais simples, como se referiu no final do Capítulo 1, corresponde às fórmulas de iteração
estacionárias de um ponto,
x k = g ( x k −1 ) (2)

A aplicação da fórmula de iteração (2) requer o conhecimento duma aproximação inicial da


solução, seja x0. Muitas vezes x0 pode ser obtido de imediato. Este é, por exemplo, o caso em
que o problema equacionado permite uma previsão do resultado. Nos casos em que tal não é
possível, ou ainda no caso mais geral de se pretenderem obter as várias raízes da equação, é
necessária numa fase prévia obter essa estimativa.

Assim, e de forma geral, pode considerar-se que a determinação aproximada das raízes de uma
equação se efetua em duas etapas:

i)- Localização, separação e contagem das raízes

Consiste em obter intervalos disjuntos, tantos quantos o número de raízes, cada um dos quais
contendo uma raiz (figura 3). Estes intervalos permitirão obter uma "estimativa" da raiz. Na
secção 2. apresentam-se diferentes métodos (gráficos e analíticos) para obter essa estimativa
inicial.
y=f(x)

a b a2 b2
1
.
1
. .
1 2 a3 3 b3 x

Figura 3 – Processo de separação das raízes em intervalos disjuntos.

ii)- Determinação de uma aproximação da raiz utilizando um método iterativo.

Após se obter uma aproximação inicial, que algumas vezes pode ser grosseira, vai-se
sucessivamente refinando a aproximação até que a mesma esteja tão próxima da raiz da equação
quanto seja requerido pelo problema em análise.

- 73 -
Capítulo 2 Resolução de equações não-lineares

Apresentam-se na secção 3 alguns métodos iterativos para a determinação das raízes reais de
uma equação algébrica ou transcendente do tipo f(x)=0. Como os dois primeiros aspetos do
algoritmo computacional serão objeto de tratamento mais pormenorizado, vamos deter-nos um
pouco mais no aspeto da convergência.

O valor exato das raízes de uma equação pode ser determinado num número relativamente
pequeno de casos. Isto é verdade inclusivamente para a equação quadrática, pois sempre que b2
- 4ac não seja um quadrado perfeito a raiz quadrada de b2 - 4ac não poderá ser calculada de
forma exata. No caso geral de um método iterativo, o valor encontrado não é uma raiz exata
mesmo que não ocorram erros de arredondamento. Assim, na maioria das aplicações práticas o
objetivo é determinar valores aproximados das raízes com a exatidão exigida pelo problema em
análise.

Dada a aproximação inicial, x0, por aplicação sucessiva da fórmula de iteração (2) obter-se-á
uma sucessão de aproximações x1, x2, x3,... . Esta sucessão {xk} convergirá para a raiz α se e só
se para qualquer ε>0 existir um inteiro I tal que n>I e m>I implique que:

 xn - xm <ε (condição de Cauchy).

A condição de Cauchy não pode ser aplicada diretamente, utilizando um comprimento finito de
tempo de computador. De facto, um processo de cálculo não pode decorrer indefinidamente; tem
de ser terminado após um número finito de iterações. O erro de truncatura cometido no
cálculo numérico corresponde à diferença entre o valor obtido, quando da paragem do
processo iterativo, e o valor exato que seria obtido no limite. Por esta razão, têm de ser
definidos critérios de paragem para os processos iterativos.

Existem duas interpretações computacionais possíveis para a determinação de α ; ou calcular um


valor xk muito próximo de α, ou calcular xk de forma que f(xk) seja muito pequeno.

Analisem-se os dois seguintes casos extremos. Se a função f(x) é tal que a inclinação da curva é
muito significativa na vizinhança da raiz (figura. 4a), a exatidão com a qual se pode calcular a
raiz poderá estar limitada pelas capacidades do computador. Considere-se a seguinte função:
2
f ( x) = (10 − x )3 e x

a qual tem como zero x=α=10. No entanto, a solução com base na implementação em
computador de um método iterativo poderá ficar limitada a α=10±10-14, a qual embora muito
próxima da raiz, conduz a um valor para f(x) de aproximadamente 104.

- 74 -
Capítulo 2 Resolução de equações não-lineares

Por outro lado, uma função muito plana na vizinhança da raiz poderá também causar problemas.
Neste caso, a solução, embora produzindo um valor para a função muito próximo de zero, pode
encontrar-se algo distante da verdadeira solução (figura 4b).

(a) (b)

Figura 4 - (a) Valor aproximado xk próximo da raiz exata α, mas f(xk) não pequeno;
(b) Embora f(xk) seja pequeno o valor de xk que não está próximo da raiz exata α.

Considere-se, por exemplo:

f ( x ) = (10 − x ) 3 e − x
2

cuja solução é também x=α=10. No entanto, f(10.01) é da ordem de 10-50, e por isso a
implementação em computador de um método iterativo poderá fornecer uma solução como
10.01 em lugar de 10. Dependendo do problema em causa aquela solução poderá ou não ser
aceitável.

Assim, na prática, uma sucessão de aproximações sucessivas x1, x2, x3,... produzida por um
método iterativo é dita convergente se, dado um inteiro positivo Imax (máximo número de
iterações), para algum k<Imax se verificar:

 f(xk) ε1
e/ou
 xk – xk-1  ε2  xk  ( ou  xk - xk-1 ε2 )

nas quais ε1>0 e ε2>0 são tolerâncias pré-definidas. Caso contrário, a sucessão não converge em
Imax iterações (convergência muito lenta) ou será divergente.

- 75 -
Capítulo 2 Resolução de equações não-lineares

Quando se comparam métodos iterativos, em termos de convergência, é frequente utilizar os


seguintes atributos:

▪ Robustez: {xk} converge para α independentemente de x0 estar ou não suficientemente


próximo de α.

Ao analisar as condições para as quais um método tem garantia de convergência, a necessidade


de ter ou não estimativas iniciais "suficientemente próximas" do zero pretendido leva-nos a
distinguir teoremas de convergência local e global. Um teorema de convergência local especifica
propriedades de convergência que dependem do facto do processo iterativo se ter iniciado
suficientemente próximo da solução. Um teorema de convergência global especifica
propriedades de convergência que dependem apenas da aproximação inicial se encontrar num
intervalo claramente especificado. Veremos em secções posteriores que é algumas vezes
possível fornecer simultaneamente teoremas locais e globais para determinados métodos
particulares.

▪ Rapidez (ou velocidade) de convergência.

A rapidez de convergência de um método iterativo pode ser determinada comparando valores


sucessivos do termo de erro:

 xk = xk − 

Para caracterizar a rapidez de convergência é frequente utilizar a noção de ordem de


convergência. Um método iterativo, que gera uma sequência de iteradas {xk}, k=0,1,...
convergindo para α, é dito de ordem de convergência p se existe uma constante positiva C tal
que:

 xk
lim p
=C (3)
k →  x k −1

A constante C designa-se por razão de convergência ou constante de erro assimptótico.

Se p=1 diz-se que a sucessão converge linearmente para a raiz α, ou seja, que o método tem
convergência linear; se p=2 o método terá convergência quadrática, etc. Sempre que p>1, a
convergência diz-se supralinear.

- 76 -
Capítulo 2 Resolução de equações não-lineares

A expressão (3) costuma por vezes escrever-se na forma assimptótica


p
 x k  C  x k −1

que dá uma indicação do modo como o erro evolui quando o número de iterações for
suficientemente grande. Para k suficientemente grande,  x k estará já relativamente próximo

de zero. Assim, quanto maior for p (ordem de convergência de um método iterativo) menor será,
em princípio, o número de iterações necessário para atingir uma dada exatidão. A razão de
convergência também pode ser um aspeto a considerar quando se comparam processos iterativos
com a mesma ordem de convergência.

Em termos práticos, definindo o intervalo entre as iteradas de duas iterações sucessivas como
 x k  x k − x k −1 (figura 5), para um k suficientemente grande, pode-se garantir que

 x k   x k ? A resposta, e respetiva justificação, será dada mais adiante.

xk-1

x0  x k-1 xk  x
xk x k

y=f(x)

Figura 5 - O k-ésimo incremento δxk como majorante do erro Δxk quandoΔxk+1<<Δxk

2. Localização, contagem e separação das raízes

Esta primeira fase consiste, como se referiu, em determinar tantos intervalos disjuntos quantas
as raízes reais e distintas, de tal modo que, no interior de cada intervalo só exista uma raiz (Fig.
3). Pode ser efetuada através de:

- Métodos gráficos;
- Métodos analíticos.

- 77 -
Capítulo 2 Resolução de equações não-lineares

2.1. Métodos gráficos

O método mais direto para obter os valores aproximados das raízes de uma equação consiste em
esboçar o traçado gráfico da curva correspondente a f(x); como foi referido, os pontos de
intersecção dessa curva com o eixo Ox serão valores aproximados das raízes (cf. Fig. 2).

É por vezes vantajoso escrever a equação f(x)=0 sob a forma f1(x)=f2(x), quando estas forem de
mais fácil representação gráfica, e representar graficamente y1= f1(x) e y2= f2(x); as abcissas dos
pontos de intersecção destas duas curvas serão os valores aproximados das raízes de f(x)=0.

Exemplo 2.3: Efectuar a localização, contagem e separação das raízes reais positivas
de f ( x ) = x tg ( x ) − 1 .

Figura 5 - Localização gráfica das raízes reais positivas de f ( x ) = x tg ( x ) − 1 .

- 78 -
Capítulo 2 Resolução de equações não-lineares

2.2. Métodos analíticos

2.2.1 Método de Newton (delimitação das raízes)

O objetivo do método de Newton é permitir determinar um intervalo [ a, b ] , no interior do qual


se encontrem todas as raízes da equação. Aplica-se a equações algébricas e transcendentes
sempre que as respetivas funções sejam contínuas e admitam derivadas contínuas até uma certa
ordem (por exemplo, n) com a derivada dessa ordem de sinal constante no intervalo [ a, b ]
considerado.

Nas condições anteriores, se existir um valor L [ a, b ] tal que:

( n −1)
f ( L )  0 , f ' ( L )  0 , f ' ' ( L )  0 , ... , f ( L)  0 , f
(n)
( L)  0

esse valor L será um limite superior (ou limite excedente) das raízes reais de f(x)=0, ou seja,
qualquer das raízes reais αi (i=1,2...,n) verifica a relação αiL.

Demonstração: Considere-se, para simplificar e por ser o caso mais corrente, que a função

f(x) é um polinómio de grau n. Através do polinómio de Taylor, em torno de L, obtém-se

pn'' ( L) p ( n ) ( L)
pn ( x) = pn ( L) + pn' ( L) ( x − L) + ( x − L) 2 + ... + n ( x − L )n
2! n!

Ora, de acordo com enunciado do método de Newton,

pn( k ) ( L)  0 , k = 0,1,2,..., n - 1 e pn( n ) ( L) = an n!  0

pelo que,
p n'' ( L ) p(n) ( L)
p n ( x ) = p n ( L ) + p n' ( L ) ( x − L ) + ( x − L ) 2 + ... + n ( x − L )n  0
2! n!

já que corresponde a uma soma de parcelas não negativas, para qualquer 𝑥 ≥ 𝐿.

O limite inferior ou deficiente das raízes reais de f(x)=0 é um número l tal que qualquer que

seja essa raiz, αi, se tem lαi. Para determinar este valor basta construir o transformado de f(x)
em (-x), ou seja, o polinómio f *(x)= f (-x). De facto, f *(x)= f (-x) tem raízes simétricas de f(x).

- 79 -
Capítulo 2 Resolução de equações não-lineares

Então, se o limite excedente das raízes reais de f *(x) for L*, teremos para limite deficiente das
raízes reais de f (x)=0 o valor l = - L*.

Exemplo 2.4: Calcular um intervalo onde se encontrem todas as raízes da equação


p 4 ( x )  x 4 − 4 x 3 − 3 x 2 + 13 x − 4 = 0

x =1 x=3 x=4

p 4 ( x ) = x 4 − 4 x 3 − 3 x 2 + 13 x − 4 0

p 4' ( x ) = 4 x 3 − 12 x 2 − 6 x + 13 − +

p 4'' ( x ) = 12 x 2 − 24 x − 6 − + +

p 4''' ( x ) = 24 x − 24 0 + +

p 4IV ( x ) = 24 ( = 4 !) + + +

L = 4 é limite superior das raízes de p4(x)=0 (neste caso, α=4 é uma raiz da equação).

x =1 x=2

p 4 ( − x ) = x 4 + 4 x 3 − 3 x 2 − 13 x − 4 − +

p 4' ( − x ) = 4 x 3 + 12 x 2 − 6 x − 13 + +

p 4'' ( − x ) = 12 x 2 + 24 x − 6 + +

p 4''' ( − x ) = 24 x + 24 + +

p 4IV ( − x ) = 24 ( = 4 !) + +

L = 2 é limite superior das raízes de p4(-x)=0, o que implica que l = - 2 é limite


inferior das raízes de p4(x)=0.

  i  [−2 , 4]

l=-2 -1 0 1 2 3 L=4

- 80 -
Capítulo 2 Resolução de equações não-lineares

Para não se ter que efetuar, como no exemplo anterior, um processo por tentativas sucessivas,
pode utilizar-se o seguinte resultado para obter uma estimativa (majorante) de L :

▪ Seja pn(x) um polinómio cujos coeficientes satisfazem as condições:

a n  0 , a n−1  0 , ... , a m+1  0 , a m  0

ou seja, am é o primeiro coeficiente negativo do polinómio. Então:

1
a
L  1 + max k n−m (4)
a k 0 a n

Exemplo 2.5: Utilizar (4) para calcular um majorante do limite superior da


equação p 4 ( x )  x 4 − 4 x 3 − 3 x 2 + 13 x − 4 = 0 do exemplo 2.4.

p 4 ( x ) = x 4 − 4 x 3 − 3 x 2 + 13 x − 4
max a k negativo

Utilizando (4), com n = 4 e m = 3 , obtém-se


1
−4
L  1+ 4 −3 =5
1

Uma vez limitadas (localizadas) as raízes de f(x)=0 pelo método de Newton, o método de Rolle
(ou em alternativa, o método de Fourier) vai fornecer um critério para as separar e contar.

2.2.2 Método de Rolle

O método de Rolle está baseado no teorema de Rolle, e respetivos corolários, que se recordam:

➢ Teorema de Rolle: Seja f uma função continua no intervalo [a,b] e diferenciável em


]a,b[; se f ( a ) = f ( b ) , existe um ponto c ] a , b [ tal que f ' ( c ) = 0 .

- 81 -
Capítulo 2 Resolução de equações não-lineares

➢ Corolário 1: Entre dois zeros de uma função diferenciável existe, pelo menos, um zero
da sua derivada.
f (x)

Figura 6 – Ilustração gráfica do corolário 1 do teorema de Rolle.

➢ Corolário 2: Entre dois zeros consecutivos da derivada de uma função diferenciável


existe, quanto muito, um zero dessa função.

f (x)

f (x)

Figura 7 – Ilustração gráfica do corolário 2 do teorema de Rolle.

Exemplo 2.6 (de aplicação do teorema de Rolle): Mostrar que a equação x e


x
−1= 0
tem uma e uma só raiz real positiva no intervalo [0,1]

 f (0) = − 1  0
f ( x)  x e x − 1  
 f (1)  e 1 − 1  0

▪ Pelo teorema de Bolzano: Se f for uma função continua em [a,b] e mudar de sinal
nos extremos desse intervalo, então existe pelo menos uma raiz real de f em [a,b].
▪ Por outro lado, como f ' ( x ) = x e +ex= e
x x
(1 + x ) e

f '( x) = e x
(1 + x ) = 0  x = − 1 pois : e x
 0 , x

Assim, como no intervalo [0,1] a derivada não se anula, pode concluir-se pelo
Corolário 1 do teorema de Rolle que apenas pode existir uma raiz. Por outro lado,
como no intervalo [0,1] existe pelo menos uma raiz (T. de Bolzano) pode concluir-se
que a raiz é única em [0,1], c.q.d.

- 82 -
Capítulo 2 Resolução de equações não-lineares

• Método de Rolle: Aplica-se ao caso particular de f(x) ser regular em [a,b], em


particular, um polinómio, e em que seja possível determinar as raízes reais de
f'(x)=0. Sejam elas, já ordenadas
s1  s 2  s 3  ...  s k

Denominam-se números de Rolle da equação f(x)=0, definida em I  R , aos


elementos do conjunto formado pelos pontos fronteira de I (limites inferior, l , e
superior, L , das raízes de f(x)=0 calculados pelo método de Newton) e pelos zeros
da derivada de f, ou seja
l , s1 , s2 , s3 , ... , sk , L

O método de Rolle afirma que: uma vez ordenados de forma crescente, entre dois
números de Rolle consecutivos existe no máximo uma raiz real da equação.

➢ Demonstração: De facto, através do Corolário 2, sabe-se que entre dois zeros


consecutivos da derivada há quanto muito um zero da função. Por outro lado, entre
o limite inferior e o primeiro zero da derivada também só pode existir um zero da
função (já que de acordo com o Corolário 1 “entre dois zeros da função existe pelo
menos um zero da derivada”). O mesmo raciocínio pode ser aplicado entre o último
zero da derivada e o limite inferior.

A existência ou não de raiz em cada um dos intervalos, formados por dois números de Rolle
consecutivos, será determinada pelos sinais da sucessão de Rolle:

f ( l ) , f ( s1 ) , f ( s 2 ) , f ( s3 ) , ... , f ( s k ) , f ( L )

Se entre dois números de Rolle consecutivos a função f mudar de sinal existirá uma raiz no
intervalo; caso contrário, isto é, se a função não mudar de sinal, não existirá qualquer raiz no
intervalo.

- 83 -
Capítulo 2 Resolução de equações não-lineares

Exemplo 2.7: Utilizar o método de Rolle para efectuar a separação das raízes da
equação p 4 ( x )  x 4 − 4 x 3 − 3 x 2 + 13 x − 4 = 0 do exemplo 2.4.

Como foi verificado no Exemplo 2.4, α=4 é uma raiz da equação, pelo que
p 4 ( x ) = ( x − 4 ) p3 ( x )

Utilizando a regra de Ruffini

1 −4 −3 13 −4

4 4 0 − 12 4

1 0 −3 1 0

obtém-se: p 4 ( x ) = ( x − 4 ) ( x 3 − 3 x + 1)
 
p3 ( x )

Aplique-se então o método de Rolle à equação polinomial p 3 ( x ) = x 3 − 3 x + 1 = 0 .

p 3' ( x ) = 0  3x2 − 3 = 0  x = 1

Nºs de Rolle: − 2 , − 1 , 1 , 2 (verifique que x=L=2 é limite superior de p 3 ( x ) = 0 ).

Sucessão de Rolle: f ( −2 ) = −1, f ( −1) = 1 , f (1) = −1 , f ( 2 ) = 3

  1 ] − 2 , −1 [ ,  2 ] − 1 , 1 [ ,  3 ] 1 , 2 [

Na prática, o cálculo dos zeros da derivada pode ser tão complicado quanto o cálculo dos
zeros da função original. É essa a dificuldade que surge frequentemente na aplicação do
método de Rolle. Nesses casos há que utilizar um método alternativo, como é o método de
Fourier.

- 84 -
Capítulo 2 Resolução de equações não-lineares

2.2.3 Método de Fourier

O método aplica-se a equações algébricas e transcendentes sempre que as respetivas funções


sejam contínuas e admitam derivadas contínuas até uma certa ordem (por exemplo, n) com a
derivada dessa ordem de sinal constante no intervalo [a,b] considerado.

Sucessão de Fourier é a sucessão:


()
f ( x ) , f ' ( x ) , f ' ' ( x ) , ... , f ( x) com   n

em que n é o grau de f(x)=0.


Diz-se que dois termos consecutivos da sucessão de Fourier fazem entre si uma permanência
para x=xo se são do mesmo sinal e fazem uma variação se são de sinais contrários.

• Teorema de Fourier - O número de raízes reais de f(x)=0 em [a,b] é igual ao número


de variações perdidas pela sucessão de Fourier de f(x) quando se passa de a para b, ou
um número inferior mas da mesma paridade.

O método de Fourier para o cálculo do número de raízes de f(x)=0 em [a,b] consiste em contar
o número de variações da sucessão de Fourier de f(x) no ponto a (seja esse número V(a)) e no
ponto b (seja esse número V(b)). O numero de raízes reais de f(x)=0 em [a,b] é igual a:

V(a) - V(b)

ou um número inferior, mas da mesma paridade, i.e.

V(a) - V(b) - 2 K , KZo+

O objetivo prático do método é então tentar construir sub-intervalos [ak, bk], k=1,2,... nos quais

se verifique V(ak)-V(bk) = 1.

- 85 -
Capítulo 2 Resolução de equações não-lineares

Exemplo 2.8: Utilizar o método de Fourier para efetuar a separação das raízes da
equação p 3 ( x )  x 3 − 3 x 2 + 1 = 0 do exemplo 2.6.

p3 ( x ) = x 3 − 3 x + 1

p 3' ( x ) = 3 x 2 − 3

p 3'' ( x ) = 6 x

p 3''' ( x ) = 6 ( = 3!)

Para : a = l = −2 → p 3 ( −2 ), p 3' ( −2 ), p 3'' ( −2 ), p 3''' ( −2 )


II II II II
−1 , 9 , − 12 , 6
    V(-2) = 3
V V V

Para : b = L = 2 → p 3 ( 2 ), p 3' ( 2 ), p 3'' ( 2 ), p 3''' ( 2 )


II II II II
3 , 9 , 12 , 6
      V(2)=0
P P P

Nº de raizes em ] - 2 , 2 [ → V(-2) - V(2) = 3 - 0 = 3  3 ou 1 raizes ( 3 − 2 k , k  Z + )


0

Para : x = 0 → p 3 ( 0 ), p 3' ( 0 ), p 3'' ( 0 ), p 3''' ( 0 )


II II II II
1 , −3 , 0 , 6
      
V V P V(0)=2

 Nº de raizes em ] - 2 , 0 [ → V(-2) - V(0) = 3 - 2 = 1  1 raiz

Para : x = 1 → p 3 (1), p 3' (1), p 3'' (1), p 3''' (1)


II II II II
−1 , 0 , 6 , 6
    
V P P V(1)=1

 Nº de raizes em ]0 ,1[ → V(0) - V(1) = 2 - 1 = 1  1 raiz

 Nº de raizes em ]1, 2 [ → V(1) - V(2) = 1 - 0 = 1  1 raiz

- 86 -
Capítulo 2 Resolução de equações não-lineares

2.2.4 Regra de sinais de Descartes


Aplica-se no caso particular da função ser um polinómio de grau n,

• Teorema de Descartes - O número de raízes reais positivas de um polinómio, suposto


ordenado, é igual ao número de variações de sinal dos seus coeficientes ou um número
inferior da mesma paridade (o zero é, para este efeito, considerado par).

Demonstração: O teorema de Descartes corresponde à aplicação do teorema de Fourier ao


intervalo [ 0 , +  [ . De facto :
V (0) − V () = V (0) já que : V (  ) = V ( L ) = 0

Por outro lado, como p ( k ) ( 0 ) = k ! a k , o número de variações da sucessão de Fourier

para x=0, V(0), é igual ao numero de variações de sinal dos coeficientes do polinómio.

E quanto ao número de raízes negativas? Atendendo a que ele é igual ao número de raízes reais
positivas do seu transformado em (-x), justifica-se o seguinte enunciado:

▪ O número de raízes negativas de um polinómio é igual ao número de variações de sinal


dos coeficientes do seu transformado em (-x) ou a um número inferior da mesma
paridade.

No caso particular do polinómio ser completo o método de Descartes pode enunciar-se:

▪ " O número de raízes reais positivas é igual ao número de variações de sinal dos seus
coeficientes ou um número inferior da mesma paridade, e o número de raízes negativas
será igual ao número de permanências de sinal dos seus coeficientes ou um número
inferior da mesma paridade (o zero é, para este efeito, considerado par)."

Exemplo 2.9: Utilizar a regra de sinais de Descartes para a contagem das raízes positivas
e negativas da equação x 4 − 4 x 3 − 3 x 2 + 13 x − 4 = 0 do exemplo 2.4.

Como o polinómio é completo:


▪ nº de variações de sinal de f(x)= 3  3 ou 1 raízes positivas
▪ nº de permanências de sinal de f(x)= 1  1 raiz negativa

- 87 -
Capítulo 2 Resolução de equações não-lineares

3. Métodos iterativos para a determinação de raízes

3.1 Introdução

Localizada a raiz que se pretende determinar, ou seja, encontrado um intervalo [a,b] que
contenha essa e apenas essa raiz, pretende-se agora, através de um método iterativo, calcular o
valor dessa raiz com uma determinada exatidão. Os métodos para resolver este problema podem
ser classificados em dois grandes grupos. Os métodos de intervalo aberto, para os quais á
partida não é estritamente necessário definir um intervalo que contenha a raiz, já que a sua
filosofia se baseia no conceito de aproximação inicial. O processo iterativo pode ser iniciado, no
caso mais simples, com uma única aproximação à raiz (métodos iterativos dependentes de um
só ponto). No entanto, a convergência dos métodos deste grupo depende dos valores iniciais
atribuídos na primeira iteração, razão pela qual ter obtido previamente o intervalo onde se
encontra a raiz constitui uma ajuda preciosa na seleção dos valores que irão inicializar o processo.
Como exemplos deste tipo de métodos tem-se o método do ponto fixo, o de Newton-Raphson e
o da secante.

O segundo grupo engloba os métodos de intervalo fechado (também designados como de


encaixe ou métodos que enquadram a raiz) como são os métodos da bissecção e da falsa posição.
São caracterizados por definirem, em cada iteração, um intervalo que contém a raiz e construir,
para a iteração seguinte, outro intervalo encaixado (incluído) neste e que continue a conter a raiz.
Os intervalos, como aparecem encaixados uns nos outros, terão amplitudes sucessivamente
menores.

3.2 Métodos iterativos dependentes de um só ponto


3.2.1 Método do ponto fixo

É sempre possível transformar algebricamente de inúmeras (infinitas) formas a equação


f(x)=0 numa outra equação equivalente do tipo

x = g (x) (5)

Uma solução de (5) é dita um ponto fixo de g, ou seja, α é um ponto fixo de g se e só se  = g ( )


(o ponto permanece invariante sob a transformação g). É claro que se α é um ponto fixo de g
então será zero de f e vice-versa, já que a equação (5) é equivalente a f(x)=0. Geometricamente
tem-se a situação representada na figura 8.

- 88 -
Capítulo 2 Resolução de equações não-lineares

y
y=x
y=g(x)

g ()
ponto fixo de g

 x

Figura 8 – Ilustração gráfica de um ponto fixo da função g.

A equação (5) tem a mesma solução que f(x)=0, pelo que:

 = g ( ) (6)

Teorema (existência de um ponto fixo): Seja I=[a,b] um intervalo e g uma função


satisfazendo:
i) g é continua em I ; e
ii) g  I
Então existe pelo menos um   I tal que g ( ) =  , ou seja, g contém pelo menos um
ponto fixo no intervalo I.

Demonstração: A condição g  I significa que: a  g ( x)  b para x  I , ou seja, o


gráfico de g está contido no quadrado (amarelo) da figura 9. Intuitivamente verifica-se
que para ir de A a B o gráfico de g tem de intercetar a reta y=x pelo menos uma vez.
Matematicamente, podemos ter as duas seguintes situações:
▪ No caso de g(a)=a ou g(b)=b ter-se-á encontrado um ponto fixo de g ;
▪ Excluindo este caso trivial, terá que verificar-se que g (a)  a e g (b)  b , ou seja,
g (a) − a  0 e g (b) − b  0 . A função h( x) = g ( x) − x terá então sinais contrários
em a e b. Como h(x) é continua, pelo teorema de Bolzano, existe pelo menos um
ponto  [a, b] tal que h( x) = 0 , ou seja, g ( ) =  . Logo,  é ponto fixo de g.

- 89 -
Capítulo 2 Resolução de equações não-lineares

y
y=x
b y=g(x)

g() B
A

a  b x

Figura 9 – Ilustração gráfica do teorema da existência do ponto fixo.

Dada uma aproximação inicial x0 , a igualdade (5) sugere o processo iterativo

xk = g ( xk −1 ) , k = 1, 2, ... (7)

denominado iteração de ponto fixo. O método do ponto fixo é um método iterativo a um passo
(dependente de apenas um ponto). A figura 10 ilustra graficamente três iterações deste processo
iterativo.

y y
y=g(x) y=x
y=x g()
y=g(x) g(x0)
g(x0)

g()

 x 2 x1 x0 x x 2 x1 x0  x
(a) (b)
Figura 10 - Método do ponto fixo: (a) convergente; (b) divergente.

Como foi referido, a equação x=g(x) pode ser definida de inúmeros modos a partir de f(x)=0.
A forma geral de g(x) é:
g ( x) = x − c( x) f ( x) (8)

na qual c(x) é uma função contínua, não nula em [a,b]. Para diferentes, mas apropriadas, funções
c(x) teremos diferentes funções de iteração g(x) e diferentes métodos iterativos.

- 90 -
Capítulo 2 Resolução de equações não-lineares

As perguntas óbvias neste momento são:

• Como encontrar uma função g(x) adequada ?


• Como saber se o método é convergente ?
• Com que rapidez converge ?

Vamos começar por responder a estas questões através da análise dos exemplos que se seguem.

Exemplo 2.10: Dada a equação: f ( x) = x 3 − 7 x − 6 = 0 , verifique que as funções g(x) abaixo


listadas podem ser utilizadas como funções de iteração do método do ponto fixo:

x3 − 6 7x+6 2 x3 + 6
(a) g1 ( x) = ; (b) g 2 ( x) = ; (c) g 3 ( x ) =
7 x2 3 x2 − 7

A forma de obter as duas primeiras é imediata: no primeiro caso, h( x) = −1 / 7 ; no segundo,


h( x) = 1 / x 2 . Em relação a (c), embora seja fácil comprovar ser correcta ( x = g ( x)  f ( x) = 0
), a forma como foi obtida será melhor compreendida posteriormente.

Exemplo 2.11: A equação utilizada no exemplo anterior pode escrever-se na forma


equivalente x 3 − 7 x − 6 = ( x + 1) ( x + 2) ( x − 3) , pelo que terá três raízes reais 1 = −2 ,  2 = −1
e  3 = 3 . Efetuar o processo iterativo, utilizando o método do ponto fixo e as três funções de
iteração ( g1 , g 2 e g 3 ), para determinar valores aproximados das duas raízes negativas
1 = −2 e  2 = −1 .

O processo iterativo foi iniciado com x0 = −2.2 (para a raiz 1 = −2 ) e x0 = −1.1 (no caso
da raiz  2 = −1 ).

Os Quadros 2.1 e 2.2 apresentam os resultados daquele processo. As condições de paragem


utilizadas foram:

i)  xi+1 - xi  10-5 (convergência)


ii)  xi+1 > 105 (divergência)
iii) Número máximo de iterações = 20

- 91 -
Capítulo 2 Resolução de equações não-lineares

Exemplo 2.11 (continuação):

g(x)
x3 − 6 7x+ 6 2 x3 + 6
g1 ( x) = g 2 ( x) = g 3 ( x) =
k 7 x2 3 x2 − 7

0 -2.20000 -2.20000 -2.20000


1 -2.37829 -1.94215 -2.03404
2 -2.77888 -2.01356 -2.00130
3 -3.92271 -1.99656 -2.00000
4 -9.48022 -2.00086 -2.00000
5 -12.25766 -1.99979
6 -2.6 E+5 -2.00005
7 -1.99999
8 -2.00000
9 -2.00000

Quadro 2.1 - Resultados do processo iterativo para a raiz 1 = −2 .

g(x)
x3 − 6 7x+ 6 2 x3 + 6
k g1 ( x) = g 2 ( x) = g 3 ( x) =
7 x2 3 x2 − 7
0 -1.10000 -1.10000 -1.10000
1 -1.04729 -1.40496 -0.99050
2 -1.02124 -1.94270 -0.99993
3 -1.00930 -2.01344 -1.00000
4 -1.00402 -1.99659
5 -1.00173 -2.00085
6 -1.00074 -1.99979
7 -1.00032 -2.00005
8 -1.00014 -1.99999
9 -1.00006 -2.00000
10 -1.00003 -2.00000
11 -1.00001
12 -1.00000

Quadro 2.2 - Resultados do processo iterativo para a raiz  2 = −1 .

Os resultados permitem concluir que as três funções de iteração não são igualmente bem
sucedidas, originando processos iterativos com distintos comportamentos. Ao usar g 3 ( x)
os processos são convergentes tanto para 1 como para  2 . A função g1 ( x) dá origem a
um processo divergente para 1 , embora permita calcular  2 . Pelo contrário, a função
g 2 ( x) dá origem a um processo convergente para a raiz 1 , e não permite calcular  2 .
Iniciando o cálculo com x0 = −2.2 (próximo da raiz 1 = −2 ) o processo iterativo converge
para  2 = −1 (i.e., diverge de 1 = −2 ).

- 92 -
Capítulo 2 Resolução de equações não-lineares

Uma vez que há grande liberdade na escolha da função de iteração, é importante conhecer algum
tipo de critério que permita avaliar se uma dada função g(x) gerará ou não uma sucessão
convergente para a solução pretendida. A explicação dos resultados anteriores é dada pelo
seguinte teorema:

Teorema da contração ou do ponto fixo: se existir um intervalo fechado I, I = [a, b]


e uma função g tal que:

i) x  I  a  g ( x)  b
ii) g é diferenciável e | g ( x) |  L  1 para todo x  I

então existe um único ponto fixo α em I, e a sucessão gerada por xk = g ( xk −1 )


converge para α qualquer que seja a escolha do valor inicial x0 em I.

Demonstração: A existência de pelo menos um ponto fixo já foi provada. Para mostrar a
sua unicidade, suponha-se que existiam em I dois pontos fixos, 1 e  2 , distintos. Por
definição, ter-se-ia: g (1 ) = 1 e g ( 2 ) =  2 . Logo, g (1 ) − g ( 2 ) = 1 −  2 . Por

outro lado, utilizando o teorema do valor médio diferencial de Lagrange,


g (1 ) − g ( 2 ) = g ' ( ) (1 −  2 ) .
Assim,
1 −  2  max g ' ( x) 1 −  2  L 1 −  2
x[ a ,b ]

Como de acordo com a condição ii) 0  L  1 , a hipótese 1   2 conduz ao absurdo


1 −  2  1 −  2 , donde se conclui da unicidade do ponto fixo.

Para demonstrar a convergência, começa-se por notar que pode escrever-se,


xk −  = g ( xk −1 ) − g ( )  L xk −1 − 
Aplicando n vezes a desigualdade anterior, conclui-se que
xk −   Ln x0 − 
Como Ln → 0 quando n →  , pois de acordo com o teorema 0  L  1 , resulta que
xk −  → 0 , ou seja, xk →  . Fica assim demonstrado o teorema.

A figura 11 apresenta a interpretação gráfica do método para quatro casos distintos. As setas
indicam a sequência das iterações. Observa-se que nas figuras 11 (a) e (c) a sequência {xk} é
convergente, e que g'(x)<1 na vizinhança da raiz. Pelo contrário, nas figuras 11 (b) e (d) a

- 93 -
Capítulo 2 Resolução de equações não-lineares

sequência {xi} não convergiu e pelos gráficos constatámos que, na vizinhança da raiz,
g'(x)>1.

(a)

(b)
Figura 11 - Representação gráfica ilustrativa da convergência do método do ponto
fixo: caso (a) - convergência lateral; caso (b) - divergência lateral

- 94 -
Capítulo 2 Resolução de equações não-lineares

(c)

(d)
Figura 11 (cont.) - Representação gráfica ilustrativa da convergência do método do
ponto fixo: caso (c) - convergência oscilatória; caso (d) - divergência oscilatória.

Da figura anterior verifica-se ainda que, quando a derivada da função de iteração é positiva a
convergência ou divergência é lateral (monótona), no caso de g'(x) ser negativa a convergência
ou divergência é oscilatória.

- 95 -
Capítulo 2 Resolução de equações não-lineares

Exemplo 2.12: Interpretar os resultados obtidos no exemplo 2.11 com as funções


x3 − 6 7x+6
g1 ( x) = e g 2 ( x) = com base no Teorema da contração ou
7 x2
do ponto fixo.

As figuras 12 e 13 permitem uma interpretação imediata dos resultados obtidos no


exemplo 2.11, à luz do teorema do ponto fixo.

x3 − 6
Figura 12 - Análise da função de iteração g1 ( x) = .
7

7x+6
Figura 13 - Análise da função de iteração g 2 ( x) = .
x2

- 96 -
Capítulo 2 Resolução de equações não-lineares

Para responder à terceira questão formulada na página 91:

• Com que rapidez converge ?

pode demonstrar-se que a convergência do método é linear.

Demonstração: Supondo g continua e diferenciável numa vizinhança da raiz x=α, o seu


desenvolvimento de Taylor de ordem 1, em torno de x k −1 , escreve-se:

g ( x ) = g ( x k −1 ) + ( x − x k −1 ) g ' (  )

onde ξ se situa no intervalo fechado limitado por x e x k −1 .

Fazendo x=α, e utilizando (6) e (7)


 − x k = g ' ( ) ( − x k −1 ) para   ( x k −1 ,  )

ou tomando módulos
 − xk = g ' ( )  − xk −1 para   ( xk −1 ,  )
e passando ao limite

 xk
lim = g '( )
k →  xk −1

Consequentemente, se g ' ( )  0 , o método converge linearmente (p=1) com constante de


erro assimptótico C = g '( ) .

O resultado anterior mostra também que a convergência do método do ponto fixo será tanto mais
rápida quanto menor o valor de | g ' ( ) | .

A figura 14 resume, de forma esquemática, os resultados anteriores.

Convergência Divergência

0 1 2 g ' ()
velocidade de convergência
decrescente

Figura 14 - Ilustração gráfica da convergência do método do ponto fixo.

- 97 -
Capítulo 2 Resolução de equações não-lineares

Estimativa do erro do método do ponto fixo

Para efeitos práticos, interessa não apenas saber as condições para as quais um método converge,
mas também estimar o erro das aproximações obtidas. Na demonstração do teorema do ponto
fixo, obteve-se a expressão:

xk −   Ln x0 − 

que permite estimar o erro na iteração k, à priori, isto é, sem ter de calcular xk .

Exemplo 2.13: Nas condições do exemplo 2.11, quantas iterações serão necessárias
para calcular a raiz   a , b  − 1.1, − 0.9 utilizando a função de
x3 − 6
iteração g1 ( x) = ?
7
Como | xk − xk −1 |  10−5 vem

 xk  L k x0 −   10−5 .

3 2
Por outro lado, g ' ( x) = x , plo que: L = max g ' ( x) = g ' (−1.1)  0.519 .
7 a  x b

Assim,
 10 −5 
ln  
 b − a  − 9.903
k    15.08  k = 16
ln L − 0.657

Estimativa do erro à posteriori

Como vimos no exemplo anterior a estimativa do erro à priori está bastante dependente de
uma boa estimativa para o erro na primeira iteração (erro em x0 ). Em alternativa, pode

utilizar-se uma fórmula de majoração do erro à posteriori, isto é, que pressupõe o cálculo de
duas iterações consecutivas do método do ponto fixo, xk e xk −1 ,

L
 − xk  xk − xk −1
1− L

- 98 -
Capítulo 2 Resolução de equações não-lineares

Demonstração: Como vimos anteriormente  − xk  L  − xk −1 pelo que,

 − xk  L  − xk −1 = L xk −  + xk − xk −1  L ( xk −  + xk − xk −1 )
donde resulta,
(1 − L ) xk −   L xk −1 − xk

Observando que 1 − L  0 (pelo teorema do ponto fixo) a equação anterior pode ser dividida
por aquele valor, obtendo-se a estimativa,
L
 − xk  xk − xk −1 c.q.d.
1− L

Exemplo 2.14: Nas condições do exemplo 2.11, qual o erro máximo obtido ao
interromper o processo iterativo para o calculo da raiz
  a , b  − 1.1, − 0.9, utilizando a função de iteração
x −6
3
g1 ( x) = , após 12 iterações ?
7
No exemplo 2.11 temos,
k = 11 x11  − 1.00001075

k = 12 x12  − 1.0000046

pelo que o erro após 12 iterações:

0.519
 x12  x12 − x11  0.66  10 −5
1 − 0.519

- 99 -
Capítulo 2 Resolução de equações não-lineares

3.2.2 Método de Newton-Raphson

O método de Newton-Raphson é um dos métodos mais utilizados, já que combina a rapidez de


convergência (2ª ordem ou quadrática) com a simplicidade do processo iterativo. Como veremos
nesta secção pode ser encarado como um caso particular do método do ponto fixo. No entanto,
vamos começar por introduzi-lo através da sua interpretação geométrica (Fig.14). Seja x0 uma
aproximação inicial para um zero  de f(x). Considere-se a reta tangente a f(x) no ponto de
abcissa x0. Na vizinhança de x0 esta reta deverá “aproximar razoavelmente” o gráfico de f
(aproximação local de uma função não linear por uma função linear), pelo que o ponto de
intersecção desta tangente com o eixo das abcissas deverá estar próximo da raiz  . A abcissa
deste ponto será, então, tomada como uma nova aproximação, x1, para  .

Mais concretamente, a equação da tangente à curva y=f(x) que passa pelo ponto de abcissa x0 é

y = f ( x0 ) + f ' ( x0 ) ( x − x0 )

Fazendo y=0 na equação anterior, a nova aproximação para a raiz, x1, será dada por

f ( x0)
x1 = x 0 −
f '( x0)

Uma forma alternativa de obter a equação anterior é verificar (figura 14) que
tg  = f ( x 0 ) / ( x 0 − x1 ) .

y y= f (x)

f(x0)


C A
 x2 x1 x0 x

Figura 14 - Ilustração gráfica do método de Newton-Raphson.

- 100 -
Capítulo 2 Resolução de equações não-lineares

Naturalmente, o processo anterior pode ser repetido, obtendo-se uma sequência de pontos
(iteradas) definidos por

f ( x k −1 )
x k = x k −1 − , k = 1, 2 ,... (9)
f ' ( x k −1 )

que corresponde à fórmula iterativa do método de Newton-Raphson.

Comparando (9) com (7) pode concluir-se que o método de Newton-Raphson constitui um caso
particular do método de ponto fixo, com uma função de iteração g(x) definida por

f ( x)
g ( x) = x −
f ( x )

A função g 3 ( x) utilizada no exemplo 2.10, que foi a função de iteração que conduziu aos

melhores resultados obtidos, pode ser obtida a partir da expressão anterior. Porque terá tido
aquela função de iteração um tão bom comportamento?

A função de iteração g (x) do método de Newton tem duas propriedades importantes:


• se α é uma raiz de f ( x) = 0 e f ' ( )  0 , ou seja, se α é uma raiz simples, então:

g ( ) =  e g ' ( ) = 0 (10)

f ( x) f ''( x)
De facto, como: g ' ( x ) = esta anula-se para x =  , pois no numerador f ( ) = 0 .
[ f ' ( x )] 2
Se efetuarmos a hipótese que f e as duas primeiras derivadas são contínuas então, g' será também
contínua. Como g ' ( ) = 0 , por continuidade de g', existirá sempre um intervalo I contendo α
tal que

| g ' ( x ) |  1 para x  I.

Pode então enunciar-se o seguinte teorema,

Teorema de convergência local: se f(x) for uma função contínua, com primeira e
segunda derivadas também contínuas, então a aplicação do método de Newton-Raphson
para encontrar uma raiz simples, α, é garantida no caso de se partir de uma aproximação
inicial, x0, suficientemente próxima da raiz.

- 101 -
Capítulo 2 Resolução de equações não-lineares

Embora a expressão 'suficientemente próxima' necessite, na prática, de uma maior explicitação,


como se verá posteriormente, o teorema anterior garante sempre a convergência do método (o
que não acontecia com o método do ponto fixo) para aproximações iniciais num intervalo em
torno da raiz (embora não se saiba a priori qual a amplitude de tal intervalo). Além disso, o
método tem convergência quadrática (p=2) pois, como se passará a demonstrar,

 xk f ' ' ( )
lim = (11)
k →  x k −1
2 2 f ' ( )

o que explica a rápida convergência do método de Newton-Raphson no Exemplo 2.11.

▪ Convergência local quadrática do método N-R

De uma forma análoga ao efetuado para o método do ponto fixo, supondo novamente g continua
e diferenciável numa vizinhança da raiz x=α, o seu desenvolvimento de Taylor de ordem 2, em
torno de α , escreve-se
( x − )2
g ( x ) = g ( ) + ( x −  ) g ' ( ) + g ' ' ( )
2
Para x = x k −1 , tem-se

( x k −1 −  ) 2
g ( x k −1 ) = g ( ) + ( x k −1 −  ) g ' ( ) + g ' ' ( )
2

ou, utilizando (7) e (10)


1
xk =  + ( x k −1 −  ) 2 g  (  )
2

ou ainda, tomando módulos


1 2
 xk = g ' ' (  )  x k −1
2

Calculando o limite quando k →  obtém-se


 xk 1
lim = g ' ' ( )
k →  x k −1
2 2

f ' ' ( )
que é equivalente a (11), já que g ' ' ( ) = (verifique). Pode assim concluir-se que, para
f ' ( )
o caso de raízes simples ( f ' ( )  0 ), o método de Newton-Raphson tem ordem de
convergência p=2, ou seja tem convergência quadrática.

- 102 -
Capítulo 2 Resolução de equações não-lineares

Como já referido, a expressão 'suficientemente próxima' não tem um significado preciso e, de


facto, o método de Newton algumas vezes diverge e, outras vezes, converge para um zero
diferente do pretendido. As figuras 15 e 16 apresentam diferentes casos de divergência. No
primeiro caso (figura 15(a)), ocorre que no decurso do processo iterativo a tangente a f(x) é
paralela, no ponto de abcissa x1, ao eixo das abcissas ( f ' = 0 ) ; o que, de acordo com a fórmula
de iteração (9), aborta o processo iterativo. No caso da Fig. 15(b) o processo iterativo entra num
ciclo infinito (este caso, ilustra bem a importância de existir sempre uma condição de paragem
que imponha um número máximo de iterações). A figura 16 mostra o caso de uma função com
forma de S junto à raiz (existência de ponto de inflexão). Na situação da figura 16(a) a tangente
T1 produz um valor que se afasta muito da raiz (divergência por “overshoot”); na figura 16(b),
embora a curva seja a mesma, o valor inicial está mais próximo da raiz, entrando dentro do
intervalo a que se refere o teorema local, e a sucessão de aproximações converge para a raiz.

y y= f (x)

y= f (x)
x0 
x1 x x1  x0 x

Figura 15 – Situações de não convergência do método de Newton-Raphson.


(a) Anulação da derivada no decurso do processo iterativo;
(b) Ciclo infinito provocado por um ponto de inflexão próximo da raiz.

y y

y= f (x)

y= f (x)
x0 x0
 x1 x x2  x1 x
T1

Figura 16 – Convergência/divergência do método de Newton-Raphson para curva em S.


(a) Divergência por “overshoot”; (b) Convergência.

- 103 -
Capítulo 2 Resolução de equações não-lineares

A conclusão a extrair é a de que nunca podemos estar seguros, por exemplo, no caso de uma
curva em S, que a nossa aproximação inicial x0 se encontre dentro do intervalo para o qual o
teorema local garante a convergência do método. O teorema local apenas nos diz que se x0 estiver
suficientemente próximo da raiz para evitar a contra-curvatura do S, o método será convergente.

Ressalta assim o facto de ser desejável o estabelecimento de condições que garantam a


convergência do método de Newton-Raphson para qualquer escolha de x0 num intervalo pré-
especificado I = [a, b] . Um tal conjunto de condições é o que resulta do seguinte teorema:

Teorema de convergência global (condições suficientes de convergência): Se f


for uma função contínua em I = [a, b] e:

(1) f (a) f (b)  0


(2) f ' ( x)  0 , x  I
(3) f ' ' ( x)  0 ou f ' ' ( x)  0 , x  I

f (a) f (b)
(4)  (b − a) e  (b − a)
f ' (a) f ' (b)

então x0  I = [a, b] a sequência xk k =1, 2,... gerada pelo método de Newton-

Raphson converge para α, único zero de f em I = [a, b] .

As duas primeiras condições, como foi anteriormente referido (teorema de Rolle) garantem que
a equação considerada tem um único zero em I. Além disso, a segunda condição é, como se viu,
essencial para a aplicação do método de Newton (recordar a situação ilustrada na figura 15(a)
onde a derivada de f se anula). A terceira condição impõe que não haja pontos de inflexão no
intervalo considerado (evitar curva em S). Finalmente, a quarta condição impõe que tomando
x0=a ou x0=b, a iterada x1 fique no interior do intervalo [a,b] (para evitar a divergência por
“overshoot” ilustrada na figura 16(a). Por outras palavras, esta última condição garante que o
processo iterativo se realiza sempre no interior de [a,b].

Verificadas as condições de convergência, embora esta fique garantida, independentemente da


escolha do valor inicial x0[a,b], verifica-se que o modo como se processa é diferente quando

- 104 -
Capítulo 2 Resolução de equações não-lineares

se inicia o cálculo de um lado ou do outro da raiz (x0=a ou x0=b). Há um extremo do intervalo,


dito extremo favorável, que conduz a uma sucessão de aproximações monótona (convergência
lateral para a raiz), enquanto que o outro extremo conduzirá a uma convergência não monótona.
Geometricamente o extremo favorável corresponde ao extremo que fica no lado convexo da
curva (ver figura 17), ou seja, que analiticamente satisfaz:

f ( x0) f ''( x0)  0

y y
y= f (x) y= f (x)

x0 

x2 x1 x x2 x1 x0 x

y
y
y= f (x) y= f (x)

x0 x 1 x2
x1 x2
 x  x0 x

Figura 17 – Extremo favorável. Convergência a partir do extremo x0=a e x0=b.

NOTA: (Método de Newton modificado) Como anteriormente se demonstrou (cf. pág. 102 ) o
método de Newton-Raphson, para o caso de raízes simples, tem convergência quadrática. Para
que essa velocidade de convergência se mantenha, para uma função f(x), (m + 1) vezes
diferenciável em [a, b], que contenha nesse intervalo uma raiz de multiplicidade m> 1, a
fórmula iterativa do método de Newton-Raphson deverá ser modificada para:

m f ( xk )
xk +1 = xk − , k = 0,1,2,...
f ( xk )

- 105 -
Capítulo 2 Resolução de equações não-lineares

Exemplo 2.15: Verificar, considerando a função utilizada no exemplo 2.11


x 3 − 7 x − 6 = ( x + 1) ( x + 2) ( x − 3) , se é possível garantir a convergência do método de
Newton-Raphson para a raiz  = −1 para qualquer valor x 0  [ − 1.5 , − 0.5 ] .

Verificação das condições globais de convergência


i) f ( −1.5)  f ( −0.5) = 1.125  ( −2.625)  0

ii) f ' ( x ) = 3 x 2 + 7  0 ,  x  − 1.5 , − 0.5  , pois:

7
f ' ( x) = 0  x =    1.528
3
iii) f ' ' ( x ) = 6 x  0 ,  x  − 1.5 , − 0.5 

f ( −1.5 ) 1.125
iv) = = 4.5  1  não verifica !
f ' ( −1.5 ) − 0.25

f ( −0 .5 ) − 2.625
= = 0.42  1
f ' ( −0 . 5 ) − 6.25

Conclusão: não é possível garantir a convergência do método de Newton-Raphson para a


raiz  = −1 para qualquer valor x 0  [ − 1.5 , − 0.5 ] . Iniciando o processo iterativo com

x 0 = − 1.5 pode-se verificar o fenómeno de divergência por “overshoot”.

Exemplo 2.16: Verificar, se no caso do exemplo anterior, iniciando o cálculo pelo extremo
favorável é possível garantir a convergência do método de Newton-Raphson para a raiz
 = −1 .

Extremo favorável: f ( −0.5)  f ' ' ( −0.5) = − 2.625  ( −3 )  0 , logo x0 = b = −0.5 é


extremo favorável. A única condição de convergência que não foi verificada no exemplo 2.15
era a referente à convergência a partir de x=a. Como sabemos, teoricamente, que a
convergência a partir do extremo favorável é monótona para a raiz, apenas irá ocorrer, no
caso presente, no ramo da curva à esquerda da raiz. Logo é possível garantir a convergência
do método de Newton-Raphson para a raiz  = −1 a partir de x 0 = b = −0.5 .

- 106 -
Capítulo 2 Resolução de equações não-lineares

Estimativa do erro do método de Newton-Raphson

Pretende-se deduzir uma expressão que permita majorar o erro em cada iteração do processo
iterativo, admitindo que é conhecido um majorante do erro na iteração anterior.

O desenvolvimento de f em série de Taylor, em torno de xk-1, permite escrever


( x − x k −1 ) 2
f ( x ) = f ( x k −1 ) + ( x − x k −1 ) f ' ( x k −1 ) + f ' ' ( k )
2
onde  k  int ( xk −1 , x) . Escrevendo o desenvolvimento anterior em x =  , como f ( ) = 0 ,
obtém-se
( − x k −1 ) 2
f ( ) = f ( x k −1 ) + ( − x k −1 ) f ' ( x k −1 ) + f ' ' ( k ) = 0
2
onde  k  int ( xk −1 ,  ) . Uma vez que f ' ( xk −1 )  0 , podemos dividir a equação anterior por
f ' ( xk −1 ) , i.e.,
f ( xk −1 ) f ' ' ( k )
+ ( − xk −1 ) + ( − xk −1 )2 = 0
f ' ( xk −1 ) 2 f ' ( xk −1 )

ou ainda,
f ( xk −1 ) f ' ' ( k )
 = xk −1 − − ( − xk −1 )2
f ' ( xk −1 ) 2 f ' ( xk −1 )

Recordando a fórmula de iteração do método de Newton-Raphson, resulta

f ' ' ( k )
 − xk = − ( − xk −1 )2
2 f ' ( xk −1 )

que mostra a relação entre o erro da iteração k (  xk ) e o erro na iteração anterior, k-1

(  xk −1 ). No segundo membro da equação anterior aparece o valor f ' ' ( k ) , o qual não se

pode calcular, já que sabemos apenas que  k é um ponto situado no intervalo entre xk −1 e 

. No entanto, se calcularmos o máximo valor da 2ª derivada naquele intervalo, ou seja,


M 2 = max f ' ' ( x) , poderemos escrever
x[ a ,b ]

M2
 − xk   − xk −1
2

2 f ' ( xk −1 )

Esta desigualdade pode ainda ser reforçada se calcularmos o valor m1 = min f ' ( x) , pelo
x[ a ,b ]

que:

- 107 -
Capítulo 2 Resolução de equações não-lineares

M2
 − xk   − xk −1
2

2 m1

ou ainda, mais simplificadamente


2 M2
 xk  M  xk −1 com M = (12)
2 m1

a qual tem a vantagem de não depender do valor particular de k.

Exemplo 2.16: Estimar os erros associados às iteradas obtidas em cada iteração do processo
iterativo efetuado no exemplo 2.11, através do método de Newton-Raphson para a raiz
 = −1 (supondo   [ − 1.1, − 0.9 ] ), que são resumidas no quadro seguinte:

2 x3 + 6
k g 3 ( x) =
3 x2 − 7
0 -1.10000
1 -0.99050
2 -0.99993
3 -1.00000

Como f ' ( x ) = 3 x 2 + 7  0 e f ' ' ( x ) = 6 x obtém-se:

m1 = min f '( x) = min 3 x 2 − 7 = 3.37


x[ a ,b ] x[ −1.1, −0.9 ]

M 2 = max f ''( x) = max 6 x = 6.6


x[ a ,b ] x[ −1.1, −0.9 ]

pelo que, aplicando (12), obtém-se:


6.6
 0.392  10 −1
2
k = 1:  x1  − 0.9 − ( −1.1)
2  3.37
6.6 2
k = 2:  x2  0.392  10 −1  0.150  10 −2
2  3.37
6. 6 2
k = 3:  x3  0.150  10 −2  0.221  10 −5
2  3.37

Como se verifica, através dos resultados apresentados no quadro, a expressão (12) fornece
estimativas conservadoras do erro.

- 108 -
Capítulo 2 Resolução de equações não-lineares

Aplicando sucessivamente (12); em particular para k=1, 2, …, vem


2
 x1  M ( − x 0 )
4
 x2  M 3 ( − x 0 )
8
 x3  M 7 ( − x 0 )
...
1 2k
 xk  M ( − x 0 )
M

Exemplo 2.17: Nas condições do exemplo 2.16, quantas iterações serão necessárias para
obter, através do método de Newton-Raphson, a raiz  = −1 com erro não superior a

0.5  10 −6 ?

Aplicando a expressão anterior, pode obter-se:


2k
2  3.37 6.6
 xk   0.2  0.5  10 −6  2 k  8.9  k  3.16
6.6 2  3.37

ou seja, será necessário efetuar 4 iterações.

3.3 Métodos iterativos de ponto múltiplo

Considera-se agora um exemplo de uma função de iteração de ponto múltiplo (método da


secante) funções que, em geral, reutilizam valores de funções já calculados em estágios
anteriores do processo iterativo (conhecidos também como métodos iterativos com memória).
O objetivo em reutilizar informação anterior é obter um método mais eficiente no sentido que é
usualmente mais fácil e rápido aceder a um valor armazenado em memória da função f(x) do que
calcular, por exemplo, um valor de f ' (x).

3.3.1 Método da secante

Este é dos métodos conhecidos para a solução de f(x)=0 um dos mais antigos, mas havia sido
preterido até que recentemente, com a utilização dos computadores, adquiriu novamente grande
importância.

- 109 -
Capítulo 2 Resolução de equações não-lineares

Como vimos a grande desvantagem do método de Newton-Raphson reside na necessidade do


cálculo de f ' (x). Em alguns casos f ' (x) pode não ser dada explicitamente ou requerer
considerável esforço de cálculo.

Uma estimativa de f ' ( xk ) pode ser obtida pela expressão

f ( x k ) − f ( x k −1 )
f ' ( xk ) 
x k − x k −1

que corresponde, em termos gráficos, a aproximar localmente a curva y=f(x) por uma sua secante
(ver Fig. 18).
f ( xk )
Substituindo a expressão anterior na fórmula iterativa x k +1 = x k − do método de
f ' ( xk )
Newton-Raphson, obtém-se
 x k − x k −1 
x k +1 = x k − f ( x k )   , k = 1, 2 ,...
 f ( x k ) − f ( x k −1 ) 

que é a fórmula iterativa do método da secante. que requer apenas uma avaliação da função em
cada passo do processo iterativo. Por outro lado, necessitamos de partir sempre de duas
aproximações iniciais x0 e x1.

Do ponto de vista geométrico (Fig.18) a função é aproximada no intervalo de cálculo por uma
reta, cuja interceção com o eixo Ox gera a nova aproximação. Assim, o ponto x2 é definido pela
reta que une (x0,y0) e (x1,y1) ; o ponto x3 pela reta que une (x1,y1) e (x2,y2), etc.

y y= f (x)

 x3 x2 x1 x0 x

Figura 18 - Ilustração gráfica do método da secante.

- 110 -
Capítulo 2 Resolução de equações não-lineares

O método das secantes utiliza claramente uma função de iteração da forma (fórmula de iteração
de dois pontos)
xk +1 = g ( xk , xk −1 ) , k = 1, 2, ...

Este método necessita de duas aproximações iniciais: x0 e x1, embora efetue apenas uma
avaliação da função em cada passo do processo iterativo (o método de Newton-Raphson requer
avaliação da função e da derivada).
A ordem de convergência do método é de

1
p= (1 + 5 )  1.618
2
O preço a pagar pela aproximação numérica da derivada é que a convergência deixa de ser
quadrática passando apenas a ser supra-linear. Tal facto permite concluir que para obter um
valor da raiz com idêntica exatidão o método das secantes requer, em geral, um maior número
de iterações que o método de Newton.

3.4 Métodos que ‘enquadram’ a raiz

Diz-se que uma raiz está ‘enquadrada’ no intervalo [a,b] se f(a) e f(b) tiverem sinais contrários
(f(a).f(b)<0). No caso da função ser continua, o conhecido teorema de Bolzano, afirma que
então existe pelo menos um valor   (a, b) tal que f ( ) = 0 .

Em geral, um método deste grupo é um processo iterativo que dado um intervalo I=[a,b]
contendo uma raiz simples, α, de f(x)=0, tem convergência assegurada. A ideia é simples. Se o
intervalo inicial for dividido em duas partes (iguais ou diferentes), a raiz tem de ficar contida
num destes sub-intervalos ou então coincidir com o ponto comum. Neste último caso teríamos
obtido a raiz; caso contrário a raiz estará no sub-intervalo cujos pontos extremos verifiquem a
condição f(a).f(b)<0. De novo se subdivide o intervalo onde a raiz agora se situa e repete-se o
procedimento anterior até obter um valor aproximado para a raiz com a exatidão pretendida.

No decurso do processo iterativo, pelo menos uma das sequências de pontos extremos dos
intervalos converge para a raiz. Existem métodos em que no decurso do processo iterativo ambos
pontos extremos do intervalo convergem para a raiz, ou seja, a amplitude do intervalo tende para
zero. Um exemplo deste tipo é o método da bissecção. Em outros casos tal pode não suceder,
como veremos com o método da falsa posição.

- 111 -
Capítulo 2 Resolução de equações não-lineares

3.4.1 Método da Bissecção

Este é um dos métodos mais simples para calcular raízes reais de uma equação não linear.
Suponha-se f ( x) contínua em I = [a, b] com f (a). f (b)  0 e que se pretende calcular um valor
aproximado da raiz. O objetivo do método é construir uma sequência encaixada de sub-
intervalos I k = [ak , bk ]  I = [a, b] por divisões sucessivas do intervalo ao meio, assegurando
sempre que f ( a k ) f ( bk )  0 . Desta forma a raiz vai sendo sucessivamente confinada a um
intervalo com uma amplitude cada vez mais pequena.
Concretizando, em cada iteração k, determina-se o ponto médio do intervalo:

a k −1 + bk −1
xk = , k =1, 2 , ... (13)
2

e o valor da função nesse ponto f ( xk ) . Se f ( xk ) = 0 então  = xk e o processo iterativo termina.


Caso contrário, o ponto médio xk irá substituir um dos valores extremos do intervalo
( ak ou bk ) de acordo com:

  0 a k = x k e bk = bk −1
Se : f ( x k ) f ( a k −1 )  (14)
  0 a k = a k −1 e bk = x k
O processo de divisão do intervalo ao meio e a escolha do sub-intervalo para a iteração
seguinte, repetem-se até o critério de paragem ser verificado. Este processo iterativo encontra-
se esquematicamente ilustrado na Figura 19.

y y= f (x)

x=a
 x=b x
a3 b3
a2 b2
x3
a1 b1
x2
a0 b0
x1

Figura 19 – Ilustração do método da bissecção.

- 112 -
Capítulo 2 Resolução de equações não-lineares

O método é sempre convergente desde que f (a). f (b)  0 , mas a convergência pode ser muito
lenta. De qualquer forma, o método da bissecção é um método de convergência global. Após k
iterações a raiz estará contida no intervalo I k = [ak , bk ] de amplitude

bk −1 − ak −1 bk − 2 − ak − 2 b −a b−a
bk − ak = = 2
= ... = 0 k 0 = k
2 2 2 2

que depende apenas da amplitude do intervalo inicial (b − a ) e não da forma da função f(x).

Então, o erro cometido após k bissecções (iterações) é majorado por

b−a
|  x k | = | − x k |  (15)
2k
Desta forma, definida a exatidão pretendida no cálculo da raiz (majorante do erro  ) é possível
especificar a priori o número de iterações k necessárias para atingir esse objetivo. Mais
b−a
precisamente, supondo que se pretende garantir que |  − xk |   basta impor   donde
2k
se obtém:
b−a
ln 
 
k 
ln 2

Tomando para k o primeiro inteiro que verifica a condição anterior, tem-se a garantia de que xk

satisfaz a exatidão desejada.


Da expressão (15) deduz-se imediatamente que

|  xk | 1
0 
|  x k −1 | 2

o que mostra, se recordarmos (2.17) ou (2.18), que o método da bissecção converge linearmente,
com razão de convergência igual ou menor a 0.5. De facto, o método converge lentamente, o que
constitui uma das suas principais desvantagens, como realça o seguinte exemplo.

- 113 -
Capítulo 2 Resolução de equações não-lineares

Exemplo 2.17: Considere a seguinte equação f ( x ) = x 2 − x − 2 = 0 . Suponhamos que se

pretende determinar    1.5 , 2.4  através do método da bissecção com 4 casas decimais
correctas. Efectue o processo iterativo e compare os resultados com os obtidos através do
método do ponto fixo e do método de Newton-Raphson.

Ponto fixo Newton-Raphson


Bissecção x2 + 2
g ( x) = x+2 g ( x) =
k 2x− 1

0 1.5 1.5
1 1.9500 1.8708 2.1250
2 2.1750 1.9674 2.0048
3 2.0625 1.9918 2.0000 g ( x)
4 2.0063 1.9980
5 1.9781 1.9995
6 1.9922 1.9999
g ( x)
7 1.9992 2.0000
8 2.0027
9 2.0010
10 2.0001
11 1.9997
12 1.9999
13 2.0000

Quadro 3 - Resultados do processo iterativo (método da bissecção).

3.4.2 Método da Falsa posição

A diferença entre o método da falsa posição (corda falsa) e o método da bissecção está na forma
como se determina o valor da abcissa c, ou seja, a amplitude do novo intervalo. Assim, no método
da falsa posição, dada uma função f(x) contínua num intervalo [a,b] tal que f(a) f(b)<0, aproxima-
se a curva de f pela corda definida pelos pontos (a, f(a)) , (b, f(b)), como se mostra na Fig. 20. A
abcissa c é determinada pela interceção da referida corda com o eixo Ox. Por simples

- 114 -
Capítulo 2 Resolução de equações não-lineares

trigonometria:

a−b
c = b − f (b )
f ( a ) − f (b )

Figura 20 - Método da falsa posição.

Verifica-se que a fórmula iterativa é similar à do método da secante, mas no caso presente
após a determinação de c, e de forma inteiramente análoga ao método da bissecção, obriga-se a
que os dois pontos utilizados para definir a nova aproximação enquadrem a raiz, ou seja, a
verificar (14). Esta é diferença entre o método da falsa posição e o método da secante (Fig. 21).

Figura 21 - (a) Método da falsa posição; (b) Método das secantes

- 115 -
Capítulo 2 Resolução de equações não-lineares

Para uma função f(x) côncava ou convexa no intervalo [a,b], um dos extremos do intervalo
permanece fixo no decurso do processo iterativo, como se observa na Fig. 22 para o caso de
uma função convexa. Nestes casos, uma condição de convergência do tipo:

x k − x k −1  

converte-se em (exemplo da Fig. 22),

b - c< ε1

deixando de ser operativa (a amplitude é sempre superior a b-α). O critério de convergência


deverá ser para estes casos do tipo:

f(c)< ε2

Os valores ε1>0 e ε2>0 são tolerâncias pré-definidas, que poderão ser distintas ou não.

Figura 22 - Método da falsa posição para funções convexas.

Pode também demonstrar-se que no caso anterior (funções côncavas ou convexas no intervalo
[a,b]) a ordem de convergência do método da falsa posição é p=1, ou seja a convergência é
linear. Este é o "preço" resultante da garantia de convergência do método em relação ao método
da secante: menor rapidez de convergência.

- 116 -
Capítulo 2 Resolução de equações não-lineares

Exemplo 2.18: Pretende-se determinar um valor aproximado, com 6 algarismos


significativos corretos, da raiz positiva da equação (Fig. 23):
x
sen x − =0
2
Determinar o número de iterações necessárias utilizando os métodos de Newton, secantes e
falsa posição.

x
Figura 23 - Gráfico da equação sen x − =0.
2

M. de Newton-Raphson M. das secantes M. da falsa posição


____________________________________________________________________________________________________________

x0= π/2 x0= π x0= π x0= π/2


x1=2.00000 x1=2.09440 x1= π/2 x1= π
x2=1.90100 x2=1.91322 x2=1.75960 x2= 1.75960
x3=1.89551 x3=1.89567 x3=1.93200 x3= 1.84420
x4=1.89549 x4=1.89549 x4=1.89242 x4= 1.87701
x5=1.89543 x5= 1.88895
x6=1.89549 x6= 1.89320
x7= 1.89469
x8= 1.89521
x9= 1.89540
x10=1.89546
x11=1.89548
x12=1.89549

Quadro 4 - Resultados do processo iterativo.

- 117 -
Capítulo 2 Resolução de equações não-lineares

Exercícios propostos:
1. Considerar a função polinomial: f ( x ) = 12 x + 76 x + 157 x + 35
3 2

a) Qual o número de raízes reais positivas e negativas de f(x)=0.


b) Efetuar analiticamente a separação dessas raízes reais. Justificar.

2. Considere a equação polinomial: p(x) = 0, com


5 5 4 3 2 3
p( x) = x − x − x +7 x −6x+
2 2
a) Diga o que sabe sobre o número de raízes reais (positivas e negativas) de f(x)=0.
b) Determine os sinais dos termos da sucessão de Fourier de f(x) para x=1 e, em face do resultado,
justifique o que poderá afirmar acerca do grau de multiplicidade de x=1.
c) Utilizando a regra de Ruffini baixe o grau do polinómio. Em seguida faça a separação das
restantes raízes reais positivas para a equação polinomial resultante do abaixamento de grau do
polinómio dado.

3. Considere a seguinte equação: 3 x 4 − 4 x 3 − 12 x 2 + 1 = 0


a) Aplicando o teorema de Descartes o que pode dizer acerca do número de raízes positivas e
negativas da equação?
b) Mostre, analiticamente, que qualquer raiz da equação raiz pertence a − 2, 3  .
c) Verifique, através do método de Rolle, que a equação tem 4 raízes reais.

4. Dada a seguinte função: f ( x) = 2.sin( x) + x + 2 pretende-se determinar a raiz da equação


f ( x) = 0 pelo método do ponto fixo.
a) Localize graficamente a raiz da função f ( x) = 0 num intervalo de amplitude  / 8.
b) Determine uma função de iteração adequada, verificando as condições de convergência.
c) Calcule um valor aproximado dessa raiz pelo processo iterativo do método do ponto fixo, com
um erro não superior a 1%.

5. Confirme que a equação x + ln x = 0 tem uma raiz real entre x=0.5 e x=0.6. Com o objetivo
de determinar um valor aproximado dessa raiz, através do método iterativo simples, poderemos
selecionar, entre outras, as seguintes fórmulas iterativas:
x + e − x k −1
a) xk = − ln xk −1 ; b) xk = e − x k −1 ; c) xk = k −1
2

Diga qual delas escolheria para obter o mais eficientemente possível o referido valor
aproximado. Justifique.

- 118 -
Capítulo 2 Resolução de equações não-lineares

6. Considere a função: f(x) = 1.5 x - tg(x) - 0.1


a) Separe as raízes reais da equação f(x)=0 em ]-,/2[.
b) Para o cálculo aproximado da menor raiz real positiva da equação f(x)=0, por um processo
iterativo, considere a função:
0.1 + tg ( x)
g ( x) =
1.5
Verifique se esta função pode ser utilizada como função de iteração do processo, qualquer que
seja a aproximação inicial, no intervalo que contém essa raiz.
c) Utilizando o método de Rolle, verifique se a equação x e x − 1 = 0 tem uma e uma só raiz real
positiva no intervalo [0,1].

7. Pretende-se determinar as raízes da equação: x( x 2 − 3x + 2) = 0 , utilizando como função de

3x 2 − x 3
iteração: g ( x) =
2

a) Verifique que a convergência para a raiz x=0 é garantida qualquer que seja o valor inicial
x0[-0.25,0.25].
b) Determine um intervalo para o qual esteja garantida a convergência para a raiz x=2.
c) Mostre que não existe nenhum intervalo para o qual possa ser garantida a convergência para
a raiz x=1.
2
d) Mostre que x=0 é uma raiz tripla da equação: tan ( x) − x e − x = 0 .

x
8. a) Confirme que a equação e − 4 x 2 = 0 tem uma raiz real entre x=4 e x=5 e mostre,
analiticamente, porque não é possível determinar essa raiz através do método iterativo simples
1 2x
utilizando como função de iteração g ( x) = e .
2

b) Tente obter uma outra função de iteração, g(x), para a qual tenha a garantia de convergência
do método para a raiz pretendida, e determine o seu valor com 3 a.s.c..

9. A função f (x ) = 0.1 x + x e − 1 tem duas raízes reais.


2 x

a) Sabendo que uma das raízes está localizada entre − 4.5,−1.5 , determine, através do
método de Fourier, o intervalo de amplitude unitária onde se encontra essa raiz.
b) Determine, através do método de Newton-Raphson, verificando previamente as condições
de convergência, a raiz localizada em a.) com um erro não superior a 0.5 10 −2 .

- 119 -
Capítulo 2 Resolução de equações não-lineares

4 3 2
10. Considere a seguinte equação: x − 1.3 x − 4 x + 5.4 x + 0.4 = 0
a) Mostre, analiticamente, que qualquer raiz da equação pertence a − 2 , 2  .
b) Verifique, através do método de Rolle, que a equação tem 4 raízes reais.
c) Suponha que pretende calcular a menor raiz positiva. Efetue uma iteração através do
método de Newton-Raphson, partindo de x0=0.55. Explique a razão do resultado obtido.
d) Partindo do extremo favorável de um intervalo que garanta a convergência para a raiz
referida em c) efetue duas iterações pelo método de Newton-Raphson. Quantas casas decimais
corretas poderá garantir no resultado obtido? Justifique.

11. Considere a seguinte equação: 5 cos x − x = 0


a) Localize graficamente (f1(x)=f2(x)) as suas raízes em intervalos de amplitude  2 .
b) Suponha que pretende calcular a maior raiz negativa  da equação anterior utilizando o
método de Newton-Raphson. Considere x0=-3.0 para aproximação inicial e explique o resultado
obtido após a 1ª iteração.
c) Determine um intervalo para o qual esteja garantida a convergência do método de Newton-
Raphson para calcular a raiz  considerada na alínea anterior. A partir do extremo favorável
desse intervalo determine uma aproximação com 3 a.s.c. da raiz pretendida.

12. Considere a função: f ( x ) = x + 4 ln x − 4


2

a) Separe graficamente as raízes reais da equação f(x)=0.

b) Calcule uma aproximação da menor raiz real utilizando o método de Newton-Raphson após
duas iterações. Verifique previamente as condições de convergência.

13. Considere a função: f ( x) = e − x sec x − 1


a) Utilizando o método mais adequado, faça a separação e contagem das raízes reais da equação
f(x)=0.
b) Utilizando o método de Newton-Raphson determine, verificando as condições de
convergência, o valor da menor raiz positiva da equação f(x)=0, com um erro não superior a
0.5*10-2.
2
−x 2
14. Considere a seguinte equação: e − x − 2x + 2 = 0
a) Localize graficamente (f1(x)=f2(x)) as raízes em intervalos de amplitude unitária.
b) Suponha que pretende calcular a menor raiz positiva  da equação anterior. Utilizando o
método de Newton-Raphson verifique (analiticamente) se é possível garantir a convergência
para  qualquer que seja o valor inicial x0 pertencente ao intervalo determinado em a).

- 120 -
Capítulo 2 Resolução de equações não-lineares

Partindo de um valor de x0 que garanta a convergência determine o valor de  com duas casas
decimais corretas.
e− x − x 2
2

c) Considere a função de iteração g ( x) = + 1 . Verifique analiticamente, através das


2
condições de convergência do respetivo método, que não é possível utilizar g(x) para garantir
a convergência para o intervalo considerado em a).

15. a) Utilizando o método de Newton-Raphson determine, verificando previamente as


10 | cos x |
condições de convergência, o valor da maior raiz positiva da equação: 2
= 1 com
x
um erro não superior a 0.5*10-3. Previamente localize graficamente a raiz num intervalo de
amplitude  / 4 .

b) Verifique o que ocorre no processo de convergência do método de Newton-Raphson se


selecionar x0=2.6 para aproximação inicial. Explique a razão de tal facto.

16. Suponha que pretende calcular com grande exatidão a constante , sabendo apenas que
 
I=[0,5] e que tan   = 1 . Para o efeito:
4

 x
a) Utilizando um método gráfico, localize o zero da função f ( x) = tan   − 1 em I, e prove
4
analiticamente que existe um único zero no intervalo I0 = [3.0, 3.2].

b) Use o método da bissecção para obter uma aproximação  de α, tal que | f(  ) |  0.01 .
c) Prove que o método de Newton converge para a raiz α, quando se toma para aproximação
inicial x0 =  .
d) Execute duas iterações do método de Newton para obter uma aproximação de .

17. Num dado circuito elétrico uma corrente oscilatória I(t) é descrita pela equação:
I (t ) = 10 e −t sin (2 t ) , onde t é o tempo em segundos.

a) Utilizando um método gráfico, localize em intervalos de amplitude inferior a 0.5 segundos os


valores positivos de t para os quais I=2.

b) Seja t=α o menor valor positivo de t localizado na alínea anterior. Determine, através do
método de Newton-Raphson, verificando previamente as condições de convergência, o valor de
α com um erro não superior a 0.5*10-2.

- 121 -
Capítulo 2 Resolução de equações não-lineares

18. Considere a função: f ( x) = ln (4 − x 2 ) − x


a) Utilizando o método mais adequado, faça a separação e contagem das raízes reais de f(x)=0.
b) Através do método de Newton-Raphson, verificando as condições de convergência, calcule o
valor da maior raiz real da equação f(x)=0, com um erro não superior a 0.5*10-2.

19. Considere a equação: x 2 | sin x | = 4.1


a) Utilizando o método mais adequado, faça a separação e contagem das raízes reais da equação
f(x)=0.
b) Utilizando o método de Newton-Raphson determine, verificando as condições de
convergência, o valor da menor raiz real positiva da equação f(x)=0, com um erro não superior a
0.5*10-2.

20. Considere a função definida por: f (x) = e − x cos ec ( x) − 1


a) Utilizando um método gráfico, localize as raízes da equação f(x)=0.
b) Determine, através do método de Newton-Raphson, verificando previamente as condições de
convergência, o valor da maior raiz inferior a  com um erro não superior a 0.5*10-3. Comente
e justifique as dificuldades que poderão surgir no cálculo da referida raiz.

21. Considere a equação polinomial: 0.006 x 4 − 0.014 x 3 − 0.22 x 2 + 0.32 x + 0.47 = 0 .


a) Separe através do método de Fourier, considerando intervalos de amplitude igual a duas
unidades, as raízes positivas da referida equação.
b) Determine, através do método de Newton-Raphson, verificando previamente as condições de
convergência, o valor aproximado da menor raiz localizada em a), com um erro não superior a
0.5*10-2.

22. A função f ( x) = 0.1x + x e − 1 tem duas raízes reais.


2 x

a) Sabendo que uma das raízes está localizada entre − 4.5, − 1.5 , determine, através do
método de Fourier, o intervalo de amplitude unitária onde se encontra essa raiz.
b) Determine, através do método de Newton-Raphson, verificando previamente as condições
de convergência, o valor aproximado da raiz localizada em a), com um erro não superior a
0.5*10-2.

23. Considere a seguinte equação: e − 2 x − x = 0 . Determine, em 2ª aproximação, utilizando


x 2

os métodos da falsa posição e das secantes, a menor das suas raízes reais.

24. Determine, pelo método da bissecção, a menor raiz positiva de f ( x ) = x e x − 2 , com um


erro não superior a 0.005.

- 122 -
CAPÍTULO 3
_______________________________________________________________________________________________________________

INTERPOLAÇÃO

1. Introdução. Interpolação e Aproximação.

No Capítulo 1 vimos que, quando se conhece o valor de uma função e das suas derivadas numa
determinada abcissa x0, é possível aproximar essa função por uma série de potências para pontos
numa vizinhança de x0.

Neste capítulo trataremos do problema de aproximar funções também para pontos de certo
intervalo, pelo processo da interpolação que, como a série de Taylor, tem importantes aplicações
em outros algoritmos da Análise Numérica, como os da derivação e integração numérica (Cap.5)
e integração de equações diferenciais ordinárias (Cap.7).

Na Teoria da Aproximação, partindo dos seguintes dados:

• intervalo finito [a,b] no qual se pretende aproximar uma função y=f(x) ;


• n+1 pontos distintos (xi,yi), i=0,1,...,n tais que xi[a,b],

procura-se resolver um dos seguintes problemas:

i) Conhecida a função só nesses n+1 pontos, conhecê-la aproximadamente em qualquer


outro ponto x[a,b];

ii) Conhecida a expressão analítica de f(x), cuja forma analítica é complicada ou de difícil
cálculo, aproximá-la por outra expressão mais simples com base num número finito de
n+1 pontos.

Em qualquer dos dois casos o problema, em termos matemáticos, é análogo: com base em pontos
conhecidos, construir uma função que "substitua" uma outra dentro de algum limite de exatidão.
Uma tal função designa-se por função aproximante e a sua forma é, em geral, uma combinação
de funções elementares. Consideraremos apenas o caso particular da combinação linear destas
funções. De acordo com esta restrição, toda a função aproximante g(x) terá por forma geral:

m
g ( x ) =  a i g i ( x ) = a 0 g 0 ( x ) + a 1 g 1 ( x ) + ... + a m g m ( x ) (1)
i =0

- 123 -
Capítulo 3 Interpolação

onde gj(x) (j=0,..., m) são funções elementares preestabelecidas e aj (j=0,..., m) são parâmetros a
determinar.

A escolha da função g(x) que aproximará a função f(x) depende de vários fatores tais como o
conhecimento que se tem de f(x), a exatidão com que se obtiveram os valores de xi e yi, a
utilização que se pretende dar a g(x) e o grau de exatidão pretendido. É intuitivo que quanto
melhor for o conhecimento de f(x), ou do fenómeno que representa, maior a facilidade em
escolher a forma apropriada para g(x). As classes de funções elementares mais correntemente
utilizadas são:

• funções monómias {xj}, j=0,1,..., m cuja combinação linear, de acordo com (1) conduz
a polinómios de grau m, pm(x)
m
g ( x) = p m ( x) =  ai x i = a0 + a1 x + a 2 x 2 + ... + a m x m
i =0

• funções trigonométricas {sen kx, cos kx}, k=0,1,..., m que conduzem a séries do tipo
Fourier:
m
g ( x) = a0 +  (a k cos kx + bk sin kx)
k =1

• funções exponenciais { e b i x }, j=0,1,..., m

m
g ( x ) =  a i e b i x = a 0 e b 0 x + a 1 e b 1 x + ... + a m e b m x
i =0

Após selecionar a classe de funções {gi(x)} a utilizar, há que escolher o critério para "ajustar" a
função aproximante, g(x), aos pontos. Esta segunda fase é equivalente a estabelecer o método de
cálculo dos coeficientes a0, a1, … , am.

O critério talvez mais natural consiste em impor que a função aproximante g(x) tome nas abcissas
x0,x1,...,xn dos pontos de base os valores y0,y1,...,yn da função f(x). Neste caso, o problema passa
a designar-se por interpolação. Ou seja, a interpolação é um caso particular de aproximação em
que o critério de determinação dos parâmetros consiste em fazer com que os pontos (xi,yi)
(i=0,...,n) sejam também pontos de g(x), isto é,

g ( x i ) = f ( x i ) = y i , i = 0 ,1 ,... , n (2)

- 124 -
Capítulo 3 Interpolação

A figura 1 apresenta uma ilustração do problema. A função a cheio é a que desejamos aproximar,
conhecida ou não; a função a tracejado é a função aproximante (função interpoladora).

y
y= g(x)
f(xn)
y= f (x)
f(x1)
f(x2)
f(x0)

x0 x1 x2 ... xn x

EXTRAPOLAÇÃO INTERPOLAÇÃO EXTRAPOLAÇÃO

Figura 1 - Exemplo de um problema de interpolação.

O critério definido pelas equações (2) conduz ao sistema linear (n+1).(m+1) nas incógnitas
a0, a1,..,am (n+1 pontos dados; m+1 coeficientes ou parâmetros a determinar).

 a 0 g 0 ( x 0 ) + a 1 g 1 ( x 0 ) + ... + a m g m ( x 0 ) = y 0

 a 0 g 0 ( x 1 ) + a 1 g 1 ( x 1 ) + ... + a m g m ( x 1 ) = y 1
 (3)
 
 a g ( x ) + a g ( x ) + ... + a g ( x ) = y
 0 0 n 1 1 n m m n n

Como a matriz deste sistema é (n+1).(m+1) podemos considerar três casos:

▪ 1º) n<m : o sistema admitirá, no caso geral, um número infinito de soluções, i.e., ter-se-á
uma infinidade de funções g(x) que passam pelos pontos (xi,yi), i=0,1,...,n. Seria, por
exemplo, o caso de desejarmos passar por dois pontos (n=1), uma parábola de 2º grau
(m=2). É evidente que existe uma família de curvas que satisfazem a esta condição.

▪ 2º) n=m : o sistema admitirá uma única solução se o seu determinante for diferente de zero.
Esta condição ocorrerá desde que os xi, i=0,1,...,n sejam distintos e nenhuma das colunas
da matriz seja combinação linear das outras. Este é efetivamente o caso da interpolação
e g(x) será designada por função interpoladora.

- 125 -
Capítulo 3 Interpolação

Exemplo 3.1: Verificar que para g0(x)=1 e g1(x)=x2 não existe nenhuma função g(x)= a0
+a1 x2 passando pelos pontos (1,1) e (-1,0). Porquê?

▪ 3º) n>m: no caso geral o problema é impossível, ou seja, não se pode fazer com que uma
curva com m+1 parâmetros a determinar passe por n+1 pontos dados. De facto, uma
função aproximante para este caso deverá obedecer a outros critérios distintos de (2) e
apenas poderá ajustar g(x) para "passar" o mais próximo possível dos pontos dados. Um
exemplo é o da aproximação de mínimos quadrados a ser estudada no Cap. 4.

2. Interpolação polinomial

Um caso particular de interpolação que requer um estudo pormenorizado, dada a sua grande
gama de aplicações, é aquele em que a função interpoladora é um polinómio. O facto dos
polinómios serem frequentemente utilizados como funções interpoladoras é explicado, por um
lado, por ser relativamente fácil operar sobre polinómios, quer nas operações algébricas quer na
diferenciação e integração, operações estas que conduzem a outros polinómios. Por outro lado,
existe justificação teórica para o facto dos polinómios produzirem boas aproximações da função
f(x) que se pretende interpolar. Assim, qualquer função contínua pode ser aproximada num dado
intervalo fechado por um polinómio podendo o erro ser tão pequeno quanto se queira. Este
princípio é traduzido pelo seguinte teorema:

• Teorema de Aproximação de Weierstrass: se f(x) é uma função contínua no intervalo


fechado [a,b], então, dado um erro qualquer ε>0, existe algum polinómio pn(x) de grau
n [n(ε)], tal que:

| f ( x) − p n ( x) |   , a  x  b

O problema reside em saber se o polinómio pn(x) encontrado em cada caso é o polinómio a que
se refere o teorema de Weierstrass, pois geralmente desconhece-se a função f(x). No entanto,
resta a consolação de que de facto existe um tal polinómio.

O problema da interpolação polinomial pode então ser formulado da seguinte forma:

- 126 -
Capítulo 3 Interpolação

▪ dado um conjunto de n+1 pontos (xi,yi), {i=0,1,...,n} que designaremos por suporte da
interpolação, determinar um polinómio pn(x) de grau n tal que:

p n ( xi ) = f ( xi ) = yi , i = 0 ,1,..., n (4)

O polinómio pn(x) pode ser expresso sob várias formas:

• série de potências

p n ( x) = a0 + a1 x + a2 x 2 + ... + an x n

• forma de ordenadas (polinómio interpolador de Lagrange)


p n ( x) = y 0 l 0 ( x) + y1 l1 ( x) + ... + y n l n ( x)

• forma de diferenças (polinómio interpolador de Newton)


p n ( x) = b0 + b1 ( x − x0 ) + b2 ( x − x0 ) ( x − x1 ) + ... + bn ( x − x0 ) ( x − x1 ) ... ( x − xn )

em que os coeficientes ak, lk(x) e bk (k=0,...,n) são determinados satisfazendo as restrições (4).

Dado um suporte para a interpolação, todas estas formas representam o mesmo polinómio
interpolador. De facto, se escrevermos o polinómio sob a forma de série de potências, o sistema
de equações (3) escreve-se:

a0 + a1 x0 + ... + an x0n = y 0



a0 + a1 x1 + ... + an x1n = y1
 (5)
 ...

a0 + a1 xn + ... + an xn = y n
n

sendo este sistema um caso particular de (1), em que gj(x) (j=0,...,n) são as funções monómias:
g 0( x) = 1 , g1( x) = x , ... , g n ( x) = x n e m=n.

Pode demonstrar-se (Rosa,1992) que o determinante do sistema (5), conhecido como


determinante de Vandermonde, nunca se anula se xixj , ij. Portanto, existe um único conjunto
de valores ai solução do sistema. Por outras palavras, existe um único polinómio pn(x) que
reproduz exatamente f(x) nos pontos xi, i=0,1,...,n.

Desta forma, para conhecer o polinómio pn(x), bastaria resolver o sistema de equações (5) não
sendo necessário recorrer a fórmulas interpoladoras. No entanto, por um lado, a resolução
daquele sistema de equações, principalmente se o número de pontos for de dimensão apreciável,

- 127 -
Capítulo 3 Interpolação

não é fácil de efetuar particularmente por métodos manuais ( a solução por computador pode não
ser muito precisa, pois as potências de xi nas equações podem ser números muito grandes e,
nesse caso, os efeitos dos erros de arredondamento podem ser apreciáveis). Por outro lado, e
talvez mais importante, associado à interpolação existe um erro {f(x)-pn(x)} (Fig. 1). Embora
este erro não possa ser avaliado de uma forma exata através das fórmulas interpoladoras, é
frequentemente possível calcular um limite superior para o mesmo ou, pelo menos, conseguir
uma estimativa. Como é lógico, quanto menor o erro maior é o grau de confiança que se tem no
polinómio de interpolação.

2.1 Cálculo eficiente de um polinómio. Algoritmo de Horner

O cálculo eficiente do valor numérico de um polinómio,

p n ( x ) = a 0 + a 1 x + a 2 x 2 + ... + a n x n

pode ser recomendável se pn(x) tiver que ser calculado várias vezes para diferentes valores de x.
De facto, o respetivo cálculo termo a termo é ineficiente, especialmente para valores elevados de
n.

Se cada termo xk for calculado através de k-1 multiplicações de x, então são necessárias n(n+1)/2
multiplicações e n somas para calcular pn(x). No entanto, utilizando a seguinte forma de pn(x),

p n ( x) = a 0 + x(a1 + x (a 2 + ... + x(a n −1 + x a n)...)) (6)

apenas são necessárias n multiplicações e n somas. O método de cálculo de um polinómio


descrito por (6) é designado por algoritmo de Horner.

Como o cálculo do parêntesis mais interior é o primeiro a ser efetuado, o procedimento de cálculo
para avaliar pn(x) pode ser melhor visualizado escrevendo o segundo membro da expressão (6)
na forma inversa, isto é,
p n ( x ) = (( ... ( a n x + a n −1 ) x + a n − 2 ) x + ... + a 1 ) x + a 0

Por exemplo, para n=4

p 4( x) = ((( a4 x + a3 ) x + a2 ) x + a1 ) x + a0

- 128 -
Capítulo 3 Interpolação

2.2 Polinómio interpolador de Newton

Apresentam-se inicialmente os elementos que constituem a base para a compreensão da fórmula


de Newton, ou seja, a definição de diferenças divididas, correspondente notação e a sua relação
com as derivadas da função.

Diferenças Divididas

Considere-se a definição de derivada:


 d f ( x)  f ( x) − f ( x0 )
  = f '( x0 ) = lim
 d x  x0 x → x0 x − x0

Na aproximação do contínuo pelo discreto, utiliza-se a seguinte aproximação para a derivada,

f ( x) − f ( x0 )
f [ x0 , x] = , x  x0
x − x0

na qual f [ x0 , x] é designada por diferença finita dividida de 1ª ordem em relação aos


argumentos x, x0.

A relação entre a diferença finita dividida de 1ª ordem e a derivada de 1ª ordem é dada pelo
seguinte teorema:

• Teorema do valor médio diferencial: seja f(x) uma função contínua para axb e
diferenciável para a<x<b; então existe pelo menos um valor ξ, a<ξ<b, para o qual

f (b) − f (a )
f  ( ) =
b−a

Graficamente (figura 2) tal significa que se f(x) é


contínua e diferenciável num dado intervalo de x,
existirá pelo menos uma abcissa x=ξ nesse
intervalo para a qual o declive da reta tangente a
f(x) [ou seja, a derivada, f '(ξ)] é igual ao declive da
reta que une os valores da função no extremo do
intervalo.

Figura 2 - Ilustração do teorema do valor


médio diferencial

- 129 -
Capítulo 3 Interpolação

Desta forma a diferença finita dividida de 1ª ordem e a derivada de 1ª ordem estarão relacionadas
(sempre que a função seja contínua e diferenciável) por:

f ( x) − f ( x0 )
f [ x0 ,x] = = f ( ) ,  em ( x0 ,x)
x − x0

Para permitir aproximações semelhantes para as derivadas de ordem superior, o conceito de


diferença finita dividida é ampliado de acordo com a Tabela 1.

Ordem Notação Definição

0 f[x0] f(x0)

1 f[x0,x1] f [ x1 ] − f [ x0]
x1 − x0
2 f[x0,x1,x2] f [ x1 , x2 ] − f [ x0 , x1]
x2 − x0
3 f[x0,x1,x2,x3] f [ x1 , x2 , x3 ] − f [ x0 , x1 , x2]
x3 − x0
... ... ...

n f[x0,x1,x2,... ,xn-1,xn] f [ x1 , x2 ,..., xn ] − f [ x0 , x1 ,..., xn−1]


xn − x0

Tabela 1 – Diferenças finitas divididas

Observe-se que o denominador em cada diferença dividida é expresso pela diferença de dois
argumentos que não são comuns às duas diferenças divididas do numerador.
Pode demonstrar-se que a relação entre as diferenças divididas de ordem superior e as
correspondentes derivadas é dada por:

f ( )
(n)
f [ x0 ,x1,...,xn] = ,  em ( x0 ,x1,...,xn) (7)
n!
Por outro lado, da definição de diferença dividida de 1ª ordem pode concluir-se que:

f [ x0 , x1 ] = f [ x1 , x0 ]

ou seja, a ordem dos argumentos é indiferente. Por indução, facilmente se conclui que, em geral,

- 130 -
Capítulo 3 Interpolação

as diferenças divididas são invariantes para qualquer permutação dos argumentos, isto é,

f [ x0 ,x1,...,xn] = f [ x n , x n−1 ,...,x 0 ]

na qual a sequência de inteiros α0,α1,α2,...,αn pode corresponder a qualquer permutação de n,


n-1, n-2,...,0.

Interpolação Linear

Considere-se o problema de interpolar linearmente o valor de f(x) no ponto de abcissa x, x0<x<x1,


apenas com base nos pontos: (x0,y0) e (x1,y1). Esta situação é visualizada na figura 3. Apenas por
considerações geométricas, pode concluir-se para este caso que:

f [ x0 , x] = f [ x0 , x1 ] (8)

Figura 3 - Interpolação linear com f(x) linear

Substituindo f [ x0 , x] pela sua definição, apresentada na Tabela 1, obtém-se:

f ( x) − f ( x0 )
= f [ x0 , x1 ]
x − x0
ou,
f ( x) = f [ x0 ] + ( x − x0 ) f [ x0 ,x1 ] = p1( x) (9)

Como todos os elementos do 2º membro de (9), que define uma reta ou polinómio de
interpolação de 1º grau p1(x), podem ser determinados com base nos valores conhecidos, o valor
de f(x) pode ser calculado diretamente. O algoritmo (9) é o correntemente utilizado na
interpolação linear, apesar de " camuflado" pela utilização de diferenças divididas.

- 131 -
Capítulo 3 Interpolação

Exemplo 3.2: Efetuar a interpolação linear


entre os pontos (1,1) e (3,5) representados
esquematicamente e em forma de tabela na
figura 4.

Substituindo os valores da tabela em (9)


obtém-se:

p1 ( x) = f ( x) = 1 + ( x − 1).(2) = 2 x − 1

que corresponde à recta (polinómio de grau 1)


que passa pelos pontos (1,1) e (3,5).

Figura 4 - Interpolação linear

Considere-se agora o caso da interpolação linear aplicada a uma função f(x) não linear, ou seja,
em que a equação (8) é apenas uma aproximação,

f [ x0 , x]  f [ x0 , x1 ]

Neste caso, (9) será também apenas uma aproximação, como se representa esquematicamente
na figura 5.

Figura 5 – Interpolação linear, com f(x) não linear

- 132 -
Capítulo 3 Interpolação

Para ter em consideração as discrepâncias e restabelecer a igualdade traduzida por (9), é


necessário acrescentar um termo adicional (erro) R1(x). Então:

f ( x) = f [ x0 ] + ( x − x0 ) f [ x0 , x1 ] + R1 ( x) (10)

Resolvendo em ordem a R1(x) obtém-se:

R1( x) = ( x − x0) ( f [ x0 ,x] − f [ x0 ,x1 ] ) = ( x − x0) ( x − x1 ) f [ x1 ,x0 , x] (11)

Então (10) toma a forma:

f ( x) = f [ x0 ] + ( x − x0 ) f [ x0 ,x1 ] + ( x − x0 ) ( x − x1 ) f [ x,x1 ,x0 ]


(12)
= p1 ( x) + R1 ( x)

na qual p1(x) [ver (9)] é, como anteriormente, o polinómio interpolador de 1º grau que passa nos
pontos de base (x0,y0) e (x1,y1). R1(x) é a discrepância entre f(x) e p1(x) e será designado por
termo de erro do polinómio interpolador de 1º grau de f(x).

É evidentemente impossível calcular f[x, x1, x0] de uma forma exata, uma vez que o valor de f(x),
necessário a esse cálculo, é desconhecido (caso contrário não seria necessária a interpolação).
No entanto, se algum valor adicional de f(x) for conhecido, por exemplo f(x2) para x=x2,
efetuando a hipótese de que f[x, x1, x0] não seja uma função com variação rápida no intervalo
que contem x2, x1 e x0, pode admitir-se que:

f [ x,x1 ,x0 ]  f [ x2 ,x1 ,x0 ] = f [ x0 ,x1 ,x2 ]

e R1(x) ser estimado através de:

R1( x)  ( x − x0 ) ( x − x1 ) f [ x0 ,x1 ,x2 ] (13)

- 133 -
Capítulo 3 Interpolação

Exemplo 3.3: Considerar os valores funcionais e respetivas diferenças divididas de ordem


um, dois e três, mostradas na Tabela 2 (1).

i xi f(xi) f1[ ] f2[ ] f3[ ]


0 0. -5.
6.
1 1. 1. 2.
12. 1.
2 3. 25. 6.
30.
3 4. 55.

Tabela 2 – Tabela de diferenças divididas

A função que gerou a tabela 2 é:


f ( x) = x − 2 x + 7 x − 5
3 2

A interpolação linear para x=0.5 utilizando os pontos de base x0 e x1 é definida por (9):
p1 ( x) = − 5 + ( x − x0 ).(6) = 6 x − 5
Então:
p1 (0.5) = − 5 + (0.5 − 0).(6) = − 5 + 3 = − 2

Considerando que (13) é aplicável, uma estimativa do erro cometido nesta aproximação é
dada por:
R1( x)  ( x − x0 ) ( x − x1 ) f [ x0 ,x1 ,x2 ] = (0.5 − 0)  (0.5 −1)  2 = − 0.5
___________________________________________________________________________

(1)
f1[ ] é uma forma abreviada de representar a diferença dividida de 1ª ordem, f2[ ] a
diferença de 2ª ordem, etc.

Interpolação com polinómios de graus 2 e 3

Em muitos casos a interpolação linear não é satisfatória, já que a função que está a ser interpolada
se afasta consideravelmente de uma função linear. Para introduzir alguma curvatura na função
interpoladora, admita-se de momento que f [ x0 ,x1 ,x] é constante e dada por:

f [ x0 ,x1 ,x]  f [ x0 ,x1 ,x2 ]

- 134 -
Capítulo 3 Interpolação

Então o resto traduzido por (13) pode ser incorporado em (12) originando um polinómio de 2º
grau,

p 2 ( x) = f [ x0 ] + ( x − x0 ) f [ x0 ,x1 ] + ( x − x0 ) ( x − x1 ) f [ x0 ,x1 ,x2 ] (14)

A avaliação de (14) para os pontos de base x0, x1 e x2 mostra que satisfaz o critério (2) para n=2;
então p2(x) é o polinómio interpolador de 2º grau que passa pelos pontos: (x0,y0), (x1,y1) e
(x2,y2).

Sem informação de que f(x) é de facto um polinómio de 2º grau, a equação (14) tem de ser
modificada a fim de incluir um termo que traduza a diferença entre f [ x0 ,x1 ,x] e f [ x0 ,x1 ,x2 ] ,
isto é,

f ( x) = f [ x0 ] + ( x − x0 ) f [ x0 ,x1 ] + ( x − x0 ) ( x − x1 ) f [ x0 ,x1 ,x2 ] + R2 ( x) (15)

De modo completamente análogo ao efetuado para obter (11) pode deduzir-se que:

R2 ( x) = ( x − x0 ) ( x − x1 ) ( x − x2 ) f [ x, x0 ,x1 ,x2 ] (16)

Tal como ocorria com f[x,x0,x1] no caso linear, a diferença f[x,x0,x1,x2] não pode ser calculada.
Mas f[x,x0,x1,x2] pode ser estimada se um ponto adicional, seja (x3,y3), estiver disponível.

Exemplo 3.4: Substituindo os valores da Tabela 2 em (14) obtém-se:


p2 ( x) = − 5 + ( x − 0) (6) + ( x − 0) ( x − 1) (2) = 2 x2 + 4 x − 5
pelo que, p 2 (0.5) = − 2.5 .

Supondo f[x3,x2,x1,x0]  f[x,x2,x1,x0], (16) escreve-se


5
R 2 (0.5)  (0.5 − 0) (0.5 − 1) (0.5 − 3) (1) =
8

Considerando f[x,x2,x1,x0] constante e igual a f[x3,x2,x1,x0], (16) pode ser incorporada em (15)
para obter o polinómio de 3º grau

p3 ( x) = f [ x0] + ( x − x0) f [ x1 , x0] + ( x − x0) ( x − x1) f [ x 2 , x1 , x0]


(17)
+ ( x − x 2) ( x − x1) ( x − x0) f [ x3 , x 2 , x1 , x0]

A avaliação de (17) para os pontos de base x0, x1, x2 e x3 mostra que se satisfaz o critério (2) para
n=3; então p3(x) dado por (17) é o polinómio interpolador de 3º grau que passa pelos pontos:
(x0,y0), (x1,y1), (x2,y2) e (x3,y3).
Seguindo o procedimento utilizado para obter (11) e (16), o termo de erro para o polinómio de

- 135 -
Capítulo 3 Interpolação

3º grau (17) terá a seguinte forma:

R3 ( x) = ( x − x0) ( x − x1) ( x − x2) ( x − x3) f [ x, x3 , x2 , x1 , x0]

Exemplo 3.5: Substituindo os valores da Tabela 2 em (14) obtém-se:

p3 ( x) = − 5 + ( x − 0) (6) + ( x − 0) ( x − 1) (2) + ( x − 0) ( x − 1) ( x − 3) (1) =

= x −2 x +7 x−5
3 2

15
pelo que, p3 (0.5) = − .
8

Uma vez que o suporte da interpolação no exemplo 3.2 é constituído por apenas 4 pontos (Tabela
2) não é possível o cálculo da diferença dividida de 4ª ordem. Em geral, para xxi, i=0,1,2,3,
pode dizer-se que R3(x)=0 apenas no caso de f(x) ser um polinómio de 3º grau ou inferior (caso
da função que originou a Tabela 2).

É interessante notar que para um argumento x=0.5, o polinómio de 1º grau conduziu a um


resultado mais próximo do valor correto do que o polinómio do 2º grau. Este exemplo ilustra o
facto importante de um polinómio de interpolação de grau mais elevado não conduzir
necessariamente a melhores resultados para a interpolação.

Caso geral. Fórmula de Newton.

O procedimento anteriormente utilizado para gerar os polinómios de interpolação de 1º, 2º e 3º


graus conduz, por indução, à fórmula geral para o polinómio de interpolação de grau n, que é a
fórmula fundamental de Newton:

f ( x) = p n ( x) + R n ( x)

na qual o polinómio de interpolação de diferenças divididas de grau n, pn(x), tem a forma

p n ( x) = f [ x0] + ( x − x0) f [ x0 , x1] + ( x − x0) ( x − x1) f [ x0 , x1 , x 2]


(18)
+ ... + ( x − x0) ( x − x1) ... ( x − x n −1) f [ x0 , x1 ,..., x n]

e o correspondente erro, Rn(x), é dado por:

R n ( x) = ( x − x0 ) ( x − x1 ) ... ( x − xn ) f [ x,x0 ,x1 ,...,xn ] (19)

ou, de forma equivalente, considerando (7), por:

- 136 -
Capítulo 3 Interpolação

( n+1)
f ( )
Rn ( x) = ( x − x0 ) ( x − x1 ) ... ( x − xn ) (20)
(n +1) !

com,   ( x, x0 , x1 , ..., xn )
No caso de existir um ponto adicional (xn+1,yn+1) disponível, é possível estimar Rn(x) como:

R n ( x)  ( x − x0 ) ( x − x1 ) ... ( x − xn ) f [ x0 ,x1, ... ,xn ,xn +1 ] (21)

Note que esta estimativa de Rn(x) é simplesmente o termo de ordem mais elevada do polinómio
de diferenças divididas de ordem (n+1), ou seja, é o termo que se suprime ao polinómio pn+1(x)
para obter pn(x).

Infelizmente, (21) oferece apenas uma estimativa, e não um limite superior, para o erro. Este
limite superior apenas pode ser estabelecido, com base em (20), no caso da função f(x) ser
conhecida de forma analítica.

2.3 Polinómio interpolador de Lagrange

Para introduzir a ideia básica que está por detrás da fórmula de Lagrange, considere-se o produto
de fatores dado por:
L0 ( x) = ( x − x1) ( x − x 2) ... ( x − x n) (22)

o qual está relacionado com os n+1 pontos de suporte considerados. A função L0 é um polinómio
de grau n, e toma o valor zero para x=x1, x2, ..., xn. Se dividirmos L0(x) por L0(x0), a função
resultante,
( x − x1) ( x − x 2) ... ( x − x n)
l 0 ( x) =
( x0 − x1) ( x0 − x 2) ... ( x0 − x n)

torna-se unitária para x=x0 e nula para x=x1, x=x2,..., x=xn. De forma similar, podemos escrever
li(x) como:
( x − x0) ( x − x1) ... ( x − x n )
l i ( x) =
( xi − x0) ( xi − x1) ... ( xi − x n)
na qual o numerador não inclui (x-xi) e o denominador não inclui (xi-xi). A função li(x) é um
polinómio de ordem n que se torna unitário para x=xi e nulo para x=xj, ji. Estas condições podem
escrever-se abreviadamente,
1 se j = i
li ( x j) =  i j = 
0 se j  i

na qual δij é o símbolo delta de Kronecker.

Então se multiplicarmos l0(x), l1(x),...,ln(x), respetivamente, por f(x0), f(x1), ..., f(xn), e

- 137 -
Capítulo 3 Interpolação

adicionarmos os fatores, o somatório resultante será de novo um polinómio de grau n que


igualará cada um dos f(xi) quando i variar entre 0 e n, ou seja,
n
p n ( x ) =  f ( xi ) l i ( x ) (23)
i =0

com,
( x − x0) ... ( x − x j −1) ( x − x j +1) ... ( x − x n) n
x- xj
l i ( x) = =
( xi - x0) ... ( xi − x j −1) ( xi − x j +1) ... ( xi − x n) j =0 xi - x j
j i

A expressão (23) corresponde à fórmula de interpolação de Lagrange.

A equação (23) é algo extensa, particularmente quando a ordem n é elevada. No entanto, a sua
escrita num programa de computador necessita de um pequeno número de linhas como veremos
em seguida. Analisando (23), verifica-se que:

( x − xi )
▪ a primeira parcela é igual a f(x0) vezes um produto de fatores do tipo: , para todo
( x 0 − xi )
i exceto para i=0;
( x − xi )
▪ a segunda parcela é igual a f(x1) vezes um produto de fatores do tipo: , para todo
( x1 − xi )
i exceto para i=1;
▪ todas as restantes parcelas têm a mesma forma. Então, (23) pode ser programada em
FORTRAN com dois ciclos DO encaixados, da forma que se segue:

C--------------------------------------------------------------
C X(I), F(I), I=0,1,...N : pontos dados
C G : resultado da interpolação
C XA : abcissa do ponto a interpolar
C--------------------------------------------------------------

G=0
DO 20 I=0,N
Z=F(I)
DO 10 J=0,N
10 IF (I.NE.J) Z=Z*(XA-X(J))/(X(I)-X(J))
20 G=G+Z

- 138 -
Capítulo 3 Interpolação

Exemplo 3.6 : Utilizar a fórmula de Lagrange (23) para determinar o polinómio


interpolador de 3º grau que passa pelos 4 pontos da Tabela 2.

( x − 1) ( x − 3) ( x − 4) x3 − 8 x 2 + 19 x − 12
l 0 ( x) = =
(0 − 1)(0 − 3) (0 − 4) − 12
( x − 0) ( x − 3) ( x − 4) x3 − 7 x 2 + 12 x
l1 ( x ) = =
(1 − 0)(1 − 3) (1 − 4) 6
( x − 0) ( x − 1) ( x − 4) x3 − 5 x 2 + 4 x
l 2 ( x) = =
(3 − 0)(3 − 1) (3 − 4) −6
( x − 0) ( x − 1) ( x − 3) x3 − 4 x 2 + 3 x
l 3 ( x) = =
(4 − 0)(4 − 1) (4 − 3) 12

pelo que: p3( x) = − 5 l 0( x) + l1( x) + 25 l 2( x) + 55 l 3( x) = x 3 − 2 x 2 + 7 x − 5

2.4 Newton ou Lagrange ?


O polinómio interpolador de Lagrange só utiliza os valores xi e f(xi) não requerendo o cálculo
das diferenças divididas. Embora a quantidade de cálculos por qualquer das formas seja
semelhante, se apenas se necessita interpolar um determinado valor, a fórmula de Lagrange
conduz a uma economia de memória em computador, pois não necessita de guardar a tabela de
diferenças divididas.

A forma do polinómio interpolador de Lagrange é também conveniente, como veremos


posteriormente, para obter fórmulas de quadratura para o cálculo de integrais definidos e
fórmulas de aproximação de derivadas, por expressar pn(x) como uma combinação linear de li(x)
com os correspondentes f(xi) utilizados como coeficientes.

No entanto, a formula de interpolação de Lagrange tem três importantes desvantagens em relação


à formulação de Newton. A saber:

• a interpolação para os mesmos n+1 pontos de base mas para outro valor de x necessita de
igual quantidade de cálculos;

• ao não calcular diferenças divididas, em geral não se pode ter qualquer estimativa do erro.
De facto, o limite superior dado por (20) apenas pode ser avaliado quando se podem
calcular derivadas de ordem superior da função, o que não é, na prática, o caso usual;

• no caso de se pretender aumentar o grau do polinómio, pela adição de mais um ponto ao


suporte da interpolação, é necessário repetir todo o cálculo desde o início. Não é por isso
recomendável para casos em que o grau do polinómio não é conhecido à priori.

- 139 -
Capítulo 3 Interpolação

2.5 Interpolação com pontos de base igualmente espaçados

Quando os pontos de base estão igualmente espaçados de forma que: x1-x0 = x2-x1 = x3-x2 =...=
xn-xn-1 = h, (h é designado por avanço ou passo) é possível alguma simplificação na utilização
das diferenças divididas. Os polinómios de interpolação de Newton poderão ser expressos em
termos de diferenças progressivas (Δ) ou regressivas (). Apresentam-se resumidamente os
principais resultados.

➢ Diferenças progressivas
O operador diferenças progressivas (ou descendentes) é definido como:

 f ( x ) = f ( x + h) − f ( x )

 f ( x) =  (  f(x)) = (f(x + h) - f(x)) = f(x + h) - f(x)


2

 f ( x) =  f(x + h) -  f(x)
3 2 2

 

 f ( x ) =  f ( x + h) −  f ( x )
n n -1 n -1

Δf(x) é designada por 1ª diferença progressiva, Δ2f(x) por 2ª diferença progressiva, etc. As
diferenças progressivas são muito fáceis de calcular através de uma tabela, como veremos no
Exemplo 3.7.

A relação entre uma dada diferença finita progressiva e a correspondente diferença dividida da
Tabela 1 é simplesmente:
f ( x1) − f ( x0) f ( x0 + h) − f ( x0) f ( x0)
f [ x1 , x0] = = =
x1 − x0 h h
De forma similar,
f ( x 2) − f ( x1) f ( x1) − f ( x0)

2 − x1 x1 − x0 =
2
x f ( x 0)
f [ x 2 , x1 , x0] =
x 2 − x0 2 h2
Em geral,

 f ( x0 )
n
f [ xn , xn-1 ,..., x0 ] = n
(24)
n! h

A fim de permitir rescrever o polinómio de diferenças divididas em termos de diferenças


progressivas de forma compacta, vamos introduzir um parâmetro α, tal que:
x = x0 +  h (25)

- 140 -
Capítulo 3 Interpolação

em que 0αn para valores de x no intervalo x0  x  xn. Uma vez que os pontos de base x0, x1,
x2, ..., xn estão igualmente afastados de h, então:

x − x0 =  h
x − x1 =  h − h = h ( − 1)
x − x 2 = h ( − 2)
...
x − x n = h ( − n)

Em termos de α e do operador diferenças progressivas, a fórmula fundamental de Newton toma


a forma:
f ( x0 + h) = p n ( x0 + h) + R n ( x0 + h)
De (18) obtém-se:
 (  - 1)
p n ( x0 + h) = f( x0 ) +  f( x0 ) +  f( x0 ) +
2

2!
 (  - 1) (  - 2)
+  f( x0 ) + ... +
3
(26)
3!
 (  - 1) (  - 2) ... (  - n + 1)
+  f( x0 )
n

n!

e o correspondente erro, Rn(x0+αh), é dado por:


( n +1)
f ( )
R n ( x0 + h) = h  ( − 1) ( − 2) ... ( − n)
n +1
(27)
(n + 1) !

em que ξ( x,x0, x1, ..., xn) ou, na forma alternativa,

R n ( x0 + h) = h  ( − 1) ( − 2) ... ( − n) f [ x, x0 , x1 ,..., xn]


n +1
(28)

Definindo os coeficientes binomiais,

   ( − 1 )...( − n + 1)
  = n0
 n n!
(29)
 
  = 1
 0
a expressão (26) pode escrever-se de uma forma compacta como:
n  
p n ( x0 +  h ) =     j f ( x0) (30)
j =0  j 

- 141 -
Capítulo 3 Interpolação

Tal como anteriormente, o erro pode ser estimado no caso de se conhecer mais um ponto de base
de abcissa xn+1, sendo fácil deduzir que:

   n +1
R n ( x0 +  h) =  
 f ( x0) (31)
 n + 1

Exemplo 3.7: Considere-se o polinómio: x3 - 2x2 + 7x - 5, já utilizado no exemplo 3.3,


tabelado em cinco pontos de base para um passo h=1.0 (Tabela 3). Aplicar a fórmula de
Newton e calcular o polinómio de 2º grau para x=1.5.

i xi f(xi) f 2f 3f 4f


0 0. -5.
6.
1 1. 1. 2.
8. 6.
2 2. 9. 8. 0
16. 6.
3 3. 25. 14.
30.
4 4. 55.
Tabela 3 – Diferenças progressivas

x - x0 1.5 − 0
Para este caso: h=1.0 e α = = = 1.5
h 1
Substituindo em (26) ou (30) vem:
1.5  0.5
p 2(1.5) = − 5 + 1.5  6 +  2 = 4.75
2!
O erro pode ser estimado usando (31),
3 1  1
 − 
2 2  2 3
R2 (1.5) = 6 = −
3! 8
Neste caso, -3/8 coincide com o erro exato, já que f(x) é um polinómio de 3º grau e as
diferenças de ordem superior são nulas.

A fórmula progressiva de Newton apenas utiliza as diferenças ao longo da diagonal superior da


tabela de diferenças (assinalada pela linha a cheio da Tabela 3). Consequentemente, esta fórmula
é particularmente conveniente para interpolações de pontos perto do início da tabela. No entanto,
pode ser aplicada em outras zonas da tabela com a apropriada translação do índice 0. As
diferenças progressivas necessárias, deslocando a origem para x0=1.0, y0=1.0, seriam as
correspondentes à diagonal assinalada a tracejado na Tabela 3.

- 142 -
Capítulo 3 Interpolação

➢ Diferenças regressivas

O operador diferenças regressivas (ou ascendentes) é definido como:

 f ( x ) = f ( x ) − f ( x − h)

 f ( x ) = f ( x ) − f ( x − h )
2

 f ( x ) =  f ( x ) −  f ( x − h)
3 2 2

.
.
.

 f ( x) =  f ( x) −  f ( x − h)
n n −1 n −1

f(x) é designada por 1ª diferença regressiva, 2f(x) por 2ª diferença regressiva, etc. Definindo
um parâmetro α, neste caso utilizando como origem o ponto de base xn, de forma que:

x = xn +  h (32)

α é zero ou negativo (-nα0) para valores de x no intervalo x0xxn.

A Tabela 4 apresenta as diferenças regressivas correspondentes aos dados da Tabela 3 com os


índices dos pontos de base remunerados. Faz-se notar que as diferenças regressivas da Tabela 4
são idênticas às diferenças progressivas da Tabela 3; apenas os índices dos pontos de base são
diferentes.

i xi f(xi) f 2f 3f 4f


n-4 0. -5.
6.
n-3 1. 1. 2.
8. 6.
n-2 2. 9. 8. 0
16. 6.
n-1 3. 25. 14.
30.
n 4. 55.

Tabela 4 – Diferenças regressivas

Em termos de α e do operador diferenças regressivas, a fórmula de Newton escreve-se:

f ( x n + h) = p n ( x n + h) + R n ( x n + h)


com,

- 143 -
Capítulo 3 Interpolação

 ( + 1)
p n ( x n + h) = f ( x n) +  f ( x n) +  f ( xn) +
2

2!

 ( + 1) ( + 2)
+  f ( x n) + ... +
3
(33)
3!

 ( + 1) ( + 2) ... ( + n − 1)
+  f ( xn)
n

n!

ou, introduzindo os coeficientes binomiais, em forma compacta

n
j
−  j
p n ( xn +  h ) =  (−1)    f ( xn)
 (34)
j =0  j

Tal como anteriormente, pode calcular-se uma estimativa do erro se se conhecer mais um ponto
de base de abcissa x-1=x0-h, através de:
 ( + 1) ( + 2) ... ( + n)
R n ( x n + h) =
n +1
 f ( xn) (35)
(n + 1) !

ou na forma alternativa,

 −   n +1
R n ( xn +  h) =    f ( xn)
 (36)
 n + 1

Exemplo 3.8: Utilizando as diferenças da Tabela 4, calcular o valor interpolado para x=3.5
através do polinómio interpolador de Newton regressivo de 3º grau.

Para este caso:


x − x n 3.5 − 4
= = = − 0.5
h 1

pelo que a fórmula regressiva de Newton (33) ou (34) se escreve:

(−0.5) (0.5) (−0.5) (0.5) (1.5)


p3 (3.5) = 55 + (-0.5) (30) + (14) + (6) = 37.870
2! 3!

- 144 -
Capítulo 3 Interpolação

2.6 O problema das oscilações na interpolação polinomial

A Figura 6 mostra o gráfico de f(x)=x em conjunto com os gráficos dos polinómios de


interpolação:

- p2(x), com base no suporte (1,1),(4,2) e (9,3);


- p3(x), com base no suporte (0,0),(1,1),(4,2) e (9,3);
e,
- p4(x), com base no suporte (0,0),(1,1),(4,2),(9,3) e (16,4).

Figura 6 - Gráfico de f(x)=x, p2(x), p3(x), e p4(x)

Embora nenhuma das curvas polinomiais aproxime bem y=x na totalidade do intervalo de
interpolação [0,16], p2(x) desvia-se menos de x no seu intervalo de interpolação [1,9] do que
p3(x) ou p4(x) nos seus respetivos intervalos. Assim, por exemplo, se necessitamos interpolar
f(5)=5 por pn(5), a aproximação quadrática p2(5) é muito mais exata que a aproximação cúbica
p3(5) ou que a de quarto grau p4(x).

Este exemplo ilustra uma limitação da interpolação polinomial que é o de poder introduzir
oscilações. De facto, se a curva y=f(x) não é análoga à de um polinómio (no caso da função raiz
quadrada a sua inclinação aproxima-se de zero quando x→, o que apenas pode acontecer no
caso de um polinómio constante, e tem uma derivada infinita em x=0), então os polinómios
interpoladores de grau suficientemente alto oscilarão entre os pontos interpolados. Uma vez que
se iniciem tais oscilações, a sua amplitude tende a aumentar ao agregar mais pontos; assim, a
adição de pontos produz polinómios que são menos adequados para aproximar f(x).

Poderemos então perguntar: dado x, que suporte da interpolação deveremos escolher de forma
que pn(x) se aproxime o mais possível de f(x) ?

- 145 -
Capítulo 3 Interpolação

A estratégia "óbvia", de usar tantos pontos quantos seja possível, não produz, como vimos
anteriormente, um critério válido. Para ajudar a responder à pergunta rescrevamos (20)
( n +1) ( n +1)
f ( ) f ( )
R n ( x) = ( x − x0) ( x − x1) ... ( x − xn) = Li ( x ) (20)
(n + 1) ! (n + 1) !

Ao analisar a expressão anterior vemos que o erro Rn(x) é essencialmente um produto de dois
fatores, um dos quais, f(n+1)(ξ), depende das propriedades da função f(x) e não está sujeito a
regulação, enquanto que a magnitude do outro, Li(x), é determinada exclusivamente pela escolha
dos pontos de base da interpolação. Ou seja, a expressão anterior implica que dados x e n, o erro
absoluto

| f ( x) - p n ( x) | é proporcional ao produto : | x − x0 | | x − x1 | ... | x − xn | (37)

onde x-xi é a distância de x a xi. Assim, o erro da aproximação f(x)pn(x) é provável que seja
mais pequeno nos casos em que x0< x <xn (interpolação) que quando x<x0 ou x>xn
(extrapolação).

No caso da interpolação e quando o espaçamento entre os pontos de base é razoavelmente


uniforme, o produto dos x-xi em (37) é maior quando x está próximo de um ponto extremo de
[x0,xn] e mais pequeno quando x está próximo do centro de [x0,xn]. Assim, para um dado x, a
aproximação mais exata de f(x) com um polinómio pn(x) será provavelmente a que utiliza os n+1
pontos de base sucessivos que melhor centrem x.

2.7 Majorante do erro com pontos igualmente espaçados

Considere-se novamente a fórmula do erro (20), e n+1 pontos de base {x0,...,xn} igualmente
espaçados. O principal objetivo deste parágrafo é utilizar (20) para responder à seguinte pergunta
prática:

➢ "Qual a máxima amplitude do erro da aproximação f(x)pn(x) para pontos de base


igualmente espaçados (passo=h), podendo x ser qualquer valor do intervalo [x0,xn] ? "

Como ξ é um valor desconhecido vamos substituir f(n+1)(ξ) por um limite superior, Mn+1, isto é,
( n +1)
M n +1  | f ( ) | , x0    xn

Consideremos inicialmente o caso da interpolação linear. Se x0xx1, então de (20), com n=1,
resulta:

f ( x) − p1 ( x)  M 2 L1 ( x) , com L1 ( x) = ( x − x0) ( x − x1)


2!

- 146 -
Capítulo 3 Interpolação

O gráfico de L1(x) é uma parábola que intercepta o eixo OX em x0 e x1 (Fig. 7-a). Assim, L1(x)
é maximizado em [x0,x1] quando x coincide com o ponto médio (x0+x1)/2. Portanto, para
x0xx1,
x +x  x −x x −x h
2
| L1 ( x) |  L1  0 1  = 1 0 0 1 =
 2  2 2 4

pelo que, o erro absoluto da interpolação linear satisfaz

| f(x) − p1 (x) |  M 2 h2 (38)


8

A figura 7 mostra os gráficos correspondentes às funções Li(x) para i=1,2,3 e 6. Para n=3
verifica-se que o máximo de L3(x) ocorre nos intervalos extremos. Para n>3 o
comportamento exibido por L3(x) vai-se acentuando, como se ilustra na Fig. 7(d) para n=6.

(a) y=L1(x) (b) y=L2(x)

(c) y=L3(x) (b) y=L6(x)

Figura 7 - Gráficos de Li(x) {i=1,2,3 e 6}

O majorante do erro (38) é um caso particular do seguinte resultado mais geral:


Teorema: Se pn(x) interpola n+1 pontos de base xi ,{x0,...,xn}, espaçados de h e
f(n+1)(ξ) é contínua e satisfaz  f(n+1)(x)Mn+1 em [x0,xn], então:

| f ( x) − p n ( x) |  M n +1 hn +1 , sempre que x0  x  x n (39)


4 (n + 1)

O problema 11 (final do capítulo) mostra como se pode utilizar o teorema anterior para realizar
uma interpolação eficaz.

- 147 -
Capítulo 3 Interpolação

2.8 Interpolação com raízes de Chebyshev

Como foi referido no parágrafo anterior, a interpolação polinomial utilizando pontos igualmente
espaçados, tende a ser mais rigorosa na zona central do suporte e a amplitude da oscilação do
erro a crescer à medida que nos aproximamos dos pontos extremos. Tal é atribuído ao
comportamento de Li(x) na equação (20).

Consideremos agora que se pretende interpolar uma função f(x) num dado intervalo [a,b]
utilizando um polinómio pn(x) e pontos igualmente espaçados. Para cada n1, define-se: h=(b-
a)/n, xj=a+jh, j=0,1,...,n. Pergunta-se:

Max f(x) - pn(x) tende para zero quando n→ ?


axb

A resposta é não necessariamente. O mais famoso exemplo de não convergência é devido ao


matemático alemão Runge que observou que quando n+1 pontos igualmente espaçados no
intervalo [-5,5] se utilizam para interpolar

1
f ( x) = (40)
1+ x
2

as oscilações tendem a aumentar nos extremos do intervalo para valores crescentes de n. A figura
8 ilustra este fenómeno para h=1.25 (n=8) e h=1 (n=10).

Figura 8 - Interpolação de (40) no intervalo [-5,5] com polinómios de graus 8 e 10.

Em face das considerações anteriores, uma pergunta natural é:

- 148 -
Capítulo 3 Interpolação

➢ " Se x pode estar em qualquer ponto de [a,b], onde se devem colocar os n+1 pontos de
base x0,...,xn em [a,b] de forma a assegurar que o erro máximo de pn(x) seja tão pequeno
quanto possível ? "

Como [a,b] e n estão especificados e não temos controlo sobre f(n+1)(ξ), o máximo que podemos
fazer para que o erro máximo de pn(x) seja tão pequeno quanto possível é escolher x0,...,xn de
forma que a parte do erro que podemos controlar, o polinómio Ln(x), tenha o menor valor
máximo em módulo no intervalo [a,b], isto é, de forma a minimizar o valor absoluto máximo de
Ln(x). Este problema foi resolvido pelo matemático russo Chebyshev que demonstrou que a
melhor escolha dos pontos de base é dada pela fórmula:
b+a b−a
xi = + i (41)
2 2
onde,

 2(n - i ) + 1 
 i = cos   i = 0,1,..., n (42)
 2n + 2 

são os zeros do denominado polinómio de Chebyshev Tn+1(x). A interpolação que utiliza os n+1
pontos de base de Chebyshev xi dados por (41) designa-se por interpolação de Chebyshev ou
minimax em [a,b]. Para qualquer valor de x em [a,b], o cálculo de pn(x) realiza-se da forma
usual (Newton, Lagrange), utilizando os pontos de base de Chebyshev.

O erro da aproximação f(x)pn(x) satisfará:


n +1
b−a M n +1
| f ( x) − p n ( x) |  2  
 4  (n + 1) !

Exemplo 3.9: Designe-se por φ(x) a velocidade ou pressão de um fluido compressível ao


longo do eixo de um tubo que se faz coincidir com o eixo OX. φ(x) pode ser monitorizada
instalando sensores em pontos fixos ao longo do tubo.
a) Em que posição se devem colocar 5 sensores ao longo de um tubo com 60 metros de
comprimento de forma a minimizar o erro máximo possível da interpolação ao utilizar os
5 valores medidos ?
b)Determinar um limite superior para o erro máximo da interpolação com 5 pontos da
alínea a), considerando M5 como majorante da derivada de ordem 5 de φ.

- 149 -
Capítulo 3 Interpolação

Resolução:

a) Posição dos sensores


b+a b−a 60 + 0 60 − 0
xi = + i = +  i = 30+ 30  i
2 2 2 2
 2( 4 - i ) +1   9 - 2i 
com:  i = cos    = cos   i = 0,1,...,4
 2x 4 + 2   10 

9  7  5 
  0 = cos    ,  1 = cos    ,  2 = cos    ,
 10   10   10 
 3  1 
 3 = cos    ,  4 = cos   
 10   10 
pelo que:
9  7 
x0 = 30 + 30 cos    =1.47 m , x1 = 30 + 30 cos    =12.77 m ,
 10   10 
x2 = 30.0 m , x3 = 47.63m , x4 = 58.53m

b) Erro da interpolação
5
 60 − 0  M 5
| R 4 ( x) |  2   = 12656.25 M 5
 4  5!
No caso de pontos igualmente espaçados:
M n+1 n+1 , 155
| Rn ( x) |  h pelo que: | R 4 ( x) |  M 5 = 37968.75 M 5
4 (n +1) 4 5
 3 vezes maior !!!

2.9 Polinómio interpolador de Hermite

Os esquemas de interpolação polinomial apresentados anteriormente não utilizam informação


acerca da derivada da função interpolada. No entanto, um polinómio pode ser ajustado não
apenas aos valores funcionais y0, y1,..., yn mas também às derivadas nos pontos de base dados.
Os polinómios ajustados aos valores funcionais e às derivadas são designados por polinómios
de interpolação de Hermite, ou polinómios osculadores.

Sejam dados os pontos de base x0, x1,...,xn, os valores funcionais e todas as derivadas até à ordem
p (fi, f 'i,...,fi(p), i=0,1,...,n). O número total de dados é K=(p+1)(n+1). Um polinómio de ordem
K-1, seja,

- 150 -
Capítulo 3 Interpolação

K −1
g ( x) =  a j x j (43)
j =0

no qual aj (j=0,...,K-1) são coeficientes, pode ser ajustado aos K dados. Equacionando (43) aos
dados, obtemos um conjunto de K=(p+1)(n+1) equações:

 g ( xi ) = f i i = 0 ,1,..., n

 g ( xi ) = f i i = 0 ,1,..., n
 (44)
 ...
 g ( p ) ( xi ) = f (p) i = 0 ,1,..., n
 i

Os coeficientes aj (j=0,...,n) podem ser determinados por resolução do sistema anterior.

O problema poderá ser resolvido de uma forma alternativa, similar à forma do polinómio de
Newton, utilizando uma tabela de diferenças divididas. Se x0=xn, então a definição de
f[x0,x1,...,xn] dada na Tabela 1 não pode ser utilizada, já que o denominador seria x0-xn=0. No
entanto, da expressão (7), que aqui rescrevemos:

f ( )
(n)
f [ x0 , x1 ,..., x n] = ,  em ( x0 , x1 ,..., x n)
n!

podemos inferir que se os xi são distintos e f(n) é contínua em x0, então f[x0,x1,...,xn] deve
aproximar-se de f(n)(x0)/n! quando xn→x0. Isto sugere que podemos generalizar a definição de
f[x0,x1,...,xn], fazendo:

(n)
f ( x 0)
f [ x0 , x1 ,..., x n] = , sempre que x0 = x1 = ... = x n (45)
n!

O exemplo que se segue mostra como (45) permite construir polinómios interpoladores que têm
derivadas comuns com f(x) assim como os mesmos valores funcionais em alguns ou todos os
pontos de base tabelados xi.

- 151 -
Capítulo 3 Interpolação

Exemplo 3.10: Determinar um polinómio p(x) de grau menor ou igual a 4 que cumpra as
seguintes 5 condições satisfeitas por f(x)=x4 :

f(0)=0 , f'(0)=0 , f(2)=16 , f'(2)=32, e f''(2)=48

Resolução: A Tabela 5 mostra uma tabela de diferenças divididas na qual se utiliza (45)
para satisfazer as condições anteriores. Os pontos de base 0 e 2 estão repetidos uma vez por
cada condição que se lhes impõe. Os elementos obtidos utilizando (45) estão marcados com
um retângulo; os restantes foram obtidos do modo usual.

Com base na Tabela 5 pode construir-se a forma de Newton de um polinómio p(x) de grau
4 que interpole os cinco pontos, isto é:

p 4( x) = 0 + 0  x + 4 x 2 + 4 x 2  ( x − 2) + 1  x 2  ( x − 2) 2 = x 4

Tabela 5 - Tabela de diferenças divididas ilustrando a interpolação de Hermite.

Antes de terminar este parágrafo, efetuaremos uma observação relacionando a interpolação de


Hermite com a aproximação polinomial de Taylor. Suponhamos que um polinómio p(x) de grau
n cumpre as n+1 condições:

f ( xk ) , f ( xk ) , f ( xk ) , ... , f ( n ) ( xk ) (46)

Se p(x) se obtém como no exemplo anterior, ou seja, da tabela de diferenças divididas na qual
(xk,fk) aparece n+1 vezes e se utiliza (45), então a forma de Newton de pn(x) é:

- 152 -
Capítulo 3 Interpolação

f ( x k ) f ( x k ) (n)
f ( xk )
p n ( x) = f ( x k ) + ( x − xk ) + ( x − x k )2 + ... + ( x − x k )n
1! 2! n!
Este pn(x) é o polinómio de Taylor de grau n no ponto xk, isto é, o polinómio cujos coeficientes
f(i)(xk)/i! (i=0,...,n) estão escolhidos de forma que as suas derivadas em xk, desde a ordem 0 até à
ordem n, igualam (46). A interpolação osculatória ou de Hermite pode então ser vista como um
"híbrido" entre a interpolação polinomial e a aproximação de Taylor.

2.10 Interpolação com "SPLINES" cúbicos

Frequentemente pretende-se interpolar um conjunto numeroso de pontos através de uma curva


contínua. Os polinómios interpoladores de Newton ou Lagrange de ordem elevada não são
indicados para este efeito, como verificámos nos parágrafos anteriores. Exceto no caso dos
pontos se encontrarem sobre uma curva semelhante a uma função polinomial, a utilização de um
só polinómio de interpolação pn(x) produzirá oscilações indesejáveis entre os pontos de base.
Vamos ver uma forma de obviar a este problema.

Considere-se conhecido o suporte da interpolação (x0,y0), (x1, y1),...,(xn,yn) com todos os xi


distintos e ordenados por ordem crescente (Fig. 9). Cada abcissa xi { i=0,1,...n} é designada por
"nó" do spline. Cada par de nós, xi,xi+1 define um intervalo [xi,xi+1], i=0,1,...n-1.

y S (x) = p (x)=a i +bi x+ci x2+d i x 3


i f(xn)
S ( x)3
i

f(x1)

f(x0)

 x0  xi xn-1

x0 x1 x 2 xi x i+1 x n-1 x n x

Figura 9 - Interpolação com "splines".

Define-se "spline" S(x) de grau m1 em [x0,...,xn], como a função que satisfaz as seguintes
propriedades:

(P1) Coincide com um polinómio de grau  m em cada um dos subintervalos [xi,xi+1]


i=0,1,...n-1;

(P2) S(x) e todas as suas derivadas até à ordem m-1 são contínuas em [x0,...,xn], ou
seja, S(k)(x) é contínuo para: 0  k  m-1.

- 153 -
Capítulo 3 Interpolação

Tal como nos casos anteriores, como estamos com um problema de interpolação, a função S(x)
tem que verificar a restrição:

S ( xi ) = y i , i = 0 ,1,..., n (47)

Chama-se a atenção para o facto de um "spline" não se poder confundir com um polinómio
interpolador, pois embora coincida com um polinómio em cada intervalo [xi,xi+1], no caso geral,
esse polinómio é diferente de intervalo para intervalo.
O spline de grau 1 é uma função, cuja representação gráfica consiste em segmentos de recta
unindo pontos consecutivos (xi, yi) e (xi+1, yi+1) , i=0,1,...n-1. Uma curva deste tipo, embora
contínua, apresenta pontos angulosos.

O spline de grau 2 é representado por arcos de parábola a unir os pontos consecutivos, com
tangente comum nos nós x1,x2,..., xn-1. Não apresenta pontos angulosos, mas em cada um dos
x1,x2,..., xn-1 existe descontinuidade na curvatura.

Se queremos contemplar a possibilidade de que f(x) tenha um ponto de inflexão entre nós
consecutivos temos de utilizar polinómios de 3º grau, ou superior. O spline de grau 3 (spline
cúbico) é o mais utilizado. Não apresenta pontos angulosos e há continuidade na curvatura. A
experiência tem demonstrado que grande parte das funções "suaves" que surgem no âmbito dos
problemas de engenharia podem aproximar-se com suficiente precisão por splines cúbicos, S(x).
Vamos mostrar como podem construir-se tais funções.
Comecemos por verificar quantos graus de liberdade são permitidos na escolha da função S(x),
uma vez satisfeita (47). Como se ilustra na figura 9 para o caso geral, particularizando agora para
m=3, num intervalo genérico [xi,xi+1] (i=0,1,...,n-1)

Si ( x)  p3 ( x) = ai + bi x + ci x 2 + d i x 3 para xi  x  xi +1 (48)

Existem 4n coeficientes a determinar {ai, bi, ci, di} (i=0,1,...,n-1). As restrições impostas a S(x)
são (47) e as restrições de continuidade P2,

S ( xi + 0) = S ( xi − 0) i = 1,..., n − 1 j = 0,1, 2
(j) (j)
(49)

Em conjunto,
n + 1 + 3 (n-1) = 4 n - 2
restrições. Como existem 4n incógnitas, existem dois graus de liberdade na escolha dos
coeficientes de (48). Será necessário impor condições suplementares em S(x) de forma a obter
um spline interpolador S(x) único. Antes de discutirmos estas condições vamos analisar o método

- 154 -
Capítulo 3 Interpolação

de resolução das equações de forma a obter S(x).

O método mais simples consiste em observar que se S(x) é cúbico, então a função S''(x) é linear
em x e também contínua no intervalo [x0,...,xn]; não é no entanto diferenciável. A representação
gráfica de S''(x) é então do tipo:

S''(x)
S i '' (x)
S''( xi )

S'' (xi+1)

 xi  x i+1

xi-1 xi xi+1 xi+2 x

Figura 10 - Gráfico da função S''(x).

S''(x) pode ser representada em [xi,xi+1], de acordo com a forma do polinómio interpolador de
Newton, como:
S ( xi +1) − S ( xi )
S ( x) = S ( xi ) + ( x − xi )
xi +1 − xi
ou
( xi +1 − x) S ( xi ) + ( x − xi ) S ( xi +1)
S ( x) = (50)
 xi

em que Δxi=(xi+1-xi). Integrando a expressão anterior duas vezes em ordem a x, vem:

( xi +1 − x )3 S ( xi ) + ( x − xi )3 S ( xi +1)


S ( x) = + C ( xi +1 − x) + D ( x − xi ) (51)
6  xi

onde C e D são constantes de integração.

A condição de interpolação (47) permite escrever:

yi  xi S ( xi ) yi+1  xi S ( xi+1)


C= − D= −
 xi 6  xi 6

Substituindo as constantes de integração em (51) obtém-se:

- 155 -
Capítulo 3 Interpolação

S ( xi )  ( xi +1 − x )3 
S ( x) =  −  xi ( xi +1 − x) +
6   xi 
(52)
S ( xi +1)  ( x − xi )3  x −x x − xi
+  −  xi ( x − xi ) + yi i +1 + yi +1
6   xi   xi  xi

que é a equação do spline cúbico, equivalente a (48), expressa em função de S''(x). Esta expressão
é válida, tal como (48), para xi x xi+1 com 0 i n-1.

Para utilizar (52) na determinação de S(x) é necessário determinar os valores se S''(xi). Estes
valores podem ser calculados utilizando a restrição das primeiras derivadas serem contínuas em
x1,...,xn-1:
S i ( xi + 0) = S i ( xi − 0) i = 1,..., n − 1

ou seja, derivando (52) e avaliando essa derivada em x=xi, nos intervalos [xi,xi+1] e [xi-1,xi] e,
posteriormente, igualando os dois valores.

Em [xi,xi+1],

S ( xi )  3 ( xi +1 − xi )2  S ( xi +1)  xi yi +1 − yi


S ( x) = − +  xi  − +
6   xi  6  xi

Em [xi-1,xi],

S ( xi )  3 ( xi − xi −1 )2  S ( xi −1)  xi −1 y i − y i −1


S ( x) =  −  xi −1  + +
6   xi −1  6  xi −1

Igualando os segundos membros das equações anteriores, após agrupar termos, vem:

 xi −1 S ( xi −1) + 2 ( xi +  xi −1 ) S ( xi ) +  xi S ( xi +1) =


(53)
y −y y − yi −1 
= 6  i +1 i − i 
  xi  xi −1 

para i=1,2,...,n-1. No caso particular dos nós xi estarem igualmente espaçados de h (passo) então
(53) converte-se simplesmente em:

6
S ( xi −1) + 4 S ( xi ) + S ( xi +1) = 2
( y i +1 − 2 yi + y i −1 ) (54)
h

- 156 -
Capítulo 3 Interpolação

Em qualquer das formas obtemos um sistema de n-1 equações independentes onde figuram n+1
incógnitas, S''(xj) (j=0,1,...,n). Para se obter uma solução única, é necessário especificar duas
condições adicionais. Como as incógnitas S''(x0) e S''(xn) aparecem apenas na primeira e última
equação do sistema, respetivamente, é imposta uma condição adicional em cada ponto extremo,
x0 e xn, para as eliminar. As duas estratégias mais comuns de resolver o problema são:

• Estratégia 1 - Impor S''(x0)=0 e S''(xn)=0, isto é, impor que a curvatura nos pontos
extremos seja nula. É o denominado spline natural.

Exemplo 3.11: Aproximar f(x)=x4 no intervalo -1 x  1 utilizando um spline cúbico


natural com base nos valores:

xi -1.0 -0.5 0.0 0.5 1.0


yi 1.0 0.0625 0.0 0.0625 1.0

Para este caso n=4 e h=0.5 pelo que as 3 equações (54) se escrevem:

i = 1 : S ( x0) + 4 S ( x1) + S ( x 2) =


6
 0 − 2 (0.0625) + 1  = 21
0.25
6
i = 2 : S ( x1) + 4 S ( x 2) + S ( x3) = ( 0.0625 − 0 + 0.0625 ) = 3
0.25

i = 3 : S ( x 2) + 4 S ( x3) + S ( x 4) =


6
 1 − 2 (0.0625) + 0  = 21
0.25

Impondo S''(x0)=0 e S''(x4)=0, as equações anteriores convertem-se num sistema de 3


equações a 3 incógnitas { S''(x1), S''(x2) e S''(x3) } de cuja resolução resulta:

S''(x1) = 5.7857
S''(x2) = -2.1429
S''(x3) = 5.7857

A representação gráfica deste spline cúbico e de f(x)=x4 no intervalo -1 x  1 é apresentada


na figura 11.

- 157 -
Capítulo 3 Interpolação

Figura 11 - Spline natural do exemplo 3.11.

• Estratégia 2 - Estimar S''(x) nos pontos extremos por extrapolação linear. Utilizando o
polinómio de Lagrange:

 x0 +  x1  x0
S ( x0) = S ( x1) − S ( x 2)
 x1  x1

 xn − 2 +  xn −1  xn −1
S ( x n) = S ( x n −1) − S ( x n − 2)
 xn − 2  xn − 2

No caso dos nós serem igualmente espaçados de h, as equações anteriores podem escrever-se
simplesmente como:

S ( x0) = 2 S ( x1) − S ( x2)

S ( xn) = 2 S ( xn −1) − S ( xn − 2)

- 158 -
Capítulo 3 Interpolação

Exemplo 3.12: Resolver o exemplo 3.11 extrapolando S''(x) nos pontos extremos.

Resolução: Adotando a estratégia 2 as equações apresentadas no exemplo anterior


modificam-se para:

i = 1 : 6 S  ( x 1 ) =
6
 0 − 2 ( 0.0625 ) + 1  = 21
0.25
6
i = 2 : S  ( x 1 ) + 4 S  ( x 2 ) + S  ( x 3 ) = ( 0.0625 − 0 + 0.0625 ) = 3
0.25

i = 3: 6 S  ( x 3 ) =
6
 1 − 2 ( 0.0625 ) + 0  = 21
0.25

cuja solução é:
S''(x1) = 3.5
S''(x2) = -1.0
S''(x3) = 3.5

A representação gráfica deste spline cúbico e de f(x)=x4 no intervalo -1 x  1 é apresentada


na Fig. 12.

Figura 12 - Spline obtido extrapolando S''(x) nos pontos extremos.

- 159 -
Capítulo 3 Interpolação

No caso do número de nós ser grande, o sistema de equações terá de ser resolvido pelo método
de eliminação de Gauss, ou por um esquema especial aproveitando o facto do sistema de
equações linear ser tridiagonal. Este tema será tratado no Capítulo 6.

Como ilustração das potencialidades dos splines em evitar a possibilidade de grandes oscilações
entre pontos sucessivos, a Fig. 13 apresenta a aproximação de um spline cúbico, em [-5,5] à
1
função f ( x ) = já apresentada no parágrafo 2.8. A oscilação obtida com o spline cúbico
1+ x
2

é desprezável quando comparada com a do polinómio de interpolação da Fig. 8.

Figura 13 - Spline cúbico (n=8) para a função de Runge em [-5,5].

2.11 Quadro resumo dos esquemas de interpolação

Esquema de Vantagens Inconvenientes


interpolação
Lagrange Forma conveniente. Trabalhoso para cálculo manual.
Fácil de programar.
Newton A ordem do polinómio pode ser É necessário construir uma tabela
alterada facilmente. A avaliação de diferenças.
dos erros é fácil.
Lagrange utilizando Os erros são mais uniformemente Pontos de base distribuídos não
pontos de Chebyshev distribuídos do que no caso de uniformemente.
pontos igualmente espaçados.
Hermite O rigor é grande pois utilizam-se São necessários valores da
também valores de derivadas. derivada.
Spline cúbico Aplicável a qualquer número de É necessária a resolução de um
pontos de base. sistema de equações.

- 160 -
Capítulo 3 Interpolação

Exercícios propostos

1. Do perfil de um vale, que vai ser atravessado por uma estrada, obtiveram-se os seguintes
valores relacionando a distância ao início do vale (x) com a respetiva profundidade (h):

x (m) 0 10 30 50 60
h (m) 0.0 22.5 31.5 12.5 0.0

A estrada manter-se-á horizontal e a uma cota h=0. Sabendo que se pretende construir uma
ponte para atravessar o vale, recorra ao polinómio interpolador de Lagrange, ou de Newton,
para determinar a altura de um pilar a construir a uma distância de 20 m do início do vale,
considerando que a cota do topo do pilar será h=0.
2. Construir o polinómio interpolador para a função y=cos(πx), escolhendo os pontos:

xi 0 1/3 1/2
yi 1 1/2 0

Calcular ainda uma aproximação para o valor da função em x=1/6 e determinar um limite
superior para o erro dessa aproximação.

3. Seja f uma função que nos nós {−1, 1, 3} tem como polinómio interpolador

p2 ( x ) = 6 x 2 − 2 x + 3
a) Sabendo que f [−1, 1, 2] = 4, calcule o polinómio de grau 3 que interpola f nos nós anteriores
e também em x3 = 2.
b) Sabendo ainda que f ( IV ) ( x) = 24 , para todo x  R , determine a expressão analítica de f.

4. Considere a seguinte tabela de valores de uma função f :

x 0 2 4
f(x) -32 8 -8
Determine a forma analítica de f(x), sabendo que f é um polinómio e que:
f [ 0 ,1, 2 ] = − 10 , f [ 0 ,1, 2 , 4 , x ] = 3 ( para x  R ,  de 0,1,2,4) .

5. Uma empresa apresenta os seguintes lucros em função das vendas:

Nº peças vendidas (milhares) 1 2 3 4 5


Lucro (milhares de $) 11.2 15.3 17.1 16.9 15.0

Qual o número de peças a serem vendidas de forma a maximizar o lucro? Justificar.

- 161 -
Capítulo 3 Interpolação

6. Considere a seguinte tabela de valores de uma função f (x) :

x -1 0 2
f(x) 1 5 -5

Sabendo que: f ( x) = x 3 + a2 x 2 + a1 x + 5 (com a1 e a2 reais) determine, através do polinómio


de Newton em diferenças divididas, o valor de f(4).

7. Considere a seguinte tabela de valores de uma função f :

xi -1 0 1 2
f (xi) 1 1 1 2

a) Usando a fórmula de Newton com diferenças divididas, construa o polinómio interpolador


de f de grau menor ou igual a 3.
b) Sabendo que f ' ' ' ( x ) = 4 x − 1 , utilize o resultado da alínea anterior para determinar a
expressão exata de f.

8. Com que grau de exatidão se pode calcular 115 , através de um polinómio interpolador,
escolhendo os pontos de base x0=100, x1=121 e x2=144 ?

9. Pretende-se construir uma tabela para a função f ( x) = ln x no intervalo [1,2], com nós
equidistantes, de modo a que o erro cometido quando se interpola linearmente na tabela não
−5
exceda em valor absoluto 0.5 10 . Determinar o espaçamento h a dar aos nós.

10. Considere o seguinte conjunto de pontos correspondentes a uma função f(x)


x -1 0 1 2
y 3 1 1 λ

Sabendo que f ( x) = 2 x + a 2 x + a1 x + a0 com a0, a1 e a2 constantes reais responda ás


3 2

seguintes questões sem calcular os valores das referidas constantes:

a) Mostre que  f ( x0 ) = 12 (sem efetuar a tabela de diferenças progressivas).


3

b) Elabore a tabela de diferenças progressivas e determine o valor de λ.

c) Determine o valor de f(3).

11. Escrever o polinómio interpolador na forma de Lagrange para interpolar a função ln(x) no

- 162 -
Capítulo 3 Interpolação

intervalo 1  x  2 utilizando 4 pontos de Chebyshev. Calcular um limite superior do erro da


aproximação para x=1.

12. Calcular um valor aproximado de 55, utilizando o polinómio cúbico de Hermite com base
nos valores da função e 1ª derivada de x nos pontos x0=49 e x1=64.

13. Um desvio entre duas vias de caminho de ferro paralelas deverá ser um polinómio de 3º grau
unindo os pontos de coordenadas (0,0) e (4,2) e tangente às retas y=0 e y=2, como se mostra na
Figura. Obter a equação do referido polinómio.

14. Seja a função f(x) definida como:

 0 para − 1  x  − 0.25

f(x) =  1 − | 4 x | para − 0.25  x  0.25
 0 para 0.25  x  1

a) Determinar polinómios de grau 2 e 4 que interpolem f(x) em pontos igualmente espaçados no


intervalo [-1,1]. Verifique graficamente o erro cometido na interpolação.

b) Ajustar um spline cúbico natural à função f(x), utilizando 5 pontos igualmente espaçados
entre -1 e 1. Comparar a curva obtida com o polinómio de grau 4 obtido na alínea anterior e
comentar os resultados.


 x − 3x + 2 x + 1
3 2
1 x  2
15. Verifique se a seguinte função: S ( x) =  é um spline

 − x + 9 x − 22 x + 17 2  x  3
3 2

cúbico natural em 1  x  3. Justifique.


16. Na tabela são indicadas as distâncias médias de travagem, d[m], necessárias para
imobilizar um dado veículo em função da respetiva velocidade de circulação. Estime a

- 163 -
Capítulo 3 Interpolação

distância média necessária para imobilizar o veículo quando este se desloca a uma velocidade
de 40 Km/h, recorrendo a uma função “spline” cúbica natural, S(v), tal que:


 a (v − 30) + b (v − 30) + c (v − 30) + 50
3 2
se 30  v  50
S (v ) = 

 − 0.0025 (v − 50) + 0.075 (v − 50) + 2.5 (v − 50) + 80
3 2
se 50  v  60

17. Considere a seguinte tabela de valores de uma função f (x):

xi 1 2 3
f (xi) 2 1 1

a) Estime o valor de f (2.5) utilizando a fórmula de Newton em diferenças progressivas.

b) Determine os valores dos 6 coeficientes: a, b, c, d, e, f , de forma que a seguinte função:

 a x 3 + b x 2 − 0.5 x + c se 1 x  2

S ( x) = 
 − 0.25 x 3 + d x 2 + e x + f se 2  x  3

seja um spline cúbico natural que interpole a função f. Justifique a sua resposta. Utilize o
resultado obtido para estimar f (2.5) .

c) Usando a fórmula de Newton determine a equação do polinómio, p(x) , que interpola os


dois pontos extremos da Tabela 1 e tal que: p' (1) = 1 e p' (3) = 2 . Utilize p(x) para interpolar
f (2.5) e efetue um breve comentário às estimativas obtidas nas três alíneas.

- 164 -
C APÍTULO 4
___________________________________________________________________________________________________

APROXIMAÇÃO. MÉTODO DOS MINIMOS QUADRADOS.

1. Introdução

No capítulo anterior (interpolação) estudamos uma forma de lidar com funções matemáticas
definidas por uma tabela de valores. Frequentemente, no entanto, estas tabelas são obtidas com
base em dados experimentais contendo erros inerentes ao método utilizado. Além do mais, esses
erros inerentes não serão geralmente previsíveis com nenhum grau de certeza.
Para ilustrar o problema, considere-se uma série de y
medições de natureza física (xi,yi) i=0,1,...m, onde
cada yi foi obtido experimentalmente e aproxima o
valor duma função f no ponto xi. (ex. x - percentagem
de cimento , y - resistência à compressão do betão).
Estes valores podem representar-se num gráfico
cartesiano formando uma " nuvem de pontos " x
(Figura 1). Figura 1 – “Nuvem de pontos”
A relação funcional y=f(x) pode ser completamente desconhecida e a sua forma sugerida pelo
gráfico dos pontos, consistindo o problema na procura da curva y= g(x) que melhor se ajuste,
num dado sentido, à "nuvem de pontos" observada. Tal decisão exige alguma prática e é muitas
vezes uma simples questão de bom senso. Nestas condições a função g(x) diz-se uma
aproximação da relação funcional desconhecida y=f(x). Noutros casos, a teoria em que a
experiência se baseia pode sugerir ou mesmo fixar o tipo de relação existente entre as variáveis.
Note-se que, mesmo no caso teórico em que existe uma relação funcional entre x e y,
experimentalmente esta nunca é realizada de forma perfeita, pois as medições efetuadas na
prática estão sempre afetadas de erros aleatórios.
Como os valores tabelados não são "exatos" não é razoável nestes casos utilizar interpolação, ou
seja, exigir que a função aproximante satisfaça exatamente os dados. De facto, em vez de se
recorrer a um polinómio que passe exatamente por todos os pares de valores xi, f(xi) com
i=0,1,...m, uma melhor abordagem será a de fazer passar a função aproximante, g(x), o mais
próximo possível dos pontos (xi,yi).
Vamos supor que a forma da função g(x) é conhecida a menos de um certo numero de
parâmetros, g(x)=g(x ;1,2,...,n), e vamos deter-nos na questão de definir um critério que
permita a determinação dos parâmetros 1,2,...,n

- 165 -
Capítulo 4 Aproximação

2. O critério dos mínimos quadrados


Represente (xi,yi) o conjunto de m pontos tabelados e

~
y = g ( x) (1)

a função aproximante (o tilde `~` indica tratar-se de um valor aproximado de y).

Define-se o desvio (resíduo) como a diferença entre o valor tabelado e o correspondente valor
da função aproximante no ponto xi:

 i = yi − ~y i = yi − g ( xi ) (2)

Geometricamente, i mede a distância vertical desde o ponto Pi(xi,yi) ao gráfico da função


aproximante g(x), como mostra a Figura 2.

Figura 2 – Desvios 1 , 2, ..., m nas abcissas x1 , x2, ..., xm.

É intuitivo afirmar que "a função que melhor se ajusta aos dados (pontos) será aquela que
minimiza a soma dos desvios i, de cada ponto observado (xi,yi), à dita função", ou seja fazer
com que:
m m m

  i =  ( yi − ~y i) =  [ yi − g ( xi) ]
i =1 i =1 i =1
(3)

seja mínimo. Suponhamos, no entanto, que temos apenas dois pontos (m=2) como se ilustra na
Figura 3(a).
Se pensarmos em g(x) como uma reta da forma: y = a x + b então, naturalmente, a "melhor" reta
é a que passa através de ambos os pontos porque para aquela reta (3) é zero. No entanto, para a
reta a tracejado representada na Figura 3(a) a soma dos desvios é também nula, já que os dois
desvios são iguais em módulo, mas de sinais contrários (1 negativo e 2 positivo).

- 166 -
Capítulo 4 Aproximação

. .
2
.
1
.
.
(a) (b)
Figura 3 – Definição do critério de ajuste para o caso de uma reta.
(a) minimizar a soma dos desvios;
(b) minimizar a soma dos módulos dos desvios.

O passo seguinte seria pensar minimizar a soma dos módulos dos desvios. Este critério será
também inadequado, como se pode ver no caso dos 3 pontos ilustrado na Figura 4. Efetue-se a
hipótese de que dois dos três pontos têm a mesma abcissa x (isto não é uma situação anormal, já
que muitas vezes os experimentos são duplicados). A "melhor" reta passará obviamente através
da média dos experimentos duplicados. No entanto, qualquer linha que se encontre entre as linhas
a tracejado terá a mesma soma dos módulos dos desvios. Como obtemos um resultado ambíguo,
não devemos utilizar este critério.

Poderíamos aceitar o critério de fazer mínima a magnitude do máximo desvio absoluto

max yi − ( a xi + b )
i=1,2 ,...,m

designado critério minimax. Este critério é complexo do ponto de vista matemático e, por outro
lado, atribui geralmente demasiado peso a um ponto com grande desvio.

O critério usual é minimizar a soma dos quadrados dos desvios, o critério dos mínimos
quadrados. Esta abordagem dá substancialmente mais peso a um ponto que está fora do
alinhamento dos restantes dados, mas não permite que tal ponto domine completamente a
aproximação. Uma razão adicional para preferir a abordagem dos mínimos quadrados, é de
natureza estatística. Se os dados tiverem a sua média distribuída de modo linear, os valores
obtidos pelo método dos mínimos quadrados são estimativas corretas para a equação que
descreve a média.

Analise-se, em primeiro lugar, o caso mais simples que ocorrerá quando existir uma relação
linear entre y e x.

- 167 -
Capítulo 4 Aproximação

3. Regressão linear
O problema geral de encontrar a reta dos mínimos quadrados que melhor se ajusta a um conjunto
de pontos envolve minimizar:

E (a,b) =   i2 =   yi − (a xi + b)
m m
2

i =1 i =1

relativamente aos parâmetros a e b. Para ocorrer um mínimo, é necessário que (condições de 1ª


ordem):
 m m

a
 [ yi − (a xi + b) ]2 = 2  ( yi − a xi − b ) (− xi ) = 0
i =1 i =1
e
 m m


 b i =1
[ yi − ( a xi + b ) ]2 = 2  (y − a x − b ) ( − 1) = 0
i =1
i i

Forma-se assim um sistema de duas equações a duas incógnitas (a e b) que vai permitir a
determinação dos coeficientes da relação linear. Desenvolvendo o sistema virá:

 m 2 m m

 
a x i + b  x i =  xi y i
 i =1 i =1 i =1
 m m
a

 i =1 x i + b m =  yi
i =1

denominadas equações normais, que podem ser resolvidas utilizando as técnicas descritas no
Capitulo 6. Em particular, é fácil verificar que a e b são dados por:
m m m m m m m
m  xi y i −  xi  yi  xi 2
 y i −  xi x i yi
a= i =1 i =1 i =1
2
; b= i =1 i =1 i =1 i =1
2
m m  m  m 
m  xi 2 −  xi  m  xi 2 −   xi 
i =1  i =1  i =1  i =1 

O denominador destas expressões apenas se anula quando todos os xi forem iguais. Então,
sempre que entre os valores tabelados existirem dois ou mais valores distintos de x, a solução
existe e é única.

Pode demonstrar-se que a reta ajustada pelo método dos mínimos quadrados passa sempre pelo
1 m 1 m
ponto ( x , y ) em que: x =  xi
m i =1
e y = y.
m i =1 i

- 168 -
Capítulo 4 Aproximação

Exemplo 4.1: Considere os pontos (xi,yi) apresentados na seguinte Tabela. Para determinar
a reta dos mínimos quadrados que aproxima estes dados, completou-se a tabela como se
ilustra no presente exemplo.

xi yi xi2 xiyi g(xi)=1.538 xi-0.360

1 1.3 1 1.3 1.18


2 3.5 4 7.0 2.72
3 4.2 9 12.6 4.25
4 5.0 16 20.0 5.79
5 7.0 25 35.0 7.33
6 8.8 36 52.8 8.87
7 10.1 49 70.7 10.41
8 12.5 64 100.0 11.94
9 13.0 81 117.0 13.48
10 15.6 100 156.0 15.02
55 81.0 385 572.4

As equações normais implicam que:

10 (572.4) − 55 (81)
a= = 1.538 ;
10 (385) − 55 2

385 (81) − 55 (572.4)


b= = − 0.360
10 (385) − 55 2

O gráfico desta reta e os pontos dados são apresentados


na Figura 4. A soma dos quadrados dos desvios é:
10
E =  [ yi − g ( xi ) ]2  2.34 .
i =1

Figura 4 – Regressão linear

- 169 -
Capítulo 4 Aproximação

4. Modelos de dois parâmetros

No caso mais geral de g(x) ser uma função aproximante dependente de dois parâmetros,
digamos α e β, as equações normais para ajustar g(x) aos m pontos P1(x1,y1), P2(x2,y2),...,
Pm(xm,ym), são:
 
E(g) = 0 e E(g) = 0 (4)
 

com,
m
E ( g ) =  [ yi − g ( xi ) ]2 (5)
i =1

Estas equações são especialmente fáceis de resolver quando g(x) pode expressar-se como:
g ( x) = α  1 ( x) +   2 ( x) (6)

i.e., como um modelo linear de dois parâmetros, do qual a regressão linear é um caso
particular (1=x e 2=1). De facto, quando a função g(x), sob a forma (6), se substitui em (5)
as equações normais (4) convertem-se em:

 m m m

    1 ( x i )  1 ( x i ) +    1 ( x i )  2 ( x i ) =   1 ( x i ) yi
 i =1 i =1 i =1
 m m m
   (x )  (x ) + 
   
2 i 1 i  (
2 xi )  (
2 xi ) =  2 ( x i ) yi
i =1 i =1 i =1

As equações anteriores são lineares em α e β. A forma matricial deste sistema linear 2x2 é:

 1 ( xi ) 1 ( xi )   ( x )  ( x )      ( x ) y
1 i i 
  =  
1 i 2 i
 (7)
  2 ( xi ) 1 ( xi )   ( x )  ( x )
2 i 2 i      2 ( xi ) yi 
 representa 
m
em que .
i =1

Resumindo, as equações normais de qualquer modelo linear de dois parâmetros (6) conduzem
ao sistema linear de 2x2 (7) que pode facilmente ser resolvido para determinar o vetor de
parâmetros dos mínimos quadrados α e β.

Por outro lado, uma vez determinados α e β, a soma dos quadrados dos desvios (5) pode ser
determinada através da expressão simplificada:

- 170 -
Capítulo 4 Aproximação

m
 m m

E(g) =  yi2 −    1 ( xi ) yi +   2 ( xi ) yi  (8)
i =1  i =1 i =1 
Os somatórios dentro do termo entre parêntesis são as componentes do termo independente
de (7).
O exemplo que se segue mostra a forma simples como podem resolver-se as equações normais
(7) quando a função aproximante é um modelo linear de dois parâmetros da forma (6), e a
dificuldade que pode apresentar resolver as equações normais quando são não-lineares.

Exemplo 4.2: Ajuste as seguintes funções:


(a) reta: g1(x)=ax+b, (b) hipérbole: g2(x)=β+α/x, e (c) exponencial: g3(x)=α eβx,
aos seguintes 5 pontos:
P1(1,5.12), P2(3,3), P3(6,2.48), P4(9,2.34), P5(15,2.18)
e determine, em cada caso, o somatório do quadrado dos desvios.

Solução (a) - Para o caso da reta como 1=x e 2=1 a forma matricial (7) das equações
normais escreve-se:

 352 34      82.76 
   =  
 34 5      15.12 
já que:
m m m m

 xi = 34 ,  yi = 15.12 ,  xi2 = 352 ,  xi yi = 82.76


i =1 i =1 i =1 i =1
Assim:
5 (82.76) − 15.12 (34)
 = = − 0.166027
5 (352) − 342
e
352 (15.12) − 34 (82.76)
 = = 4.15298
5 (352) − 342
ou seja,
g1 ( x) = − 0.166027 x + 4.15298
A soma do quadrado dos desvios será com base em (8):

E ( g1) = 51.5928 − [ (− 0.166027) (82.76) + (4.15298) (15.12) ]  2.54

Como E(g1)=2.54 não é um valor pequeno quando comparado com os valores de yi


(2.18 yi 5.12), é desnecessário verificar graficamente que g1(x) não ajusta bem os
dados.

- 171 -
Capítulo 4 Aproximação

Exemplo 4.2:
Solução (b) - A hipérbole g2(x)=α/x+β é um modelo linear de dois parâmetros, com
1=1/x e 2=1. Assim o sistema (7) escreve-se:

 9361 151    6.93867


 8100 90     
    =  
151 5      15.12 
 90   
pois:
m m m m
1 151 1 9361 yi

i =1 xi
=
90
,  y = 15.12 ,  x
i =1
i
i =1
2
i
=
8100
, x
i =1 i
= 6.93867

Da resolução do sistema obtém-se: α=3.14678 e β=1.96808. Assim,

g2(x) = 1.96808 + 3.14678 / x.

A soma do quadrado dos desvios, calculada a partir de (5),

E ( g 2) = 51.5928 −  (1.96808) (15.12) + (3.14678) (6.93867)  0.00096

sugere que a hipérbole de mínimos quadrados y=g2(x) é adequada para ajustar os dados.
A Figura 5 confirma graficamente que g2(x) ajusta bem os dados, o que não ocorre com
g1(x).

Figura 5 – Verificação gráfica dos ajustes com g1(x), g2(x) e g3(x)

- 172 -
Capítulo 4 Aproximação

Exemplo 4.2 (cont.):


Solução (c) - Como g3(x)=α e β x não é um modelo linear (não é uma soma "ponderada"
de duas funções) não é possível determinar α e β através de (7). Neste caso devemos
5
minimizar (5), E3 ( g ) =  [ y i −  e  xi ] 2 , resolvendo as equações normais (4), ou seja:
i =1

  5
 5

  g 3

E ( ) = i =1
2 [ yi −  e
 xi
]

[ yi −  e
 xi
] = 2 
i =1
[ e xi − yi ] e xi = 0

  E(g ) =  xi 
5 5

  3 
i =1
2 [ y i −  e ]

[ y i −  e
 xi
] = 2 i =1
[ e xi − yi ] xi e xi = 0

ou ainda,

 5 2  xi 5
  e −  y i e  xi = 0
 i =1 i =1
 5 5

  
2  xi 
x i e − xi y i e xi = 0
i =1 i =1

Este sistema 2x2 é não linear em β e, como tal, não pode resolver-se analiticamente.
Assim apenas é possível ser resolvido numericamente, como se verá no Cap. 6. Da sua
resolução obter-se-ia: α = 4.677, β = - 0.07472, pelo que:

g 3 ( x) = 4.677 e −0.07472 xi

A soma do quadrado dos desvios, terá de ser calculada a partir da definição, já que (8)
não é válida,
5
E ( g 3) =  [ 4.677 e −0.07472 xi − yi ]2  1.84
i =1

Como 1.84 não é um valor pequeno quando comparado com os valores de yi, g3(x) não
se ajusta bem aos dados, como se confirma na Figura 5.

5. Linearização
No exemplo anterior apercebemo-nos das dificuldades da determinação dos parâmetros de
mínimos quadrados de um modelo não linear g(x)= α e β x. Para esta g(x) em particular, uma
alternativa para não ter que resolver equações não lineares é logaritmizar ambos os membros
x
de y =  e e observar que:

- 173 -
Capítulo 4 Aproximação

y =  e  x  ln y =  x + ln   Y = a X + b

com
Y = ln y , X = x , a =  e b = ln 
x
Assim, o ponto (x,y) está na curva y =  e no plano xy se e só se o ponto (X,Y)=(x,lny)
estiver na linha reta Y=βX+lnα no plano XY.

x
Exemplo 4.3: Linearize g ( x) =  e e efetue o seu ajuste aos 5 pontos:

P1(1,5.12), P2(3,3), P3(6,2.48), P4(9,2.34), P5(15,2.18).


Compare o resultado com o obtido no exemplo anterior.

Vimos anteriormente que as equações de transformação Y = ln y e X=x convertem


x
y = e na linha reta Y = a X + b , em que a=β e b=ln α.

i) Os pontos transformados Qi(xi,ln yi) são:


Q1(1,1.6332), Q2(3,1.0986), Q3(6,0.90826), Q4(9,0.85015), Q5(15,0.77932).

ii) As equações normais para ajustar estes dados transformados podem escrever-se
como:
 352 34  a   29.7197 
    =  
 34 5   b  5.2695 

cuja solução é: a = - 0.050601 , b = 1.3980.

iii) Como a = β e b = ln α, os parâmetros de g(x) são


 = eb  4.047 e  = a  − 0.05060
isto é, g ( x) = 4.047 e −0.05060 x .

O procedimento anterior pode aplicar-se a qualquer modelo não linear g(x) para o qual possam
encontrar-se transformações de linearização X=X(x,y), Y=Y(x,y) que transformem a curva
y=g(x) numa reta Y=aX+b. A não ser que y seja transformado de um modo proporcional em
Y, a função g(x) obtida por este processo não minimizará E(g). No entanto, pode ser
facilmente encontrada (sem ter que resolver sistemas não lineares), e em geral ajusta bem os
dados, sempre que g(x) seja uma função adequada.

- 174 -
Capítulo 4 Aproximação

Os pontos P1, P2, ..., Pm aparecem frequentemente sobre uma curva que é monótona e convexa
em todo o intervalo de ajuste [x1,xm]. Para que g(x) se ajuste bem a tais dados, o seu gráfico
não deve ter mínimos ou máximos, nem pontos de inflexão em [x1,xm]. A Figura 6 apresenta
seis funções g(x) de dois parâmetros que se utilizam com frequência para ajustar dados
monótonos convexos e mostra como os seus parâmetros se relacionam com as intersecções e
assimptotas dos respetivos gráficos.

Figura 6 – Exemplo de seis funções aproximantes para ajustar dados monótonos convexos.

- 175 -
Capítulo 4 Aproximação

A Tabela 1 proporciona as transformações de linearização para os modelos não lineares da


Figura 6, a saber, g1(x)-g4(x).

Forma linear
i y=g(xi) Y= b + a X X= Y= a= b=
1 y = e x ln y = ln  +  x x ln y  ln 

2 y = x ln y = ln  +  ln x ln x ln y  ln 

3   1 1 
y= y= − xy x y y −
 +x    

4 x y y
y= y = -  y − 
 +x x x
Nota: O ponto (0,0) deve ser eliminado do conjunto de dados antes de utilizar as funções g2(x) e g4(x) (ver colunas X= e Y=).

Tabela 1: Linearização de algumas funções não lineares.

6. Modelos lineares de n parâmetros

Vamos generalizar o procedimento anterior para uma função aproximante g(x) que seja um
modelo linear mas com um número qualquer de parâmetros. Uma função aproximante é um
modelo linear de n parâmetros se for uma soma ponderada de n funções prescritas 1(x), 2(x),...,
n(x), i.e., da forma:
n
g ( x) =  1  1 ( x) +  2  2 ( x) + ... +  n  n ( x) =   k  k ( x) (9)
k =1

sendo γk, o coeficiente da k-ésima função, o k-ésimo parâmetro. Tais funções g(x) são
importantes porque as correspondentes equações normais são lineares, independentemente do
número de parâmetros. O modelo exponencial de dois parâmetros y =  e  x e o modelo potência
y =  x  não são modelos lineares porque o parâmetro β não é um "peso" neste sentido. Por

outro lado, a hipérbole "desfasada"  + do exemplo 4.2 e o logaritmo "desfasado"  +  ln x
x
são modelos lineares de dois parâmetros para os quais 1(x)=1. Um modelo linear de n
parâmetros usado com frequência é o modelo polinomial de grau (n-1):

- 176 -
Capítulo 4 Aproximação

p ( x) =  1 +  2 x +  3 x2 + ... +  n x n −1 (10)

Observe-se que a maioria dos modelos lineares não possuem gráficos correspondentes a uma
linha reta; isso apenas ocorre para y(x) =a x + b.

Pretende-se minimizar:
m n
E ( g ) =  [ y i − g ( xi ) ]2 , com g ( xi ) =   k  k ( xi )
i =1 k =1

 E(g)
pelo que se deve resolver as equações normais = 0 , i.e,
 j

m
 m
 n

 2 [ y i − g ( xi ) ]
i =1  j
[ yi − g ( xi )] = 2  
i =1 
 y −
k =1
i k  k ( xi )   j ( xi ) = 0

para j=1,2, ..., n. Cancelando o 2, invertendo a ordem dos somatórios i e k, e passando os termos
em yi para o segundo membro da equação obtém-se o sistema (nxn) desejado

n
 m  m

  j
k =1  i =1
 ( x i )  k ( x i )  k   j ( xi ) y i

 =
i =1
j = 1,2 ,..., n

ou, em forma matricial:

   1 ( xi )  1 ( xi )   1 ( xi )  2 ( xi ) ...   1 ( xi )  n ( xi )    1    1 ( xi ) yi 
    
   2 ( xi )  1 ( xi )   2 ( xi )  2 ( xi ) ...   2 ( xi )  n ( xi )    2     2 ( xi ) yi 
   =  
 ... ...   ...  ... 
    
   n ( xi )  1 ( xi )   n ( xi )  2 ( xi ) ...   n ( xi )  n ( xi )   n     n ( xi ) yi 
m
em  que representa  , ou seja, o somatório estendido a todos os pontos dados.
i=1

Resolvendo o sistema linear anterior por qualquer método do Cap. 6 obtém-se o vetor de
parâmetros dos mínimos quadrados γ=[γ1 γ2 ...γn]T cujos elementos são os coeficientes de g(x).

- 177 -
Capítulo 4 Aproximação

Exemplo 4.4: A concentração C de um composto pretendido, t segundos após se


agregarem a uma solução liquida duas soluções de custo elevado, satisfaz (Figura 7):
C = C (t ) = Css + a e −0.47 t + b e −0.06 t

Em face do custo, é importante obter o máximo rendimento detendo a reação quando esta
estiver tão próxima quanto possível de tmax segundos, ou seja, quando C atinge o máximo.
Como a e b dependem da pureza das soluções reagentes, a sua determinação terá de ser
experimental e requer efetuar um ensaio prévio da reação medindo o valor de C em alguns
tempos t selecionados

Figura 7 – Concentração t segundos após o início da reacção

t (seg) 3 9 12 18 24 30

C (%) 4.1 4.3 3.9 3.4 3.1 2.7

Solução: A função aproximante será neste caso


−0.47 t −0.06 t
g (t ) = c + a e +be

que é um modelo linear com 1(t)=1, 2(t)=e-0.47t, 3(t)=e-0.06t. Assim, as equações normais
escrevem-se:

 1 yi 
  1  e−0.47 ti  e−0.06 ti   c   
    
  e−0.47 ti  e−0.94 ti  e−0.53 ti   a =   e
− 0.47 t i
yi 
   b  
  e−0.06 ti  e−0.53 ti  e−0.12 ti 
      e − 0 .006 t i
yi 

que para os 6 pontos dados se converte em:

 6 0.262474 2.64659   c   21.5 


     
 0.262474 0.0598304 0.214210   a  =  1.07818
     
 2.64659 0.214210 1.47298   b   10.1642
     

- 178 -
Capítulo 4 Aproximação

Exemplo 4.4: (cont.)

A solução do sistema anterior permite obter os 3 parâmetros desejados,

a  − 4.9029 , b  3.8066 , c  2.1187

Para obter a estimativa desejada de tmax, basta verificar que será solução de:

C ' (t ) = − 0.47 a e −0.47t − 0.06 b e −0.06t = 0


ou seja
0.47 a
e
( 0.47 − 0.06 ) t
=−
0.06 b
pelo que:
 0.47 a 
ln  − 
 0.06 b  1  0.47 a 
t max = = ln  −   5.638
0.47 − 0.06 0.41  0.06 b 

Caso particular: regressão polinomial

A função aproximante polinomial de grau (n-1)


n
p n −1 ( x) =  1 +  2 x +  3 x 2 + ... +  n x n −1 =   k x k −1
k =1

é um modelo linear para o qual 1(x)=1, 2(x)=x,..., n(x)=xn-1. Como:

 j ( xi )  k ( xi ) = xi j −1 xik −1 = xi j+k − 2

a forma matricial das equações normais para pn-1(x) é

 m  xi  xi2 ...  xin −1    1   yi 


     
  xi  2  3 ...  xi n 
  2   xi y i 
 xi xi     
  2  3  xi4 ... n +1
 xi   33  =   xi y i 
2
 xi xi
   
 ... ... ... ... ...   ...  ... 
    
    n    xi yi 
  xi  xin  xin +1  xi2 n − 2 
n −1 n -1
...

- 179 -
Capítulo 4 Aproximação

7. Índice de determinação

Se uma função aproximante g(x) não é adequada para ajustar um dado conjunto de dados, então,
mesmo o "melhor" ajuste não será "bom". Seria útil ter um índice que pudesse indicar se g(x)
proporciona um bom ajuste sem ter que traçar o seu gráfico. Para este propósito, a soma do
m
quadrado dos desvios S =  [ yi − g ( xi ) ]2 tem duas deficiências. Em primeiro lugar, mesmo
i =1

que o ajuste seja "bom" S pode ser grande (sugerindo um mau ajuste) simplesmente porque o
número de pontos m é grande. Em segundo, e mais importante, é que o facto de S ser "pequeno"
depende da escala utilizada para os valores de y. Por exemplo, se y for um comprimento pode
reduzir-se por um fator de 10000 (sem modificar o ajuste) apenas registando y em metros em
vez de centímetros.

Os especialistas em estatística determinam utilizando o quociente definido por:


m

 [g(x ) − y ]
i
2

R= i =1
m

[ y − y ]
i =1
i
2

1 m
em que y =  y é a média dos yi. R é denominado índice de determinação. O denominador
m i =1 i
de R é proporcional à variância dos yi pelo que constitui uma medida da dispersão dos yi em
relação à sua média, y . O numerador, que nunca é superior ao denominador, indica o quanto esta
dispersão é "explicada" por g(x). Assim, 0  R ( g )  1 em que o melhor ajuste corresponde a
um valor de R próximo a 1. Como o numerador e denominador de R utilizam o mesmo número
m de pontos e a mesma escala para as ordenadas (y), R é um fator adimensional que não tem as
deficiências apontadas a S.

- 180 -
Capítulo 4 Aproximação

Exercícios propostos
1. Ajustar, através do método dos mínimos quadrados, uma curva do tipo: y = a e x + b e − x ao
seguinte conjunto de pontos:

x 0 0.5 1.0 1.5 2.0 2.5


y 5.02 5.21 6.49 9.54 16.02 24.53

2. Quando se utiliza uma bateria de V volts para carregar um condensador a voltagem v (em
t

volts) através do mesmo após um tempo t satisfaz a equação: v = V − (V − v0 ) e , na qual v0 é
a voltagem inicial (t=0) e τ é a constante temporal do circuito. Supor que foram obtidas as
seguintes leituras quando se utilizou uma bateria de 10 volts (V=10)

t (seg.) 1 2 3 4
v (volts) 6.48 7.26 8.22 8.66
t
Ajustar uma função do tipo y (t ) =  e aos dados transformados (t, y), em que y é uma função
adequada de v, e deduzir estimativas para v0 e τ. Utilizar os resultados para aproximar v quando
t=10 seg.

3. A variação da população de uma cidade portuguesa no século XX é dada pela seguinte tabela:

Ano 1940 1950 1960 1980 1990


População 12320 13167 15070 20321 22651

a) Supondo um crescimento geométrico da população, P =   t estimar, utilizando o método


dos mínimos quadrados, o valor da população no ano 2000.
t
b) Repetir o cálculo de a) utilizando como função aproximante P = . Qual das duas funções
 +t
se ajusta melhor aos pontos dados? Justificar.

4. Considere a seguinte tabela de valores de uma função f :

x -1 0 1 2
f(x) 6 3 2 1
1
Pretende-se um ajustamento dos pontos da tabela por uma função do tipo: g ( x) = .
A x+B

- 181 -
Capítulo 4 Aproximação

Determine as constantes A e B pelo método dos mínimos quadrados.

5. Experimentalmente foram efetuadas medições da viscosidade cinemática de uma água poluída


em função da respetiva temperatura. Os dados foram ordenados na seguinte tabela:

Temperatura 4 10 20 30 50 80
T(oC)
Viscosidade cinemática 1.66 1.35 1.09 0.91 0.57 0.38
υ (10-6 m2s-1)


a) Obtenha a aproximação de mínimos quadrados da forma  = que melhor se ajusta
 +T
aos dados tabelados. Com base na mesma calcule uma estimativa da viscosidade cinemática para
uma temperatura de 100oC.
b) Explique porque é preferível num problema deste tipo utilizar uma função aproximante em
lugar de uma função interpoladora.

6. Considere a seguinte curva experimental que relaciona duas variáveis x e y:

x -1 0 1 2
y 0.14 1.00 7.39 54.60

a) Pretende-se expressar a relação entre estas duas variáveis sob uma forma matemática
k2 x k2 x
utilizando o método dos mínimos quadrados. Qual das funções: y = k1 e ou y = k1 x
poderá ajustar-se ao conjunto de pontos fornecido? Justificar.

b) Determinar os parâmetros k1 e k2 pelo método dos mínimos quadrados e obter o valor de x


a que corresponde y =100.

7. Um automóvel deslocando-se em linha reta ao longo de uma estrada é cronometrado em


determinados pontos do percurso. Os dados obtidos foram ordenados na seguinte tabela:

tempo 0.0 3.0 5.0 8.0 13.0


t [s]
distância 0.0 75.0 128.0 207.0 331.0
e(t) [m]

Obtenha a aproximação de mínimos quadrados da forma a x b que melhor se ajusta aos dados
tabelados. Com base nessa aproximação, calcule uma estimativa para o valor do tempo t que o
automóvel leva a percorrer os segundos 100 metros.

- 182 -
CAPÍTULO 5
___________________________________________________________________________

INTEGRAÇÃO NUMÉRICA

1. Introdução
Se uma função f(x) é continua num intervalo [a, b] e é conhecida a sua primitiva F(x), o
integral definido daquela função entre a e b pode calcular-se pela fórmula fundamental do
cálculo integral:

b
I =  f ( x) dx = F (b) − F (a ) (1)
a

No entanto, em muitos casos, o processo anterior pode ser complexo (exigindo, por exemplo,
integração por partes, ou uma longa busca até encontrar uma mudança de variável apropriada)
ou mesmo não ser possível porque:

i) é impossível encontrar uma primitiva de f(x) expressa analiticamente como, por


exemplo, no caso das conhecidas integrais elípticas:

1 + (K 2 − 1 ) x2
1

 1 − x2
dx
0

que representam a quarta parte do perímetro da elipse de semi-eixo maior 1 e semi-eixo


menor K (figura 1).

Figura 1 – Perímetro da elipse

ii) f (x) é conhecida apenas num número finito de pontos como acontece, por exemplo,
no caso de dados experimentais.

Em qualquer dos casos resulta imprescindível obter métodos numéricos, para um cálculo
aproximado de (1). A integração numérica de uma função permite o cálculo aproximado do
integral definido (1) com base apenas em alguns valores discretos da função a integrar. Essa

- 183 -
Capítulo 5 Integração numérica

aproximação é também conhecida como quadratura numérica, nome que tem origem na ideia
básica de seguir a definição do integral, aproximando a área correspondente por áreas de
retângulos. Na prática, aplicam-se modificações mais sofisticadas desta ideia, como será
mostrado nos parágrafos seguintes.

A técnica normalmente utilizada consiste em substituir a função integranda f(x) por outra g(x)
que aproxima f(x), no intervalo [a,b], e seja mais facilmente integrável (figura 2), e estabelecer:
b b

 f ( x) dx   g ( x) dx
a a
(2)

Felizmente os polinómios pn(x) constituem aproximações razoáveis e são de fácil integração.


De facto, estas duas características justificam a grande importância dos polinómios no âmbito
dos métodos numéricos.

y
y= g(x)
f(xn)
y= f (x)
f(x1)
f(x2)
f(x0)

a=x 0 x1 x2 ... x n =b x

Figura 2 - Integração numérica por substituição de f(x) por função aproximante g(x)

Uma vez que existem inúmeras hipóteses de integração numérica, dependendo do espaçamento
dos pontos de base, do grau do polinómio e da localização dos pontos de base no intervalo de
integração, é também abundante a literatura em integração numérica. No entanto, as técnicas
mais utilizadas podem ser classificadas em dois grupos:

a) Os intervalos são escolhidos ou impostos previamente; normalmente, se tal é possível, são


selecionados pontos de base equidistantes (no caso de uma função definida por pontos tal pode
não ser possível) obtendo-se as conhecidas fórmulas de Newton-Cotes.
b) Os intervalos e a sua localização são selecionados por análise do problema (analogamente ao
que ocorria na interpolação com as raízes de Chebyshev), de forma a se obter o maior rigor
possível para um dado número de pontos de base (nós). Um exemplo deste grupo de métodos é
a quadratura de Gauss, que será estudada em 3.

- 184 -
Capítulo 5 Integração numérica

2. Intervalos escolhidos ou impostos previamente

2.1 Caso geral: pontos de base com espaçamento arbitrário

Suponhamos que dada uma função f(x), continua, e um intervalo de integração [a,b] se pretende
calcular, de uma forma aproximada
b
I =  f ( x) dx (3)
a

conhecendo n+1 pontos de base (nós): x0,x1,...,xn, com espaçamento arbitrário, que não
necessitam de estar em [a,b] (figura 3), e os correspondentes valores funcionais f(xi) (i=0,1,...,n).

Figura 3 - A aproximação f(x)pn(x) é satisfatória para x[a,b].

Como os n+1 pontos pertencem à curva y=f(x) (Figura 3), raciocinemos da seguinte forma:
se f ( x)  p n ( x) em [a ,b] , então :

b b

 f ( x) dx   pn( x) dx (4)
a a

Substituindo p n (x) , na forma de Lagrange (Cap. 3, página 138), em (4)


b b b b

 f(x) dx   p ( x) dx = f ( x )  l
a a
n 0
a
0 ( x) dx + ... + f ( x n)  l n ( x) dx
a

a fórmula de quadratura de (n+1) pontos pode escrever-se:

- 185 -
Capítulo 5 Integração numérica

 f ( x) dx  w0 f ( x0 ) + ... + wn f ( xn ) (5)
a

com
b b n  x− x j 

wi = l i ( x) dx =    dx
 xi − x j 
j =0  
, para i = 0,1,..., n (6)
a a
j i

Como se observa (Eq. 5) o cálculo exato do integral foi substituído pelo cálculo de uma soma
ponderada (pesada) de valores discretos da função integranda. Por esta razão os coeficientes
w0 , w1 , ... , wn de (5) são designados por pesos. Note-se que estes pesos wi, dados por (6), são

independentes da função f(x), dependendo apenas de a e b e da disposição dos pontos base xi.

Uma regra de integração diz-se de grau de exatidão ou precisão n se integrar exatamente todos
os polinómios de grau n, mas existir pelo menos um polinómio de grau n+1 que não é por ela
integrada exatamente. Uma conclusão imediata é a de que o grau de exatidão de (5) é n. Em
consequência, em particular, a fórmula (5) é exata para y=xk (k=0,1,...., n) o que, como se mostra
no exemplo 5.1, permite obter um critério alternativo a (6) para o cálculo dos pesos wi.
O erro da aproximação (4), representado graficamente, no caso geral, pela diferença de áreas
sombreadas da figura2 , é dado analiticamente por:

b b b
E =  f ( x) dx −  p n ( x) dx =  [ f ( x) − p n ( x)] dx
a a a

ou introduzindo a expressão do erro (Eq. 20, Cap. 3, página 137)

( n +1)
( )
b n
f
E=
(n + 1) !
 ( x − x ) dx
i =0
i (7)
a

Aparentemente a determinação do erro poderia ser efetuada facilmente com a integração de (7).
No entanto, tal não é possível pois ξ depende de x. No caso do produto (x-x0) ... (x-xn) não mudar
de sinal em [a,b], pode aplicar-se o seguinte teorema:

• Teorema do valor médio para integrais: Se duas funções f(x) e g(x) são continuas para
axb e g(x) mantém o sinal em [a,b], então existe uma abcissa ξ (a<ξ<b) tal que:
b b


a
f ( x) g ( x) dx = f ( )  g ( x) dx
a
(8)

- 186 -
Capítulo 5 Integração numérica

pelo que (7) se pode escrever:


( n +1)
( )
b n
f
E=
(n + 1) !   ( x − x ) dx
a i =0
i (9)

com ξ no intervalo mais pequeno que contem a, b e todos os pontos de base.

Exemplo 5.1: Determinar os pesos w0, w1 e w2 para assegurar grau de exatidão 2 a:


1

 f ( x) dx  w
0
0 f (−1) + w1 f (0) + w2 f (2)

Aplicar a expressão resultante a f(x)=ex/5.

Para o intervalo de integração [a,b]=[0,1] e os três pontos de base x0=-1 , x1=0 e x2=2, as
expressões (6) para i=0,1,2 , escrevem-se:

x ( x − 2) ( x +1)( x − 2) ( x +1) x
1 1 1
w0 =  dx , w1 =  dx , w2 =  dx
0
(−1) (−3) 0
1(−2) 0
32

pelo que w0=-2/9 , w1=13/12 e w2=5/36. De (5), obtém-se:


1
2 13 5
 f(x) dx  − 9
0
f (−1) +
12
f ( 0) +
36
f ( 2) (10)

Um processo alternativo consiste em fazer f(x)=xk (k=0,1,2) em (5). Tendo em


consideração que:
1 1 1
1 1
 dx = 1 ,  x dx = , x dx =
2

0 0
2 0
3
obtém-se o sistema:
 w0 + w1 + w2 = 1


− w0 + 0 + 2  w2 = 1
 2

 1
 w0 + 0 + 4  w2 =
 3

cuja solução conduz novamente a: w0= -2/9, w1=13/12 e w2=5/36.

Aplicando a expressão (10) a f(x)=ex/5 obtém-se:


1 x 1 0 2
2 − 5 13 5 5 5
 e 5 dx  −
0
9
e +
12
e +
36
e  1.109

- 187 -
Capítulo 5 Integração numérica

Exemplo 5.2: Utilize a expressão (9) para determinar a precisão obtida no exemplo 5.1.

A estimativa do erro (9) é aplicável a este caso pois:


2

 ( x − x ) = ( x + 1) x ( x − 2)
i =0
i

permanece negativo em [a,b]=[0,1]. Como:


1
13
 ( x + 1) x ( x − 2) dx = − 12
0

o erro de truncatura vem dado por


13
E=− f ( ) com − 1    2
72
Para f(x)= e x/5,
13 1 /5
E=− e com − 1    2
72 125

ou seja, a aproximação 1.109 obtida no exemplo 5.1 sobrestima o valor exato entre:
1 2
13 1 − 13 1
e 5  0.0012 e e 5  0.0022
72 125 72 125
De facto,
1 x

 e 5 dx = 1.107
0

2.2 Pontos de base equidistantes

Quando os pontos de base utilizados são equidistantes o processo de aproximar


b b

 f ( x) dx   p
a a
n ( x) dx (11)

é conhecido por método de Newton-Cotes. Se os limites de integração são pontos de base da


interpolação (x0=a e xn=b) obtém-se as "fórmulas de integração fechadas" de Newton-Cotes.
Caso contrário, ou seja, a e/ou b não sejam pontos de base da interpolação as fórmulas de
integração dizem-se abertas.

Todas as fórmulas de integração, abertas e fechadas, podem ser geradas por (5) escolhendo os
pontos de base apropriados e os pesos por forma a que fórmula seja exata se f ( x)  p n ( x) . No
entanto, uma vez que se considera que os pontos de base são equidistantes parece mais lógico

- 188 -
Capítulo 5 Integração numérica

escolher uma forma do polinómio interpolador especialmente adaptado a este caso como pode
ser o polinómio de Newton de diferenças progressivas (Cap. 3):

f ( x0 +  h) = p n ( x0 +  h) + Rn ( x0 +  h)
com:
 ( −1) 2  ( −1)( − 2) 3
p n ( x0 + h) = f ( x0 ) +  f ( x0 ) +  f ( x0 )+  f ( x0 )
2! 3!
(12)
 ( −1) ( − 2) ... ( − n +1) n
+ ... +  f ( x0 )
n!

e Rn ( x0 +  h) , dado por:
( n+1)
f ( )
Rn ( x0 +  h) = h n+1
 ( −1) ( − 2) ... ( − n) (13)
(n +1) !
com ξ(x,x0,x1,...,xn).
Transformando a variável de integração de x para α, como:
x − x0
= obtem - se dx = h d
h

e o intervalo de integração [a, b] em x passa a ser [0, n] na variável α, pelo que:

b b n

 f ( x) dx   p
a a
n ( x) dx = h  p n ( x0 +  h) d
0
(14)

e,
n
E = h  R n ( x0 +  h) d (15)
0

2.2.1 Regra do Trapézio

O caso mais simples de integração fechada de Newton-Cotes é apresentado na figura 4. A função


f(x) é aproximada pela reta que une os pontos (a,f(a)) e (b,f(b)). Geometricamente a regra
trapezoidal aproxima a área sob a curva f(x) mediante a área do trapézio a sombreado na figura.
O erro será dado pela área entre p1(x) e f(x). Analiticamente, vamos demonstrar que:

- 189 -
Capítulo 5 Integração numérica

b−a
b
I =  f ( x) dx = [ f (a ) + f (b) ] + E (16)
a
2
(b − a )3
E=− f ( ) ,  [a,b] (17)
12

f(b) y=f(x)

f(a)
Área = b-a [f(a)+f(b)]
2

a b x
b-a

Figura 4 - Regra do trapézio

Na figura 4 os dois pontos de base, x0=a e x1=b são utilizados para determinar o polinómio de
1º grau, p1(x)=p1(x0+αh), ou seja, a linha reta que aproxima f(x).

Substituindo p1(x0+αh) dado por (12), em (14) obtém-se

b 1 1

 f(x) dx  h  p ( x
a 0
1 0 +  h ) d = h  [ f ( x 0 ) +   f ( x 0 ) ] d
0

     f ( x0) 
2 1
= h  f ( x0) +  f ( x0) = h  f ( x0 ) +
 2  0  2 

Como:
f ( x0) = f ( x0 + h) − f ( x0)

obtém-se,

 f ( x 0 + h) − f ( x 0)  h
b

 f ( x) dx  h  f ( x ) + 0  = 2  f ( x0 ) + f ( x1)
a
2 

O erro cometido quando se utiliza a aproximação trapezoidal é dado pelo integral (15)
substituindo o resto pelo valor dado por (13) para n=1. Assim,

- 190 -
Capítulo 5 Integração numérica

f ( )
1 1
E = h  R1 ( x0 +  h) d = h 3
  ( − 1) d
0 0
2!

Como o produto α (α-1) é sempre negativo para 0<α<1, utilizando o teorema do valor
médio para integrais (8), obtém-se

f ( ) 3 f ( )
1 1 3
h 
E = h   ( − 1)
2 ! 0
3
d = h ( 2
−  ) d  = − f ( )
0
2! 12

o que demonstra (17).

Exemplo 5.3: Calcular, através da regra do trapézio, o valor aproximado de


1
I =  e −x dx . Determinar o erro cometido (Nota: o integral anterior não tem solução
2

0
analítica; considere que o seu valor com 7 casas decimais corretas é I = 0.7468241).

Resolução: Aplicando (16) vem:

b−a
( )
 f (a) + f (b) = 1− 0 e0 + e −1  0.68394
1
I =  e −x dx 
2

0
2 2

Como: I = 0.7468241 (com 7 c.d.c.) , então E  0.62910−1 . A magnitude do erro

percebe-se analisando a Figura 5.

1
− x 2 dx
Figura 5 - Aproximação de e
0
através da regra do trapézio.

- 191 -
Capítulo 5 Integração numérica

Regra dos trapézios composta


''
A equação (17) mostra que o erro da fórmula trapezoidal é proporcional a f (apenas se anula
''
quando f se anular, isto é quando f (x) for linear, o que era de esperar por observação da figura
4) e diminui proporcionalmente a h3 quando h=b-a é reduzido. Então, no caso de b-a não ser
suficientemente pequeno, o erro da integração E pode não satisfazer a precisão desejada. Para
diminuir o erro podemos subdividir o intervalo inicial [a,b] em n subintervalos [xi, xi+1] de
amplitude constante h=(b-a)/n e aplicar (16) a cada um deles (ver figura 6).
y
fi
f f
1 f f n-1
2 i-1 f y=f(x)
n
f0 f3

h h h h h h h h

a= x 0 x1 x2 x3 x i-1 xi x n-1 x n =b x
Figura 6 - Regra trapezoidal composta

Representando f(xi) por fi, o resultado de utilizar a regra trapezoidal para aproximar o integral
em cada um dos n subintervalos [xi, xi+1] é

b
h h h h
 f ( x) dx  2 ( f
a
0 + f 1) +
2
( f 1 + f 2) + ... + ( f n − 2 + f n −1 ) + ( f n −1 + f n)
2 2
e
3 n −1 3 2


h h h
E=− f ( i ) = − n f ( ) = − (b − a) f ( )
12 i =0 12 12
ou seja,

b
 n−1 
 f ( x) dx 
h
( f 0 + 2 f1 + 2 f 2 ++ 2 f n−1 + f n ) = h  f 0 + 2  fi + f n  (18)
a
2 2 i=1 

(b − a) 2
E=− h f ( ) ,  [a,b] (19)
12

A partir da equação (19) pode concluir-se que o erro da fórmula trapezoidal composta, para um
dado intervalo de integração [a,b], é proporcional a h2.

- 192 -
Capítulo 5 Integração numérica

Exemplo 5.4 : O sólido de revolução, mostrado na figura 7, é obtido por rotação em torno
2
 x
do eixo Ox da curva: y = 1 +   , 0  x  2
2

Figura 7 - Sólido de revolução

a) Calcular o seu volume através da regra trapezoidal composta para n=2 e n=4.
b) Sabendo que o valor exato é I=11.7286, verifique que o erro decresce
proporcionalmente a h2.

Solução:
a) O volume é dado por:
2
2
  x 2 
I =  f ( x) dx em que f ( x) =   1 +   
0   2  
Para n=2, h=2/2=1
1
I  [ f (0) + 2 f (1) + f (2) ] = 0.5  [ 1 + 2 1.5625 + 4 ] = 12.7627
2
Para n=4, h=2/4=0.5
0.5
I [ f (0) + 2 f (0.5) + 2 f (1) + 2 f (1.5) + f (2) ] = 11.9896
2

b) Foram efetuadas integrações para outros valores de n, cujos resultados se apresentam


na tabela que se segue:

n h Ih Eh
2 1. 12.7627 -1.0341
4 0.5 11.9896 -0.2610
8 0.25 11.7940 -0.0654
16 0.125 11.7450 -0.0164
32 0.0625 11.7327 -0.0041
64 0.03225 11.7296 -0.0010

- 193 -
Capítulo 5 Integração numérica

Os resultados permitem comprovar que o erro decresce proporcionalmente a h2 (figura 8).

Figura 8 - Erro proporcional a h2.

1
Exemplo 5.5: Calcular o integral I =  e −x dx através da regra dos trapézios composta
2

com n=2 e o respetivo majorante do erro. Quantos pontos serão necessários utilizar ao
aplicar a regra do trapézio para garantir que o cálculo aproximado do integral tem erro
inferior a 0.510−3 ?
Resolução: Pela expressão (18) com n = 2 (3 pontos) vem que:
1
I =  e −x dx 
0.5 
+ e−1   0.73137 .
2 0.5 2
 1+ 2 e
0
2  

Como: I = 0.7468241 (com 7 c.d.c.)  E  0.15510−1 (1 c.d.c.)

A resposta à questão de quantos pontos são necessários para garantir um erro inferior a
0.510−3 está na expressão do erro (19) que pode ser escrita como:

ET 
(b − a )3 M , com M 2 = max f ''( x)
2
12 a xb

2
Ora pode verificar-se que f ''( x) = e− x (4 x 2 − 2) é monótona (crescente) pois:
2
f '''( x) = e− x (−8 x 2 +12 x) = 0  x =  1.5  1.224 .

O máximo em valor absoluto é M 2 = 2 ( f ''(0) = −2 e f ''(1)  0.736 ). Logo,


1− 0
E  2 h 2  0.510−3  h 2  310−3  n 18.25  n =19
12
Conclui-se que são necessários 20 pontos !

- 194 -
Capítulo 5 Integração numérica

Uma característica da regra trapezoidal composta, com grande importância prática, é a de que
no caso de se pretender integrar uma dada função f(x) entre dois limites fixos a e b (caso do
exemplo anterior), poder-se-á duplicar o número de subintervalos utilizados previamente sem
desperdiçar o trabalho anteriormente efetuado.

Suponhamos que tínhamos aplicado a regra trapezoidal subdividindo o intervalo inicial [a,b] em
n subintervalos de amplitude h (figura 9) e obtido o resultado aproximado T[h], ou seja,
I=T[h]+E[h]. É fácil verificar que o resultado aproximado que obteremos duplicando n, isto é,
utilizando intervalos de amplitude h/2 (figura 9), que designaremos por T[h/2] é dado por:

h 1 h h
T [ ] = T [h] +  f impar [ ] (20)
2 2 2 2

em que fimpar[h/2] é o somatório dos valores da função nos pontos médios dos subintervalos
utilizados para obter T[h].

Figura 9 - Efeito da duplicação do número de subintervalos sobre os pontos de base.

Exemplo 5.6: Aplicar a expressão (20) na resolução da alínea a) do exemplo 5.4.

Por exemplo, para n=4


12.7627
I + 0.5  [ f (0.5) + f (1.5) ] = 11.9896
2

2.2.2 Regra de Simpson

Na tentativa de melhorar a aproximação trapezoidal poder-se-á utilizar um polinómio de


interpolação quadrático, p2(x), entre 3 pontos de base igualmente espaçados, x0, x1 e x2 para
aproximar f(x) em [a,b] (ver figura 10). A integração desse polinómio entre a e b, de forma
análoga ao efetuado para a regra trapezoidal (Rosa, p. 165), permite obter a conhecida regra de
Simpson, traduzida analiticamente por:

- 195 -
Capítulo 5 Integração numérica

b
h
I =  f ( x) dx = ( f 0 + 4 f1+ f 2) + E (21)
a
3

5
h ( 4)
E=− f ( ) , x0    x2 (22)
90

y=f(x)

y=p (x)
2

x0 x1 x2 x
=

a b
Figura 10 – Regra de Simpson

Geometricamente, enquanto a regra trapezoidal aproxima, em cada intervalo h, a área sob a


curva f(x) mediante a área de um trapézio, a regra de Simpson utiliza a área sob uma parábola
para aproximar a área sob a curva f(x) entre dois intervalos adjacentes (a sombreado na figura
10). Seria expectável que tal como a regra trapezoidal é exata para polinómios de 1º grau, a regra
de Simpson fosse exata para polinómios de grau 2 (ou inferior). Com alguma surpresa a
expressão do erro (22) mostra que a regra de Simpson é também exata se f(x) for um polinómio
de terceiro grau. É, portanto, um método bastante preciso para o esforço exigido e a fórmula não
é significativamente mais complexa do que a da regra trapezoidal. Estas características são
responsáveis pela ampla utilização da regra de Simpson.

Para se perceber esta inesperada exatidão extra da regra de Simpson, observe-se que o erro
inerente a aproximar f(x) por um polinómio de 3º grau é, de acordo com (13), dado por:

f (3) ( )
R2 ( x0 +  h) = h3  ( −1) ( − 2)
3!

No caso de f(x) coincidir com um polinómio de 3º grau, f (3)(x)=k, sendo k uma constante. A
função:
k
R2 ( ) = h3  ( −1) ( − 2)
6

- 196 -
Capítulo 5 Integração numérica

é uma função ímpar simétrica, pelo que:


2
E = h  R2 ( ) d = 0
0

Tal como a regra trapezoidal, a de Simpson é usualmente aplicada na forma composta (figura
11):

b
I =  f ( x) dx 
h
 f 0 + 4 f1 + 2 f 2 ++ 2 f n−2 + 4 f n−1 + f n =
a
3
(23)
h n/2 n / 2−1 
=  f 0 + 4 f 2i−1 + 2  f 2i + f n 
3 i=1 i=1 

(b − a ) 4
E=− h f
( 4)
( ) ,  [a,b] (24)
180

f(x1)
f(x0)
f(x4)
y= f (x)

f(x6)

a=x0 x1 x2 x3 x4 x5 x 6 =b x

Figura 11 – Regra de Simpson composta (n=6).

Note-se que a regra de Simpson composta requer que o domínio de integração [a,b] seja dividido
em um número par de intervalos.

A equação (24) mostra que o erro da fórmula de Simpson composta, para um dado intervalo de
integração [a, b] , é proporcional a h4.

- 197 -
Capítulo 5 Integração numérica

Exemplo 5.7: Utilizar a regra de Simpson composta com n = 2 , 4 , 8 , 16 e 32 para


resolver o problema do exemplo 5.4.

Resolução. Para n=2, h=2/2=1


1 1
I [ f ( 0) + 4 f (1) + f ( 2) ] =  [ 1 + 4  1.25 2 + 4 ]  11.7809
3 3
Para n=4, h=2/4=0.5
0.5
I [ f (0) + 4 f (0.5) + 2 f (1) + 4 f (1.5) + f (2) ] = 11.7319
3
Os cálculos para os outros valores de n seriam análogos. Os resultados e erros
correspondentes são resumidos na seguinte tabela:

n h Ih Eh
2 1. 11.7809 -0.0523
4 0.5 11.7318 -0.0032
8 0.25 11.7288 -0.0002
16 0.125 11.7286 0.0
32 0.0625 11.7286 0.0
64 0.03225 11.7286 0.0

Uma comparação dos resultados anteriores com os resultados correspondentes do


Exemplo 5.4, permite concluir que, para um mesmo número de intervalos, a regra de
Simpson composta é significativamente mais precisa que a regra trapezoidal composta.
Por exemplo, a precisão da regra de trapezoidal composta utilizando 32 intervalos
(n=32) é equivalente à precisão da regra de Simpson composta com n=4.

2.2.3 Fórmulas de Newton-Cotes. Caso geral.

Referimos em 2.2 que os métodos de integração numérica obtidos por integração do


polinómio interpolador de Newton quando os pontos de base são equidistantes são as
fórmulas de integração de Newton-Cotes. Em particular quando x0=a e xn=b temos as
fórmulas fechadas de Newton-Cotes cujas expressões, no caso mais geral, são dadas por (14).
As regras dos trapézios e de Simpson são casos particulares correspondentes, respetivamente,
a n=1 e n=2. Para maiores valores de n podem obter-se novas expressões. Refira-se, no
entanto, que todas estas fórmulas podem ser escritas na forma mais geral (5):
b

 f ( x) dx = w0 f ( x0 ) + w1 f ( x1 ) + ... + wn f ( xn ) + E
a
isto é, como uma soma de valores ponderados da função nos pontos de base. Para uma mais

- 198 -
Capítulo 5 Integração numérica

completa identificação da expressão anterior com as regras trapezoidal e de Simpson, (5)


pode rescrever-se, numa forma explicitamente adaptada às fórmulas de Newton-Cotes, como:

 f ( x) dx = k h [ w0 f ( x0 ) + w1 f ( x1 ) + ... + wn f ( xn ) ] + E (25)
a

na qual x0, ..., xn são os n+1 pontos de base igualmente espaçados que dividem [a,b] em n
subintervalos de amplitude h, sendo k e w coeficientes que dependem de n (regra de
integração), e cujos valores se apresentam na Tabela 1.

n k wi (i=0,1,...,n) E
1 1 3
1 1, 1 − h f ''
2 12
1 1
2 1, 4, 1 − h5 f IV
3 90
3 3
3 1, 3, 3, 1 − h5 f IV
8 80
2 8
4 7, 32, 12, 32, 7 − h 7 f VI
45 945
5 275
5 19, 75, 50, 50, 75, 19 − h 7 f VI
288 12096
1 9
6 41, 216, 27, 272, 27, 216, 41 − h 9 f VIII
140 1400
7 8183 9 VIII
7 751, 3577, 1323, 2989, 2989, − h f
17280 518400
1323, 3577, 751
8 2368 9 VIII
8 989, 5888, -928, 10496, -4540, − h f
14175 467775
10496, -928, 5888, 989

Tabela 1 - Constantes das fórmulas fechadas de Newton-Cotes

Como se verifica na Tabela 1, a partir de n=8 aparecem pesos com sinais positivos e
negativos. Do ponto de vista do efeito dos erros de arredondamento, esta característica é
nociva pois pode promover o aparecimento de cancelamento subtrativo. Por este facto, as
fórmulas de Newton-Cotes de grau elevado não são muito aconselháveis.

- 199 -
Capítulo 5 Integração numérica

3. Quadratura de Gauss

Como vimos nos parágrafos precedentes, dados N pontos de base xi (i=1,2, ..., N) a fórmula:
b

 f ( x) dx 
a
w1 f ( x1) + w2 f ( x 2) + ... + wN f ( x N ) (26)

é exata sempre que f(x) seja um polinómio de grau  N-1.

Até ao momento estudamos métodos de integração numérica para os quais temos tido plena
liberdade de escolha na localização dos pontos de base a utilizar. A pergunta que agora se pode
colocar é: será que poderemos diminuir o erro de truncatura, tal como ocorria na interpolação
com o método de Chebyshev, se para um dado número de subintervalos determinarmos a
localização dos seus extremos (pontos de base) de forma a obter a precisão máxima possível?
A resposta é sim. Gauss concluiu que a ordem de precisão de (26) pode ser mais que duplicada
até 2N-1, se os xi são tratados como variáveis, em lugar de especificados a priori.

Consideremos primeiramente uma função y = f(x) especificada no intervalo normalizado [-1,1].


O caso geral pode reduzir-se facilmente a este caso mediante uma substituição linear da variável
independente, como observaremos posteriormente. O problema pode então colocar-se da
seguinte forma: como escolher os pontos de base x1, x2, ..., xN e os pesos w1, w2,...,wN de forma
que a fórmula de quadratura:
1


−1
f ( x) dx  w1 f ( x1) + w2 f ( x2) + ... + wN f ( x N ) (27)

seja exata para todos os polinómios de grau n tão elevado quanto possível. Como temos 2N
parâmetros a determinar, xi e wi (i=1,2, ..., N) e, um polinómio de grau 2N-1 fica determinado
por 2N coeficientes, o seu grau mais elevado possível é no caso geral evidentemente n=2N-1.

Para assegurar ordem de precisão 2N-1 a (27) é necessário e suficiente que (27) se converta
numa igualdade para:
f ( x) = 1, x , x 2 , ... , x 2 N −1

Para vermos o processo de determinar as 2N constantes xi e wi analise-se o caso mais simples


de considerar dois pontos de base (N=2). Relembre-se que com dois pontos de base (regra do
trapézio) a integração apenas era exata para uma função linear (polinómio de 1º grau). O
próximo exemplo mostra, no entanto, que com uma escolha criteriosa da localização desses dois
pontos a integração numérica pode garantir ordem de precisão 3 (exata para um polinómio de
grau menor ou igual que 3).

- 200 -
Capítulo 5 Integração numérica

Exemplo 5.8 : Determinar os valores dos pesos w1 e w2 e dos nós x1 e x2 que garantem
ordem de precisão 3 à fórmula de integração de dois pontos

I = w1 f ( x1 ) + w2 f ( x2 ) + E (28)

Considere-se o intervalo normalizado [-1,1] e o integral


1
I =  f ( x) dx
−1

Como w1, w2, x1 e x2 são tratadas como variáveis, vamos obrigar que E=0 (ou seja, que I
venha exato) para f(x)=1, x, x2 e x3. Introduzindo cada um destes valores de f(x) em (28)
obtemos as seguintes 4 equações:

 1
 w1  1 + w2  1 =  1 dx = 2
 −1
 1
 w1 x1 + w2 x2 =  x dx = 0
 −1
 1
 w1 x12 + w2 x22 =  x 2 dx =
2
 3
 −1
 1

 w1 x13 + w2 x23 =  x3 dx = 0
 −1

Este sistema não linear (4x4) é possível de ser resolvido analiticamente se pensamos que
os nós x1 e x2 devem estar localizados simetricamente em relação à origem, ou seja,
x1 = − x2 . Das anteriores primeira e segunda equações, obtém-se:

w1 = w1 = 1

1
A quarta equação é automaticamente satisfeita. Da terceira equação, x12 = , pelo que,
3
1 1
x1 = − e x2 =
3 3

No caso geral o problema consiste em resolver um sistema de equações não-linear. É, no


entanto, possível demonstrar que os xi em (27) são as raízes reais do polinómio de Legendre de
grau N, o que permite obviar à resolução do sistema. Por essa razão o método é designado por
quadratura de Gauss-Legendre.

- 201 -
Capítulo 5 Integração numérica

A Tabela 2 mostra os nós xi e os pesos wi de Gauss-Legendre para N=2,3,4,5. Pode verificar o


facto geral dos nós de Gauss-Legendre estarem localizados simetricamente no intervalo aberto
(-1,1) e mais densamente espaçados próximo dos pontos extremos de (-1,1). Assim todas as
fórmulas de quadratura de Gauss-Legendre são fórmulas de integração abertas.

Em geral, o intervalo de integração é arbitrário [a,b] e não [-1,1]. Para quaisquer valores a e b,
pode determinar-se uma fórmula de quadratura de N pontos, com ordem de precisão 2N-1, para
b

 f ( x) dx
a
(29)

utilizando a Tabela 2 e a mudança de variável

2 x−a −b
x→t : t =
b−a
de forma que

b+a b−a b−a


x= + t  dx = dt
2 2 2

Utilizando esta transformação, o integral (29) pode escrever-se como:

b−a  b+a b−a 


b 1


a
f ( x) dx =
2 
−1
f
 2
+
2
t  dt

e, portanto:

b−a
b

 f(x) dx 
a
2
[ w1 f ( x1) + w2 f ( x 2) + ... + wN f ( x N ) ] (30)

com
b+a b−a
xi = + ti , i = 1, 2, ... , N (31)
2 2

Assim, para aproximar o integral (29), com ordem de precisão 2N-1, utiliza-se (31) e os nós de
Gauss-Legendre tabelados ti para obter x1, x2, ... , xN (os N nós gaussianos para [a,b]) e depois
utilizam-se estes valores em (30) conjuntamente com os pesos de Gauss-Legendre tabelados wi.

- 202 -
Capítulo 5 Integração numérica

N wi ti E
Nº ptos. pesos nós erro trunc.

2 w1 = 1.000000000 t1 = -0.577350269
 f(4)(ξ)
w2 = 1.000000000 t2 = 0.577350269

3 w1 = 0.555555556 t1 = -0.774596669

w2 = 0.888888889 t2 = 0.0  f(6)(ξ)

w3 = 0.555555556 t3 = 0.774596669

4 w1 = 0.347854845 t1 = -0.861136312

w2 = 0.652145155 t2 = -0.339981044
 f(8)(ξ)
w3 = 0.652145155 t3 = 0.339981044

w4 = 0.347854845 t4 = 0.861136312

5 w1 = 0.236926885 t1 = -0.906179846

w2 = 0.478628670 t2 = -0.538469310

w3 = 0.568888889 t3 = 0.0  f(10)(ξ)

w4 = 0.478628670 t4 = 0.538469310

w5 = 0.236926885 t5 = 0.906179846

etc. ... ... ...

Tabela 2 - Pesos e nós das fórmulas de Gauss-Legendre

- 203 -
Capítulo 5 Integração numérica

Exercícios propostos

1. Determinar os pesos w0, w1 e w2 para assegurar precisão de 2ª ordem a


1
 f ( x ) dx = w0 f ( −1) + w1 f (1) + w2 f ( 2)
0

Aplicar a expressão resultante a f(x)=ex. Os resultados obtidos para ex não são tão bons como
os obtidos para ex/5 no exemplo 5.1. Porquê?

−1

 xe
2x
2. Calcular, utilizando a fórmula dos trapézios, o valor aproximado do integral: dx para
−2

que o erro não exceda 0.5x10-3.

3. Determine, com erro absoluto inferior a 0.5x10-1, um valor aproximado para o integral

2
definido, I =  e x sin( x) dx utilizando a regra dos Trapézios.
0

4. Determine, com erro absoluto inferior a 0.5x10-3 um valor aproximado para o integral
7
definido: I =  x e − x dx utilizando a regra de Simpson.
4

1
5. Dado o integral definido: I =  f ( x) dx e a seguinte tabela:
−1

x -1.0 -0.5 0 0.5 1.0


f(x) 4.5 2.25  -0.75 -1.5

a) Determine aproximações de I utilizando as regras dos trapézios composta (n=4) e de


Simpson simples.
b) Atendendo aos resultados de a) e sabendo que f ' ' ( x) = 2 ,  x  [−1, 1] determine o valor
de  e o valor exato do integral I. Justifique.

5.2
6. Pretende-se calcular o valor do integral: I=  ln x dx
4

a) Qual o menor número de pontos a considerar no intervalo de integração, para que o erro
cometido no cálculo do integral não exceda 5x10-4 quando se utiliza a fórmula trapezoidal.
b) Calcular o valor aproximado de I. Poder-se-á, nestas mesmas condições, utilizar a fórmula
de Simpson? Justificar.

- 204 -
Capítulo 5 Integração numérica

5
7. Considere o integral I=  f ( x) dx , com f(x) dada pelos valores da tabela ;
−1

xi -1 0 1 5
fi -2.0 -2.0 0.0 28.0

a) Através das fórmulas de integração de Newton-Cotes que estudou (Simpson e Trapézios),


calcule o valor do integral.
b) Sabendo que a função f(x) é uma função polinomial, determine o respetivo grau.
c) Efetue o cálculo do integral através da regra de Simpson simples. Qual o erro do valor
numérico calculado? Justifique.

2 x , x  0
8. Dada uma função definido por: f ( x) = 
 2 x, x  0

a) Determine o polinómio de grau 2 que interpola f(x) em pontos igualmente espaçados para
x  [−2, 2 ] .
2
b) Calcule o valor aproximado do integral I =  f ( x) dx , usando a regra de Simpson
−2

simples. Determine o erro do valor numérico calculado e represente-o graficamente.

c) Que espaçamento h terá de usar na regra de Simpson composta ao aproximar I para garantir
um erro “0”. Justifique.

9. A velocidade em queda livre de um paraquedista é descrita pela equação:

gm  − t
c
V (t ) =  1− e m 
c  

na qual, V é a velocidade em m/s, m a massa em kg, g a aceleração da gravidade (9.8 m/s2) e


c uma constante habitualmente designada por coeficiente de resistência. Considere m=68 Kg,
c=12.5 Kg/s e que o paraquedista abre o paraquedas 10 segundos após ter saltado do avião.
Determine, por aplicação da regra de Simpson com erro inferior a 0.50 metros, um valor
aproximado da distância percorrida em queda livre pelo paraquedista até ao momento da
t

abertura do paraquedas. Recorde que: d =  V (t ) dt


0

- 205 -
Capítulo 5 Integração numérica

x
2
10. Considerar a função erf(x) definida por: erf(x) =
 e
0
-t 2
dt

a) Utilizar a regra de Simpson composta para obter o valor de erf(0.5) com 4 casas decimais
corretas. Comparar o resultado obtido com o valor erf(0.5)=0.520499876.
b) Utilizar a quadratura de Gauss-Legendre, com N=3, para determinar o valor de erf(0.5).

1 x
11. Considerar o integral: I =  0 log10 | x 2 - 3 | dx , cujo valor aproximado se pretende
calcular com erro não superior a 0.5*10-3.
a) Calcular o número de pontos necessário para garantir aquela exatidão pela regra dos
trapézios composta.
b) Considerando 4 intervalos calcular o valor aproximado de I pela regra de Simpson.
c) Comparar o valor da alínea b) com o dado pela quadratura de Gauss considerando N=3.

e
x
12. Considere o integral definido: I = cos( x) dx
0

a) Determine qual o número de pontos a utilizar na fórmula dos trapézios para se obter um
valor aproximado de I com erro absoluto inferior a 0.5*10-3. Justifique os cálculos.
b) Sem calcular o valor exato do integral I, diga, justificando se a aproximação obtida na
alínea anterior é por excesso ou por defeito.
c) Compare os resultados obtidos pelas seguintes técnicas de integração:
i) Fórmula dos Trapézios com n=4
ii) Fórmula de Simpson com n=2
iii)Quadratura de Gauss com n=2 (3 pontos)

com o valor exato do integral: I= - (e-+1)/2. e comente os mesmos.

4
13. Considere o integral definido: I =  −1
f ( x) dx e os valores da seguinte tabela:

x -1 -0.5 0 0.5 1 1.5 2 2.5 3.5 4

f(x) -21 0 5 0 -9 -16 -15 0 96 189

a) Com base nos pontos dados da função determine, utilizando as regras dos trapézios e/ou
Simpson, uma aproximação de I tentando minorar o erro da integração. Justifique.
b) Sabendo que f (x) é um polinómio de grau 3 calcule (sem determinar o polinómio) o erro
cometido na aproximação de I calculada em a). Justifique.

- 206 -
CAPÍTULO 6
_______________________________________________________________________________________________________________

RESOLUÇÃO DE SISTEMAS DE EQUAÇÕES

1. Preâmbulo

Neste capítulo abordam-se os métodos de resolução de sistemas de n equações simultâneas a n


incógnitas xi , i =1, 2 , ... , n . No caso geral estes sistemas são representados por:

 f 1 ( x1 , x 2 , ..., x n ) = 0

 f 2 ( x1 , x 2 , ..., x n ) = 0

 
 f n ( x1 , x 2 , ..., x n ) = 0


sendo as funções f i ( x ) , i =1, 2 , ... , n , quaisquer. Inicialmente (parte 1) analisa-se o caso em que
estas funções são lineares, efetuando-se no final do capítulo (parte 2) uma introdução à resolução
de sistemas não lineares.

2. Sistemas de equações lineares

2.1. Introdução

Um sistema de m equações lineares em n incógnitas x1 , x2 , ... , xn é um conjunto de equações


do tipo:

 a11 x1 + a12 x 2 + ... + a1n x n = b1



 a 21 x1 + a 22 x 2 + ... + a 2 n x n = b2
 (1)
 
 a m1 x1 + a m 2 x 2 + ... + a mn x n = bm

Os aij são os coeficientes das incógnitas e os bi são designados por termos independentes. Se
todos os bi são nulos, então (1) é designado por sistema homogéneo. Se pelo menos um dos bi
for diferente de zero, então (1) é designado por sistema não homogéneo.

- 207 -
Capítulo 6 Sistemas de equações

A descrição dos sistemas lineares é bastante simplificada com a introdução de matrizes, pois
permite representar o sistema (1) de forma concisa através de uma simples equação vetorial:
A x =b

em que a matriz dos coeficientes A é a matriz m  n ,

 a11 a12 ... a1n   x1   b1 


     
     
a a ... a2 n  x b2 
A =  21 22 , x =  2 e b= 
 ... ...       
     
am1 am 2 ... amn   xn   bm 
     

x o vetor das incógnitas e b o vetor dos termos independentes. Por outro lado, a álgebra de
matrizes proporciona as ideias e notação necessárias para descrever os diversos métodos de
resolução de (1).

Antes de desenvolvermos alguns algoritmos específicos, analisemos o que queremos dizer com
uma solução e as condições sob as quais a solução existe (não adianta querer calcular uma
solução se ela não existir).

Uma solução de (1) é qualquer conjunto de valores x1 , x2 , ... , xn que satisfazem


simultaneamente as m equações. Se o sistema (1) é homogéneo, ele possui pelo menos a solução
trivial: x1 = 0 , ... , xn = 0 .

Os sistemas lineares podem ter uma solução única, mais que uma solução ou nenhuma solução.
Vamos analisar as condições para que exista uma solução e para que esta seja única.

O nosso interesse em soluções únicas é justificado por razões de ordem prática. Em geral estamos
interessados em resolver problemas relacionados com a modelação de processos contínuos para
os quais se pretende obter um máximo, mínimo ou posição de equilíbrio. Estas posições são em
geral determinadas por uma combinação única de acontecimentos.

Uma condição necessária para um sistema de equações linear ter uma solução única é possuir
pelo menos tantas equações como incógnitas (mn). Um sistema que tenha mais incógnitas do
que equações (n>m) nunca terá solução única. Por outro lado, um sistema com mais equações
que incógnitas (m>n) pode ter uma solução única apenas para um valor particular de b. Por
exemplo,
 x1 =1

 x2 = 1
 + =2
 x1 x 2

- 208 -
Capítulo 6 Sistemas de equações

tem a solução única x1 = 1 , x2 = 1 , enquanto que:

 x1 =1

 x2 = 1
 + =3
 x1 x 2
não tem solução.
Em resumo para que um sistema linear A x = b tenha uma solução única para qualquer valor
possível de b é necessário que o número de equações seja igual ao número de incógnitas (m=n).
No entanto, esta condição não é suficiente como se demonstra em seguida para o caso
bidimensional.
No caso de um sistema 2  2 cada equação é representada por uma reta no plano xOy (x1Ox2).
As coordenadas do ponto de intersecção das duas retas constituem a solução do sistema. Então
existem 3 casos possíveis:
(a) Não existe solução no caso das retas serem paralelas.
(b) Existe uma solução única se as retas se intercetam.
(c) Número infinito de soluções se as retas são coincidentes.

 x + y =1  x + y =1  x + y =1
  
x + y = 0 x − y = 0 2x+2 y=2

Caso (a) Caso (b) Caso (c)

Se o sistema for homogéneo, o caso (a) não pode ocorrer, porque as duas retas passam pela
origem, cujas coordenadas (0,0) constituem a solução trivial.

De forma intuitiva, um sistema é indeterminado (caso c) se uma das equações impõe uma
restrição que já foi imposta pelas outras (equação linearmente dependente) e impossível (caso a)
se uma das equações impõe uma restrição que é incompatível com as impostas por outras.

Em três ou mais dimensões a representação gráfica (planos, hiperplanos) não é tão evidente. No
entanto é fácil constatar que tanto no caso (a) como no caso (c) o determinante do sistema é nulo.
Em geral, quando det (A)=0 a matriz A (e o sistema) é dita singular.

- 209 -
Capítulo 6 Sistemas de equações

Então um sistema linear de n equações a n incógnitas A x = b tem uma solução única para
qualquer b se e só se A é não singular, ou seja, det (A)0.

Dado o nosso interesse em sistemas que tenham solução única vamos a partir de agora restringir
a nossa atenção a sistemas n  n .

2.2 Solução por inversão de matrizes. Regra de Cramer

Como vimos, o sistema de n equações lineares não-homogéneas

 a11 x1 + a12 x 2 + ... + a1n x n = b1



 a 21 x1 + a 22 x 2 + ... + a 2 n x n = b2
 (2)
 
 a n1 x1 + a n 2 x 2 + ... + a nn x n = bn

ou simplesmente
A x =b (3)

no caso do determinante da matriz A, det (A) =A, ser diferente de zero, tem uma solução única.
De facto, supondo que det (A)  0 existe uma matriz inversa A-1. Multiplicando à esquerda ambos
os membros de (3) pela matriz inversa A-1, obtemos

A−1 A x = A−1 b
ou,

x = A−1 b (4)

Vemos então que a solução de um sistema linear pode ser obtido calculando a inversa e formando
o produto A−1 b . Infelizmente, quando n>2, o cálculo direto da inversa A-1 é
computacionalmente mais lento que a resolução do sistema linear A x = b por um método direto.

Utilizando (4), é fácil obter fórmulas para as incógnitas do sistema (3). De facto, de (4) e da
relação:
1
A =
−1
Adj (A)
| A|

obtém-se:
1
x= Adj (A) b
| A|

- 210 -
Capítulo 6 Sistemas de equações

que permite deduzir a regra de Cramer:

| A1 | |A | |A |
x1 = , x 2 = 2 , ... , x n = n
| A| | A| | A|

na qual Ak é o determinante obtido de A substituindo em A a sua k-ésima coluna pela coluna
dos termos independentes (b1, ...,bn).

Teoricamente, a solução definida através da regra de Cramer pode ser utilizada para resolver
sistemas n  n não homogéneos. No entanto, este método de solução requer a determinação de
n+1 determinantes de ordem n, e resulta impraticável para n maior que 3 ou 4. Na prática, existem
métodos mais eficientes (apresentados nos próximos parágrafos) para a resolução de grandes
sistemas de equações. Estes métodos podem dividir-se em dois grupos: métodos diretos, que
são algoritmos finitos, e métodos iterativos, os quais permitem obter a solução de um sistema
com uma dada exatidão mediante processos infinitos convergentes. Naturalmente nenhuma
técnica prática pode realmente ser infinita. O que se pretende dizer é que os métodos diretos em
princípio (ou seja, desprezando os erros de arredondamento) produzirão uma solução exata com
um número finito de operações aritméticas. Um método iterativo, pelo contrário, iria requerer
em princípio um número infinito de operações aritméticas para produzir uma solução exata. Em
outros termos, um método iterativo tem um erro de truncatura, enquanto um método direto não
tem.

Após estudarmos os exemplos mais comuns de ambos os métodos iremos efetuar a sua
comparação. Veremos que ambos são úteis; ambos têm vantagens e limitações.

2.3 Métodos diretos

Os métodos diretos podem classificar-se em duas categorias: métodos de eliminação e métodos


de factorização.

Um método de eliminação consiste na anulação de certos coeficientes aij através de 3 operações


elementares:
(a) reordenação de equações (Ei  Ej) ;
(b) multiplicação de uma equação por um escalar (λEi → Ei);
(c) substituição duma equação pela sua soma algébrica com outra multiplicada por
um escalar (Ei+λEj → Ei).

que embora modificando o aspeto inicial do sistema, o transformam num sistema equivalente

- 211 -
Capítulo 6 Sistemas de equações

(dois sistemas de equações lineares designam-se equivalentes se têm as mesmas soluções) de


solução simples ou imediata.

2.3.1 Método de eliminação de Gauss

Introdução. Solução de um sistema triangular.

Uma matriz quadrada designa-se por triangular inferior se todos os elementos localizados
acima da sua diagonal principal são nulos, triangular superior se todos os elementos
localizados abaixo da sua diagonal principal são nulos, e simplesmente triangular se é triangular
superior ou inferior.

Um sistema linear designa-se por triangular (superior, inferior) se a sua matriz de coeficientes
é triangular (superior, inferior). Os sistemas triangulares são muito fáceis de resolver, como se
ilustra com o seguinte exemplo.

Exemplo 6.1: Resolva os seguintes sistemas triangulares 3x3:

(a) Sistema triangular inferior (b) Sistema triangular superior


 2 x1 =8  2 x1 − 5 x2 − 8 x3 = − 7
 
− x1 + 3 x2 = 11  − x 2 + 3 x3 = − 6
 2 x − x +6 x =9  − 4 x3 = 4
 1 2 3 
Solução (a)

Resolvemos a 1ª equação em ordem a x1, depois a 2ª em ordem a x2 e finalmente a


3ª em ordem a x3 como se segue:

8 11 + x1 11 + 4 9 − 2 x1 + x2 9 − 8 + 5
x1 = = 4 ; x2 = = = 5 ; x3 = = =1
2 3 3 6 6

Solução (b)

Resolvemos a 3ª equação em ordem a x3, depois a 2ª em ordem a x2 e finalmente a


1ª em ordem a x1 como se segue:

4 − 6 − 3 x3 − 6 + 3 − 7 + 5 x2 + 8 x3 − 7 + 15 − 8
x3 = = − 1 ; x2 = = = 3 ; x1 = = =0
−4 −1 −1 2 2

- 212 -
Capítulo 6 Sistemas de equações

O método de resolução do exemplo 6.1(a) designa-se por substituição progressiva porque


determina as incógnitas de qualquer sistema triangular inferior n  n Lx=b (L=[lij]  matriz
triangular inferior), em ordem progressiva:

b1 b − (l i1 x1 + l i 2 x2 + ... + l i,i−1 xi−1 )


x1 = ; xi = i i = 2 ,...,n
l11 l ii

sempre que li,i0 para qualquer i.

De forma análoga, o método de resolução do exemplo 6.1(b) designa-se por substituição


regressiva porque determina as incógnitas de qualquer sistema triangular superior n  n Ux=c
(U=[uij]  matriz triangular superior), em ordem regressiva:

cn c − (u i,i +1 xi +1 + ... + u i,n x n )


xn = ; xi = i i = n − 1,...,1
u nn u ii

sempre que uii0 para qualquer i.

Eliminação gaussiana básica

A estratégia para resolver um sistema linear geral A x = b pelo método de Gauss consiste em
reduzi-lo coluna por coluna a um sistema equivalente triangular superior Ux=c, e completar a
sua solução utilizando o anterior algoritmo de substituição regressiva. Neste parágrafo
apresenta-se o algoritmo básico, ou seja, sem efetuar pivotagem. O tema da pivotagem será
apresentado posteriormente.
Considere-se o sistema genérico n  n

 a11 x1 + a12 x 2 + ... + a1n x n = b1



 a 21 x1 + a 22 x 2 + ... + a 2 n x n = b2

 
 a n1 x1 + a n 2 x 2 + ... + a nn x n = bn

Estágio 1 (1ª eliminação)

Começamos as transformações anulando os primeiros termos de todas as equações abaixo da


primeira, ou seja, eliminando de todas elas a incógnita x1. A isto chamamos 1ª eliminação; o
elemento a11, que por hipótese assumimos diferente de zero, é designado pivot dessa eliminação,
que é realizada da seguinte forma:

- 213 -
Capítulo 6 Sistemas de equações

• define-se um multiplicador:

a 21
r2 =
a11
e a primeira equação multiplicada por r2 é subtraída da segunda equação para eliminar desta
equação a incógnita x1. De facto,

(a 21 − r 2 a11) x1 + (a 22 − r 2 a12) x 2 + ... + (a 2 n − r 2 a1,n) x n = b2 − r 2 b1


mas,
a 21
a 21 − r 2 a11 = a 21 − a11 = 0
a11

ou seja, a nova segunda equação pode escrever-se,

a 22 x 2 + ... + a 2 n x n = b2
(1) (1) (1)

com:
a 2 j = a 2 j − r 2 a1 j j = 2 ,..., n
(1)

b2 = b2 − r 2 b1
(1)

• de forma idêntica, o primeiro termo de cada uma das equações posteriores, i>2, é eliminado
definindo multiplicadores

ai1
ri = , i = 3,..., n
a11

e subtraindo a primeira equação multiplicada por ri da i-ésima equação. No final da 1ª eliminação


o sistema escreve-se,

 a11 x1 + a12 x 2 + ... + a1n x n = b1



a 22 x 2 + ... + a(21n) x n = b(21)
(1)


 
 a n 2 x 2 + ... + a (nn1) x n = b(n1)
(1)

em que:
aij(1) = aij − r i a1 j ( i = 2,...,n) ( j = 2,...,n )

bi = bi - r i b1 ( i = 2,...,n )
(1)

Note-se que a primeira equação permanece inalterada.

- 214 -
Capítulo 6 Sistemas de equações

Estágio 2 (2ª eliminação)

Consiste na eliminação de x2 da 3ª até à última equação, definindo os multiplicadores


(1)
ai 2
ri = (1)
, i = 3,..., n
a 22

e subtraindo a segunda equação multiplicada por ri da i-ésima equação (i=3,...,n). O elemento


a220, é o pivot desta eliminação.

Estágios 3, 4, ... , n-1


Os próximos estágios são agora óbvios. No 3º passo eliminamos x3, no 4º passo x4,etc. Em
resumo, cada estágio genérico k, consiste em eliminar xk das equações (k+1), (k+2),...,n por
subtração de apropriados múltiplos da equação k.

Após o estágio k=n-1, o sistema de equações estará na seguinte forma:

 a11 x1 + a12 x 2 + a13 x3 + ... + a1n x n = b1



a 22 x 2 + a(231) x3 + ... + a(21n) x n = b(21)
(1)


a33 x3 + ... + a3( 2n) x n = b3( 2)
( 2)

 

 ( n −1)
a nn x n = b(nn −1)

ou seja, é um sistema triangular superior, cuja solução é calculada por substituição regressiva.

Formulação matricial. Algoritmo computacional.

A eliminação de Gauss pode ser efetuada escrevendo apenas os coeficientes aij e os termos
independentes bi utilizando uma formulação matricial. De facto, é isto exatamente que um
programa de computador faz ao utilizar a eliminação de Gauss. Mesmo para cálculo manual, a
formulação matricial é mais conveniente que a escrita de todas as equações.

Para simplificar ainda mais a notação formemos a matriz ampliada n  (n +1)

- 215 -
Capítulo 6 Sistemas de equações

 a11 a12 ... a1n a1,n +1 


 
 
a21 a22 ... a2 n a2,n +1 
 
   
 
 am1 am 2 ... amn an ,n +1 
 

em que atribuímos os valores de bi aos coeficientes ai,n+1.

A redução (Fase 1) produz como resultado uma matriz ampliada com o seguinte aspeto:

a11 a12 a13 ... ... a1n a1,n +1 


 
o a12 a13 ... ... a2 n a2,n +1 
0 0 a13 ... ... a3n a3,n +1 
 
   
 
0 0 0 ... an −1,n an −1,n an −1,n +1 
a11 a12 a13 ... 0 ann an ,n +1 

Não utilizamos os índices superiores como anteriormente por comodidade de escrita e também
porque em termos de programação eles são desnecessários. Isto permite estabelecer somente
uma única variável bidimensional A(I,J) para descrever todos os coeficientes, antes e depois das
operações de eliminação.

O algoritmo, em Fortran, correspondente a esta fase (redução) pode escrever-se:

DO 30 K=1,N-1
DO 20 I=K+1,N
R=A(I,K)/A(K,K)
DO 10 J=K+1,N+1
A(I,J)=A(I,J)-R*A(K,J)
10 CONTINUE
20 CONTINUE
30 CONTINUE

O diagrama de blocos correspondente encontra-se representado na figura 1. O bloco marcado


com * refere-se ao processo de pivotagem que consideraremos posteriormente.

- 216 -
Capítulo 6 Sistemas de equações

Figura 1 - Diagrama de blocos do método de eliminação de Gauss

O significado atribuído aos índices é o seguinte:

- K refere-se ao número da eliminação (ou estágio) ; é também o índice correspondente à


variável que está a ser eliminada das n-k últimas linhas;
- I refere-se ao número da linha da qual uma variável está a ser eliminada;
- J refere-se ao número de uma coluna.

Com o objetivo de reduzir o número de operações aritméticas a realizar, já que não há interesse
em efetuar operações cujo resultado já é previsto, o ciclo 10 tem início em J=K+1 e não em K
porque se sabe a priori que aik=0.

O algoritmo correspondente à fase 2, substituição regressiva, pode ser programado em Fortran,


como:

- 217 -
Capítulo 6 Sistemas de equações

A(N,N+1)=A(N,N+1)/A(N,N)
DO 50 I=N-1,1,-1
DO 40 J=I+1,N
40 A(I,N+1)=A(I,N+1)-A(I,J)*A(J,N+1)
50 A(I,N+1)=A(I,N+1)/A(I,I)

Contagem de operações aritméticas

É importante ter uma ideia do esforço computacional exigido na execução dum algoritmo para
poder efetuar comparações entre os vários métodos do ponto de vista da eficiência. Uma medida
da eficiência de um algoritmo é o número de operações aritméticas requeridas para obter a
solução.

Designe-se por N(±), N(*) e N(/) o número de somas e subtrações, multiplicações e divisões
necessárias para resolver A x =b, utilizando o método de eliminação de Gauss sem pivotagem.
Analisando o algoritmo correspondente à fase de redução podemos verificar que:

- em cada estágio de eliminação k, como I varia entre K+1 e n (ciclo 20),

N (/) = n − k

e como J varia entre k+1 e n+1,

N () = N (* ) = ( n + 1 − k ) ( n − k ) = ( n − k )2 + ( n − k )

- para a globalidade do processo de redução:


n −1
N (/ ) =  (n − k )
k =1
e,
n −1 n −1
N () = N (* ) =  (n − k )2 +  (n − k )
k =1 k =1

n −1 n −1

 ( n − k ) =  k obtém-se:
m m
Como, de uma forma geral (verifique):
k =1 k =1

n −1
n (n − 1)
N(/ ) =  k =
k =1 2
e,

- 218 -
Capítulo 6 Sistemas de equações

n −1 n −1
n ( n −1) ( 2 n −1) n ( n −1)
N () = N (* ) =  k 2 +  k = +
k =1 k =1 6 2

Uma análise similar do algoritmo correspondente à fase de substituição regressiva, permite a


obtenção dos resultados que se resumem no Quadro 1.

Total
N(±)=N(*) N(/) de
operações

n (n − 1) (2n + 2) n (n − 1) n (n − 1) (4n + 7)
Redução 6 2 6

n (n − 1) n n
2
Substituição
regressiva 2

Algoritmo global 2 n3 + 3 n 2 − 5 n n + n
2
4 n3 + 9 n2 − 7 n
6 2 6

Quadro 1: Contagem das operações para resolver A x = b


pelo método de Gauss sem pivotagem.

Desta forma, o número total de operações aritméticas necessárias para resolver um sistema linear
n  n por eliminação gaussiana básica é igual a 28 para n=3, 62 se n=4, 805 se n=10, e 681550
se n=100. Observe que mais de metade das operações são multiplicações ou divisões, as quais
em geral requerem duas a sete vezes mais tempo que as somas/subtrações. Por este facto, na
contagem de operações são usualmente calculados separadamente o número de
adições/subtrações e o número de multiplicações/divisões.

Para um valor grande de n, o método de eliminação de Gauss requer aproximadamente 2/3 n3


operações aritméticas, das quais aproximadamente 1/3 n3 são multiplicações e divisões. Para
descrever este facto do número de operações aritméticas ser descrito por Cn3 quando n→
diz-se que é da ordem de n3, abreviadamente O(n3). Observe-se que a fase de substituição
regressiva requer aproximadamente n2 operações aritméticas, ou seja, é de O(n2) para n grande.
Assim, ao resolver A x = b a maioria do "trabalho numérico" efectua-se na redução de A a U.

- 219 -
Capítulo 6 Sistemas de equações

2.3.2 Método de eliminação de Gauss-Jordan

Uma variante do método de Gauss é o método de Gauss-Jordan que utiliza eliminações para
obter um sistema diagonal equivalente A x = b → D x = e , em que D é uma matriz diagonal.
O algoritmo de Gauss-Jordan consiste em n etapas de cálculo, consistindo cada etapa de cálculo
de dois passos distintos:

(a) normalização, na qual se tornam unitários os coeficientes da diagonal;

(b) eliminação, em que se anulam os coeficientes fora da diagonal.

Assim, antes da etapa de ordem k (k=1,2,...,n) a matriz ampliada do sistema apresenta o seguinte
aspecto:

1 0 ... a1k ... a1n a1,n +1 


 
0 1 ... a2 k ... a2 n a2,n +1 
   
 
0 0 ... akk ... akn ak ,n +1 
 
   
0 0 ... an −1,k ... an −1,n an −1,n +1 
 
0 0 ... an ,k ... ann an ,n +1 

A etapa de ordem k é então efetuada da seguinte forma:

Passo 1: Normalização do elemento akk multiplicando a linha k pelo inverso do


elemento akk, no caso deste ser definido;
( k −1)
a kj
a = ( k −1) ( j = k,....,n + 1)
(k)
kj
a kk

Passo 2: Eliminação dos elementos não-diagonais da coluna k, substituindo a linha i


(ik) por uma combinação linear conveniente das linhas i e k.

aik = aij − aik a kj (i = 1,..., n) (i  k ) ( j = k,....,n + 1)


(k ) ( k −1) ( k −1) ( k )

A diferença, no processo de eliminação, em relação ao método de Gauss é a de que agora, em


cada eliminação k, se anulam não só os elementos abaixo como também os elementos acima de
akk. Por esta razão a variação do índice i na equação anterior é de 1 a n, com ik, pois agora

- 220 -
Capítulo 6 Sistemas de equações

devemos percorrer todas as linhas, exceto a do pivot, a cada eliminação.

Um diagrama de blocos do método é apresentado na Fig. 2. Como no caso do diagrama de blocos


do método de Gauss, o bloco marcado com * refere-se ao processo de pivotagem.

Figura 2 - Diagrama de blocos do método de Gauss-Jordan

- 221 -
Capítulo 6 Sistemas de equações

Em cada etapa k do método, a normalização efetua: N (/) = n + 1 − k e a eliminação:


N () = N(*) = ( n + 1 − k ) ( n − 1 ) , pelo que o número de divisões e multiplicações global é
dado por:
n
n +1
N (/) =  ( n + 1 − k ) = n
k =1 2
n −1
n 2
N (* ) = N () =  ( n + 1 − k ) ( n − 1 ) = n
k =1 2

e o número total de operações do algoritmo de Gauss-Jordan:

n ( n +1) n 1
+ n ( n2 − 1 ) = n ( n2 + − )
2 2 2

Como foi anteriormente referido as multiplicações ou divisões requerem mais tempo de cálculo
que as somas/subtrações. Então, um bom índice da relação entre o esforço computacional dos
dois métodos é a relação entre o número global de multiplicações e divisões de cada um deles,
dada por:

2 n2 + 3 n − 1
3 n2 + n

pelo que, para valores grandes de n podemos dizer que o esforço computacional do método de
Gauss é aproximadamente 2/3 do método de Gauss-Jordan.

2.3.3 Pivotagem

Nos parágrafos anteriores os métodos de eliminação de Gauss e Gauss-Jordan foram aplicados


supondo que os elementos pivot eram diferentes de zero. De facto, os algoritmos apresentados
não serão válidos se o elemento a11 for nulo ou se um coeficiente da diagonal se tornar nulo no
processo de solução, já que estes são utilizados como denominadores na fase de eliminação.

A pivotagem é utilizada para mudar a ordem sequencial das equações com dois objetivos
prioritários: (a) para evitar a divisão por zero; (b) para minimizar o erro de arredondamento.
Vamos analisar com um pouco mais de detalhe o objetivo (b).

A solução exata de um sistema linear, obviamente, não depende da ordem pela qual aparecem
as equações. No entanto, como mostra o exemplo que se segue, a ordenação das equações pode
ter um efeito apreciável na exatidão da solução calculada quando os cálculos se efetuam num

- 222 -
Capítulo 6 Sistemas de equações

dispositivo que apenas pode armazenar k dígitos significativos, como uma calculadora ou um
computador.

Exemplo 6.2: Resolver utilizando o método de eliminação de Gauss sem pivotagem e


aritmética com 4 dígitos significativos:

0.07 x + 0.9 y = 7.13  3 x + 2 y = 13


(a)  ; (b) 
 3 x + 2 y = 13  0.07 x + 0.9 y = 7.13

Nota: (a) e (b) possuem as mesmas equações mas em ordem inversa; a solução exata é
x=-1, y=8.

Resolução:

Para o sistema (a) o multiplicador para a 1ª eliminação é r=3/0.07 que é armazenado


arredondado a 4 dígitos significativos como r=42.86. Assim, após a 1ª eliminação obtém-
se a matriz ampliada:

0.07 0.9 7.13


 
 0 − 36.57 − 292.6

292.6 0.9 x 8.001 − 7.13


y= = 8.001 ; x = = − 1.013
pelo que: 36.57 0.07

De forma idêntica, no caso do sistema (b) o multiplicador para a 1ª eliminação é


r=0.07/30.02333. Assim, após a 1ª eliminação obtém-se a matriz ampliada:

 3 2 13 
 
 0 0.8533 6.827

6.827 2 x 8.001 − 13
y= = 8.001 ; x = = − 1.001
e a solução: 0.8533 3

Esta solução, embora não coincida com a exata, é mais significativa que a encontrada
anteriormente.

- 223 -
Capítulo 6 Sistemas de equações

Poder-se-á objetar que, com a retenção de apenas 4 dígitos significativos, o erro se propaga
muito mais facilmente que num computador (8 dígitos significativos). Em contrapartida, como
um computador pode ser utilizado para resolver grandes sistemas e os efeitos dos erros de
arredondamento vão-se acumulando, o número de algarismos significativos retidos pelo
computador poderá ser insuficiente.

O exemplo anterior indica ser vantajoso escolher para pivot o elemento que tiver maior valor
absoluto na coluna que se está a considerar, e não simplesmente o elemento da primeira linha. A
operação a efetuar em cada eliminação k deverá ser a de reordenar as últimas n-k+1 linhas de
forma que o maior dos coeficientes, em valor absoluto, da coluna k seja o pivot dessa eliminação.
Este processo designa-se por pivotagem parcial. Quando este processo não for possível porque
todos os elementos da coluna do pivot abaixo da diagonal principal são nulos, o sistema é
singular.

A figura 3 mostra o diagrama de blocos correspondente à pivotagem parcial. Este diagrama


substitui o bloco marcado com * na figura 1 (método de Gauss) e pode facilmente ser adaptado
para formar a sub-rotina da figura 2 (método Gauss-Jordan).

Figura 3 - Diagrama de blocos correspondente a pivotagem parcial

- 224 -
Capítulo 6 Sistemas de equações

Para compreender este diagrama de blocos e a sua integração no diagrama da figura 1, relembre-
se que ao entrarmos nesta fase k tem um determinado valor (k=1,..., n-1) e o índice i acabou de
ser fixado como k+1. Começa-se por estabelecer um índice auxiliar l, igual a k. A primeira
comparação é entre aik (elemento exatamente abaixo do coeficiente diagonal akk) e alk (igual akk).
Se aik é superior em valor absoluto, faz-se l=i. O índice l representa então o número da linha do
elemento da k-ésima coluna que até ao momento presente tem o maior valor absoluto. O índice
i passa por todos os valores de k+1 a n inclusive. Assim, no final deste ciclo, l identifica o maior
elemento em valor absoluto, ou seja o que queremos utilizar como pivot akk após a troca de
linhas, se necessária. Esta troca é feita por pares de valores, um da linha k e um da linha l,
qualquer que seja l, e pode ser efetuada através do ciclo Fortran:

DO 3 J=K,N+1
AA=A(K,J)
A(K,J)=A(L,J)
3 A(L,J)=AA

O erro de arredondamento pode ser ainda mais reduzido se para além da troca de linhas se efetuar
também troca de colunas. Por outras palavras, em vez de se restringir a busca aos elementos da
k-ésima coluna, procurar entre todos os coeficientes restantes que ainda se encontram disponíveis
(não pertencentes a uma coluna ou linha que já contenham um elemento utilizado como pivot)
qual o maior em valor absoluto. Este processo designa-se por pivotagem total.

Uma troca de colunas implica uma renumeração das variáveis.

A experiência demonstrou que a exatidão obtida utilizando pivotagem total em geral não é
suficientemente maior que a obtida com pivotagem parcial para justificar a complexidade
adicional de programação e fundamentalmente o tempo de execução.

2.3.4 Sistemas mal-condicionados

Um sistema de equações linear é dito bem-condicionado se pequenos erros nos coeficientes ou


no processo de resolução produzem erros relativos comparáveis na solução. O exemplo que se
segue mostra que existem sistemas para os quais, erros relativamente pequenos nos coeficientes
produzem erros relativos muito superiores no vetor solução, mesmo quando todos os cálculos
se efetuam de forma exata. Estes sistemas são designados por mal-condicionados.

- 225 -
Capítulo 6 Sistemas de equações

Exemplo 6.3: Examine como pequenas variações em A e b afetam a solução x do sistema:


 x − 11y = b1

− 9 x + 100 y = b2
Resolução:

Analise-se em primeiro lugar as variações relativas rx e ry resultantes de um erro relativo


em b,
 bi - 0.1
r bi = =  −0.010989
| bi | 9.1

Vamos supor que modificamos o vetor b da seguinte forma:

9.1  9
b =   para b =  
 − 1 - 1

As respetivas componentes do vetor solução modificam-se de


 - 10
 r x=  − 0.011123
 x = 899.  x = 889.  899
 para   
 y = 80.9  y = 80.  r y = - 0.9  − 0.011125
 80.9
Os erros rx e ry são comparáveis a rb.

Vamos agora supor a seguinte modificação em b :

 − 1 − 1
b =   para b =  
9.1  9

As componentes do vetor solução modificam-se de

 - 1.1
 r x= = − 11.0
 x = 0.1  x = −1  0.1
 para   
 y = 0.1  y=0  r y = - 0.1 = − 1.0
 0.1

Para este 2º caso uma variação de b2 de aproximadamente -1% provoca uma variação
em x de -1100% !

- 226 -
Capítulo 6 Sistemas de equações

Para uma maior evidência da "sensibilidade" da solução do sistema original a pequenas variações
relativas nos elementos de [A:b] demonstre que, independentemente do vetor b, modificando a12
de -11 para -11.1 (variação inferior a 1%) ambas as componentes do vetor solução têm uma
variação de aproximadamente 900% !

Para ajudar a compreender porque é que a matriz A do Exemplo 6.2 é mal-condicionada observe
que se a22=100 se modifica para 99 (ra=-1/100=-0.01) a matriz A converte-se numa matriz
singular pois det A=0.

Uma matriz designa-se por quasi-singular no caso de se tornar singular quando algum dos seus
elementos sofre pequenas variações relativas. A explicação anterior sugere alguma conexão entre
quasi-singularidade e mau condicionamento. Para uma confirmação geométrica considere o
sistema linear geral 2x2:
a11 x1 + a12 x2 = b1

a11 x1 + a12 x2 = b1

As linhas retas correspondentes (Fig. 4) têm declives -ai1/ai2 e ordenadas na origem bi/ai2, que
variam continuamente com variações em ai1, ai2 e bi sempre que ai20. Se estas duas linhas têm
um declive quase igual serão quase paralelas; então, embora pequenas variações em ai1, ai2 e bi
produzam pequenos movimentos destas linhas, estes pequenos movimentos podem provocar
grandes movimentos do ponto de intersecção x (Figura 4). Foi exatamente isto que sucedeu no
exemplo 6.2.

Figura 4 - Mau condicionamento quando n=2

Para grandes sistemas de equações a situação é similar em princípio, mas não possibilita uma
interpretação geométrica tão simples. Interpretando as equações do sistema como hiperplanos
num sistema de coordenadas n-dimensional, então os elementos (ai1, ai2, ... , ain) da linha i

- 227 -
Capítulo 6 Sistemas de equações

representam as componentes da "normal" ao i-ésimo hiperplano. Neste contexto, podemos


interpretar um sistema linear mal-condicionado como um conjunto de n hiperplanos cujas
"normais" são muito aproximadamente paralelas.

Um sistema linear mal-condicionado é caracterizado por uma matriz de coeficientes cujo


determinante é pequeno em comparação com a ordem de magnitude dos elementos da matriz.

2.3.5 Sistemas tridiagonais

O caso particular de um sistema de equações linear tridiagonal, ou seja, cuja matriz dos
coeficientes tem elementos diferentes de zero apenas na sua diagonal principal e nas diagonais
imediatamente acima e abaixo da diagonal principal, ocorre frequentemente em várias aplicações
(splines, resolução numérica de equações diferenciais, etc).
Represente-se um sistema tridiagonal n  n na forma:

d 1 u 1  x 1  b1 
l d u  x  b 
2 2 2
  2  2
 l3 d 3 u 3  x 3  b 3 
 ...  ...  = ... 
     
 li d i u i  x i  b i 
 ...  ...  ... 
     
 l n d n   x n  b n 

O método de eliminação de Gauss sem pivotagem (a pivotagem a ser utilizada destruiria o


caracter tridiagonal do sistema) para sistemas deste tipo é particularmente simples, como mostra
o seguinte exemplo.

Exemplo 6.4: Resolver através do método básico de Gauss o seguinte sistema tridiagonal:

 5 x1 − 3 x 2 =7 5 − 3 0 0 7 
  
x1 + 4 x 2 − 2 x 3 =6 1 4 − 2 0 6 
  
 − x 2 + 3 x3 + x 4 =−4 0 − 1 3 1 − 4 
  
 2 x3 + 5 x 4 = − 15 0 0 2 5 − 15

- 228 -
Capítulo 6 Sistemas de equações

Resolução

Fase 1 : Redução
Em cada estágio apenas há que eliminar uma incógnita. Assim:

k=1 {linha 2 - 1/5 linha 1}

1 23 23
[1 4 - 2 0 : 6] − [5 − 3 0 0 : 7] = [0 −2 0 : ]
5 5 5

k=2 {linha 3 - (-1)/(23/5) linha 2}

5 23 23 59
[0 − 1 3 1 : - 4] − [0 −2 0 : ] = [0 0 1 : − 3]
23 5 5 23

k=3 {linha 4 - (-2)/(59/23) linha 3)

46 59 249 - 747
[0 0 2 5 : − 15] − [0 0 1 : - 3] = [0 0 0 : ]
59 23 59 59

A matriz ampliada do sistema após a fase 1 escreve-se:

 5 −3 0 0 7 
 
 
 0 23 -2 0 23 
 5 5 
 
 0 0 59 1 -3 

 23 
 
 0 0 0 249 747 
 - 
 59 59 

Fase 2 : Substituição regressiva


747

− 3 − 1  (−3)
x4 = 59 = 3 ; x3 = =0
59 59
249 23

23
−0
7 − (−3)  1
x2 = 5 =1 ; x1 = =2
23 5
5

- 229 -
Capítulo 6 Sistemas de equações

Observe-se que a redução deixou a diagonal u inalterada e em cada estágio de eliminação apenas
modifica os coeficientes de uma linha. Por outro lado, também em cada passo de substituição
regressiva apenas é necessário efetuar uma multiplicação. Estas simplificações são genéricas
qualquer que seja o tamanho do sistema. Vamos ver como podemos tirar partido delas para
construir um algoritmo de eliminação gaussiana para sistemas tridiagonais.

Após a redução, o sistema pode genericamente escrever-se:

d1' u1  b1' 
   x1   
 d '2 u 2    b '2 
  x 2   '
 d 3' u 3  x  b 
 ...  ...  = ...3 
3

     '

'
di ui  x i  bi 
...

...
  
...
 
 '  x  b ' 
dn  n
   n
Os coeficientes d'i e b'i podem ser calculados da seguinte forma:

d1' = d1 ; b1' = b1


r = l' i 
d1−1


d i' = d i - r u i' −1  i = 2,..., n

b i' = b i - r b i' −1 

e a solução final como:
bn'
xn =
d n'

bi' − u i xi +1
xi = i = n − 1, n − 2 , ...,1
d i'

Num programa de computador, as variáveis d'i e b'i não necessitam de ser distinguidas de di e bi
respetivamente, sendo armazenadas nos mesmos espaços de memória. Apresenta-se
seguidamente uma subrotina Fortran para resolução de um sistema de equações tridiagonal.

- 230 -
Capítulo 6 Sistemas de equações

SUBROUTINE TDIDG (L,D,U,B,N)


REAL L
DIMENSION L(1),D(1),U(1),B(1)
DO 10 I=2,N
R=L(I)/D(I-1)
D(I)=D(I)-R*U(I-1)
B(I)=B(I)-R*B(I-1)
10 CONTINUE
B(N)=B(N)/D(N)
DO 20 I=N-1,1,-1
B(I)=(B(I)-U(I)*B(I+1))/D(I)
20 CONTINUE
RETURN
END

Quando os cálculos na subrotina terminam, a solução está armazenada no vetor B(I).

O algoritmo anterior ao explorar o facto do sistema ser tridiagonal permite uma grande
simplificação na entrada de dados (apenas é necessário introduzir os coeficientes das 3 diagonais)
e é muito mais eficiente já que utiliza apenas:

3n - 3 subtrações , 3n - 3 multiplicações e 2n - 1 divisões

Assim, para n grande, o número de operações aritméticas necessárias para resolver Tx=b (T
representa uma matriz tridiagonal) é proporcional a n, ou seja, apenas O(n).

Como este algoritmo pressupõe a não existência de pivotagem, corre o risco de falhar se aparece
um pivot nulo (d'i=0). No entanto, grande parte dos problemas que dão origem a sistemas lineares
tridiagonais possuem outras características que garantem o sucesso do método. Por exemplo, se

d1  u 1 , d i  li + u i para 2  i  n - 1 e d n  ln

diz-se que o sistema é diagonal dominante e pode provar-se que o algoritmo não poderá gerar
nenhum pivot nulo.

- 231 -
Capítulo 6 Sistemas de equações

2.3.6 Método da factorização - LU

Se a matriz de coeficientes A se puder escrever como um produto de duas matrizes, A=LU, no


qual L é uma matriz triangular inferior e U uma matriz triangular superior, então o produto LU
designa-se por factorização LU (ou factorização triangular) de A. Quando temos de resolver
vários sistemas de equações para os quais a matriz dos coeficientes é idêntica mas com diferentes
vetores de termos independentes, isto é

Ax1=b1 , Ax2=b2 ,..., Axk=bk

a solução dos mesmos usando factorização LU é mais eficiente do que utilizando eliminação de
Gauss.
Suponha que temos uma decomposição LU de uma matriz n  n não singular A, e que
necessitamos conhecer a solução do sistema linear A x = b . Como A=LU, a solução deve
satisfazer:
LU x = b (5)
Assim fazendo:
U x =c
(5) escreve-se:
Lc =b

Podemos então resolver (5), ou seja, A x = b , em duas fases utilizando os algoritmos de


substituição progressiva e regressiva (&3.1)

Fase 1: resolução de L c = b , por substituição progressiva

b1 b − (l i1 c1 + l i 2 c2 + ... + l i,i −1 ci −1 )
c1 = ; ci = i i = 2 ,..., n (6)
l11 l ii

sempre que lii0 para qualquer i.

Fase 2: resolução de U x = c , por substituição regressiva

cn c − (ui,i+1 xi+1 + ... + ui,n xn )


xn = ; xi = i i = n −1,...,1 (7)
u nn uii

sempre que uii0 para qualquer i.

- 232 -
Capítulo 6 Sistemas de equações

Exemplo 6.5: Resolva o sistema linear:

 2 x1 − 2 x 2 = 14

 − x1 + x 2 − 4 x3 = 5

 3 x1 + 3 x 2 + 2 x 3 = 15
sabendo que:
 
 1 0 0 2 2 0  2 2 0 
     
 1     
LU = − 1 0 0 2 − 4 =  − 1 1 − 4 = A
 2     
 3     
 0 1 0 0 2  3 3 2 
 2 

e utilizando os algoritmos de substituição progressiva e regressiva, respetivamente, (6) e


(7).

Resolução:

Como L é uma matriz triangular com 1's na diagonal principal, o algoritmo (6) simplifica-
se para:

c1 = b1 ; ci = bi − (li1 c1 + li2 c2 + ... + li,i -1 ci-1 ) i = 2,..., n


(8)

pelo que:
1 3
c1 = 14 , c2 = 5 +  14 = 12 , c3 = 15 −  14 = − 6
2 2
O algoritmo de substituição regressiva (7) permite obter a solução do sistema,

6 12 + 4  (−3) 14 − 2  0
x3 = − = −3 , x2 = =0 , x1 = =7
2 2 2

A única dificuldade de momento está na decomposição de A na forma A=LU. Esta decomposição


é sempre possível e única desde que A seja não singular. O Teorema seguinte mostra como obter
aquela decomposição por intermédio do método de eliminação de Gauss.

Teorema (Decomposição A=LU): A matriz triangular superior U que se obtém após


a fase de redução do método de eliminação de Gauss e a matriz triangular inferior L
(com 1's na diagonal) e elementos inferiores obtidos pelos multiplicadores rij
utilizados na fase de redução,

- 233 -
Capítulo 6 Sistemas de equações

1 0 0 ... 0
 
r21 1 0 ... 0
L = r31 r32 1 ... 0
 
  
r rn 2 ... rn ,n −1 1
 n1

são tais que A=LU.

Então, um esquema geral da decomposição LU para uma matriz de ordem n pode obter-se da
seguinte forma:

(a) A primeira linha de U, u1j para j=1 até n, é obtida por:

u1 j = a1 j , j = 1,..., n

(b) A primeira coluna de L, li1 para i=2 até n, é obtida por:

ai1
l i1 = , i = 2 ,..., n
u11

(c) A k-ésima linha de U, é obtida por:

k −1
u kj = a kj −  l km u mj , j = k,..., n
m =1

(d) A k-ésima coluna de L, é obtida por:

k −1

aik −  l im u mk
l ik = , i = k + 1,..., n
m =1

u kk

Exemplo 6.6: Mostre com base no algoritmo anterior que é válida a decomposição dada
no exemplo 6.4

- 234 -
Capítulo 6 Sistemas de equações

2.4. Métodos iterativos

Os métodos diretos (p.e. eliminação ou factorização) requerem cerca de 2n3/3 operações


aritméticas para resolver um sistema linear n  n . Para sistemas de grande dimensão (n>40) o
esforço computacional pode ser reduzido utilizando métodos iterativos.
Para resolver o sistema A x = b , os métodos iterativos partem de uma aproximação inicial, seja
ela x(0) e constroem uma sucessão de aproximações sucessivas:

x(0) , x(1), x(2), ..., x(k)

que esperamos seja convergente para a solução exata x do sistema. De forma idêntica ao que
ocorria no Cap.2 é necessário estabelecer um critério para o truncamento da sequência de
aproximações anterior no caso de convergência. Os critérios práticos mais utilizados são:

max xi − xi
(k ) ( k −1)
 (9)
1i  n

ou
(k )
xi − xi( k −1)
max (k )
 (10)
1i  n xi

em que ε é uma tolerância pré-definida.

Também analogamente ao que ocorria com as técnicas iterativas discutidas no Cap. 2, o erro de
arredondamento é pequeno, mas o método apenas tem garantia de convergência sob certas
condições que explicitaremos.

2.4.1 Método de Jacobi

Considere-se novamente o problema de encontrar a solução do sistema linear A x = b :

 a11 x1 + a12 x 2 +...+ a1n x n = b1



 a 21 x1 + a 22 x 2 +...+ a 2 n x n = b2

 
 a n1 x1 + a n 2 x 2 +...+ a nn x n = bn

Se todos os elementos diagonais forem diferentes de zero, podemos explicitar o valor de xi


(i=1,...,n) em cada equação i,

- 235 -
Capítulo 6 Sistemas de equações

 1
 x1 = a ( b1 − a12 x2 − a13 x3 − ... − a1n xn )
 11

 1
 x2 = ( b2 − a21 x1 − a23 x3 − ... − a2 n xn )
 a22 (11)
 

 1
 xn = a ( bn − an1 x1 − an 2 x2 − ... − an,n −1 xn −1 )
 nn

O sistema (11) pode ser escrito de uma forma mais concisa como:

1  
xi =  bi −  aij x j  i = 1,..., n (12)
aii  j i

Consideremos agora uma 1ª aproximação qualquer para a solução; designemos esta por x1(0),
x2(0),..., xn(0). Substituindo estes valores no membro direito de (12) obtemos uma nova
aproximação:
1  
xi(1) =  bi −  aij x (j0)  i = 1,..., n
aii  j i 

que completa a 1ª iteração. Podemos recomeçar tudo substituindo xi(0) por xi(1) e calcular uma
nova aproximação. Em geral, a k-ésima aproximação é dada por:

1  
xi( k ) =  bi −  aij x (jk −1)  i = 1,..., n (13)
aii  j i

Exemplo 6.7: Resolva, pelo método de Jacobi, apresentando o resultado com 2 casas
decimais corretas, o sistema linear:

 4 x1 + 2 x2 + x3 = 11

 − x1 + 2 x2 = 3
 2 x + x + 4 x = 16
 1 2 3

Resolução:
Como todos os elementos diagonais são diferentes de zero, podemos reduzir o sistema à
forma (13),

- 236 -
Capítulo 6 Sistemas de equações

 (k ) 1 ( k −1) ( k −1)
 x1 = 4 ( 11 − 2 x2 − x3 )

 (k ) 1 ( k −1)
 x2 = ( 3 + x1 )
 2
 (k ) 1 ( k −1) ( k −1)
 x3 = 4 ( 16 − 2 x1 − x2 )

Considere-se como aproximação inicial: x1(0)= x2(0)= ... = xn(0)= 0.0

1ª iteração (k=1)
 (1) 11
 x1 = 4

 (1) 3
 x2 =
 2
 (1) 16
 x3 = 4 = 4

2ª iteração (k=2)
 ( 2) 1
 x1 = 4 ( 11 − 2 * 1.5 − 4) = 1.0

 ( 2) 1
 x2 = ( 3 + 2.75) = 2.875
 2
 ( 2) 1
 x3 = 4 ( 16 − 2 * 2.75 − 1.5) = 2.25

E assim sucessivamente até que se cumpra o critério (9) com ε=0.5*10-2 (2 casas decimais
corretas). O Quadro 2 resume os resultados do processo iterativo.

k x1(k) x2(k) x3(k)


1 2.7500 1.5000 4.0000
2 1.0000 2.8750 2.2500
3 0.7500 2.0000 2.7813
4 1.0547 1.8750 3.1250
5 1.0313 2.0273 3.0039
6 0.9854 2.0156 2.9775
7 0.9978 1.9927 3.0034
8 1.0028 1.9989 3.0029
9 0.9998 2.0014 2.9989

Quadro 2 - Resultados das iterações utilizando o método de Jacobi

- 237 -
Capítulo 6 Sistemas de equações

O método de Jacobi também é conhecido por método das correções simultâneas, por alterar todos
os elementos de x de forma simultânea após cada iteração.

A convergência do processo depende unicamente das propriedades da matriz A, e é assegurada


pelo seguinte teorema:

Teorema da dominância: Se um sistema linear A x = b tem uma matriz A diagonal


dominante, ou seja,
n
aii   aij , i = 1,..., n
j =1
j i

então o método de Jacobi converge para a solução exata x qualquer que seja a
aproximação inicial x(0).

2.4.2 Método de Gauss-Seidel

O método de Gauss-Seidel é uma variante do método de Jacobi com o objetivo de obter uma
aceleração de convergência.
Quando na 1ª iteração do método de Jacobi calculamos x2(1), já dispomos do valor x1(1) que
portanto poderia desde logo ser utilizado. Analogamente, para o cálculo de x3(1) já podem ser
utilizados x1(1) e x2(1) e assim sucessivamente.

Para a iteração k temos:

 (k ) 1 ( k −1) ( k −1) ( k −1)


 x1 = a ( b1 − a12 x2 − a13 x3 − ... − a1n xn )
 11

 (k ) 1
 x2 = ( b2 − a21 x1( k ) − a23 x3( k −1) − ... − a2 n xn( k −1) )
 a22
 

 (k ) 1 ( k −1)
 xn = a ( bn − an1 x1 − an 2 x2 − ... − an ,n −1 xn −1 )
(k ) (k )

 nn

ou em forma mais concisa:

1  i −1 n 
xi( k ) =  bi −  aij x (jk ) − a x (jk −1)  , i = 1,..., n (14)
aii 
ij
j =1 j =i +1 

- 238 -
Capítulo 6 Sistemas de equações

Exemplo 6.8 : Resolva, pelo método de Gauss-Seidel, o sistema linear do exemplo 6.6:

 4 x1 + 2 x2 + x3 = 11

 − x1 + 2 x2 = 3
 2 x + x + 4 x = 16
 1 2 3

Resolução:

O sistema anterior reduzido à forma (14) escreve-se:


 (k ) 1 ( k −1) ( k −1)
 x1 = 4 ( 11 − 2 x2 − x3 )

 (k ) 1
 x2 = ( 3 + x1 )
(k )

 2
 (k ) 1
 x3 = 4 ( 16 − 2 x1 − x2 )
(k ) (k )

Considere-se a mesma aproximação inicial: x1(0)= x2(0)= ... = xn(0)= 0.0

1ª iteração (k=1)
 (1) 11
 x1 = 4 = 2.75

 (1) 1
 x2 = ( 3 + 2.75) = 2.875
 2
 ( 2) 1
 x3 = 4 ( 16 − 2 * 2.75 − 2.875) = 1.90625

E assim sucessivamente até que se cumpra o critério (9) com ε=0.5*10-2. O Quadro 3
resume os resultados do processo iterativo.

k x1(k) x2(k) x3(k)


1 2.7500 2.8750 1.9063
2 0.8359 1.9180 3.1025
3 1.0154 2.0077 2.9904
4 0.9986 1.9993 3.0009
5 1.0001 2.0001 2.9999

Quadro 3: Resultados das iterações utilizando Gauss-Seidel

- 239 -
Capítulo 6 Sistemas de equações

Quando comparamos os valores anteriores como os obtidos pelo método de Jacobi (Quadro 2),
fica bem evidente a mais rápida convergência do método de Gauss-Seidel para este exemplo.

O método de Gauss-Seidel é também denominado método das correções sucessivas, pelo facto
de, em cada iteração k, utilizar sucessivamente no cálculo de cada xi os valores mais recentes,
da iteração k, das incógnitas x1, x2,..., xi-1.

O teorema da dominância é igualmente válido, ou seja, a matriz A ser diagonal dominante é


uma condição suficiente para a convergência do método de Gauss-Seidel.

É possível demonstrar que o método de Gauss-Seidel em geral converge sempre que o faz o
método de Jacobi e com uma maior velocidade. Como é também mais fácil de implementar em
computador é o método iterativo mais utilizado.

2.5. Comparação entre os métodos diretos e iterativos

Os métodos diretos têm a vantagem de serem finitos e funcionarem - teoricamente - para


qualquer sistema de equações não singular, enquanto os métodos iterativos convergem apenas
para sistemas com certo tipo de propriedades.
A eliminação gaussiana, por exemplo, requer ( 4 n3 + 9 n 2 − 7 n ) / 6 operações aritméticas (cf.
Quadro 1). É fácil verificar que o método de Gauss-Seidel requer 2 n 2 − n operações aritméticas
por iteração. Para valores grandes de n, os números de operações aritméticas são
aproximadamente:
2 n3
- Eliminação de Gauss :
3
- Gauss-Seidel : 2 n 2 por iteração

Assim, se o número de iterações do método de Gauss-Seidel é menor ou igual a n/3, então este
requer menos operações aritméticas.

As técnicas iterativas têm menor erro de arredondamento pois são auto-correctivas; isto é, um
erro de cálculo individual não afetará o resultado final, já que qualquer aproximação errónea
pode considerar-se como um novo vetor inicial. Então apenas os erros de arredondamento
cometidos na iteração final têm algum efeito. Os métodos diretos, pelo contrário, têm erros de
arredondamento propagados através de todas as suas n3 operações. O menor erro de
arredondamento dos métodos iterativos é frequentemente de importância suficiente
(principalmente em sistemas mal-condicionados) a justificar a sua utilização mesmo quando o
trabalho computacional é superior ao dos métodos diretos.

- 240 -
Capítulo 6 Sistemas de equações

3. Sistemas de equações não-lineares (breve introdução)

Um sistema de n equações a n incógnitas x1, x2, ..., xn designa-se por não linear se uma ou mais
das suas equações forem não lineares.
Qualquer sistema não linear n  n pode reduzir-se à forma geral

 f1 ( x1 , x2 , ..., xn ) = 0
 f ( x , x , ..., x ) = 0
 2 1 2 n
 (15)
 
 f n ( x1 , x2 , ..., xn ) = 0

O sistema anterior poderá ser representado de uma forma abreviada como f(x)=0. Um vetor
x=(x1, x2,..., xn) que satisfaz f(x)=0 designa-se por raiz do sistema não linear (15). Vimos no &1
(parte 1) que um sistema linear n  n pode não ter raízes, ter uma só raiz ou ter um número
infinito de raízes. Em contraste, como se mostra em seguida, os sistemas não lineares
frequentemente têm um número finito de raízes.

3.1. Sistemas não lineares 2  2

Em lugar de utilizar subindíces, designaremos um sistema não linear geral 2  2 pela notação
simplificada:

 f ( x, y ) = 0 , ou apenas f (x) = 0
  x
 em que x =  
 g ( x,y) = 0 , ou apenas g (x) = 0  y

Identificamos o vetor x com o ponto (x,y) no plano xy do modo usual. Como resultado, as raízes
x=[x,y]T do sistema anterior podem interpretar-se geometricamente como se descreve no
exemplo que se segue.

Exemplo 6.9: Utilize o método gráfico para estimar todas as raízes do sistema 2x2:
 y ex − 2 = 0
 2
 x + y−4=0 (16)
Resolução:
Como as duas equações anteriores se podem resolver em ordem a y, verificamos que:

- 241 -
Capítulo 6 Sistemas de equações

−x
- x satisfaz a 1ª equação de (16), ou seja, x pertence à curva exponencial: y = 2 e

- x satisfaz a 2ª equação de (16), ou seja, x pertence à parábola

Assim as raízes x=[x,y]T correspondem a pontos de intersecção destas duas curvas no plano
xy. Vemos pela figura anterior que existem duas raízes

− 0.6  1.9 
x1    , x2   
 3.7   0.4

A eliminação de y em (16) mostra que as coordenadas x de x1 e x2 satisfazem,


x 2 + 2 e− x − 4 = 0
Esta equação é da forma f(x)=0 e pode por isso ser resolvida utilizando qualquer método
iterativo do Cap. 2.

Em geral, é conveniente reduzir n eliminando variáveis como fizemos no exemplo anterior. No


entanto, isto nem sempre se pode fazer. Por exemplo, nem x nem y podem eliminar-se no sistema
não linear:
 x e y − x5 + y + 3 = 0

 x + y + tan x − sen y = 0

Este exemplo mostra a necessidade de métodos para resolver sistemas não-lineares da forma
geral:

 f ( x, y ) = 0
 (17)
 g ( x, y ) = 0

- 242 -
Capítulo 6 Sistemas de equações

Os gráficos das equações:


z = f ( x, y ) e z = g ( x, y )

são as superfícies Σf e Σg cuja intersecção é uma curva C no espaço xyz, como se mostra na figura
6. Igualar f ( x, y ) e g ( x, y ) a zero corresponde a intercetar Σf e Σg com o plano xy (z=0). Assim,
uma raiz x de (17) corresponde a um ponto no qual a curva C corta o plano xy.

Fig. 6 - Gráficos das funções f ( x, y ) e g ( x, y ) .

3.2. Método de Newton-Raphson para sistemas 2  2

O método de Newton-Raphson para resolver uma equação não linear, f(x)=0, pode ser deduzido
geometricamente como descrito no Cap. 2 ou, então, considerando uma expansão da função f(x)
em série de Taylor (Cap. 1):

( x − x0 ) 2
f ( x) = f ( x0 ) + ( x − x0 ) f ' ( x0 ) + f ' ' ( x0 ) + ...
2!

e desprezando as derivadas de ordem superior à primeira,


f ( x) = f ( x0 ) + ( x − x0 ) f ' ( x0 ) + O(h 2 )

com h = x − x0 . Igualando f(x) a zero e desprezando os termos de ordem superior, vem:

f ( x0 )
x = x0 −
f ' ( x0 )
Se não existisse erro de truncatura x seria a solução do problema. Ao não ser assim, obtemos

- 243 -
Capítulo 6 Sistemas de equações

uma nova aproximação de x, que se espera ser melhor que x.

Vamos agora generalizar o método de Newton-Raphson a um sistema de duas equações em duas


variáveis:

 f ( x, y ) = 0
 (18)
 g ( x, y ) = 0

sendo xk, yk uma solução aproximada.

Expandindo f(x,y) em série de Taylor e desprezando os termos não lineares em x e y,

f f
f ( x, y ) = f ( xk −1 , yk −1 ) + ( x − xk −1 ) + ( y − yk −1 )
x y
As derivadas parciais são calculadas em x=xk-1 e y=yk-1.

De forma similar
g g
g ( x, y ) = g ( xk −1 , yk −1 ) + ( x − xk −1 ) + ( y − yk −1 )
x y

Substituindo em (18) obtém-se o sistema linear 2  2

 f f
 x x + y y = − f ( x k −1, y k −1)


 g x + g y = − g ( x k −1, y )
k −1

 x y
com  x = x − xk −1 e  y = y − yk −1 , que se pode escrever em forma vectorial como:
J k −1  x = − f ( xk −1 ) , ou ainda

 f f 
 x y  x   f ( xk , y k ) 
   = −  (19)
 g g     
 x y  y   g ( xk , yk ) 
 
   
J k −1 x f ( x k −1 )

A solução de (19), que designamos por δx (δx,δy) é a correção que devemos somar a xk-1 para
obter xk. Assim,
xk = xk −1 +  x , em que δx se obtém resolvendo: J k −1  x = − f ( xk −1 ) .

- 244 -
Capítulo 6 Sistemas de equações

Exemplo 6.10: Dada a estimativa inicial (x0,y0)=(1,1) determinar a solução aproximada do


sistema não linear:
 x2 + y2 − 4 = 0
 2
 x
 + y2 −1 = 0
 9

após duas iterações pelo método de Newton-Raphson.

Resolução:
Matriz Jacobiana:
f f
= 2x ; = 2y
x y
g 2 g
= x ; = 2y
x 9 y
Iteração 1

aproximação inicial:
x0=1 , y0=1 f(x0,y0)= - 2.0 , g(x0,y0)=1/9

pelo que o sistema (19) se escreve:

2 2 − 2.0
   x  
2   = − 1 
2  y
 9   9 

de cuja resolução:
δx = 1.1875 , x1 = x0 + δx = 2.1875
δy = -0.1875 , y1 = x0 + δy = 0.8125

Iteração 2

x1=2.1875 , y0=0.8125 f(x1,y1)=1.445 , g(x1,y1)=0.192

4.375 1.625  x 1.445 


    = − 
0.486 1.625   y 0.192

δx = -0.3220 , x2 = x1 + δx = 1.8655
δy = -0.0218 , y2 = x1 + δy = 0.7907

- 245 -
Capítulo 6 Sistemas de equações

Exercícios propostos

1. Resolver o sistema de equações lineares:


 2 x1 + x2 − 3 x3 = − 1

 − x1 + 3 x2 − 2 x3 = 12
 3x + x −3x =0
 1 2 3

através dos métodos de eliminação de Gauss e Gauss-Jordan.

2. Determinar as soluções do sistema de equações lineares: [A] {x} = {b} para {b}T={4,6,6} e
{b}T={4,4,6} em que:
 1 1 1 
 
A = 2 2 1 
 1 1 2 
 

3. Considerar o seguinte sistema de equações lineares:

pi xi −1 + d i xi + qi xi +1 = bi ; i = 1,...,5

tendo os vetores p, d, q e b os seguintes elementos {p}T={0,-0.12,-0.12,-0.12,-0.12},


{d}T={1.24,1.24,1.24,1.24,1.24}, {q}T={-0.12,-0.12,-0.12,-0.12,0} e {b}T={0.12,0,0,0,0}.
a) Coloque o sistema de equações na forma matricial.
b) Utilizando o processo mais adequado, resolver o sistema de equações. Admitir que os dados
do problema são quantidades exatas e determinar a solução do sistema com 5 casas decimais
corretas.

4. Considerar o seguinte sistema de equações lineares:

 3 x1 − x3 + x 4 = 1.0

 2 x3 + x 4 = 2.0

 x1 − x3 + 3 x 4 = 3.0
 3 x + x + x = 4.0
 2 3 4

a) Determinar a sua solução recorrendo ao método direto de Gauss.


b) Partindo dum vetor solução inicial conveniente (x1(0),x2(0),x3(0),x4(0)) resolver em 3ª
aproximação { solução aproximada (x1(2),x2(2),x3(2),x4(2))} por um processo iterativo mostrando
previamente que o método é convergente.

- 246 -
Capítulo 6 Sistemas de equações

 0 6 3   x   4
   y  =  4
5. Considere o seguinte sistema de equações lineares:  1 2 8     
  2   z  1 
 3

a) O sistema, na forma anterior, estará em condições de ser resolvido por um dos métodos
iterativos estudados? Em caso negativo, escrever a forma conveniente. Justificar.
b) Qual a condição a exigir a α para garantir a convergência do método de Gauss-Seidel? Dar
um valor para α e determinar uma solução do sistema em 2ª aproximação.

 1 0 3 
 
6. Seja a matriz: A =  5 1 2 
 1 2 
 6

a) Determinar a decomposição: A = L U .
 2 
 
b) Resolver o sistema: A x =  − 5 
− 11
 

7. Considere o seguinte sistema de equações:

( )
− 2 1 + h 2 x1 + x2 = 1
( )
xi −1 − 2 1 + h xi + xi +1 = 0 ; i = 2,3,..., n − 1
2

xn −1 − 2(1 + h )x
2
n =1
com n = 5 .
a) Classifique-o quanto à linearidade das equações.
b) Coloque-o na forma Ax = b.
c) Identifique o procedimento de resolução mais eficiente.

8. Considerar o sistema não linear:


 x 2 + y 2 = 4
 x
e + y = 1

Utilizar o método de Newton-Raphson para determinar as suas raízes com pelo menos 3
algarismos significativos corretos. Previamente calcular um vetor inicial através de um método
gráfico.

- 247 -
Capítulo 6 Sistemas de equações

9. Determine, com dois algarismos significativos corretos, os caudais que percorrem as


condutas do sistema hidráulico representado esquematicamente na figura, sabendo que os
mesmos são solução do seguinte sistema:

10.5 m
Q1 = Q2 + 0.5
 1.8
4 Q1 + Q21.8 = 10.5 Q1
Q2

Considere como valores iniciais:


Q1=2.5 m3/s e Q2=2.0 m3/s.
0.5 m 3 /s

10. Considere o sistema não linear:


 x 2 − y 2 − z 3 = −5


4 x − y + z = 7
3


 x z + 5 y = 1

Partindo do vetor inicial: X = 1, 0, 2 , determine a respetiva solução com duas casas decimais
T

corretas.

11. Para conhecer os caudais que circulam nas


condutas do sistema hidráulico apresentado
esquematicamente na figura é necessário resolver Q1 Q2
Q4
o seguinte sistema não-linear:
Q3

 Q1 − Q 2 − Q 3 = 0

 Q 2 + Q3 − Q4 = 0


 93.85 Q1
1 / 0.56
+ 31.28 Q12/ 0.56 + 93.85 Q14/ 0.56 = 1000

 31.28 Q12/ 0.56 − 31.28 Q13/ 0.56 = 0

Determinar os referidos caudais com um erro inferior a 0.1 m3/s, utilizando os seguintes valores
iniciais: Q1=Q4=3.0 m3/s, Q2=Q3=1.5 m3/s.

- 248 -
CAPÍTULO 7
____________________________________________________________________________________________

EQUAÇÕES DIFERENCIAIS ORDINÁRIAS (EDO)

1. Introdução

As equações diferenciais são utilizadas como modelos matemáticos para a descrição do


comportamento de muitos processos físicos, em especial aqueles que sofrem alterações no
tempo. A resolução destas equações é, por conseguinte, de grande importância para
engenheiros e cientistas.

Em geral, as equações diferenciais que representam os fenómenos físicos relacionam


derivadas parciais no espaço e no tempo de grandezas desconhecidas que se pretendem
determinar (velocidade, aceleração, caudal, intensidade, etc.). Casos há em que através de
simplificações estas equações se podem reduzir a equações diferenciais ordinárias (equações
em que a função desconhecida apenas depende de uma variável, apresentando portanto
derivadas totais).

2. Preâmbulo matemático

Assumindo que uma equação diferencial ordinária de ordem n poderá escrever-se na forma:

( )
y (n ) (t ) = f t, y (t ), y' (t ), ..., y (n −1) (t ) (1)

entende-se por solução da equação (1) a função (t ) , n vezes continuamente diferenciável
num dado intervalo e satisfazendo aquela equação; ou seja, (t ) terá de satisfazer:

( )
φ (n ) (t ) = f t, φ(t ), φ (t ), ..., φ (n −1) (t )

A solução geral da equação (1) conterá, em geral, n constantes arbitrárias, existindo, por
conseguinte, n famílias de soluções. Se forem fornecidos os valores y (t 0 ), y' (t 0 ), ..., y (n−1) (t 0 )
num dado ponto de abcissa t = t 0 , estaremos perante um problema de valor inicial. Assume-
se, obviamente, que a função f satisfaz as condições suficientes para garantia de uma solução
única para este problema de valor inicial.

- 249 -
Capítulo 7 EDOs

Um exemplo simples de uma equação diferencial de 1ª ordem é y' (t ) = y . A sua solução geral
é y (t )= Ce , em que C é uma constante arbitrária. Se for dada uma condição inicial y (t 0 ) = y 0
t

, a correspondente solução particular poderá então escrever-se y (t ) = y0 e


(t − t )
.o

2.1 Equações lineares

As equações diferenciais poderão classificar-se em lineares e não-lineares. Uma equação


será linear se a função f em (1) contiver y e as suas derivadas de forma linear.

As equações lineares gozam da seguinte propriedade importante: se as funções


y1 (t ), y 2 (t ), ..., y n (t ) forem soluções de uma equação linear, também a função
C1 y1 (t ) + C 2 y 2 (t ) + ... + C n y n (t ) será solução daquela equação, para quaisquer constantes
Ci .

Seja a equação diferencial ordinária linear de segunda ordem y' ' (t )= y . É fácil verificar que
e t e e −t são soluções desta equação; por conseguinte, é também solução daquela equação a
soma:

y (t ) = C1e t + C 2 e −t

Duas soluções y1 e y 2 de uma equação diferencial linear de 2ª ordem dizem-se linearmente


independentes se o 'Wronskian' da solução for não nulo, sendo este definido por:

y1 y'1
W ( y1 , y 2 ) = y1 y' 2 − y 2 y'1 =
y2 y' 2

Obviamente, este conceito de independência linear é extensível às soluções de equações de


ordem superior. Se y1 (t ), y 2 (t ), ..., y n (t ) forem soluções linearmente independentes de uma
equação diferencial homogénea de ordem n, então

y (t ) = C1 y1 (t ) + C 2 y 2 (t ) + ... + C n y n (t )

é designada por solução geral.

Entre as equações lineares, são particularmente interessantes as equações com coeficientes


constantes, pois são frequentes e permitem um tratamento matemático simples.

Uma equação diferencial linear de ordem n com coeficientes constantes pode escrever-se na
seguinte forma geral:

- 250 -
Capítulo 7 EDOs

y (n ) + an −1 y (n −1) + an- 2 y (n- 2 ) + ... + a0 y (0 ) = 0 (2)

em que ai são constantes reais. Se procurarmos soluções de (2) na forma e t , por substituição
direta naquela equação resulta a seguinte equação polinomial a que  terá de satisfazer:

β n + an −1 β n −1 + an- 2 β n- 2 + ... + a0 = 0

sendo conhecida por equação característica da equação diferencial linear de ordem n, com
coeficientes constantes.
Se esta equação característica tiver n raízes distintas i , então a solução geral da equação (2)
escreve-se:

y (t ) = C1e β t + C2 e β t + ... + C n e β t
1 2 n

em que C i são constantes arbitrárias.

Se a equação linear (2) for não-homogénea, isto é, com

y (n ) + an −1 y (n −1) + an- 2 y (n- 2 ) + ... + a0 y (0 ) = g (t ) (3)

e se  (t ) for uma solução particular desta equação, então a solução geral da equação (3),
assumindo que as raízes da equação característica são distintas, escreve-se:

y (t ) = ψ (t ) + C1e β t + C2 e β t + ... + C n e β t
1 2 n

Se a equação característica da equação (2) tiver raízes múltiplas, recorre-se a técnicas


especiais para a obtenção de soluções linearmente independentes. Em particular, se β1 for
βt βt
uma raiz dupla, então y1 = e e y 2 = te serão soluções linearmente independentes da
1 1

equação dada. Seja a equação y'' + b y = 0 , cuja equação característica é  = − b ; as raízes


2 2 2

desta equação são obviamente complexas, com β1 = ib e β 2 = -ib , e a correspondente


solução geral escreve-se y (t ) = C1 cos bt + C 2 sen bt . No caso mais geral, em que a equação
característica tem raízes complexas da forma a  bi, com a  0 e b  0 , o correspondente
par de soluções linearmente independentes escreve-se:
y1 (t ) = C1 e cos bt , y 2 (t ) = C 2 e sen bt .
at at

- 251 -
Capítulo 7 EDOs

2.2 Equações não-lineares

De um modo geral, podemos resolver analiticamente qualquer equação diferencial ordinária


de 1ª ordem que esteja, ou possa colocar-se, na forma:

 (t , y ) = 0
d
(4)
dt

para qualquer função (t, y ) . Nesta conformidade, poder-se-ão integrar ambos os membros
da equação (4) para obter,
(t, y ) = constante (5)

e, a partir desta equação, calcular a solução geral y (t ) .

Exemplo 7.1: A equação 1 + cos (t + y ) + cos (t + y )


dy
= 0 pode ser escrita na forma,
dt

d
t + sin(t + y ) = 0
dt

Por conseguinte,  (t , y ) = t + sin (t + y ) = c => y = −t + arcsin (c − t ) .

A equação (4) é claramente o caso mais geral de uma equação diferencial ordinária de 1ª
ordem que podemos resolver. Todavia, importa ter presente que nem todas as equações
diferenciais podem ser colocadas naquela forma. Com efeito, e atendendo a que,

  y
 (t , y (t )) =
d
+ ,
dt t y t

toda a equação diferencial M (t , y ) + N (t , y )  (t , y ) = 0 se


dy d
= 0 pode ser escrita na forma
dt dt
 
e só se existir a função  (t , y ) tal que M (t , y ) = e N (t , y ) = . Ora, prova-se que estas
t y
condições apenas são satisfeitas para as funções M e N contínuas e com derivadas contínuas,
M N
relativamente às variáveis t e y, se e só se = .
y t

Por conseguinte, apenas um reduzido número de equações diferenciais poderá ser resolvido
por via analítica, recorrendo-se em geral à obtenção numérica de uma solução particular,
y (t 0 ) = y 0 .

- 252 -
Capítulo 7 EDOs

2.3 Equações às diferenças

Apresenta-se nesta secção uma breve introdução à teoria das equações às diferenças, dado
que esta se torna necessária na análise de métodos numéricos utilizados para a obtenção de
soluções de equações diferenciais ordinárias.

Assim, seja uma equação linear às diferenças de ordem k , com coeficientes constantes:
y i+k + a k-1 y i+k −1 + ... + a1 y i+1 + a 0 y i = b (6)

em que y j são termos de uma sucessão de valores. É usual escrever esta equação na seguinte
forma geral:
Δ k yi + α k-1 Δ k −1 yi + ... + α1 Δyi + α 0 yi = b

Tal como para as equações diferenciais lineares homogéneas de ordem n, com coeficientes
constantes, procuramos aqui soluções da forma yi =  , para todo o i. Substituindo na
i

equação homogénea resultante de (6) obtém-se, após divisão por  , a seguinte equação
i

característica:

β k + ak-1 β k-1 + ... + a1 β + a0 = 0

Assumindo que os k zeros do polinómio característico 1 ,  2 , ...,  k são distintos, então todos
eles são soluções da equação (6) e por linearidade segue-se que:

Y H =  c j β ij = c1 β1i + c 2 β 2i + ... + c k β ki ; para todo o i

H
sendo Y a solução geral da correspondente equação homogénea da equação (6). A solução
H P
geral da equação não-homogénea (6) é Y = Y + Y .

Se o segundo membro da equação (6) for uma constante, obtém-se uma solução particular
Y P através de:
b
Y P = Constante =
aj
desde que  a j  0 .

A título de exemplo, seja a determinação da solução discreta, y i , da equação às diferenças


progressivas:
Δ 2 yi − 2 Δyi + yi = 1

considerando y0 = 2 como condição inicial.


Ora, Δyi = yi +1 − yi ; Δ 2 yi = ( yi + 2 − yi +1 ) − ( yi +1 − yi ) = yi + 2 − 2 yi +1 + yi , donde,

- 253 -
Capítulo 7 EDOs

Δ 2 yi − 2 Δyi + yi = 1 <=> yi + 2 − 4 yi +1 + 4 yi = 1 . Sendo a solução geral daquela equação


1
G P
= 1 , e a solução geral
P
dada por Y = Y + Y , uma solução particular escreve-se y i =
1− 4 + 4
da equação homogénea y i + 2 − 4 y i +1 + 4 y i = 0 é y i = C1 2 + C 2 i 2 . A solução particular para
H i i

as condições iniciais y 0 = 2 e y1 = 3 resulta assim de:

i=0: y 0 = C1  2 0 + C 2  0  2 0 + 1 = 2
i=1: y1 = C1  21 + C 2  1  21 + 1 = 3

vindo C1 = 1; C 2 = 0 . Consequentemente, a solução da equação dada é: yi = 2 + 1 .


i

3. Integração numérica de equações diferenciais ordinárias

3.1 Formulações de um passo

Seja o problema de valor inicial,

= f (t , y ) , y (t 0 ) = y 0
dy
dt

Numericamente apenas é possível obter uma solução ou integral particular de um dado


problema, calculando um conjunto de valores aproximados y1 , y 2 ,..., y N de y (t ) num
número finito de pontos t1 , t 2 ,..., t N .

Sabendo que y (t ) satisfaz uma certa equação diferencial e que toma o valor y0 em t = t0 ,
qualquer esquema numérico utiliza esta informação para calcular o valor aproximado y1 de
y em t = t1 = t 0 + h . Usando em seguida este valor aproximado y1 , calcula-se o valor
aproximado y 2 de y em t = t 2 = t1 + h , e assim sucessivamente.

3.1.1 Métodos baseados na série de Taylor

Um dos métodos que permite calcular o valor de y em t = t k + h , partindo do valor de y em


t = t k é o de expandir y (t ) em série de Taylor em torno do ponto t = t k :

dy(t k ) h 2 d 2 y (t k )
y (t k + h ) = y (t k ) + h + + ... (7)
dt 2! dt 2
Consequentemente, se conhecermos o valor de y e as suas derivadas em t = t k , podemos
calcular o valor de y em t = t k + h através de (7).

- 254 -
Capítulo 7 EDOs

Ora, a 1ª derivada de y , quando avaliada em t = t k é igual a f (t k , y (t k )) . Por conseguinte, a

d 2 y (t k )
segunda derivada é dada por,
dt 2

d 2 y (t k )  f f 
= + f (t k , y(t k ))
dt 2
 t y 

Nesta conformidade, podemos reescrever (7) na seguinte forma,

h 2  f f 
y (t k +1 ) = y (t k ) + hf (t k , y (t k )) +  + f (t k , y(t k )) + ... (8)
2!  t y 

O método mais simples para avaliar y (t k +1 ) é obtido por truncatura da série de Taylor (8) após
o segundo termo. Deste modo resulta o seguinte esquema numérico:

y1 = y 0 + hf (t 0 , y 0 ) , y 2 = y1 + hf (t1 , y1 ) , y3 = ...
e, em geral,

y k +1 = y k + hf (t k , y k ) , y 0 = y (t 0 ) (9)

O esquema (9) é conhecido por método de Euler, com a correspondente representação gráfica
mostrada na Fig. 1, sendo o valor y (t k +1 ) aqui considerado a solução exata da equação

diferencial no instante t k +1 .

y
y(tk+1) Erro
yk+1 Declive = y'k = f (t k , yk )
yk h*f(tk,yk)
h

tk tk+1 t

Figura 1 - Método de Euler.

- 255 -
Capítulo 7 EDOs

Exemplo 7.2: Seja a solução do problema de valor inicial,

= 1 + (y − t) , y (0 ) =
dy 2 1
.
dt 2

Usar o método de Euler para calcular valores aproximados y1 , y 2 ,..., y N de y (t ) nos


1 2
pontos t1 = , t 2 = ,..., t N = 1
N N

O esquema de Euler para este problema escreve-se,

 2

y k +1 = y k + h 1 + ( y k − t k ) , com k = 0 ,1 ,..., N − 1 ; h =
1
N
e y (0 ) =
1
2

Comparar os resultados numéricos com a solução analítica deste problema:


y (t ) = t +
1
.
2−t

Pretende-se agora estimar o erro de discretização, ek , definido por:

ek = y (t k ) − y k (10)

que resulta para a aproximação y k +1 obtida pelo método de Euler [esquema (9)]. O valor de
y (t k +1 ) pode obter-se por expansão da série de Taylor com resto, vindo:
h2
y (t k +1 ) = y (t k ) + hy' (t k ) + y'' (ξ k ) ; t k  ξ k  t k +1 (11)
2!
h2
sendo a quantidade y' ' ( k ) designada por erro local de discretização.
2!

Deste modo, subtraindo o esquema (9) da equação (11), tendo em conta (10), resulta:
h2
ek +1 = ek + h f (t k , y(t k )) − f (t k , y k ) + y'' (ξ k )
2!

Pelo teorema do valor médio, podemos escrever:


f
f (t k , y (t k )) − f (t k , y k ) = (t k , y k ) y(t k ) − y k  = f (t k , y k ) ek
y y
em que y k representa um valor entre yk e y (t k ) . Por conseguinte, resulta:

f 2
ek +1 = ek + h (t k ,y k ) ek + h y (ξ k ) (12)
y 2!

- 256 -
Capítulo 7 EDOs

Assumindo agora que no intervalo considerado se verificam:

f f f
max L e max y' ' = max + f D
(t , y ) y (t , y ) (t , y ) t y

em que L e D são constantes positivas, resulta, tomando valores absolutos:

h2 h2
ek +1 = ek + hL ek + D = (1 + hL ) ek + D
2! 2

Importa agora calcular a solução da equação às diferenças (13):

h2
ξ k +1 = (1 + hL ) ξ k + D (13)
2

cujo resultado representa um limite superior para o valor do erro ek +1 , isto é, ξ k +1  ek +1 .

Pela teoria das equações às diferenças, apresentada na secção 2.3, a solução ξ k da equação às
diferenças não-homogénea (13) é dada por:

ξ k = C (1 + hL )
hD

k

2L

a qual terá de ser necessariamente satisfeita para qualquer valor de k, em particular para k =
hD
0, vindo para a constante C o valor + , com  0 = 0 , ou seja,
2L

ξk =
hD
(1 + hL )k − hD (14)
2L 2L

Atendendo a que por desenvolvimento em série de Maclaurin se obtém:

t2 t3 t k +1 ξt
et = 1 + t + + + ... + e
2! 3! (k + 1)!

então e t  1 + t , para todo o t. Nesta conformidade, segue-se que e hL  1 + hL e,


portanto,
e khL  (1 + hL )
k

Substituindo este resultado em (14), segue-se que:

- 257 -
Capítulo 7 EDOs

ξk 
2L
(
hD khL
e −1 =
hD (t
2L
e ) ( k −t 0 ) L
)
−1

Um método óbvio para a obtenção de melhores resultados que os dados pelo método de Euler
consiste na truncatura da série de Taylor após o terceiro termo; seja,

h 2  f f 
= y k + hf (t k ,y k ) +  + f (t k ,y k ) , com k = 0,1, ... e y 0 = y (t 0 ) (15)
y 
y k+1
2!  t

O esquema traduzido pela equação (15) é designado por método de Euler melhorado com o
terceiro termo da série de Taylor.

Exemplo 7.3: Seja a solução do problema apresentado no Exemplo 7.2,

= 1 + (y − t) , y (0 ) =
dy 2 1
.
dt 2

Usando o método de Euler melhorado com o terceiro termo da série de Taylor


[esquema (15)], calcular valores aproximados y1 , y2 ,..., y N de y (t ) nos pontos t1 =
1
N
2
, t 2 = ,..., t N = 1 .
N

O esquema (15) para este problema escreve-se,

 
y k +1 = y k + h 1 + ( y k − t k ) + h 2 ( y k − t k ) , com k = 0 ,1 ,..., N − 1 ;
2 3

e y (0 ) = .
1 1
h=
N 2

Comparar com os resultados numéricos do Exemplo 7.2.

A consideração do terceiro termo da série de Taylor permite melhorar significativamente os


resultados do método de Euler. Contudo, tem sérias desvantagens do ponto de vista numérico
pelo facto de requerer o cálculo de derivadas parciais da função f (t , y ) .

Uma boa alternativa ao método traduzido pela equação (15) consiste em integrar ambos os

= f (t , y ) entre t k e t k + h , para obter:


dy
membros da equação diferencial
dt

- 258 -
Capítulo 7 EDOs

y (t k +1 ) = y (t k ) + t f (t , y (t )) dt
t1 + h
k

Deste modo, a procura do valor aproximado de y (t k +1 ) é reduzida ao cálculo do valor


aproximado da área contida abaixo da curva f (t k , y (t k )) entre t k e t k + h . Uma aproximação
"grosseira" desta área é hf (t k , y (t k )) (Fig. 2 a) - Região R), a qual conduz ao esquema
numérico de Euler y k +1 = y k + hf (t k , y k ) . Uma melhor aproximação desta área é dada por
h
 f (t k , y(t k )) + f (t k +1 , y(t k +1 )) (Fig. 2 b) - Região T), a qual conduz ao seguinte esquema
2
numérico implícito,

y k +1 = y k +
h
 f (t k , y k ) + f (t k +1 , y k +1 ) (16)
2

y f(t,y(t)) y f(t,y(t))

R T

tk tk + h t tk tk + h t

a) Método de Euler. b) Esquema implícito.

f (t , y (t )) dt .
+h
Figura 2 - Aproximações R e T do integral t k

t k

O esquema (16) não permite, em geral, obter explicitamente o valor de yk +1 . Uma forma de
ultrapassar esta dificuldade consiste em efetuar uma primeira previsão deste valor por Euler
e substituí-lo em seguida no segundo membro da equação (16); deste modo somos conduzidos
ao seguinte esquema explícito de previsão por Euler e correção por trapézios,

y k +1 = y k +
h
 f (t k ,y k ) + f (t k +1 ,y k + hf (t k ,y k )) , y 0 = y (t 0 ) (17)
2

Exemplo 7.4: Seja a solução do problema apresentado no Exemplo 7.2,

= 1 + (y − t) , y (0 ) =
dy 2 1
.
dt 2

Usando o método de previsão-correção traduzido pelo esquema (17), calcular valores


aproximados y1 , y 2 ,..., y N de y (t ) nos pontos t1 = , t 2 = ,..., t N = 1 .
1 2
N N

- 259 -
Capítulo 7 EDOs

O esquema (17) para este problema escreve-se,

y k +1 = y k +
h
2
 2
 ( 2
)
1 + ( y k − t k ) + 1 + y k + h 1 + ( y k − t k ) − t k +1  ,
2

e y (0 ) = .
1 1
com k = 0 ,1 ,..., N − 1 ; h =
N 2

Comparar com os resultados numéricos do Exemplo 7.3.

3.1.2 Métodos de Runge-Kutta

Os métodos para obtenção de soluções de equações diferenciais baseados em


desenvolvimentos da série de Taylor não são muito comuns na prática, por exigirem a
utilização de incrementos da variável independente (tempo ou espaço) muito pequenos, ou
por necessidade de manutenção de derivadas de ordem superior à primeira.

Nesta conformidade, desenvolveram-se algoritmos de passo simples que apenas envolvem


derivadas de primeira ordem, mas que produzem resultados de precisão equivalentes às
formulações de ordem superior baseadas na fórmula de Taylor. Estes algoritmos designam-
se por métodos de Runge-Kutta. As aproximações equivalentes às expressões baseadas em
desenvolvimentos da série de Taylor que mantêm as segundas, terceiras e quartas derivadas
requerem o cálculo da primeira derivada y', ou seja, da função f(t,y), para dois, três ou quatro
valores de t, no intervalo t k  t  t k +1 .
Todos os métodos de Runge-Kutta têm algoritmos da forma:

y k +1 = y k + hψ (t k ,y k ,h ) (18)

em que a função incremento  representa um valor apropriado da função f(t,y) no intervalo


t k  t  t k +1 .

O método de Runge-Kutta mais simples considera  como sendo a média ponderada de duas
derivadas Lk,1 e Lk,2 calculadas no intervalo t k  t  t k +1 , isto é,

ψ = aLk,1 + bLk,2
o que conduz a:
y k +1 = y k + h(aLk,1 + bLk,2 ) (19)

com Lk ,1 = f (t k , y k ) e Lk,2 = f (t k + α h,y k + β hLk,1 ) , sendo a, b, α e β constantes a serem

- 260 -
Capítulo 7 EDOs

determinadas posteriormente, garantindo que o algoritmo (18) é de precisão não inferior ao


método da série de Taylor com manutenção do termo de ordem h 2 .

Antes de prosseguirmos, importa agora analisar alguns resultados importantes,


nomeadamente no que se refere à obtenção de derivadas de ordem superior.
Se y' = f (t, y ) tiver n derivadas parciais contínuas, na região de análise, então y (n ) = P n −1 f ,
  
sendo P um operador definido por: P =  + f .
 t y 

   f f
Nesta conformidade, y' ' =  + f  f = + f = f t + ff y e para a derivada de 3ª
 t y  t y
ordem, y''', resulta:
     
y''' = P 2 f =  + f  + f f
 t y  t y 
 2    2    
=  2 +  f  + f + f f  f
 t t  y  ty y  y 

= f tt + ff ty + f t f y + ff ty + f ff yy + f y2 
= (f tt )
+ 2 ff ty + f 2 f yy + f y ( f t + ff y )

Expandindo y k+1 em série de Taylor, mantendo termos até ordem h 3 , obtém-se:

h2 h3
y (tk +1 ) = y (tk ) + hy' (tk ) + y'' (tk ) + y''' (tk ) + ...
2! 3!

= y (tk ) + hf (tk , yk ) +
h2
( ft + ff y )k (20)
2!

+
h3
3!
(
f tt + 2 ffty + f t f y + f 2 f yy + ff y2 )
k
( )
+  h4

Usando, por outro lado, a expansão em série de Taylor para funções de duas variáveis, obtém-
se:

Lk,2 = f (t k + αh, y k + βhLk,1 )


= f (t k , y k ) + αhf t (t k , y k ) + βhf (t k , y k ) f y (t k , y k )
β 2 h 2 f 2 (t k , y k )
f yy +  (h 3 )
α2h2
+ f tt + α β h 2 f (t k , y k ) f ty +
2 2

Substituindo esta expressão para Lk,2 em (19), e atendendo a que Lk,1 = f (t k ,y k ) , resulta, após
reorganização de termos:

- 261 -
Capítulo 7 EDOs

 α2 
y k +1 = y k + (a+b )hf + bh 2 (αf t + βff y ) + bh 3  f f yy  + (h 4 )
β2 2
f tt + αβff ty +
 2 2 

Comparando esta última expressão para y k +1 com o desenvolvimento (20), e obrigando a que
estas coincidam até à ordem h 2 , tem-se:

a + b = 1 ; b = bβ = 0.5

Temos 3 equações a quatro incógnitas; por conseguinte, o sistema é indeterminado. Há,


portanto, várias soluções possíveis. É usual fixar b = 0.5, obtendo-se para as restantes
incógnitas: a = 0.5 e α = β = 1 . Deste modo, obtém-se o seguinte algoritmo, conhecido por
método de Runge-Kutta de segunda ordem:

y k +1 = y k +
h
 f (t k , y k )+ f (t k+1 , y k+1 ) , com y k+1 = y k + hf (t k , y k ) ; k = 0, 1, ...
2
ou,

y k +1 = y k +
h
(Lk,1 + Lk,2 ) , com Lk,1 = f (t k , y k ) ; k = 0, 1, ... (21)
2 L
 k,2 = f (t k + h, y k + hL k,1 )

Geometricamente, este algoritmo tem o significado representado na Fig. 3. O método de Euler


fornece o incremento Q1Q0 = hf (t k ,y k ) ; obtém-se em seguida um incremento
Q2 Q0 = hf t k +h, y k + hf (t k ,y k ) , baseado no declive, em t k +1 . A média destes dois valores
conduz ao incremento Q3Q0 , que corresponde ao resultado dado por (21).

Q1
Q
Q2
Q0
yk

tk tk+1

Figura 3 - Método de Runge-Kutta de 2ª ordem.


Pode mostrar-se que o erro local do algoritmo (21) é da forma:

y (t k +1 ) − y k +1 =
h3
12
( )
f tt + 2 ff ty − 2 f t f y + f 2 f yy − 2 ff y2 +  h 4( )
A avaliação do limite superior do erro cometido nos métodos de Runge-Kutta é, com efeito,

- 262 -
Capítulo 7 EDOs

uma das grandes dificuldades de aplicação destes métodos. Este erro é, todavia, da ordem de
h 3 , enquanto o erro no método de Euler é, como vimos, da ordem de h 2 . Os métodos de
Runge-Kutta garantem, portanto, maior precisão para incrementos da mesma ordem de
grandeza.

O desenvolvimento de algoritmos de Runge-Kutta de ordem superior é em tudo análogo ao


efetuado para o método de 2ª ordem; apenas são bastante superiores as manipulações
algébricas no desenvolvimento daqueles algoritmos.

Nesta conformidade, apresentamos, sem demonstração, o método de Runge-Kutta


frequentemente mais utilizado para a resolução de equações diferenciais ordinárias de 1ª
ordem: o método de Runge-Kutta de quarta ordem, sendo definido por,

y k +1 = y k +
h
Lk,1 + 2 Lk,2 + 2 Lk,3 + Lk,4 , com k = 0,1, ...; (22)
6

y 0 = y (t 0 ) e,
Lk,1 = f (t k ,y k )
 1 1 
Lk,2 = f  t k + h,y k + hLk,1 
 2 2 
 1 1 
Lk,3 = f  t k + h,y k + hLk,2 
 2 2 
Lk,4 = f (t k + h,y k + hLk,3 )

Exemplo 5: Seja a solução do problema apresentado no Exemplo 7.2,

= 1 + (y − t) , y (0 ) =
dy 2 1
.
dt 2

Usando os métodos de Runge-Kutta de segunda e quarta ordens [esquemas (21) e


(22)], calcular valores aproximados para y1 , y 2 ,..., y N de y (t ) nos pontos t1 = ,
1
N
2
t 2 = ,..., t N = 1 . Comparar com os resultados numéricos dos Exemplos 7.3 e 7.4.
N

O método implícito que se baseia na regra dos trapézios [esquema (16)] e o método de Runge-
Kutta de quarta ordem [esquema (22)] são, em geral, métodos suficientemente precisos que
podem ser utilizados para calcular a solução aproximada de uma equação diferencial ordinária
de ordem N, ou, o que é equivalente, para resolver sistemas de N equações diferenciais
ordinárias de 1ª ordem.

- 263 -
Capítulo 7 EDOs

d2y  dy  dy
Assim, seja uma equação diferencial ordinária de 2ª ordem = g  t,y  , fazendo =z
 dt 
2
dt dt
resulta o seguinte sistema de duas equações diferenciais ordinárias de 1ª ordem:

f (t , y , z ) = z
dy
dy (t 0 )
, com y 0 = y (t 0 ) e
dt dy 0
= z0 = .
= g (t , y , z )
dz dt dt
dt

O método de Runge-Kutta de quarta ordem para calcular a solução aproximada deste sistema
de duas equações diferenciais ordinárias de 1ª ordem escreve-se:

K i,1 = hf (t i , yi , z i )
Li,1 = hg (t i , yi , z i )
 h K L 
K i,2 = hf  t i + , yi + i,1 , z i + i,1 
 2 2 2 
 h K L 
Li,2 = hg  t i + , yi + i,1 , z i + i,1 
 2 2 2 
 h K L 
K i,3 = hf  t i + , yi + i,2 , z i + i,2 
 2 2 2 
 h K L 
Li,3 = hg  t i + , yi + i,2 , z i + i,2 
 2 2 2 
K i,4 = hf (t i + h, yi + K i,3 , z i + Li,3 )
Li,4 = hg (t i + h, yi + K i,3 , z i + Li,3 )

y i +1 = yi +
1
(K i,1 + 2 K i,2 + 2 K i,3 + K i,4 )
6
= z i + (Li,1 + 2 Li,2 + 2 Li,3 + Li,4 )
1
z i +1
6

A extensão para sistemas de N equações diferenciais ordinárias de 1ªordem, ou, o que é


equivalente, para equações diferenciais ordinárias de ordem N é óbvia.

Exemplo 7.6: Usando o método de Runge-Kutta de quarta ordem, obter a solução da


equação diferencial que traduz o movimento oscilatório, em regime turbulento, de um
líquido incompressível contido num tubo com a forma de U,

d 2z dz dz
2
+a + bz = 0
dt dt dt

- 264 -
Capítulo 7 EDOs

em que z = z (t ) representa a altura atingida no instante t pela superfície do líquido,


contada a partir da posição de equilíbrio, num dos ramos do tubo.
Sejam a = 0.05 m ; b = 0.02 m , e as seguintes condições iniciais, no
-1 -2

instante t = t 0 = 0 s : z 0=z (0 ) = 0.0 m e y 0 = (0 ) = 1.0 ms -1 .


dz
dt

 dy
 = −ay y − bz = f (t,z,y )
 dt
Fazendo y = dz/dt, então dy/dt = d 2 z/dt 2 , e 
 dz = y = g (t,z,y )

 dt

Estas duas equações são agora resolvidas em simultâneo, para as condições iniciais
(t0 , z0 , y0 ) dadas:
K i,1 = h(− ayi y i − bz i )
Li,1 = hy k
  K  K  L 
K i,2 = h -a y i + i,1  y i + i,1 − b z i + i,1 
  2  2  2 
 K 
Li,2 = h y i + i,1 
 2 
  K  K  L 
K i,3 = h -a y i + i,2  y i + i,2 − b z i + i,2 
  2  2  2 
 K 
Li,3 = h y i + i,2 
 2 

K i,4 = h -a( y i + K i,3 ) y i + K i,3 − b(z i + Li,3 )
Li,4 = h( y i + K i,3 )

y i +1 = y i +
1
(K i,1 + 2 K i,2 + 2 K i,3 + K i,4 )
6
= z i + (Li,1 + 2 Li,2 + 2 Li,3 + Li,4 )
1
z i +1
6
t i +1 = t i + h
3.2 Formulações com vários passos

Os métodos de um passo requerem informação num único ponto, seja (tk, yk), para obtenção
da solução num ponto seguinte, (tk+1, yk+1). Os métodos de multi-passo utilizam informação
da solução em mais que um ponto.

Supondo que conhecemos aproximações para os valores de y'(t, y) e de y num número de

- 265 -
Capítulo 7 EDOs

pontos igualmente espaçados, sejam t0, t1, ..., tk, uma classe de métodos com vários passos
baseia-se no princípio da integração numérica.

Integrando a equação diferencial y' = f (t, y ) entre t k e t k +1 , obtém-se:

y k +1 = y k + t f (t,y (t )) dt
t k+1
(23)
k

Para o cálculo do integral da equação (23), podemos aproximar a função f (t, y (t )) por um
polinómio que interpole f (t, y (t )) em (m +1) pontos t k , t k −1 , t k- 2 , ..., t k − m . Usemos a notação
f (t , y (t
j j
)) = f j e a fórmula de diferenças regressivas de Newton para este efeito, seja:
t − tk
p (t ) =
m
 (− 1) j  − s  j f k − j ; s=
j =0
 j 
m
h

em que p m (t ) é um polinómio interpolador que passa pelos m +1 pontos (t i , f i ) .

Substituindo este resultado em (23), e atendendo a que dt = h ds, obtém-se:


j − s
y k +1 = y k + h 0  (− 1)   j f k − j ds
1 m
j =0
 j 
1  2 f k −2  3 f k −3
= y k + h 0  f k + sf k −1 + s (s + 1) + s(s + 1)(s + 2) + ...
 2! 3!
 m f k −m 
+ s(s + 1)(s + 2 ) ... (s + m − 1)  ds
m! 
vindo,

 s2  s 1   f k −2
2
 s2   3 f k −3
y k +1 = y k + h  sf k + f k −1 + s 2  +  + s 2  + s + 1
 2  3 2  2!  4  3!
1 (24)
 s 3 3s 2 11s   4 f k −4 
+ s 2  + + + 3 + ...
 5 2 3  4! 0
ou seja,
(
y k +1 = y k + h γ0 f k + γ1f k −1 + γ 2  2 f k − 2 + ... + γ m  m f k − m ) (25)

j 1 − s
com γ j = (− 1) 0   ds , resultando os seguintes valores para estes coeficientes:
 j 

1 5 3 251
γ 0 = 1 ; γ1 = ; γ2 = ; γ3 = ; γ 4 = ; ...
2 12 8 720

Fazendo na equação (25) m = 0 resulta o método de Euler. Considerando m = 3 obtém-se a

- 266 -
Capítulo 7 EDOs

seguinte fórmula, conhecida por método de Adams-Bashforth:

 1 5 2 3 
y k +1 = y k + h f k + f k −1 +  f k − 2 +  3 f k −3  (26)
 2 12 8 

Em geral, na prática, é mais cómodo trabalhar com ordenadas f i , em vez de diferenças f i .


Por definição resultam:

f k −1 = f k − f k −1
 f k − 2 = f k − 2 f k-1 + f k- 2
2

 3 f k −3 = f k − 3 f k-1 + 3 f k- 2 − f k-3

Substituindo em (26) e reagrupando termos obtemos:

y k +1 = y k +
h
(55 f k − 59 f k −1 + 37 f k −2 − 9 f k −3 ) (27)
24

Sendo o erro da fórmula de diferenças regressivas de Newton, com k = 3 e j = 0, dado por:


h4 f (4 )
(η ) −4s  , o erro de (26), E AB , é então:
 

E AB = h 0 h 4 f
1 (4 )
(η ) −4s  ds
 

Como   ds não muda de sinal no intervalo [0,1], existirá então um ponto de abcissa ξ ,
−s
4  
entre t k -3 e t k +1 , tal que:

E AB = h 5 f (4 )
(ξ )01  −4s  ds
 
vindo,
h 5 y v (ξ )
251
E AB =
720

Com base na integração numérica podemos agora deduzir várias formulações do tipo multi-
passo. Assim, integrando f(t, y(t)) em (23) entre t k-p e t k +1 com p  0 , em vez da integração
efetuada entre t k e t k +1 , considerando a fórmula de diferenças regressivas de Newton e os
mesmos m +1 pontos t k , t k −1 , t k -2 , ..., t k − m , obtemos:

yk +1 = yk-p + h -p
1 m
 (− 1) j  − s  j f k − j ds
j =0
 j 

o que obviamente corresponde à integração de (24) entre [-p, 1], em vez da integração

- 267 -
Capítulo 7 EDOs

efetuada entre [0, 1].


Naturalmente, com p = 0 resulta o método de Adams-Bashforth; com m = 1, p =1 e m = 3,
p = 3, resultam, respetivamente:
3
y (ξ )
h '''
y k +1 = y k-1 + 2hf k , com E =
3
e
y k +1 = y k-3 +
4h
(2 f k − f k −1 + 2 f k −2 ) , com E = 14
h 5 y v (ξ )
3 45

Como se pode verificar efetuando a integração de (24) entre [-p, 1], para valores ímpares de
p o coeficiente da diferença regressiva de ordem p é nulo. Ora, considerando apenas fórmulas
de p ímpar, como em geral acontece, com apenas p +1 termos (m = p), por conseguinte com
o termo de ordem p +1 nulo, resulta a seguinte expressão geral para o cálculo dos erros, E:

s (s − 1)(s − 2 ) ... (s + m ) (m +1)


E = h m + 2 − p
1
y (ξ ) ds, com t k − p  ξ  t k +1
(m + 1)!

Em particular, com m = 1, p =1 e m = 3, p = 3 resultam as expressões indicadas.

3.3 Métodos de previsão-correção

A formulação mais simples deste tipo de métodos é o esquema implícito traduzido pela
equação (16),

y k +1 = y k +
h
 f (t k , y k ) + f (t k +1 , y k +1 ) ; k = 0, 1, 2, ... (28)
2
Se a função f (t, y ) for não-linear, não será em geral possível calcular diretamente o valor de
y k +1 . Nesta conformidade, fixando t k , obtém-se uma primeira aproximação y (0 ) k +1 para o
valor de y k +1 através da fórmula de Euler,

y (0 ) k +1 = y k + h f (t k , y k )

Avalia-se em seguida o valor de f (t k +1 , y (0 ) k +1 ) e substitui-se em (28) para obter a


aproximação,
y (1) k+1 = y k +
h
2
 (
f (t k , y k ) + f t k +1 , y (0 ) k +1 )

Calcula-se então f (t k +1 , y (1) k +1 ) e usa-se de novo o esquema (28) para determinar uma
aproximação seguinte. Em geral, para cada k, o procedimento iterativo é definido por:

- 268 -
Capítulo 7 EDOs

y ( j ) k+1 = y k +
h
2
 ( )
f (t k , y k ) + f t k +1 , y ( j-1) k +1 ; j = 1, 2 , ...

y ( j ) k +1 − y ( j −1) k +1
o qual continuará enquanto não se verificar a condição:  ε , para um valor
y ( j ) k +1

de ε previamente fixado.

Uma fórmula de tipo corretor de ordem mais elevada pode ser obtida de modo semelhante ao
utilizado para a dedução da fórmula de Adams-Bashforth. Com efeito, expressando a função
polinomial p m (t k + sh ) em termos de uma diferença regressiva baseada em t k +1 em vez de t k
obtém-se:

y k +1 = y k-p + h -p
1 m
 (− 1) j 1 − s  j f k − j+1 ds
j =0
 j 
  2 f k −1  3 f k −2
= y k-p + h -p  f k+1 + (s − 1)f k + (s − 1)s + (s − 1)s (s + 1) + ...
1

 2! 3!
 m f k − m+1 
+ (s − 1)s(s + 1) ... (s + m − 2 )  ds
m! 
 s   s 1   f k −1
2
 s 2 1   3 f k −2
= y k-p + h  sf k+1 + s − 1f k + s 2  −  + s 2  − 
 2   3 2  2!  4 2  3!
1
 s5 s4 s3   4 f k −3 
+  + − − s 2  + ...
 5 2 3  4! −p

Com p = 0 resulta,
 1 1 1 3 19 4 
y k +1 = y k + h f k+1 − f k −  2 f k −1 −  f k −2 −  f k −3 + ...
 2 12 24 720 

Considerando agora m = 3, obtém-se o seguinte esquema conhecido por método de Adams-


Moulton:
 1 1 2 1 3 
y k +1 = y k + h f k+1 − f k −  f k −1 −  f k −2 
 2 12 24 

ou, em termos de ordenadas f i :

y k +1 = y k +
h
(9 f k+1 + 19 f k − 5 f k −1 + f k −2 ) (29)
24

h y (ξ ) .
19 5 v
com um erro: E = -
720

- 269 -
Capítulo 7 EDOs

De igual modo, com p = 1 e m = 3 resulta:

y k +1 = y k-1 +
h
( f k+1 + 4 f k + f k −1 ), com E = - 1 h 5 y v (x )
3 90

Seja a equação diferencia l y' = f (t, y ) com h fixo, t k = t 0 + hk e os quatro pontos


( y 0 , f 0 ), ( y1 , f1 ), ( y 2 , f 2 ) e ( y3 , f 3 ) dados, para cada k = 3, 4,.... Um método numérico de
previsão-correção com precisão h 4 para a resolução daquela equação consiste em:

(0 )
i) Calcular y k +1 , usando a fórmula (27)

y (0 ) k +1 = y k +
h
(55 f k − 59 f k −1 + 37 f k −2 − 9 f k −3 )
24
ii) Calcular f (0 ) k +1 = f (t k +1 , y (0 ) k +1 )
(1)
iii) Calcular y k +1 , usando (29)

y ( j ) k +1 = y k +
h
24
(
9f ( j-1)
k+1 )
+ 19 f k − 5 f k −1 + f k − 2 ; j = 1, 2 ,...

iv) Prosseguir o processo iterativo até que

y (i ) k +1 − y (i −1) k +1
ε
y (i ) k +1

sendo ε uma quantidade prefixada.

Os erros das fórmulas (27) e (29) são dados, respetivamente, por:

y (t k+1 ) − y (0 ) k +1 =
251 5 v
h y (ξ )
720
(30)
y (t k+1 ) − y k +1 = −
19 5 v
(1)
h y (ξ )
720
Nesta conformidade, subtraindo as equações (30), considerando y (t ) aproximadamente
v

5 v
constante no intervalo de análise, obtém-se a seguinte aproximação para h y :

h5 y v =
720 (1)
270
(
y k +1 − y (0 ) k +1 )

Substituindo este resultado na segunda das equações (30), resulta a seguinte aproximação
para o erro do esquema numérico de previsão-correcção baseado nas fórmulas de Adams-
Bashforth e Adams-Moulton:

- 270 -
Capítulo 7 EDOs

y (t k+1 ) − y (1) k +1 = −
19 (1)
270
(
y k +1 − y (0 ) k +1 )
−
1 (1)
14
( )
y k +1 − y (0 ) k +1 = Dn +1

Exemplo 7.7: O crescimento de uma população isolada pode traduzir-se pelo


seguinte modelo:
dp
= ap − bp 2
dt

ap 0
cuja solução analítica é dada por: p(t ) = .
bp 0 + (a − bp 0 )e − a (t −t )
0

Sabendo que a = 0.025 , b = 10 −8 , p0 = p(t 0 = 1990) = 110 000 e considerando


t = 1 ano , obter uma estimativa para o valor da população no ano 2000, utilizando
o esquema numérico de previsão-correção traduzido pelas fórmulas (27) e (29).

A elevada precisão dos esquemas numéricos de previsão-correção com vários passos tornam-
nos especialmente recomendáveis para a obtenção da solução aproximada de uma equação
diferencial ordinária de ordem N, ou, o que é equivalente, para a resolução de sistemas de N
equações diferenciais ordinárias de 1ª ordem.
d2y  dy 
Nesta conformidade, seja uma equação diferencial ordinária de 2ª ordem = g t , y  .
 dt 
2
dt
dy
Fazendo = z resulta o seguinte sistema de duas equações diferenciais ordinárias de 1ª
dt
ordem:
= f (t , y , z ) = z
dy
dy (t 0 )
, com y 0 = y (t 0 ) e 0 = z 0 =
dt dy

= g (t , y , z )
dz dt dt
dt

O método de previsão-correção com base nas fórmulas de Adams-Bashforth e Adams-


Moulton para o cálculo da solução aproximada deste sistema de duas equações diferenciais
ordinárias de 1ª ordem escreve-se:

- 271 -
Capítulo 7 EDOs

(0 )
y k+ 1 = yk +
h
55 f (t k ,y k ,z k ) − 59 f (t k −1 ,y k −1 ,z k −1 )
24
+ 37 f (t k − 2 ,y k − 2 ,z k − 2 ) − 9 f (t k −3 ,y k −3 ,z k −3 )
(0 )
z k+ 1 = zk +
h
55 g (t k ,y k ,z k ) − 59 g (t k −1 ,y k −1 ,z k −1 )
24
+ 37 g (t k − 2 ,y k − 2 ,z k − 2 ) − 9 g (t k −3 ,y k −3 ,z k −3 )
(1)
y k+ 1 = yk +
h
24
 (
9 f t k+1 ,y k+ (0 ) (0 )
)
1 ,z k+1 + 19 f (t k ,y k ,z k )

− 5 f (t k −1 ,y k −1 ,z k −1 ) + f (t k − 2 ,y k − 2 ,z k − 2 )
(1)
z k+ 1 = zk +
h
24
 (
9 g t k+1 ,y k+ (0 ) (0 )
)
1 ,z k+1 + 19 g (t k ,y k ,z k )

− 5 g (t k −1 ,y k −1 ,z k −1 ) + g (t k − 2 ,y k − 2 ,z k − 2 )

Tal como para a resolução de equações diferenciais de 1ª ordem, utilizando este mesmo
método de previsão-coreção, o processo iterativo continuará, em cada j, até que se verifiquem
simultaneamente as condições:

y ( j ) k +1 − y ( j −1) k +1 z ( j ) k +1 − z ( j −1) k +1
 ε1 ;  ε2
y ( j ) k +1 z ( j ) k +1

para valores 1 e  2 prefixados.

4. Estabilidade dos métodos numéricos

As principais vantagens dos métodos de previsão-correcção consistem fundamentalmente


em:

i) tornar possível estimar e depois corrigir os erros de truncatura locais através da


aplicação dos termos relativos ao erro; e,

ii) possibilitar a utilização de incrementos relativamente mais elevados que os métodos


de passo único com precisão semelhante.

Comparando as fórmulas de previsão [de que é exemplo a expressão (27)] com as fórmulas
de correção [do tipo da equação (29)] chega-se à conclusão que as segundas são em geral
mais precisas que as primeiras. Este resultado não é surpreendente, atendendo a que as
fórmulas de previsão envolvem extrapolação do polinómio p m (t ) no intervalo [tk, tk+1] ao
passo que as fórmulas de correção envolvem interpolação.

- 272 -
Capítulo 7 EDOs

É óbvio que o incremento deve ser suficientemente pequeno para garantir o critério de
convergência para a previsão, e de preferência de tal modo pequeno que se consiga obter a
convergência em uma ou duas iterações e que satisfaça simultaneamente quaisquer restrições
relativas ao tamanho do erro local de truncatura. Importa, todavia, que o incremento seja
suficientemente grande por forma a que o número de determinações das derivadas seja
minimizado, em especial se a função derivada for complicada e envolver bastante tempo de
cálculo. Com efeito, esta vantagem dos métodos de previsão-correção poderá ser perdida com
o aumento do número de operações a efetuar. Verifica-se, além disso, que métodos de ordem
superior, portanto com erro local de discretização inferior e, por conseguinte, dos quais se
esperaria à partida melhores resultados para igual incremento, isso nem sempre acontece.

A título de exemplo, seja a solução da equação diferencial y' = −2 y + 1 para a condição

inicial y (0 ) = 1 , utilizando o método de Euler y k +1 = y k + hf (t k , y k ) , cujo erro local de

h2
discretização é E= y'' (ξ k ) , e o método com vários passos
2
3
y k +1 = y k-1 + 2hf (t k ,y k ), com E = y (ξ k ) .
h '''
3

1 1
A solução analítica para este problema de valor inicial é y= e − 2t + .
2 2
Comparam-se na tabela seguinte os valores de Y1 (k ) e Y2 (k ) obtidos por ambos os métodos,
e os correspondentes erros E1 (k ) e E 2 (k ) , considerando h = 0.025 e diferentes valores para
t k . Para dar início ao esquema numérico com vários passos é necessário conhecer o valor de
y1 , tendo, para este efeito, sido utilizado o valor exato (solução analítica).

- 273 -
Capítulo 7 EDOs

************************************************
* t * Y1(t) * Y2(t) * E1(t) * E2(t) *
************************************************
* 0.100 * 0.9073 * 0.9094 * -0.00211 * 0.00004 *
* 0.200 * 0.8317 * 0.8352 * -0.00345 * 0.00006 *
* 0.300 * 0.7702 * 0.7745 * -0.00423 * 0.00007 *
* 0.400 * 0.7201 * 0.7247 * -0.00460 * 0.00008 *
* 0.500 * 0.6792 * 0.6840 * -0.00470 * 0.00009 *
* 0.750 * 0.6073 * 0.6117 * -0.00425 * 0.00009 *
* 1.000 * 0.5643 * 0.5678 * -0.00341 * 0.00009 *
* 1.250 * 0.5385 * 0.5411 * -0.00257 * 0.00010 *
* 1.500 * 0.5230 * 0.5250 * -0.00186 * 0.00013 *
* 1.750 * 0.5138 * 0.5153 * -0.00131 * 0.00019 *
* 2.000 * 0.5083 * 0.5094 * -0.00090 * 0.00029 *
* 2.250 * 0.5049 * 0.5060 * -0.00061 * 0.00046 *
* 2.375 * 0.5038 * 0.5038 * -0.00050 * -0.00057 *
* 2.500 * 0.5030 * 0.5041 * -0.00041 * 0.00074 *
* 2.625 * 0.5023 * 0.5017 * -0.00033 * -0.00094 *
* 2.750 * 0.5018 * 0.5033 * -0.00027 * 0.00122 *
* 2.875 * 0.5014 * 0.5000 * -0.00022 * -0.00156 *
* 3.000 * 0.5011 * 0.5032 * -0.00018 * 0.00201 *
* 3.125 * 0.5008 * 0.4984 * -0.00014 * -0.00257 *
* 3.250 * 0.5006 * 0.5041 * -0.00012 * 0.00331 *
* 3.375 * 0.5005 * 0.4963 * -0.00009 * -0.00424 *
* 3.500 * 0.5004 * 0.5059 * -0.00008 * 0.00545 *
* 3.625 * 0.5003 * 0.4934 * -0.00006 * -0.00699 *
* 3.750 * 0.5002 * 0.5093 * -0.00005 * 0.00898 *
* 3.875 * 0.5002 * 0.4887 * -0.00004 * -0.01152 *
* 4.000 * 0.5001 * 0.5150 * -0.00003 * 0.01480 *
************************************************

Verifica-se que para os primeiros valores de t k , o erro E 2 é consideravelmente inferior ao erro


E1 , mas aquele cresce muito rapidamente a partir de t > 2.25. Verifica-se, por outro lado, que
para valores de t → 4.0 , a solução dada por Euler aproxima-se do valor assintótico y = 0.5
enquanto os valores de E 2 oscilam em sinal.

Justificação

A solução que se obtém discretizando a equação dada no ponto central é:


y k +1 = y k −1 + 2h(− 2 y k + 1)
donde,

y k +1 + 4hy k − y k −1 = 2h

Trata-se, por conseguinte, de uma equação às diferenças não-homogénea, sendo a

- 274 -
Capítulo 7 EDOs

H P H
correspondente solução dada por: Yk = Yk + Yk . A solução da equação homogénea Yk é
k
= C1 β1 + C 2 β 2 , em que os i são as raízes do polinómio:
H k
Yk

β k +1 + 4hβ k − β k −1 = 0

donde,
β 2 + 4hβ − 1 = 0

cujas raízes são β1,2 = −2h  1 + 4h 2 . Desenvolvendo 1 + 4h 2 em série de Taylor, e


tomando apenas os termos lineares tem-se:

β1,2 = −2h  1 +  h 2 ( )
donde,

Yk
H

= C1 1 − 2h +  h 2 ( ) k

+ C 2 (− 1)(1 + 2h ) +  h 2 ( ) k

1
Considerando os y k constantes, resulta a solução particular Yk P = . Para a solução geral da
2
equação às diferenças resulta então:


Yk = C1 1 − 2h +  h 2 ( ) k
+
1
2
k

+ C 2 (− 1) 1 + 2h +  h 2 ( ) k


 α 
É sabido da "Análise" que lim 1 +  = e α . Usando este resultado e o facto de k = t k ,
ε →0
 1 ε h

então:
tk
 − 2
tk h
 − 2 
1h

(1 − 2h ) k
= 1 +  = 1 +   = e − 2t k

 1 h  1 h  
vindo,
+ C 2 (− 1) e 2t
1
lim y k = C1e − 2t + k
k k

h →0 2
é a solução da equação diferencial dada, C 2 (− 1) e 2t é uma
1
Ora, enquanto C1e − 2t +
k k
k

2
componente estranha a essa solução, a qual resulta da aplicação de um método numérico de
ordem superior à da equação original. É então óbvio que à medida que t k cresce, a componente
estranha à solução vai aumentando exponencialmente.
1
Se a aritmética fosse exata, ter-se-iam necessariamente C1= e C 2 = 0 ; todavia, a não
2

- 275 -
Capítulo 7 EDOs

1
exatidão da aritmética conduz a: C1 =  ε e C 2 =  ε, com ε  0 .
2
Um método numérico diz-se instável se os erros introduzidos nos cálculos crescerem
exponencialmente à medida que a solução avança.

Os métodos de passo simples, como os esquemas de Runge-Kutta, não exibem instabilidade


numérica para valores de h suficientemente pequenos. Já os métodos com vários passos
podem, em alguns casos, tornar-se instáveis para todos os valore de h, ou, noutros casos ainda,
apenas para uma determinada gama de valores.

Para verificação da estabilidade de um método numérico podemos utilizar o seguinte


procedimento:
• Se o método de multi-passo conduzir a uma equação às diferenças de ordem k,
procuram-se as raízes da equação característica correspondente à equação homogénea. Sejam
k ( k = 1, 2, ..., m ), a solução da equação às diferenças homogénea é então:

H n n n
y n = C11 + C 2  2 + ... + C k  k

Uma das soluções desta equação, seja 1 n , tenderá para a solução exata da equação diferencial
quando h → 0; todas as restantes soluções serão componentes estranhas à solução. Nestas
condições, um esquema com vários passos é definido como sendo um método numérico
fortemente estável se as raízes estranhas à solução quando h→0 satisfizerem a condição:

 k  1 , k = 2, 3, , m
Nesta conformidade, quaisquer erros introduzidos nos cálculos numéricos decrescerão à
medida que k crescer; pelo contrário, se algum dos β k estranhos for superior à unidade, em
módulo, os erros crescerão exponencialmente, dizendo-se, neste caso, que se trata de um
método numérico instável.

Define-se ainda um método numérico relativamente estável se, para todos os β k estranhos
à solução, se verificar a condição:

lim  k  1 , k = 2 , 3, , m
h →0

- 276 -
Capítulo 7 EDOs

Exercícios propostos

1. Seja a seguinte equação às diferenças:

y i + 3 − 2 y i + 2 − y i +1 + 2 y i = 0
a) Determine a solução desta equação, considerando y o = 0 , y1 = 1 e y 2 = 1 como
condições iniciais.
b) Verifique a solução da equação (em conformidade com a alínea anterior) no domínio
1 i  5.

2. Seja a equação diferencial t dy = t − y


dt
Determinar no intervalo 2.0  t  2.5 uma tabela de valores, com quatro casas decimais
correctas, da solução particular que toma o valor y = 2.0 para t = 2.0 , utilizando:
a) O método de Euler, com h = 0.05 ;
b) O método de Euler melhorado com o terceiro termo da série e Taylor, considerando
h = 0.05 ;
c) O método explícito de previsão por Euler e correcção por trapézios [esquema (17)], com
h = 0.05 e h = 0.10 .

3. Seja a equação diferencial dy = − y cos x , com y (0) = 1.0 .


dx
Determinar a solução aproximada deste problema de valor inicial no intervalo 0.0  x  1.0
, utilizando:
a) O esquema numérico implícito traduzido pela equação (16), com h = 0.05 ;
b) O método de Runge-Kutta de quarta ordem, com h = 0.10 ;
c) O método de previsão-correcção de Adams-Moulton [fórmulas (27) e (29)], com h = 0.10
e h = 0.20 .
− sinx
Comparar os resultados numéricos com a solução exata deste problema, y = e

4. A evolução temporal da velocidade de escoamento numa conduta com um reservatório


de nível constante a montante e uma válvula a jusante, após um fechamento linear desta, é
descrita pela seguinte equação diferencial ordinária de 1ª ordem:
dV g K0 1 2
= Hr − V
dt L t 2L
1−
Tc
em que H r é a cota do nível de água no reservatório, L é o comprimento da conduta, K 0 é o

- 277 -
Capítulo 7 EDOs

coeficiente de perda de carga inicial da válvula e Tc é o tempo de fechamento da mesma.

Supondo que inicialmente (regime permanente) a velocidade na conduta era de 2.0 m/s
e que: L = 1000 m; H r = 80 m; K 0 = 392 ; Tc = 10 s e g = 9.8 m2/s, calcular a velocidade na
conduta 2 segundos após o fechamento da válvula ( t = 1.0 seg ), utilizando:
a) O método de Euler melhorado com o terceiro termo da série de Taylor;
b) O esquema explícito de previsão por Euler e correcção por trapézios.

5. Um veículo que rodava a uma velocidade v = 120 kmh -1 foi obrigado a travar. Admite-
se que a retardação do movimento é igual ao triplo da raíz quadrada da velocidade a que o
veículo rodava, ou seja,
dv
− =3 v
dt

Considerando t = 0.5 seg , calcular um valor aproximado para o tempo necessário,


desde o início da travagem até completa imobilização do veículo, utilizando o método de
Euler melhorado com o terceiro termo da série de Taylor.

6. Seja o sistema de equações que rege o movimento variável num sistema "albufeira-
galeria sob pressão-chaminé de equilíbrio":

L dU
+ z + H = 0
g dt
dz
Ach − Ag U + Qc = 0
dt
Considere L = 100 s 2 ; Ach = 20 m 2 ; Ag = 15 m 2 ; Q = 30 m 3 s −1 , as condições iniciais
g
U 0 = 1.0 ms ; z 0 = 0.0 m e U 0 = 1.0 ms -1 ; z 0 = -5.0 m correspondentes às duas situações
-1

distintas: H = 0 m e H = 5 m .

Com t = 1.0 seg , compare, em ambas as situações, a solução daquele movimento no


intervalo 0  t  900 seg , utilizando o método de Runge-Kutta de 4ª ordem e o método de
previsão-correcção com base nas fórmulas de Adams-Bashforth e Adams-Moulton.

NOTA Importa analisar os tempos de cálculo vs precisão dos resultados.

- 278 -
Capítulo 7 EDOs

7. Um míssil tem uma massa inicial m0 = 200 Kg. É disparado no instante t = 0, sendo a partir
daí acelerado por uma força constante F = 2000 N. Como essa força é gerada por jacto de
gases a partir do míssil, a sua massa decresce à taxa (k) de 1.0 Kg/s. Nestas condições a
aceleração será dada por:
d V F - Fr
=
d t m0 - k t

em que Fr representa a força correspondente à resistência do ar a que o míssil está sujeito, e


que se supõe igual a 2V. Calcule a velocidade do míssil 20 segundos após ter sido disparado,
considerando Δt = 10 s, utilizando os seguintes esquemas de integração:
a) método de Euler;
b) método de Euler melhorado com o terceiro termo da série de Taylor;
c) método explícito de previsão por Euler e correcção por trapézios;
d) método de Runge-Kutta de ordem 4.

Compare os resultados obtidos nas diferentes alíneas com a solução analítica do problema:
t2
V (t ) = 10 t − , e efectue um comentário aos mesmos.
40

8. A equação diferencial que rege o movimento de oscilação, do tipo pendular, numa chaminé
de equilibrio de secção constante de um aproveitamento hidroeléctrico (ver figura) é, para o
caso de uma paragem instantânea das turbinas,
d 2z dz dz gA
+ R + z=0
d t2 dt dt L Ach

A CH
albufeira
chaminé de equilibrio
A

Considere R = turbina 0, L/g = 100 s2, A =


1.0 m2 e Ach = 30 m2 e as condições iniciais: V0 = 3.0 m/s; z0 = 0 m. Com t =10 s, utilizando os
métodos de Euler e Runge-Kutta de ordem 4, compare ambas as soluções do movimento no
intervalo 0 t 100 s.

- 279 -
Capítulo 7 EDOs

9. Um reservatório contem inicialmente um volume V0=5000 m3 de uma solução com uma


concentração C=0.02 g/m3 de sal dissolvido. No instante t=0 efetua-se a abertura das válvulas
localizadas nas condutas de entrada e saída do reservatório, respetivamente, o que possibilita a
entrada de um caudal Q1=2.0 m3/s, com uma concentração C1=0.5 g/m3 de sal dissolvido, e a
saída de um caudal Q2=4.0 m3/s . Sabendo que a mistura é agitada no interior do reservatório e
que:

dM Q2
= Q1 C1 − M
dt V0 + (Q1 − Q2 ) t

em que M é a massa de sal (g) presente no reservatório em cada instante, determine a


concentração de sal no interior do reservatório após 20, 60 e 120 segundos, utilizando:

a) O método de Euler melhorado com o terceiro termo da série de Taylor.

b) O método de Runge-Kutta de ordem 4. Comente os resultados obtidos em a) e b).

- 280 -
CAPÍTULO 8
____________________________________________________________________________________________

EQUAÇÕES ÀS DERIVADAS PARCIAIS (EDP)

1. Introdução

As equações às derivadas parciais (EDP) são equações diferenciais cujas variáveis


dependentes ( h, u, v, w, p , etc.) são funções de duas ou mais variáveis independentes; estas
são variáveis de espaço ( x, y, z ), às quais se juntará o tempo ( t ) sempre que a equação traduza
um fenómeno de evolução.

Estas equações resultam da aplicação dos princípios de conservação da massa, da quantidade


de movimento e da energia, sempre com condições iniciais e de fronteira apropriadas.

Uma EDP pode ser classificada de acordo com vários critérios. A classificação destas
equações é um conceito importante, pois uma teoria e os correspondentes métodos de
resolução são específicos de determinado tipo de equação.

Em geral, na prática, as equações raramente são de ordem elevada, sendo as mais correntes de
segunda ordem; é também sobre estas equações que se apoia uma classificação geral das
equações às derivadas parciais.

Apresentam-se em seguida quatro tipos de classificações.

A - Ordem da EDP

É a ordem da mais alta derivada parcial na equação.

Exemplos 8.1:

u u
+u =0 Primeira ordem
t x
u  2u
= 2 Segunda ordem
t x
u  3u
= 2 Terceira ordem
t x t

- 281 -
Capítulo 8 EDPs

B - Número de variáveis

É o número de variáveis independentes.

Exemplos 8.2:

u h u
+u +h =0 Duas variáveis: t e x
t x x

u u u h
+u +v +g =0 Três variáveis: t, x e y
t x y x

C - Linearidade

Uma EDP diz-se linear se a variável dependente e todas as suas derivadas aparecerem de
forma linear; isto é, se não aparecerem termos quadráticos da variável ou de qualquer das suas
derivadas, produtos de derivadas da variável, ou ainda produtos da variável por qualquer das
suas derivadas.

Exemplos 8.3:

u  2u
= (t ) 2 Linear
t x
 2u  2u
+ =0 Linear
x 2 y 2

 2u  2u
+ + ku 2 = 0 Não linear
x 2 y 2
u u u h
+u +v +g =0 Não linear
t x y x

Assim, e de acordo com estas classificações, a equação geral,

 2u  2u  2u u u
A + B + C +D +E + Fu = G (1)
x 2
x y y 2
x y

com A, B , C , D , E , F e G constantes, é classificada como linear, de segunda ordem a


duas variáveis.

- 282 -
Capítulo 8 EDPs

D - Tipos básicos de equações lineares

Qualquer EDP linear de segunda ordem a duas variáveis [como a equação (1)] é de um dos
seguintes tipos:

a) Parabólica se B 2 − 4 AC = 0

b) Hiperbólica se B 2 − 4 AC  0

c) Elíptica se B 2 − 4 AC  0

Exemplos 8.4:

u  2u
= (t ) 2 Parabólica
t x

 2u  2u
= Hiperbólica
x 2 y 2

 2u  2u
+ =0 Elíptica
x 2 y 2

2. Resolução numérica de equações às derivadas parciais

De entre os métodos numéricos vulgarmente utilizados para a resolução de equações às


derivadas parciais, salientam-se o método das diferenças finitas e o método dos elementos
finitos.

O método das diferenças finitas aborda o domínio da solução como um conjunto ordenado de
pontos da malha; o método dos elementos finitos trata o domínio da solução como sendo
formado por pequenas regiões ou elementos interligados.

Apresentam-se em seguida alguns conceitos básicos destes dois métodos. Nas secções
seguintes serão apresentadas aplicações elementares.

2.1 Método das diferenças finitas

Seja a função de duas variáveis u = u ( x , t ) e considere-se que u possui um número suficiente


de derivadas parciais. Os valores da função u nos pontos ( x , t ) e ( x +  x , t +  t ) estão
relacionados pela expressão em série de Taylor,

- 283 -
Capítulo 8 EDPs

  
u (x +  x , t +  t ) = u (x , t ) +   x +  t  u (x , t )
 x t 
 
2
1
+   x +  t  u (x , t ) + 
2! x t 
n −1
1   
+  x +  t  u ( x , t ) + Rn
(n + 1)!  x t 

Consideremos o ponto do espaço (i x , n t ) , também designado por nó (i, n ) , da malha


de cálculo representada na Fig. 1.
(i , n + 1)

t

(i − 1, n ) (i , n ) (i + 1, n )
x

(i , n − 1)
Figura 1 - Malha de diferenças finitas.

Expandindo u in−1 e u in+1 em série de Taylor em torno do valor uin obtêm-se:

u ( x )  2 u ( x )  3u
2 3
u n
i −1 u − x
n
+ − +
x 2 ! x 2 x 3
i
3! (2)
u ( x )  u ( x )  3u
2 2 3
u in+1  u in +  x + + +
x 2 ! x 2 3! x 3

Considerando agora as equações (2), somando e subtraindo uma da outra obtêm-se as


seguintes fórmulas de diferenças finitas para as derivadas de primeira e segunda ordem em
(i , n ) , segundo a direção ix :
u u in+1 − u in
= + O(x ) (Diferenças progressivas) (3)
x x

u u in − u in−1
= + O(x ) (Diferenças regressivas) (4)
x x

u u in+1 − u in−1
x
=
2x
+ O (x )2
 (Diferenças centradas) (5)

- 284 -
Capítulo 8 EDPs

 2 u u in+1 − 2u in + u in−1
x 2
=
(x ) 2

+ O (x )
2
 (6)

u  2 u
De igual modo se obteriam as derivadas e 2 , expandindo u in−1 e u in+1 em série de Taylor
t t
em torno do valor u (i, n ) .

O método das diferenças finitas consiste em substituir as derivadas contínuas das variáveis
nas equações que regem os fenómenos por fórmulas dos tipos (3) a (6), neste caso apenas
derivadas de 1ª e 2ª ordens, e calcular os valores das incógnitas, no caso presente apenas u,
em pontos (i, n) de uma malha previamente estabelecida em todo o domínio.

2.2 Método dos elementos finitos

O método dos elementos finitos dá uma solução aproximada por troços da solução. A premissa
de base deste método é que o domínio da solução pode ser modelado analiticamente ou
aproximadamente substituindo-o por um conjunto de elementos discretos. Uma vez que estes
elementos podem ser definidos de variadas formas, é então possível que eles tenham
geometrias bastante complexas.

No método dos elementos finitos, o domínio em estudo é dividido em elementos, expressando-


se o campo da variável (temperatura, profundidade, velocidade, etc.) em termos de funções de
aproximação em cada um dos elementos. As funções de aproximação, também designadas por
funções de interpolação ou de forma, são definidas em termos da variável dependente em certos
pontos designados por nós. Os valores que a variável toma nos nós e as funções de interpolação
definem completamente o comportamento do campo da variável dentro dos elementos. Os
valores da variável nos nós são as incógnitas do problema.

É óbvio que a natureza da solução e o grau de aproximação dependerão não só do tipo e dimensão
dos elementos, mas também do tipo de funções de interpolação usadas. As funções de
interpolação não podem ser quaisquer, pois terão de satisfazer certos requisitos de
compatibilidade, sendo frequentemente escolhidas tendo em atenção a continuidade das funções
ou das suas derivadas ao longo das fronteiras dos elementos.

Existe uma grande variedade de métodos e fórmulas para representar as propriedades dos
elementos. De entre os vários processos disponíveis, um dos mais utilizados é o método dos
resíduos pesados ou ponderados. Neste método, para além das funções de interpolação ou de
forma ( N i , i = 1, ..., ne , sendo ne o número de nós do elemento), é necessário definir funções
de peso ( Wi , i = 1, ..., ne ); estas por sua vez podem coincidir com as funções de interpolação
(Método de Galerkin) ou serem resultantes da combinação das funções de interpolação e das

- 285 -
Capítulo 8 EDPs

suas derivadas (Método de Petrov-Galerkin).

O procedimento a adotar para a resolução de um problema num meio contínuo pelo método
dos elementos finitos pode resumir-se basicamente nas seguintes etapas:

i) Discretização do meio contínuo em elementos: segmentos (1D), superfícies (2D),


ou espaços (3D);

ii) Seleção das funções de interpolação que irão representar a variação da variável, ou
variáveis de campo em cada elemento;

iii) Determinação das propriedades dos elementos ou, alternativamente, obtenção da


solução da equação ou equações para cada elemento usando, por exemplo, uma técnica
de resíduos pesados;

iv) Ligação dos elementos de acordo com certas regras, por forma a obter um sistema
de equações cuja solução represente o comportamento da variável ou variáveis de
campo. A base desta ligação é a que um nó é partilhado pelos elementos que se reúnem
nele, sendo o valor da variável ou variáveis nesse nó o mesmo para qualquer elemento
que o partilhe;

v) Imposição das condições de fronteira no sistema de equações formado no passo


anterior;

vi) Resolução do sistema de equações, usando técnicas diretas ou iterativas.

Seja uma equação gerada pelo operador diferencial L( ) ,

L( ) = f (7)

A formulação da técnica dos resíduos pesados consiste nos seguintes passos:

i) Assumir a forma funcional da variável de campo,


ne

ˆ =  Ni i
i =1

em que os  i são coeficientes indeterminados que podem ser constantes ou funções do


tempo;

ii) Dado que a forma aproximada ̂ não satisfaz em geral a equação diferencial, a
substituição de ̂ na equação (7) gera o resíduo,

- 286 -
Capítulo 8 EDPs

Re = L(ˆ ) − f

A optimização na aproximação de ̂ à solução exata  é obtida através da minimização


do resíduo Re . De acordo com a técnica dos resíduos pesados, esta minimização requere
a ortogonalidade de Re relativamente a uma série de funções, ditas funções de peso,
vindo:

 L(ˆ ) − 
f Wi d , i = 1,...ne
e

e

representando e a região de integração (elemento).

iii) A integração conduz-nos a ne equações algébricas, habitualmente agrupadas num


sistema de equações relativamente aos ne valores desconhecidos αi . A solução do
sistema fornece os valores da função ̂ .

2.2.1 Funções de aproximação para elementos a uma dimensão

Considere-se o elemento a uma dimensão com comprimento L representado na Fig. 2, com os


valores  i e  j da função em estudo nos nós i e j , respetivamente.

 i

 = 1 +  2 x
j

i j
xi L
xj
Figura 2 - Elemento linear 1D.

A variação do escalar  ao longo deste elemento é dada por:

 = α1 + α 2 x (8)

sendo os coeficientes α1 e α 2 determinados com base nas seguintes condições nos nós:

 =  i , para x = xi
 =  j , para x = x j
Resulta assim o sistema de equações:

- 287 -
Capítulo 8 EDPs

 i = α1 + α 2 xi
 j = α1 + α 2 x j

cuja solução é,
 i x j −  j xi
α1 =
L
 j − i
α2 =
L

Substituindo estes valores em (8) resulta a função de aproximação  , válida em qualquer


ponto do elemento, usando funções lineares:
xj − x x − xi
= i + j
L L

Para um elemento linear resultam então:


xj − x N i 1 x − xi N j 1
Ni = ; =− e Nj = ; =
L x L L x L

donde, em termos das funções de interpolação N i e N j ,


ne

ˆ = N i  i + N j  j =  N k  k , com ne = 2
k =1

ou ainda, na forma matricial,


 
ˆ = N k ,N k +1  k  = N 

 k+1 
Exemplo 8.5: Considere-se uma barra metálica com a distribuição de temperaturas
representada na Fig. 3.

T
Ti = 120ºC

Tj = 90ºC

xi = 1.5 cm x j = 6.0 cm

Figura 3 - Condições de aplicação (elemento 1D).

Determinar o valor da temperatura em x = 4 cm e o gradiente de temperaturas na


barra.

- 288 -
Capítulo 8 EDPs

Ora, xi = 1.5 cm ; x j = 6.0 cm => L=x j -xi = 4.5 cm . A distribuição de


xj − x x − xi
temperaturas na barra é dada por T ( x ) = Ti + T j ; por conseguinte,
L L
x = 4.0 cm resulta T (4.0 ) = 103.33 C .
o

T 1 1
Para o gradiente de temperaturas na barra, atendendo a que = − Ti + T j ,
x L L
T
obtém-se = −6.67 o C / cm .
x
Considerando a solução ao longo de um domínio com M elementos, a função  é expressa
aproximadamente pelo somatório,

ˆ =  N (e ) (e )
M

e =1

sendo evidente que o valor local de (x), com x k  x  x k +1 , é apenas influenciado pelos
valores das funções de interpolação e do valores nodais de  situados entre x k e x k +1 .

2.2.2 Funções de aproximação para elementos a duas dimensões

Seja o elemento triangular representado na Fig. 4, com os lados lineares e um nó em cada


ângulo.

Figura 4 - Elemento linear 2D.

Em geral, a numeração dos nós é efetuada em sentido contrário ao do movimento dos


ponteiros do relógio, sendo o primeiro nó (neste caso i) escolhido arbitrariamente.

- 289 -
Capítulo 8 EDPs

O polinómio de interpolação é neste caso dado por:

 = α1 + α 2 x + α 3 y (9)

sendo os coeficientes  i determinados com base nas seguintes condições nos nós:

 =  i , para x = xi e y = y i
 =  j , para x = x j e y = y j
 =  k , para x = x k e y = y k

A substituição destas condições em (9) conduz a:

 i = α1 + α 2 xi + α 3 y i
 j = α1 + α 2 x j + α 3 y j
 k = α1 + α 2 x k + α 3 y k

cuja solução é,

α1 =
1
2A

(x j y k − xk y j )i + (xk yi − xi y k ) j + (xi y j − x j yi ) k 
α2 =
1
2A

(y j − y k )i + ( y k − yi ) j + (yi − y j ) k 
α3 =
1
2A

(xk − x j )i + (xi − xk ) j + (x j − xi ) k 

sendo A a área do triângulo, dada por:


1 xi yi
1
A = 1 xj yj
2
1 xk yk

A substituição de  1 ,  2 e  3 em (9) conduz à seguinte função de aproximação, ̂ :


ne

ˆ = N i  i + N j  j + N k  k =  N l  l , com ne = 3
l =1

em que:
a i = x j y k − x k y j

Ni =
1
(a i + bi x + ci y ) , com bi = y j − y k
2A 
c i = x k − x j

- 290 -
Capítulo 8 EDPs

a j = x k y i − x i y k
Nj =
1
(a j + b j x + c j y ) , com b j = y k − yi
2A 
c j = xi − x k

a k = x i y j − x j y i

Nk =
1
(a k + bk x + ck y ) , com bk = yi − y j
2A 
c k = x j − xi
Como é fácil verificar, com x = xi e y = y i => N i = 1 , N j = 0 e N k = 0 ; de igual modo,
nos nós (x j , y j ) e ( x k , y k ) tem-se N i = 0 , N j = 1 e N k = 0 e N i = 0 , N j = 0 e N k = 1 ,
respetivamente. Também facilmente se determinam as derivadas espaciais. Com efeito,
segundo a direção xx tem-se:


ˆ N i N j N k
= i + j + k
x x x x
com,
N i b N j bj N k b
= i ; = e = k
x 2A x 2A x 2A

vindo para ambas as direções,


ˆ
=
1
(bi i + b j  j + bk  k ) e ˆ = 1 (ci i + c j  j + ck  k )
x 2 A y 2 A

Exemplo 8.6: Seja o elemento triangular representado na Fig. 5.

Figura 5 - Condições de aplicação (elemento 2D).


Determinar o valor da pressão P no ponto B(2.0,1.5), sabendo que Pi = 40 Ncm -2 ,

- 291 -
Capítulo 8 EDPs

Pj = 34 Ncm -2 e Pk = 46 Ncm -2 .

Ora, P é dada por, P = N i Pi + N j Pj + N k Pk , sendo N i , N j e N k funções das


coordenadas dos nós, através de ai , a j , a k , bi , b j , bk e ci , c j , c k , com:

ai = 19.0 , a j = 0.0 e a k = 0.0


bi = −4.5, b j = 5.0 e bk = −0.5
ci = −2.0 , c j = −2.0 e c k = 4.0

vindo para a área A = 19 / 2 cm 2 . Por conseguinte, a pressão P em qualquer ponto do


elemento é dada por:

P=
1
19

(19 − 4.5 x − 2 y )Pi + (5 x − 2 y )Pj + (− 0.5 x + 4 y )Pk 

resultando para o ponto B(2.0,1.5), P = 39.37 Ncm -2 .

Para além dos métodos de diferenças finitas e de elementos finitos, de aplicação generalizada
na resolução de equações diferenciais, analisaremos ao longo deste capítulo outros métodos
numéricos específicos de determinados tipos de equações às derivadas parciais. Antes, porém,
importa tecer algumas considerações sobre a estabilidade dos processos iterativos a que somos
conduzidos na resolução numérica destas equações.

3. Estabilidade

Por definição, dizemos que um processo de cálculo sequencial ou iterativo é estável se os


erros de arredondamento não se amplificarem à medida que os cálculos progridem.

3.1 Coeficiente de amplificação

Seja o caso de uma equação de regime variável que, para simplificação da exposição, contém
uma só dimensão em espaço,

T  2T
−σ 2 = 0
t x

A equação anterior é designada por equação de difusão do calor, representando T (x,t ) a


temperatura de uma barra metálica inicialmente à temperatura T (x,0) = T0 (x ) e tendo as

- 292 -
Capítulo 8 EDPs

extremidades submetidas a diferentes temperaturas T (0,t ) e T (L,t ) conhecidas; L é o


comprimento da barra. Qualquer esquema numérico utilizado para a discretização desta
equação, em torno dos índices j e n, conduz necessariamente a uma forma do seguinte tipo:

k n+k k = -k ,..., -1, 0 ,1, ..., k 2


 al T j +l = 0 ; l = -l ,..., -1, 0,1, ..., l
1
(10)
l,k  1 2

de que, por exemplo, o esquema de discretização explícito,

T jn +1 − T jn T jn−1 − 2T jn + T jn+1
−σ =0
t (x )2
é um caso particular.

Considerando à priori que o espaço (0, L) e a solução daquela equação [curva T (x,t ) ] se
repetem um número infinito de vezes e sem descontinuidade (Fig. 6),

x
-L 0 L

Figura 6 - Sinal periódico.

estamos então, nestas condições, em presença de uma curva periódica e para a qual podemos
escrever o desenvolvimento em série de Fourier complexa,
 
T ( x,t ) =  a m ( t )e iw m x
=  a m ( t )cos(wm x ) + i sin(wm x )
m = − m = −


Nesta expressão tem-se i = − 1 e wm = m ; os termos imaginários correspondem ao
2L
desfasamento de cada harmónico. Para o esquema discreto (10), podemos escrever um
desenvolvimento análogo. Assim, considerando J+1 pontos de discretização no espaço (0, L),
o desenvolvimento limitar-se-á a 2J + 1 harmónicos, nos intervalos de -J a 0 e de 0 a J;
teremos, por conseguinte,
J
T jn =  Amn e iw m jΔΔ

m=-J

π L π
com wm Δx = m =m , e onde Amn designa a amplitude do harmónico m no instante
L J+1 J+1
nt .

- 293 -
Capítulo 8 EDPs

Designando por  m o coeficiente de amplificação do harmónico m entre dois instantes


discretos consecutivos, ter-se-á, então:

Amn+1 =  m Amn e Amn+k =  km Amn

Considerando agora que cada harmónico verifica a equação de origem (10), vem:

jx iwm lx


Amn e iw m
 al e
k
 km = 0
l,k

seja,
iwm lx
 al e
k
 km = 0 (11)
l,k

A equação (11) é a equação de amplificação relativa ao harmónico m . Se uma solução  m


desta equação for em módulo superior a um, os erros sobre este harmónico serão amplificados
e o cálculo tornar-se-á instável. A condição de estabilidade é, por conseguinte, que nenhum
destes coeficientes seja superior a 1 em módulo, isto é,

max ξ m  1
m

A escrita de uma equação que dá o coeficiente de amplificação é imediata. Com efeito, basta
n+k k iw lx
substituir no esquema discretizado T j +l por  m e m
, quaisquer que sejam os sinais de k e
l.

T  2T
Exemplo 8.7: Seja a equação de difusão do calor − σ 2 = 0 , a qual se pretende
t x
resolver numericamente utilizando o seguinte esquema explícito de diferenças finitas,
já atrás apresentado,

T jn +1 − T jn T jn−1 − 2T jn + T jn+1
−σ =0
t (x )2

Pretende-se analisar a estabilidade deste esquema numérico.


t
Fazendo r = σ , podemos reescrever o esquema numérico na seguinte forma:
(x )2

(
T jn +1 − T jn − r T jn−1 − 2T jn + T jn+1 = 0 )

- 294 -
Capítulo 8 EDPs

e a equação que dá  m escreve-se diretamente por correspondência termo a termo:

(
ξ m − 1 − r e − iw m Δx
− 2 + e + iw m Δx
)= 0
ou ainda, tendo em conta a relação e −iw m Δx
+ e + iw m Δx
= 2 cos(wm x ) :

ξ m = 1 − 2r + 2r cos(wm x ) (12)

A estabilidade estará assegurada verificando-se, qualquer que seja m, − 1   m  1 .


Ora, o 2º membro de (12) é sempre igual ou inferior à unidade, restando-nos portanto
garantir que o mesmo jamais seja inferior a -1; tal verifica-se desde que − 1  1 − 4r ,
vindo,

t 1
r=σ  (13)
(x ) 2
2

Nesta conformidade, diz-se que o esquema numérico utilizado é condicionalmente


estável, sendo a condição de estabilidade traduzida por (13). Em geral, fixa-se o
incremento espacial x , obtendo-se o incremento temporal a partir da condição de
estabilidade, neste caso da equação (13).

3.2 Matriz de amplificação

Tal como foi definido, o coeficiente de amplificação apenas respeita a uma equação
discretizada escalar, isto é, apenas comporta uma única variável dependente. Este coeficiente
é único no caso de um esquema contendo dois níveis de tempo, haverá dois para uma equação
com três níveis e, generalizando, N-1 para uma equação a N níveis.

Para sistemas de equações às derivadas parciais (duas ou mais equações), define-se a matriz
de amplificação relativa ao harmónico m, seja G m , como demonstrado no exemplo que se
segue.

Exemplo 8.8: Seja o sistema de equações,

 u v
 =c
 t x


 =c u
v 

 t x

- 295 -
Capítulo 8 EDPs

t
o qual se pretende resolver através do seguinte esquema consistente, com r = c ,
x
 n +1


r
U j − U nj = V jn+1 − V jn−1
2
( )

V n +1 − V n = r U n+1 − U n+1


j j
2
j +1 (
j −1 )

Analisar as condições de estabilidade deste esquema numérico.

Podemos escrever:

 r r
 U nj +1 = U nj − V jn−1 + V jn+1
 2 2

 r U n+1 r
− U n+1
+V jn +1 = V jn

2
j −1
2
j+1

Retomemos a decomposição harmónica apresentada na secção anterior:

U nj =  Am e iw m jΔΔ

V =  Bm e iw
j
n m jΔΔ

em que Am e Bm são as amplitudes dos harmónicos m no instante nt . Por


substituição termo a termo no sistema de equações original, designando por
Am e Bm as amplitudes no instante (n + 1)t , obtém-se:
+ +




Am
+
= Am −
2
(
r -iw
e m Δx
-e iw
m Δx
)B m



2
(
 r e -iw m Δx
-e iw m Δx
)A
m
+ +
Bm = Bm

Δx Δx
e +iw -e -iw
= r sin (wm x ) , resultam as seguintes matrizes dos
m m

Fazendo β m=r
2i
coeficientes das variáveis, H 1 e H 0 , do primeiro membro e do segundo membro,
respetivamente:
 1 0 1 iβ m 
H1 =  H0 = 
1 
,
− iβ m 0 1 

Resolvendo Gm = H 1-1 H 0 , obtém-se:

- 296 -
Capítulo 8 EDPs

 1 iβ m 
Gm = 
iβ m 1-β m2 

vindo para a equação que dá os valores próprios de G m ,

( )
λ 2 − λ 2 − β m2 + 1 = 0
donde,
2 − β m2  β m β m2 − 4
λ1,2 =
2

Para β m2  4 as raízes são complexas e o seu módulo vale 1; para valores de  2m  4


um dos valores próprios é em módulo superior à unidade, logo o esquema de
discretização é, nestas condições, instável. A condição de estabilidade resulta então
de β m2  4 , seja r 2  4 , donde,

ct
1
2x

4. Formas das equações às derivadas parciais

Partindo da equação geral (1),

 2u  2u  2u u u
A + B + C +D +E + Fu = G
x 2
x y y 2
x y

vimos anteriormente que uma EDP é classificada em parabólica, hiperbólica ou elíptica,


consoante o valor de B 2 − 4 AC é igual, superior ou inferior a zero, respetivamente.

Veremos em seguida a importância desta classificação e a forma como se reflete na utilização de


métodos numéricos para a obtenção da solução de uma EDP.

- 297 -
Capítulo 8 EDPs

4.1 Equação diferencial parabólica

4.1.1 Caso linear a uma dimensão

Seja a figura seguinte:

Figura 7 - Condições iniciais.

A variação do nível freático representado na Fig. 7 é, simplificadamente, regida pela seguinte


equação ( H o  h o ):
H kh0  2 H
= (14)
t ne x 2
em que,
k representa o coeficiente de permeabilidade;
h0 é a profundidade inicial da superfície freática; e,
ne é a porosidade efetiva do meio.

kho
Considerando = 1.5*10 − 4 m 2 s −1 e uma sobrelevação do curso de água H 0 = 0.5 m , que se
ne
mantém constante ao longo do tempo, determinar o perfil da superfície freática uma hora
depois do início da sobrelevação, utilizando:

a) uma forma explícita da equação de diferenças;

b) uma forma implícita da equação de diferenças.

kh0
Fazendo c = e substituindo as 1ª e 2ª derivadas da equação (14) pelas correspondentes
ne
aproximações (3) e (6), respetivamente, resulta (com u = H ):

- 298 -
Capítulo 8 EDPs

H in +1 − H in H n − 2 H in + H in+1
= c* i −1
t (x )2

Definindo λ = t 2 e cc = c *  , obtém-se a seguinte equação explícita para o cálculo das


(x )
sucessivas configurações do nível freático (em cada instante t +  t ),

(
H in+1 = H in + cc* H i-n1 − 2 H in + H i+n 1 ) (15)

Para garantias da estabilidade e convergência deste esquema numérico (formulação explícita),


provámos em (3.1) que deverá ser respeitada a seguinte condição de estabilidade:

1
0  cc  (16)
2
ou seja, fixando à partida o valor de x , o incremento t a utilizar é calculado através de,

t 
(x )2
2c

Na Fig. 8 representam-se, no espaço e no tempo, os pontos da malha intervenientes no


esquema (15).

 t n+1

   tn
xi −1 xi xi +1

Figura 8 - Malha de cálculo explícito.

As formulações explícitas deste tipo têm, em geral, a grande limitação de exigirem valores
muito baixos para t .

Uma formulação explícita incondicionalmente estável é devida a Saul'Yev (Exercício


proposto 2). De acordo com este método, fazem-se intervir dois tempos (instantes t n e t n+1 )
no cálculo da 2ª derivada em espaço; esta é assim aproximada por:

 2 H H in−+11 − H in +1 − H in + H in+1
=
x 2 (x )2

Nesta conformidade, resulta a seguinte equação de diferenças,

- 299 -
Capítulo 8 EDPs

H in +1 − H in H n +1 − H in +1 − H in + H in+1
= c* i −1
t (x )2
ou ainda,
cc*H in−+11 + (1 − cc )H in + cc*H in+1
H in +1 =
1 + cc

Considerando agora a malha de cálculo representada na Fig. 9:

   tn+1

 tn
xi −1 xi xi +1

Figura 9 - Malha de cálculo implícito.

a 2ª derivada é aproximada por,

 2 H H in−+11 − 2H in +1 + H in++11
=
x 2 (x )2

obtendo-se a seguinte equação discretizada para a equação (14):

H in +1 − H in H n +1 − 2H in +1 + H in++11
= c * i −1
t (x )2

Por conseguinte, entre os quatro pontos da malha de cálculo (espaço/tempo) da Fig. 9 existe
a seguinte relação,

− cc * H in−+11 + (1 + 2 * cc ) * H in +1 − cc * H in++11 = H in (17)

Em qualquer instante de cálculo, a equação (17) apenas necessita de ser escrita uma só vez
para cada ponto i da malha, com 1  i  M − 1 , resultando um sistema tridiagonal de M − 1
equações simultâneas a M − 1 incógnitas, H in +1 .

Uma alternativa ao esquema totalmente implícito (17), igualmente incondicionalmente


estável, é o método de Crank-Nicolson. De acordo com este método, a segunda derivada

- 300 -
Capítulo 8 EDPs

espacial é calculada por:

 2 H 1 H in−+11 − 2 H in +1 + H in++11 1 H in−1 − 2 H in + H in+1


= +
x 2 2 (x )2 2 (x )2

resultando, para o exemplo em estudo, na seguinte equação de diferenças,

H in +1 − H in 1  H in−+11 − 2H in +1 + H in++11 H in−1 − 2H in + H in+1 


= c *  + 

t 2  (x )2 (x )2 

donde,

− cc H in−+11 + 2 (1 + cc ) H in +1 − cc H in++11
(18)
= cc H in−1 + 2 (1 − cc ) H in + cc H in+1

O sistema de equações lineares resultante é igualmente tridiagonal. Considerando um vetor


auxiliar V, com 1  i  M − 1 , o sistema resultante, na forma matricial, escreve-se:

2 (1 + cc ) − cc 0 0  0 0   H 1   V1 
 − cc 2 (1 + cc ) − cc 0  0 0  H   V 
 
2 
 

2 

 0 − cc 2 (1 + cc ) − cc  0 0   H 3  =  V3 
    
             
 0 0 0 0  − cc 2 (1 + cc ) 
 H M −1 
 
VM −1 

4.1.2 Caso não-linear a uma dimensão

A equação (14), com c constante, representa uma equação linear; todavia, em muitos
problemas físicos o coeficiente de difusão depende do estado da incógnita transformando o
problema em não-linear, isto é,
u  2u
=  (u ) 2
t x

Numa formulação discreta, este caso poderá ser transformado num problema linear, tomando
o coeficiente (U ) no instante nt . No entanto, não parece lógico que num esquema de
carácter implícito não se tenha em conta a dependência de (u ) . Assim, é aconselhável,
sobretudo quando σ depende fortemente de u, em adoptar para a passagem de nt a (n+1)t
um valor intermédio entre (U n ) e (U n +1 ). Isto pode corresponder, por exemplo, ao

- 301 -
Capítulo 8 EDPs

esquema,

(
U in +1 − U in    2U
=
)
n +1
i (
+ (1 − )   2U )
n
i

t (x )2

designando (δ U )
2 n +1
i = U in++11 − 2U in +1 + U in−+11 , com 0  θ  1 , ou ainda, de forma mais
aproximada, ao esquema geral,

(
U in +1 − U in − r  δ 2U )
i
n +1
(
+ (1 − )  2U ) = 0
n
i

considerando, neste caso,

r=
t
  (U ) + (1 − )  (U )
n+1 n

(x ) 2 i i

A escolha de  = 1 2 é, também aqui, vivamente aconselhada.

4.1.3 Equação parabólica a duas dimensões (x, y, t)

A equação parabólica a duas dimensões escreve-se:

u  2u  2u
= 2 + 2
t x y

A aplicação dos métodos anteriormente descritos para uma dimensão são aqui igualmente
aplicáveis. O método de Crank-Nicolson, ou qualquer outro esquema implícito, permite
ultrapassar a limitação imposta aos métodos explícitos, mas conduz a sistemas de equações
algébricas com tantas incógnitas quantas o número de pontos nodais da malha de cálculo. Para
soluções 2D ou 3D em grandes domínios o número de incógnitas pode ser de tal modo elevado
que coloca algumas restrições à aplicação destes métodos.

Este problema é frequentemente resolvido recorrendo a técnicas numéricas especiais, como o


método ADI (Alternating Directions Implicit). Esta técnica consiste, tal como o próprio nome
sugere, em aplicar alternadamente esquemas numéricos implícitos e explícitos ao longo das
direções x e y. Isto resulta na necessidade de resolver, alternadamente, j MAX sistemas de
equações algébricas a i MAX incógnitas, num incremento temporal, e i MAX sistemas de equações

- 302 -
Capítulo 8 EDPs

a j MAX incógnitas, no incremento temporal seguinte.

Se o esquema de Crank-Nicolson for usado alternadamente com um método explícito, o


procedimento ADI pode ser descrito pelas seguintes equações:

U i,jn +1 − U i,nj  2U n+1 2  2U n


= + 
t x 2 y 2
e, consequentemente,

U i,jn + 2 − U i,jn+1  2U n+1  2U n+3 2


= + 
t x 2 y 2
com,

U n+1 2 =
1 n
2
(
U + U n +1 ) e U n+3 2 =
2
(
1 n +1
U + U n+2 )

4.2 Equação diferencial hiperbólica

A forma canónica da equação hiperbólica de 2ª ordem homogénea a uma dimensão escreve-


se:
 2u 2  u
2
− c =0
t 2 x 2

sendo igualmente hiperbólica a seguinte equação de 1ª ordem,

u u
+c =0 (19)
t x

Estas equações gozam da seguinte propriedade importante: ao longo de certas famílias de


curvas ou superfícies, chamadas curvas (ou superfícies) características, estas equações variam
em conformidade com uma lei específica. No caso particular das equações a 1D, as famílias
de curvas são linhas descritas pelas equações:

dx
=uc (20)
dt

e a função u(x,t) é constante ao longo destas linhas características.

Esta propriedade, isto é, a existência de curvas características, é muito importante para a

- 303 -
Capítulo 8 EDPs

obtenção da solução analítica ou numérica de uma equação hiperbólica.

Figura 10 - Curvas características.

Na Fig. 10 representa-se um ponto A que resulta da intersecção das linhas (características)


AD e AE, sendo o valor da variável de campo u A dependente dos valores de u no interior do
domínio ADE. Qualquer esquema de integração que não tenha em consideração esta
característica geométrica resultará necessariamente em instabilidade numérica.

Substituindo c = dx/dt, tendo como solução x = x0 + ct , na equação (19), esta toma a seguinte
forma,

u dx u du
+ = =0
t dt x dt

ou seja, u é constante (tem derivada nula) ao longo de cada uma das linhas características
x = x0 + ct .

Seja de novo a equação de 1ª ordem (19), com c > 0. Para a resolução numérica desta equação
consideremos o seguinte esquema ponderado:

U in +1 − U in U n +1 − U in−1 U n +1 − U in−+11 U n − U in−1


α + (1 − α ) i −1 + cβ i + c(1 − β ) i =0 (21)
Δt Δt Δx Δx

Pretende-se avaliar a precisão e estabilidade deste esquema numérico em função dos


parâmetros  e  ; este último permite ponderar as partes explícita e implícita no cálculo de
u/x .
t
Fazendo r = c , resulta para o coeficiente de amplificação (  m ) daquele esquema:
x

ξm =
m
(
α + (1 − α )e − iw Δx − r (1 − β ) 1 − e − iwm Δx
)
(
α + (1 − α )e −iw Δx + rβ 1 − e −iw Δx
m m
)

- 304 -
Capítulo 8 EDPs

cujo módulo deverá ser não superior à unidade qualquer que seja o valor do ângulo wm  x
compreendido entre 0 e 2π . Várias hipóteses podem ocorrer, entre estas destacamos:

A. α = 1, β = 0
t
Este esquema é explícito; para a condição de estabilidade ξ m  1 resulta: c  1,
x
sendo a precisão de primeira ordem.
B. α = 1, β = 1
Este esquema é implícito, sendo, por conseguinte, sempre estável e com precisão de
primeira ordem.

C. α=0
Este esquema é sempre instável.
D. α = β =1 2
Este esquema é sempre estável; as ponderações são iguais em ambas as direcções e a
precisão é de segunda ordem.

Um problema comum em Hidráulica prende-se com a análise de transientes resultantes, por


exemplo, da interrupção súbita do caudal em condutas elevatórias, devido a um corte da
energia elétrica a uma estação de bombagem, ou ainda ao fechamento ou à abertura de uma
válvula. Mediante certas hipóteses, o modelo matemático que permite analisar este fenómeno,
em termos da velocidade do escoamento V e da carga hidráulica H, escreve-se:

V V H 2τ
+V +g =− 0
t x x r
(22)
H H c V
2
+V + =0
t x g x

com a tensão de atrito aproximada por τ 0  K V V , sendo K aproximadamente constante; r


é o raio da conduta.

As perdas por atrito são normalmente pequenas, devido à rapidez do fenómeno, e com
velocidades relativamente moderadas, pelo que o sistema de equações (22) é frequentemente
simplificado para a seguinte forma (23):
V H
+g =0
t x
(23)
H c 2 V
+ =0
t g x

- 305 -
Capítulo 8 EDPs

Este sistema de equações (23) é do tipo hiperbólico. As condições iniciais, traduzidas pelos
valores iniciais de V e de H em todos os pontos da malha de cálculo, e as condições de
fronteira, traduzidas pelas condições de desaceleração do grupo eletrobomba, ou pela
localização de um reservatório de grandes dimensões (permitindo considerar a carga constante
- pressão hidrostática) a montante, e pelas condições de fechamento ou de abertura de uma
válvula a jusante, completam o modelo.

No caso de fechamento 'instantâneo' de uma válvula a jusante, a velocidade será zero nesta
secção; considerando o fechamento ou a abertura linear da válvula, o princípio da
continuidade conduz à seguinte lei de fechamento:

S
V = 2 gH
S0

sendo S = S(t) a secção do escoamento; S 0 é a abertura inicial da válvula e H é a carga


hidráulica.

Um esquema numérico adequado para a resolução do sistema de equações (23) é o método


das características. Para isso, torna-se necessário escrever aquele sistema em termos das linhas
ou direções características e das chamadas invariantes de Rieman, as quais se obtêm
efetuando, por exemplo, as operações seguintes.
Multiplicando a 2ª equação (23) por g c , somando-a e subtraindo-a à 1ª destas equações
obtém-se o sistema de equações (24):

 gH    gH 
V +  + c V + =0
t  c  x  c 
(24)
 gH    gH 
V −  − c V − =0
t  c  x  c 

dx
Substituindo nestas equações c = , obtêm-se as equações (25) e (26) ao longo das linhas
dt
características C + e C − , respetivamente, isto é,

d  gH  dx
V +  = 0 , ao longo de = +c (25)
dt  c  dt

d  gH  dx
V −  = 0 , ao longo de = −c (26)
dt  c  dt

O significado físico destas equações é que as linhas características são rectas com inclinações

- 306 -
Capítulo 8 EDPs

gH
+c e -c, sendo os valores V  constantes ao longo destas linhas. Um procedimento
c
explícito de integração destas equações numa malha ortogonal estabelecida no plano x-t é
apresentada em seguida.

Seja a notação apresentada na Fig. 11, em que as linhas características AE e AD com


inclinações +c e -c, respetivamente, passam no ponto A, onde se pretendem calcular os valores
x
de V e de H. Sendo satisfeita a desigualdade t  , os pontos E e D situam-se nos
c
intervalos i − 1 , i  e i , i + 1 , respetivamente; os melhores resultados obtêm-se quando
x
ct = x . Com t  os pontos E e D situam-se fora dos intervalos i − 1 , i  e i , i + 1 ,
c
dando origem a instabilidades.

Figura 11 - Linhas características.

Os valores de V e de H em E e D ( V E ,H E ,V D e H D ) são facilmente calculados através de


interpolações lineares com base nos valores de Vi-n1 , Vi n , Vi+n1 e de H i-n1 , H in , H i+n 1 .

Um algoritmo numérico apropriado para a resolução do sistema constituído pelas equações


(25) e (26) pode então ser formulado nos seguintes termos:

i) Cálculo de VE , H E ,VD e H D :

- 307 -
Capítulo 8 EDPs

(
V E = Vi n + Vi-n1 − Vi n c
Δt
Δx
)
(
V D = Vi n + Vi+n1 − Vi n c
Δt
Δx
)
(27)
(
H E = H in + H i-n1 − H in c
Δt
Δx
)
(
H D = H in + H i+n 1 − H in c
Δt
Δx
)

ii) Cálculo das quantidades auxiliares AE e AD, usando as equações (27):


g
AE = V E + HE
c
(28)
g
AD = V D − H D
c

iii) Cálculo de Vi n +1 e H in +1 usando as equações (28), como resulta de (25) e (26):

Vi n +1 =
1
( AE + AD )
2
H in +1 =
c
( AE − AD )
2g

Sendo os valores de H conhecidos na fronteira de montante, os valores de V são calculados a


partir da característica C − , através da equação,

g n +1
V1n +1 = H 1 + AD1
c

Se os valores da velocidade forem conhecidos na fronteira de jusante, os valores de H podem


ser obtidos a partir da característica C + , através de,

H in +1 =
MAX
c
g
(AEi MAX
− Vi n +1
MAX
)

Seja um sistema constituído por um reservatório de grandes dimensões a montante e o


fechamento linear de uma válvula a jusante de uma conduta com 6000 m de comprimento, um
diâmetro de 0.50 m e uma espessura e = 4 mm.
Considerem-se V0 = 9.9 ms -1 , H 0 = 5.0 m , o fechamento total da válvula em 2.0 s e perdas
de carga por atrito nulas.

Nestas condições, a celeridade c vale aproximadamente 2980 ms-1. Considerando 11 secções


de cálculo ( x = 600 m ), poderá utilizar-se para o incremento temporal t = 0.20 s .

- 308 -
Capítulo 8 EDPs

4.3 Equação diferencial elíptica

A forma típica da equação elíptica a duas dimensões é a equação de Poisson,


 2u  2u
 2u = + = f ( x,y ) (29)
x 2 y 2

Uma equação deste tipo (elíptica) é um problema de valor de fronteira; trata-se, por
conseguinte, de um problema de regime permanente, fortemente dependente das condições
conhecidas/impostas ao longo da fronteira S que limita a região R do plano xy, seja
U ( x , y ) = g (x , y ), (x , y )  S .

Existem fundamentalmente três tipos de condições de fronteira:

i) Condições de Dirichlet, quando são conhecidos os valores de u em pontos da fronteira


do domínio;

ii) Condições de Newmann, quando são conhecidos os valores dos gradientes da variável
u normais à fronteira;

iii) Condições mistas, quando são conhecidos alguns valores da variável e alguns
gradientes da variável em pontos da fronteira.

4.3.1 Resolução numérica por diferenças finitas

Um procedimento comum para a resolução numérica de equações elípticas consiste na


aproximação das derivadas de 2ª ordem por diferenças finitas centradas, resultando num
esquema implícito. Assim, considerando incrementos espacias iguais ( x = y = s ), e
representando, como habitualmente, as abcissas e as ordenadas pelos índices i, j (
xi = ix , y j = jy ) , a equação (29) na forma discretizada escreve-se,

U i+1,j + U i −1,j + U i,j +1 + U i,j −1 − 4U i,j


= f i,j (30)
(s )2

Atendendo a que o valor de U i , j está relacionado com os valores da variável nos pontos
localizados em torno de (i, j ) , as equações de diferenças (30) terão de ser resolvidas
simultaneamente para os pontos da malha de cálculo estabelecida em todo o domínio (valores
i variando de 1 a imax e de j desde 1 a jmax).

A matriz do sistema de equações algébricas resultante é tridiagonal. Alguns elementos desta


matriz podem ser, também eles, igualmente matrizes.

- 309 -
Capítulo 8 EDPs

Os procedimentos mais comuns para a resolução deste problema são:

A. Método directo de Gauss.

Partindo da equação (30), considerando f = 0 , podemos escrever:

U i,j -
1
(U i-1,j + U i,j −1 + U i+1,j + U i,j +1 ) = 0
4 (31)
i = 1, 2 ,..., imax − 1 ; j = 1, 2 ,..., j max − 1
com,
U 0, j = g0, j , U i ,j = gi ,j
max max
(32)
U i ,0 = g i ,0 , U i , j max
= gi , j max

A título de exemplo, suponha-se imax = 4 e j max = 3 , correspondendo à malha de cálculo


representada na Fig. 12.

7 8 9

16 1 2 3 10

15 4 5 6 11

14 13 12

Figura 12 - Malha de cálculo.

Os pontos numerados de 1 a 6 são pontos interiores e os pontos numerados de 7 a 16 são


pontos de fronteira, cujos valores são dados por (32); o correspondente sistema de equações,
depois de multiplicado por quatro para eliminar fracções escreve-se, na forma matricial:

 4 − 1 0 − 1 0 0  U 1   g 7 + g16 
− 1 4 − 1 0 − 1 0  U   g 
  2   8 
 0 − 1 4 0 0 − 1 U 3   g 9 + g10 
   =  
− 1 0 0 4 − 1 0  U 4   g14 + g15 
 0 − 1 0 − 1 4 − 1 U 5   g13 
    
 0 0 − 1 0 − 1 4  U 6   g11 + g12 

- 310 -
Capítulo 8 EDPs

O método direto de Gauss é agora utilizado para a resolução deste sistema de seis equações
algébricas às seis incógnitas: U 1 , U 2 ,..., U 6 .

B. Método de relaxação sucessiva (SOR)

Baseia-se no cálculo do resíduo Ri, j , dado por:

(k ) U i+(k1),j + U i-(k1,j) + U i,j+


(k ) (k ) (k )
1 + U i,j-1 − 4U i,j
Ri,j = − f i,j
( Δs )2

designando o índice k a ordem da iteração. Este resíduo é calculado em cada ponto da malha
e os valores de U (k ) são atualizados de acordo com:

w (k )
U i,j(k+1) = U i,j(k ) + Ri,j
4

sendo w o coeficiente de relaxação, com o valor ótimo situado no intervalo 1.8  w  2.0 .

C. Método iterativo de Gauss-Seidel

Neste método a grelha de pontos é numerada de forma sequencial , e o cálculo dos valores de
U i,j é efetuado ao longo de x e y de forma contínua (isto é, incrementando continuamente os

valores i, j), usando os valores mais recentes de U , de acordo com a seguinte expressão:

( k+1) U i+(k1),j + U i-(k+ 1) (k ) ( k+1)


1,j + U i,j+1 + U i,j-1 (s )2
U i,j = − f i,j
4 4

Alguns problemas podem ocorrer em pontos de fronteira, quando estes não coincidem com
pontos da malha; estes casos resolvem-se desenvolvendo formas particulares para o cálculo
das 1ª e 2ª derivadas e gradientes normais da variável.

Seja o escoamento de um fluido ideal no domínio representado na Fig. 13, com as condições de
fronteira mistas igualmente representadas.

- 311 -
Capítulo 8 EDPs

Figura 13 - Domínio, malha de cálculo e condições de fronteira.

Nestas condições, o escoamento dá-se, obviamente, da esquerda para a direita, com a


→ 
velocidade potencial  U = − grad   satisfazendo a equação de Laplace.
 

Pretende-se: i) obter os valores de  nos nós da malha; e, ii) traçar as linhas equipotenciais e
de corrente.

4.3.2 Resolução numérica por elementos finitos

Consideremos de novo a equação de Laplace,


 2  2
+ =0 (33)
x 2 y 2

Usando funções de peso, ou ponderação, Wi , iguais às funções de interpolação, N i , a


aplicação do método dos resíduos pesados de Galerkin para a resolução desta equação conduz
à seguinte equação,
  2  2 
A  + 2  N i dA e  0 (34)
 x y 
e
2

O uso de funções de interpolação lineares, como as apresentadas na secção 2.2.2, exige que a
equação a resolver possua apenas derivadas de 1ª ordem, isto é, derivadas de ordem não
superior à ordem das funções de interpolação. Nesta conformidade, temos necessidade de
baixar a ordem das derivadas da equação (34), o que se consegue recorrendo ao teorema de
Green, ou integração por partes, vindo,

- 312 -
Capítulo 8 EDPs

  2  2   2  2
A  2 + 2  N i dA = A 2 N i dA + A 2 N i dA
 x y  x y
e e e

  N i  N i 
= − A  +  dA
 x x y y 
e

   
+ S  n x + ny  N i dS
 x y 
e

em que n x e n y são os cossenos diretores da normal à superfície.


Usando agora este resultado, e atendendo a que,

  
q= = nx + ny = q , em S
n x y
a expressão (34) escreve-se:
  N i  N i 
A  +  dA − S q N i dS  0 (35)
 x x y y
e e

 
Substituindo na equação (35) os valores , e , pelas aproximações
x y
3 
ˆ 3 N 
ˆ 3 N

ˆ = N j  j , = j e =  j obtidas na secção 2.2.2, resultam as três
j j

j =1 x j =1 x y j =1 y
equações seguintes:

 N N 2 N 3  N 1  N 1 N 2 N 3  N 1 
i = 1: A  1 1 + 2 + 3  +  1 + 2 +  3   dA
 x x x  x  y y y  y 
e

− S q N 1 dS  0
e

 N N 2 N 3  N 2  N 1 N 2 N 3  N 2 
i = 2: A  1 1 + 2 + 3  +  1 + 2 +  3   dA
 x x x  x  y y y  y 
e

− S q N 2 dS  0
e

 N N 2 N 3  N 3  N 1 N 2 N 3  N 3 
i = 3: A  1 1 + 2 + 3  +  1 + 2 +  3   dA
        y 
e

 x x x  x  y y y
− S q N 3 dS  0
e

N i N i
Substituindo os valores de N i , e , i = 1, , 3 nestas equações, resultam:
x y

- 313 -
Capítulo 8 EDPs

 1 b
i = 1: A  e (b11 + b2  2 + b3  3 ) 1 e +
e
1
(c11 + c2  2 + c3  3 ) c1 e  dA
2A 2A 
e
2A 2A

− S q e
1
(a1 + b1 x + c1 y ) dS  0
2 Ae
 1 b
i = 2: A  e (b11 + b2  2 + b3  3 ) 2 e +
e
1
(c11 + c2  2 + c3  3 ) c2 e  dA
2A 2A 
e
2A 2A

− S q e
1
(a 2 + b2 x + c2 y ) dS  0
2 Ae
(36)
 1 b3 c3 
i = 3: A  e (b11 + b2  2 + b3  3 ) e + (c11 + c2  2 + c3  3 ) e  dA
1
e

2A 2A 2 Ae 2A 

− S q
1
e (a3 + b3 x + c3 y ) dS  0
2 Ae

Na forma matricial, as equações (36) podem escrever-se:

 b'12 + c'12 b' 2 b'1 + c' 2 c'1 b' 3 b'1 + c' 3 c'1   1 
  
A b'1b' 2 + c'1c' 2 b' + c' b' 3b' 2 + c' 3 c' 2   2  dA
2 2
e
2 2
b'1b' 3 + c'1c' 3
 b' 2 b' 3 + c' 2 c' 3 b' 32 + c' 32   3 
(37)
 a'1 + b'1 x + c'1 y 
 
− S q a' 2 + b' 2 x + c' 2 y  dS  0
e

 a' + b' x + c' y 


 3 3 3 

com a' k = a k (2 A) , b' k = bk (2 A) e c' k = c k (2 A) . De forma mais compacta escreve-se:

K e e − P e  0
Uma vez que todos os coeficientes são constantes (dependem apenas das coordenadas dos
nós), resulta para a matriz K e ,

 b'12 + c'12 b' 2 b'1 + c' 2 c'1 b' 3 b'1 + c' 3 c'1 
 
K e = A e b'1 b' 2 + c'1 c' 2 b' + c'
2
2
2
2 b' 3 b' 2 + c' 3 c' 2 
b'1 b' 3 + c'1 c' 3 b' 2 b' 3 + c' 2 c' 3 b' 32 + c' 32 

com o vetor  dado por:
e

 1 
 
 =  2 
e

 
 3
O vetor P e representa a contribuição/influência das fronteiras isoladas, isto é, fronteiras não
comuns a dois elementos. Supondo um valor constante de q segundo o lado j-k do elemento
triangular representado na Fig. 4, os valores de P e reduzem-se a,

- 314 -
Capítulo 8 EDPs

0
1  
q N i dS 
nó k
nó j q l jk 1 (38)
2 1
 

ou seja, o valor de q corresponde à média dos nós j e k, sendo l jk a distância entre estes nós.
A fórmula (38) é uma aproximação 'grosseira' do integral, pois esta corresponde à utilização
da regra dos trapézios, que apenas deve ser utilizada quando q é constante e  é linear. Em
geral utilizam-se métodos numéricos mais precisos, como a fórmula de Simpson e a
quadratura de Gauss-Legendre.

O procedimento descrito para o elemento triangular pode então resumir-se na seguinte forma
geral:
 k11e k12e k13e   1   p1e  0
 e e    e  
k 21 k 22 k 23   2  −  p 2   0
e
(39)
 
 k 31 k 32 k 33   3 
e e e  e   
   p3  0

Esta formulação é agora estendida a todo o domínio, somando de forma apropriada as


contribuições de todos os elementos 2D da região R ( M ) e de todos os elementos 1D da
e

fronteira S ( M ), de modo a obter:


s

Me   N i  N i  M
 A  +  dA −  S q N i dS  0
s

 x x y y
e e

e =1  e =1

Tal como para um elemento, podemos, de igual modo, escrever para todo o domínio:

K  − P  0 ou K   P
ou ainda,
 k11 k12 ... k1n   1   p1 
k k 22 ... k 2 n   2   p 2 
 21  = 
 : : ... :   :   : 
 
k n1 k n2 ... k nn   n   p n 

em que n representa o número de pontos nodais da malha de elementos finitos. A solução


deste sistema de equações fornece os valores das incógnitas  i . Se se pretender em seguida
calcular o valor de  em qualquer ponto do interior de um elemento, utiliza-se a equação,
 = N i i + N j  j + N k  k

- 315 -
Capítulo 8 EDPs

com os valores  i ,  j e  k conhecidos, respetivamente, nos nós i, j e k desse elemento.

Para ilustrar este procedimento (composição da matriz global), considere-se a malha com
quatro elementos triangulares e seis pontos nodais representada na Fig. 14.

2 4 6

1 3

2 4

1 3 5

Figura 14 - Malha de elementos finitos.

As matrizes correspondentes a cada elemento escrevem-se:

 k11
1 1
k14 1
k12   1   p11 
 1 1    1
  4    p 4 
1
Elemento 1 (e = 1): k 41 k 44 k 42
k 21 1    1
  2   p 2 
1 1
 k 24 k 22

 k 332 k 342 k 312   3   p32 


 2 2    2
  4    p 4 
2
Elemento 2 (e = 2): k 43 k 44 k 41
 k132
 k142 k112     2
 1   p1 

 k 33
3 3
k 36 3
k 34   3   p33 
 3 3    3
  6    p 6 
3
Elemento 3 (e = 3): k 63 k 66 k 64
k 43 3    3
  4   p 4 
3 3
 k 46 k 44

k 554 k 564 k 534   5   p54 


 4    
Elemento 4 (e = 4): k 65 k 664 k 634   6    p 64 
k 354
 k 364 k 334     4
 3   p 3 

Adicionando agora a contribuição de todos os elementos resulta o sistema global:

- 316 -
Capítulo 8 EDPs

 k111 + k112 k121 k132 k141 + k142 0 0   1   p11 + p12 


    
 k 21
1 1
k 22 0 1
k 24 0 0   2   p 12 
 k 312 0 k +k +k
2 3 4
k +k
2 3
k 354 3 4 
  
k 36 + k 36  3   p3 + p3 + p3 
2 3 4

 1     1 3
33 33 33 34 34

k 41 + k 41 k 432 + k 43 + k 442 + k 44   4   p 4 + p 4 + p 4 
2 1 3 1 3 3 2
k 42 k 44 0 k 46
 0 0 k 4
0 k 554 k 564   5   p54 
 53
    
 0 0 3
k 63 + k 634 3
k 64 k 654 3
k 66 + k 664   6   p 63 + p 64 

É fácil verificar que este sistema de equações é formado adicionando sucessivamente:


i
i) à matriz K : k jk na linha j e coluna k
i
ii) ao vetor P : p j na linha j

Condições de fronteira

A introdução de condições de fronteira do tipo Newmann corresponde à consideração do


integral de linha, que resulta da aplicação do teorema de Green para reduzir a ordem das
derivadas, nos elementos com lados coincidentes com a fronteira do domínio tendo condições
de fronteira deste tipo; por conseguinte, esta condição não implica qualquer modificação no
sistema de equações global.
Já uma condição do tipo Dirichlet (  =  ) pode ser introduzida no sistema final, depois de
adicionadas as contribuições de todos os elementos e de todos os lados de fronteira com
condições de Newmann, fazendo igual a um o elemento da diagonal principal da
correspondente linha da matriz, com todos os restantes elementos desta linha iguais a zero, e
inserindo o valor imposto da variável na correspondente posição do vetor de termos
independentes.
Suponham-se conhecidos no exemplo anterior os valores 1 = 1 e  2 = 2 ; o
correspondente sistema de equações global toma a seguinte forma:

 1 0 0 0 0 0   1   1 
 0 1 0 0 0  
0   2     2 
 
 k 312 0 k 332 + k 333 + k 334 k 342 + k 343 k 354 k 363 + k 364   3   p32 + p33 + p34 
 1     1 3
k 41 + k 41 k 432 + k 43 + k 442 + k 44   4   p 4 + p 4 + p 4 
2 1 3 1 3 3 2
k 42 k 44 0 k 46
 0 0 k 534 0 k 554 k 564   5   p54 
     
 0 0 3
k 63 + k 634 3
k 64 k 654 3
k 66 + k 664   6   p 63 + p 64 

- 317 -
Capítulo 8 EDPs

Exercícios propostos

1. Analisar as condições de estabilidade do seguinte esquema numérico:


(
U in +1 − U in − r U in+
−1 − 2U i
1 n+1
+ U in+
+1
1
=0 )
t
com r = σ .
(x )2

2. Mostrar que o esquema numérico traduzido pela seguinte expressão (Método de Saul'Yev):
cc *H in−+11 + (1 − cc )H in + cc *H in+1
H in +1 =
1 + cc
ct
com cc = é incondicionalmente estável.
(x )2

3. Considerando variáveis adimensionais apropriadas, o nível freático subterrâneo de um solo


homogéneo e isotrópico pode ser descrito pela seguinte equação às derivadas parciais:

H  2 H
= , 0  x  1.0 e 0  t  T
t x 2
onde H ( x ,t ) = altura do nível freático; x = espaço; t = tempo e T = tempo limite.

Considerar as condições de fronteira:


H = 0, se x = 0 e t  0
H = 0, se x = 1.0 e t  0

e as seguintes condições iniciais (t = 0),

H = 2 x, se 0  x  0.5 ; e,
H = 2 − 2 x, se 0.5  x  1.0

a) Partindo das séries de Taylor, obter a equação de diferenças finitas na forma implícita
(diferenças progressivas no tempo, para o espaço i, e diferenças centradas no espaço para o
tempo n +1).
b) Considerando x = 0.25 e t = 0.10 , deduzir o sistema de equações correspondente à
primeira iteração, utilizando o método implícito da alínea a) [apresentar o sistema na forma
matricial].
c) Quais as principais vantagens e desvantagens dos métodos implícitos de diferenças finitas
relativamente aos métodos explícitos.
4. a) Seja a função h(x,t). Partindo de desenvolvimentos apropriados desta função em série

- 318 -
Capítulo 8 EDPs

2H
de Taylor, obter uma expressão para o cálculo numérico do valor aproximado de , no
t 2
ponto (i , n).
b) Num canal de secção rectangular constante, com uma largura b = 10 m, uma inclinação I
= 0.1% e um coeficiente de rugosidade de Manning K = 30 m1/3 s-1, forma-se uma curva de
regolfo causada por uma barragem com uma altura de 7 m.
No canal escoa-se um caudal Q = 100 m3s-1, sendo a altura normal do escoamento no
canal (a cerca de 20 km a montante da barragem) de 5.54 m e a altura do escoamento sobre a
barragem, correspondente ao regime crítico, de 2.17 m.
Sabendo que a forma da superfície livre (curva de regolfo) formada em consequência
da existência da barragem obedece à seguinte equação:

E
=I−
(b+ 2h)
43

 Q , com E = h +
2 Q2 h + hi +1
e h= i
x K  (b  h ) 19.61  (b  h )
10 3 2
2 2

a qual terá de ser necessariamente resolvida por um processo iterativo, expor de forma clara
um procedimento numérico a adoptar para o cálculo dos valores das alturas do escoamento
hi , considerando um incremento espacial x = 1000 m . Apresentar os cálculos para os dois
primeiros valores h1 e h2 , situados às distâncias de 1000 m e de 2000 m para montante da
barragem, respectivamente.
NOTA: O cálculo é efectuado de jusante para montante (sentido negativo do sistema de
eixos), devendo ser iniciado na secção da barragem, à altura h = h0 = 9.17 m (Condição de
fronteira).

5. Assiste-se frequentemente ao lançamento de produtos com elevado grau de toxicidade nos


cursos de água, sejam eles provenientes de redes de águas domésticas, ou residuais, ou ainda
de resíduos industriais, sem qualquer tratamento prévio. No essencial, estes tipos de
problemas podem reduzir-se à procura da solução de um modelo matemático de difusão-
dispersão, sendo, nestes casos, a quantidade desconhecida, a concentração C da massa de um
poluente.
Um modelo matemático simplificado, no caso de um escoamento permanente (
u = cons tan te ) e a uma dimensão no plano horizontal, escreve-se:

c c  2c
+u = 2
t x x

sendo ε um coeficiente de dispersão longitudinal, neste caso considerado constante.

Seja a diluição de um poluente num troço de rio com 2.5 km, no qual circula um caudal

- 319 -
Capítulo 8 EDPs

líquido com uma velocidade média u = 1.0 m/s. A partir do instante t = 0+, é permanentemente
rejeitada na secção inicial deste troço, uma substância poluente com uma concentração c = 1
ppm (partes por milhar).
Pretende-se determinar a evolução da concentração média do poluente ao longo do troço
de rio, nos instantes t = 10, 15 e 20 minutos, considerando valores para o coeficiente de
dispersão, ε , iguais a 0.10 e a 10.0 m2/s.

Resolva numericamente este problema, utilizando:

a) Um esquema explícito de diferenças finitas para obter a solução da equação diferencial


dada, satisfazendo o(s) critério(s) de estabilidade.

b) Um esquema semi-implícito de Crank-Nicolson (  = 0.5 ), com obtenção da solução do


sistema de equações resultante pelo método directo de Gauss.

6. Adoptando determinadas regras simplificativas, o escoamento num canal de largura


indefinida pode ser representado por:

 h 
 t + x (hu ) = 0

 u +  ( gh ) = 0
 t x
Considerando que:
- o canal tem um comprimento L = 1000 m ;
- a altura e a velocidade iniciais do escoamento são:
h( x, 0 ) = 1.0 m

u ( x, 0 ) = 0.8 ms
−1

- as condições nas fronteiras de montante e de jusante são dadas por:

Mon tan te : u (0, t ) = 0.8 + 0.8 sin(0.02 t ), t  157 s ; u = 0.8 ms , t  157 s


 −1


 Jusante : u (L , t ) = 2 h (h - 0.46) ms
 −1 1.5 −1

determinar o perfil do escoamento e a distribuição de velocidades ao longo do canal, no


instante t = 240 s, utilizando:

a) um método semi-implícito de diferenças finitas, com ponderação idêntica no tempo ( ) e


no espaço () (  =  = 0.5 );
b) um método de diferenças finitas do tipo previsor-corrector.

- 320 -
Referências bibliográficas

Referências bibliográficas

Chapra, S.C. & Canale, R.P. (2014) - Numerical Methods for Engineers. 7th Edition, McGraw
Hill.

Correia, A.A. (2018) - Informática. Volume II - Introdução à programação em MatLab. DEC-


FCTUC

Heath, M.T. (2018) - Scientific Computing - An Introductory Survey. 2nd Edition. SIAM.

Hingray, B., Picouet, C. & Musy, A. (2015) – Hydrology - A Science for Engineers. CRC
Press.

Kharab, A. & Guenther, R.B. (2012) - An Introduction to Numerical Methods -A MATLAB


Approach. 3rd Edition. CRC Press.

Lindfield, G.R. & Penny J.E.T. (2012) - Numerical Methods, Using MATLAB. 3rd Edition.
Elsevier.

Pina, H.L.G. (1995) - Métodos Numéricos. McGraw-Hill.

- 321 -
Referências bibliográficas

- 322 -
Anexo Soluções

Soluções dos exercícios propostos (Caps. 1-6)


Capítulo 1
1. 9 termos.
2. -41.40%, -4.40%, 0.45%
3. 1111 1100 0001 1000
4. a) Simétricos (92 e –92) b) (0000005C)16=(92)10 (0000FFA4)16=(65444)10
5. – 32625
6. a) N1=(-32626)10 ; N2=(-16386)10 b) (1100 0000 1001 0000)2 c) overflow
7. (0.2)10=(.0011 0011 0011 ...)2
8. Xund.=0.03125 e Xover.=7.5
9. a) 65537, 0.1953125x10-2, 127.96875 b) X1 sim ; X2 não c)   4.88x10-4
d) 1111 1110 1101 0100
10. a) 1111 1101 10 e 1 | 10100 | 1100 b) Não é possível
11. 1| 1000 0100 | 110 0100 1111 0000 0000 0000
12. a) 1| 0111 1100 | 000 1000 1000 1000 1000 1000 b) 1111 1111 1111 0110
13. a) 1 | 1000 0111 | 110 0001 0000 1100 1100 1100 b) Inteiros desde -32768 até 32767.
14. a) b=2 ; p=6; t=16 ; E0=31 b) -6.75 c) 1110 1010 1010 0000 0010 00
15. a) 1 | 0111 1011 | 000 1000 1000 1000 1000 1000 b) 1110 1100 0111 1000
17. b) conjunto de 16 números reais positivos cujo menor elemento é 1/32 e o maior 6.
18. a) Xund.=0.03125 ; Xover.=7.0 ; 65 números distintos
19. s=540 m ; |Δs| 11.3 m
20. A5.43 ; n=2
21. 2 a.s.c.
22. n=4
23. a) 2 algarismos b) 3.14
24. 3 algarismos significativos corretos
25. k=2
26. k=4
27.  0.167 mm/m
28.a)1.01% ; b) Nmax=51 lotes , Nmin=49 lotes
29.a) |rπ|1/3*10-3 ; |ra|0.7634*10-3 ; |rb|0.2382*10-3 ; b)|Δh|0.00147 c) Não é possível
30.a) Medições do 1º operador b) |rE|0.01079 ; |rR|0.00083
31. 8.1%
32. 2 a.s.c.
33.a) Não é possível b) n=3
34. 6 a.s.c

- 323 -
Anexo Soluções

Capítulo 2

1. a) Não existem raízes positivas; 1 ou 3 raízes reais negativas. b) α]-1,0[


2. a) 4,2 ou 0 raízes reais positivas ; 1 raiz real negativa b) α=1 é raiz dupla
3. a) 2 ou 0 raízes reais positivas ; 2 ou 0 raízes reais negativas b) Método de Newton
4. a) α] -π/4,-π/8[ b) g ( x) = arcsen (− ( x + 2) / 2 ) c) α-0.7073
5. A escolha deverá ser c)
6. a) α1]0,π/8[ ; α2]π/4,π/2[ b) É possível utilizar g(x)
7. b) x0]1.58,2.29[
8. a) Mostrar que função g(x) não verifica as condições de convergência
b) g(x)=ln(4 x2) ; α4.31
9. a) α]-3.5, -2.5[ b) α-3.34
10. a) Aplicar método de Newton b) α1=-2 ; α2]-2,0[; α3]0.523,1.699[; α4]1.699,2[
c) x0=0.7 → x1=2.1 ! ; Ponto de inflexão no intervalo(x1.11) d) x0=1.15 → α1.567 (k=1)
11. a) α1]- 3π/2, -π[ ; α2]-π,-π/2[; α3]0, π/2[ b) “overshoot” c) α2]-2.5,-π/2[ α2-1.98
12. a) α1]-2.0,-1.0[ ; α2]-0.5,0.0[ ; α3]0.0,0.5[ ; α4]1.0,2.0[
b) x2-1.523 (x0=-2)
13. a) Número infinito de raízes positivas ; b) α1 1.29
14.a) α1]-3, -2[ ; α2]0, 1[ b) Não se verifica a condição no extremo a=0; x0=1
15. a) α]π, 5π/4[ b) x0=2.6 → divergência (anulação da derivada)
16. b) α3.15 d) α3.14159
17.a) t1]0,1/4[ ; t2]1/4,1/2[ ; t3]1,5/4[ ; t4]5/4,3/2[ b) α 0.03
18.a) α1]-2,-1.5[ ; α2]1,1.5[ b) α 1.06
19.a) Nº infinito de raízes ; a menor, α1],5/4[ b) α 3.49
20.a) α1]0,/2 [ ; α2]/2,  [ , ... b) α 3.096
21.a) α1[1,3] ; α2[5,7] b) α 2.36
22.a) α]-3.5, -2.5 [ b) α -3.34
23. αFP-0.783 , αS-0.788
24. α 0.855

- 324 -
Anexo Soluções

Capítulo 3

1. h=32 m
2. a) p2(1/6) 0.833 b) R2(1/6)0.0478
3. a) p3 (x ) = 2 x 3 − 4 x + 9 b) p4 (x ) = x 4 − 3 x 3 + 7 x 2 + x + 1
4. p4 (x ) = 3 x − 20 x + 29 x +18 x − 32
4 3 2

5. 3386 peças
6. f(4)=1
1 1 1 1 1 1
7. a) p3 ( x) = x 3 − x + 1 b) f ( x) = x 4 − x 3 − x 3 + x + 1
6 6 6 6 6 6

8. 0.163x10-2
9. h  0.632 10 −2
10. b) λ=15 ; c) f (3)=55
11. R3(1)1.955*10-3
12. 55 7.416286
1 3
13. p3 ( x) = − x 3 + x 2
16 8

14. a) p2 (x ) = − x 2 + 1 ; p4 (x ) = 4 x 4 − 5 x 2 + 1
15. S(x) é um spline cúbico natural (S’’(1)=S’’(3)=0)
16. S(40)=61.25 m (a=0.00125, b=0, c=1)
17. a) f (2.5) = 0.875 b) a=0.25 , b=-0.75 , c=3 , d=2.25 , e=-6.5 , f=7
23 2 19 11
c) p3 ( x) = x 3 − x + x− ; p3 (2.5) = 0.6875
4 2 4

Capítulo 4
1. y = 2.020 e x + 3.014 e − x

2. v(10) = 10-(10-4.9663) e-10/3.004 = 9.82 volts


3. a) 25685 habitantes b) 28137 habitantes
4 11
4. A = , B=
15 30
5. α=37.11 ; β=15.58 ; υ(10-6 m2s-1)=0.32
5. a) A primeira b) x=2.307 (parâmetros da curva: k1=1.01368 e k2=1.98986)
6. ln a =3.2129 ; b=1.0136 ; t=3.88 seg.

- 325 -
Anexo Soluções

Capítulo 5
1. w0=5/36 ; w1=13/12 ; w2=-2/9
2. IT  0.079
3. IT  2.94 (n=5)
4. IS  0.0843
5.a) I T = 1.5 + 0.5  , I S = 1 + 4 / 3  b)  = 0.5 , I = 5/3
6.a) 6 pontos b) IT=1.828
5 5
7.a)  f (x ) dx  52.667 b) f ( x ) é um polinómio de grau 2 c)  f (x ) dx = 42 (Erro=0)
−1 −1

8.a) p2 (x ) = x 2 b) I S = 16 / 3 ; ES = 8 / 3 c) h=1
9. –289.2 m (5 pontos)
10.a) erf(0.5)  0.5205 b) erf(0.5)  0.5205
11.a) 19 pontos ; b) IS  0.1974 ; c) IG  0.1975
12. a) 89 pontos b) Por defeito c) i) –13.34; ii)–11.58; iii) –12.13; Valor exacto –12.07
13. a) I=97.5 b) Erro=10.8333

Capítulo 6
1. x1=1 ; x2=3 ; x3=2
2. Sistema indeterminado ; sistema impossível
3. x1=0.09770 ; x2=0.00954 ; x3=0.00093 ; x4=0.00009 ; x5=0.00001
4.a) x1=1/9 ; x2=22/27 ; x3=4/9 ; x4=10/9
5.a) Não b) |α|>5

1 0 0 1 0 3 
   
6. a) L =  5 1 0  ; U= 0 −1 − 13  b) x1= -1 ; x2= -2 ; x3=1
   
1  0 77 
 6 1   0

7.a) Sistema linear b) Sistema tri-diagonal


8. x=1.004 , y= -1.723
9. Q1=1.605 Q2=1.105 m3/s
10. x=1.28 , y= -0.28 , z=1.87
11. Q1=Q4=2.49 m3/s ; Q2=Q3=1.24 m3/s

- 326 -

Você também pode gostar