Escolar Documentos
Profissional Documentos
Cultura Documentos
Coimbra
Setembro de 2020
ÍNDICE
_______________________________________________________________________________________________________________
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
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 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
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
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
iv
CAPÍTULO 1
_______________________________________________________________________________________________________________
1. Objetivos
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.
-1-
Capítulo 1 Erros em cálculo numérico
-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:
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.
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.
-3-
Capítulo 1 Erros em cálculo numérico
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:
-4-
Capítulo 1 Erros em cálculo numérico
-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:
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.
-7-
Capítulo 1 Erros em cálculo numérico
Análise X e p Z
(resposta do sistema)
Dimensionamento X e Z p
(caraterísticas do sistema)
Controlo Z e p X
(“input”)
-8-
Capítulo 1 Erros em cálculo numérico
• 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),
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).
-9-
Capítulo 1 Erros em cálculo numérico
- 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).
- 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).
- 12 -
Capítulo 1 Erros em cálculo numérico
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
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.
1.1 − 1.100136
100 0.0124 %
1.1
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.
x d Valor exato - d
_______________________________________________________________
- 15 -
Capítulo 1 Erros em cálculo numérico
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.
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.
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
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.
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)
termos de ordem n+1 e superiores) associado a p n (x ) . Este erro pode ser expresso, através da
( n +1)
f ( )
R n ( x) = ( x - x0 )n+1 (6)
(n + 1)!
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
f ( )
( 8)
de “e”. Utilizando a fórmula do erro (6) R7 ( x) = R7 (1) = (1 - 0 )8 , com 0 1 .
(7 + 1)!
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!
( )
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.
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.
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.
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
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.
- 24 -
Capítulo 1 Erros em cálculo numérico
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:
• Seguidamente qualquer número pode ser expresso pelo uso desses símbolos
aditivamente, repetindo cada um deles o número necessário de vezes.
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
• 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.
- 26 -
Capítulo 1 Erros em cálculo numérico
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.
- 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.
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
- 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:
com 0 di 9, i=0,1,...,n.
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.
- 29 -
Capítulo 1 Erros em cálculo numérico
base bN, 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:
S2 = {0, 1};
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 = dn
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 )
- 30 -
Capítulo 1 Erros em cálculo numérico
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.
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.
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
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 é:
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.
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
N min. -2 -1 0 1 2 N max.
=
=
31
- 2 = - 2.147.483.648 231- 1 = 2.147.483.647
- 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.
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.
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:
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
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.
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:
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.
- 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.
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.
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.
X = M bE
na qual, M é um número real não negativo denominado mantissa, b2 é 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:
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
1 1
M 1− t
X = M b E
em que : b b
E | E | E
min max
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:
com d −1 = 1 .
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 )
(0...00)2 = 0
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
- 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:
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
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 ) .
• 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á.
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:
- 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
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
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
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).
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:
−126
correspondente a: X min = (1.000 ... 00) 2 2 = 2−126 1.2 10−38 .
+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
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)).
Figura 22 - Números reais positivos “vizinhos” de zero - precisão simples (32 bits) -
- 46 -
Capítulo 1 Erros em cálculo numérico
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 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
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
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?
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,
- 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:
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,
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
- 49 -
Capítulo 1 Erros em cálculo numérico
fl ( x) = x2 , segundo o extremo do intervalo do qual esteja mais perto. O erro absoluto cometido
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:
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,
- 50 -
Capítulo 1 Erros em cálculo numérico
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:
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
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
1
|rx| (17)
2 a1 10n−1
Exemplo 1.11: Qual o limite superior do erro relativo quando se toma =3.14?
- 52 -
Capítulo 1 Erros em cálculo numérico
O Teorema e Corolário anteriores permitem determinar limites superiores para os erros relativos
a partir do número de algarismos significativos corretos.
1
(18)
2 ( a1 + 1 ) 10 n−1
então esse valor aproximado x tem pelo menos n algarismos significativos corretos.
1 −n
Como 1a19 então 2a1+110 pelo que o mínimo valor da fração (18) é: 10 . Por
2
conseguinte:
| rx | 0.5 10 − n (19)
- 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?
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
Nesta expressão, o valor máximo da derivada é calculado no intervalo x − x , x + x .
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
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
f f f
| f | | x | + | y | + | z |
x max y max
z max
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
(1)10 + (0.00001)10 =
= ( .1000 0000 0000 0000 0101 0011 1110 0010 1101 0110 0 ) 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
que apenas tem 2 a.s.c.. De facto, para valores de x positivos e “elevados”, x + 1 x , o que
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
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 |
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
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.
8. Discretização
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.
para o valor exato ( Paprox . → P ). No entanto, qualquer que seja o valor n (finito), obteremos
(a) (b)
- 60 -
Capítulo 1 Erros em cálculo numérico
9. Métodos iterativos
x1 , x2 , x3 , ... , xn , ...
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 , ...
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
- 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.
- 62 -
Capítulo 1 Erros em cálculo numérico
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.
- 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
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.
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
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.
- 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
- 66 -
Capítulo 1 Erros em cálculo numérico
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
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.
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
_______________________________________________________________________________________________________________
1. Introdução
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
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
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.
max
x=αL
x=0 x=L
α=0 α α=1
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
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
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
- 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:
INÍCIO
ESTIMATIVA INICIAL
FÓRMULA DE ITERAÇÃO
NÃO
FIM ?
SIM
PARAR
- 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)
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:
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
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:
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.
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 α.
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
xk = xk −
xk
lim p
=C (3)
k → x k −1
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
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
xk-1
x0 x k-1 xk x
xk x k
y=f(x)
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
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 .
- 78 -
Capítulo 2 Resolução de equações não-lineares
( 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 αiL.
Demonstração: Considere-se, para simplificar e por ser o caso mais corrente, que a função
pn'' ( L) p ( n ) ( L)
pn ( x) = pn ( L) + pn' ( L) ( x − L) + ( x − L) 2 + ... + n ( x − L )n
2! n!
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!
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*.
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 !) + +
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 :
1
a
L 1 + max k n−m (4)
a k 0 a n
p 4 ( x ) = x 4 − 4 x 3 − 3 x 2 + 13 x − 4
max a k negativo
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.
O método de Rolle está baseado no teorema de Rolle, e respetivos corolários, que se recordam:
- 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)
f (x)
f (x)
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
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.
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 )
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 )
p 3' ( x ) = 0 3x2 − 3 = 0 x = 1
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
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)
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!)
- 86 -
Capítulo 2 Resolução de equações não-lineares
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 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.
- 87 -
Capítulo 2 Resolução de equações não-lineares
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.
x = g (x) (5)
- 88 -
Capítulo 2 Resolução de equações não-lineares
y
y=x
y=g(x)
g ()
ponto fixo de g
x
= g ( ) (6)
- 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
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
Vamos começar por responder a estas questões através da análise dos exemplos que se seguem.
x3 − 6 7x+6 2 x3 + 6
(a) g1 ( x) = ; (b) g 2 ( x) = ; (c) g 3 ( x ) =
7 x2 3 x2 − 7
O processo iterativo foi iniciado com x0 = −2.2 (para a raiz 1 = −2 ) e x0 = −1.1 (no caso
da raiz 2 = −1 ).
- 91 -
Capítulo 2 Resolução de equações não-lineares
g(x)
x3 − 6 7x+ 6 2 x3 + 6
g1 ( x) = g 2 ( x) = g 3 ( x) =
k 7 x2 3 x2 − 7
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
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:
i) x I a g ( x) b
ii) g é diferenciável e | g ( x) | L 1 para todo x 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
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
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
g ( x ) = g ( x k −1 ) + ( x − x k −1 ) g ' ( )
ou tomando módulos
− xk = g ' ( ) − xk −1 para ( xk −1 , )
e passando ao limite
xk
lim = g '( )
k → xk −1
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 ' ( ) | .
Convergência Divergência
0 1 2 g ' ()
velocidade de convergência
decrescente
- 97 -
Capítulo 2 Resolução de equações não-lineares
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
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
− 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
0.519
x12 x12 − x11 0.66 10 −5
1 − 0.519
- 99 -
Capítulo 2 Resolução de equações não-lineares
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
- 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 )
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?
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.
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
xk f ' ' ( )
lim = (11)
k → x k −1
2 2 f ' ( )
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
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
y y= f (x)
y= f (x)
x0
x1 x x1 x0 x
y y
y= f (x)
y= f (x)
x0 x0
x1 x x2 x1 x
T1
- 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.
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-
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].
- 104 -
Capítulo 2 Resolução de equações não-lineares
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
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
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
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 .
- 106 -
Capítulo 2 Resolução de equações não-lineares
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.
ou ainda,
f ( xk −1 ) f ' ' ( k )
= xk −1 − − ( − xk −1 )2
f ' ( xk −1 ) 2 f ' ( xk −1 )
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
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
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 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
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 ?
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
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
- 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.
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
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
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
- 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).
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
| 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
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.
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
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 )
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).
- 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
b - c< ε1
f(c)< ε2
Os valores ε1>0 e ε2>0 são tolerâncias pré-definidas, que poderão ser distintas ou não.
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
x
Figura 23 - Gráfico da equação sen x − =0.
2
- 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
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
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..
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.
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.
- 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
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.
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
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.
os métodos da falsa posição e das secantes, a menor das suas raízes reais.
- 122 -
CAPÍTULO 3
_______________________________________________________________________________________________________________
INTERPOLAÇÃ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).
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
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
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
▪ 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:
| 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.
- 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)
• série de potências
p n ( x) = a0 + a1 x + a2 x 2 + ... + an x n
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:
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.
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.
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),
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
p 4( x) = ((( a4 x + a3 ) x + a2 ) x + a1 ) x + a0
- 128 -
Capítulo 3 Interpolação
Diferenças Divididas
f ( x) − f ( x0 )
f [ x0 , x] = , x x0
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 axb 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
- 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
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
... ... ...
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 é,
Interpolação Linear
f [ x0 , x] = f [ x0 , x1 ] (8)
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
p1 ( x) = f ( x) = 1 + ( x − 1).(2) = 2 x − 1
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.
- 132 -
Capítulo 3 Interpolação
f ( x) = f [ x0 ] + ( x − x0 ) f [ x0 , x1 ] + R1 ( x) (10)
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:
- 133 -
Capítulo 3 Interpolação
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.
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:
- 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,
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 é,
De modo completamente análogo ao efetuado para obter (11) pode deduzir-se que:
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.
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
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
= 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 xxi, 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).
f ( x) = p n ( x) + R n ( x)
- 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:
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.
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, ji. Estas condições podem
escrever-se abreviadamente,
1 se j = i
li ( x j) = i j =
0 se j i
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
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 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
( 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
• 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;
- 139 -
Capítulo 3 Interpolação
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 + 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
- 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)
2!
( - 1) ( - 2)
+ f( x0 ) + ... +
3
(26)
3!
( - 1) ( - 2) ... ( - n + 1)
+ f( x0 )
n
n!
( − 1 )...( − n + 1)
= n0
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
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.
- 142 -
Capítulo 3 Interpolação
➢ Diferenças regressivas
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)
- 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!
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.
- 144 -
Capítulo 3 Interpolação
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
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).
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:
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 x0xx1, então de (20), com n=1,
resulta:
- 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
x0xx1,
x +x x −x x −x h
2
| L1 ( x) | L1 0 1 = 1 0 0 1 =
2 2 2 4
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.
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
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 n1, define-se: h=(b-
a)/n, xj=a+jh, j=0,1,...,n. Pergunta-se:
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).
- 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.
- 149 -
Capítulo 3 Interpolação
Resolução:
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 !!!
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
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 :
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
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.
f(x1)
f(x0)
x0 xi xn-1
x0 x1 x 2 xi x i+1 x n-1 x n x
Define-se "spline" S(x) de grau m1 em [x0,...,xn], como a função que satisfaz as seguintes
propriedades:
(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
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
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
- 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],
Em [xi-1,xi],
Igualando os segundos membros das equações anteriores, após agrupar termos, vem:
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.
Para este caso n=4 e h=0.5 pelo que as 3 equações (54) se escrevem:
S''(x1) = 5.7857
S''(x2) = -2.1429
S''(x3) = 5.7857
- 157 -
Capítulo 3 Interpolação
• 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:
- 158 -
Capítulo 3 Interpolação
Exemplo 3.12: Resolver o exemplo 3.11 extrapolando S''(x) nos pontos extremos.
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
- 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
- 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.
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) .
- 161 -
Capítulo 3 Interpolação
x -1 0 2
f(x) 1 5 -5
xi -1 0 1 2
f (xi) 1 1 1 2
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.
11. Escrever o polinómio interpolador na forma de Lagrange para interpolar a função ln(x) no
- 162 -
Capítulo 3 Interpolação
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.
0 para − 1 x − 0.25
f(x) = 1 − | 4 x | para − 0.25 x 0.25
0 para 0.25 x 1
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
- 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
xi 1 2 3
f (xi) 2 1 1
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) .
- 164 -
C APÍTULO 4
___________________________________________________________________________________________________
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
~
y = g ( x) (1)
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)
É 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.
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
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.
10 (572.4) − 55 (81)
a= = 1.538 ;
10 (385) − 55 2
- 169 -
Capítulo 4 Aproximação
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.
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
- 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:
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).
- 172 -
Capítulo 4 Aproximação
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:
ii) As equações normais para ajustar estes dados transformados podem escrever-se
como:
352 34 a 29.7197
=
34 5 b 5.2695
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
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=).
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
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
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
t (seg) 3 9 12 18 24 30
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
- 178 -
Capítulo 4 Aproximação
Para obter a estimativa desejada de tmax, basta verificar que será solução de:
j ( xi ) k ( xi ) = xi j −1 xik −1 = xi j+k − 2
- 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.
[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:
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:
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
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.
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.
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:
1 + (K 2 − 1 ) x2
1
1 − x2
dx
0
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)
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:
- 184 -
Capítulo 5 Integração numérica
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).
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
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
- 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
( 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
axb 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
f ( x) dx w
0
0 f (−1) + w1 f (0) + w2 f (2)
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
32
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
- 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.
( x − x ) = ( x + 1) x ( x − 2)
i =0
i
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
f ( x) dx p
a a
n ( x) dx (11)
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
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
- 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
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).
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
0
analítica; considere que o seu valor com 7 casas decimais corretas é I = 0.7468241).
b−a
( )
f (a) + f (b) = 1− 0 e0 + e −1 0.68394
1
I = e −x dx
2
0
2 2
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
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
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
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
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.510−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
A resposta à questão de quantos pontos são necessários para garantir um erro inferior a
0.510−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 xb
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 .
- 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].
- 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
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
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
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
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
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
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
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)
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.
−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
- 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)
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
- 201 -
Capítulo 5 Integração numérica
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)
2 x−a −b
x→t : t =
b−a
de forma que
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
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
w4 = 0.478628670 t4 = 0.538469310
w5 = 0.236926885 t5 = 0.906179846
- 203 -
Capítulo 5 Integração numérica
Exercícios propostos
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
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
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
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
c) Que espaçamento h terá de usar na regra de Simpson composta ao aproximar I para garantir
um erro “0”. Justifique.
gm − t
c
V (t ) = 1− e m
c
- 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)
4
13. Considere o integral definido: I = −1
f ( x) dx e os valores da seguinte tabela:
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
_______________________________________________________________________________________________________________
1. Preâmbulo
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.1. Introdução
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
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).
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 (mn). 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
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
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 .
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
| 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.
que embora modificando o aspeto inicial do sistema, o transformam num sistema equivalente
- 211 -
Capítulo 6 Sistemas de equações
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.
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)
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
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
- 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 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
em que:
aij(1) = aij − r i a1 j ( i = 2,...,n) ( j = 2,...,n )
bi = bi - r i b1 ( i = 2,...,n )
(1)
- 214 -
Capítulo 6 Sistemas de equações
ou seja, é um sistema triangular superior, cuja solução é calculada por substituição regressiva.
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.
- 215 -
Capítulo 6 Sistemas de equações
A redução (Fase 1) produz como resultado uma matriz ampliada com o seguinte aspeto:
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.
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
- 216 -
Capítulo 6 Sistemas de equações
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.
- 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)
É 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:
N (/) = n − k
N () = N (* ) = ( n + 1 − k ) ( n − k ) = ( n − k )2 + ( n − k )
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
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
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.
- 219 -
Capítulo 6 Sistemas de equações
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:
Assim, antes da etapa de ordem k (k=1,2,...,n) a matriz ampliada do sistema apresenta o seguinte
aspecto:
- 220 -
Capítulo 6 Sistemas de equações
- 221 -
Capítulo 6 Sistemas de equações
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
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.
Nota: (a) e (b) possuem as mesmas equações mas em ordem inversa; a solução exata é
x=-1, y=8.
Resolução:
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.
- 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.
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.
- 225 -
Capítulo 6 Sistemas de equações
9.1 9
b = para b =
− 1 - 1
− 1 − 1
b = para b =
9.1 9
- 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 ai20. 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.
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
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
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:
1 23 23
[1 4 - 2 0 : 6] − [5 − 3 0 0 : 7] = [0 −2 0 : ]
5 5 5
5 23 23 59
[0 − 1 3 1 : - 4] − [0 −2 0 : ] = [0 0 1 : − 3]
23 5 5 23
46 59 249 - 747
[0 0 2 5 : − 15] − [0 0 1 : - 3] = [0 0 0 : ]
59 23 59 59
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
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.
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
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:
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
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
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
- 232 -
Capítulo 6 Sistemas de equações
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
Resolução:
Como L é uma matriz triangular com 1's na diagonal principal, o algoritmo (6) simplifica-
se para:
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
- 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
Então, um esquema geral da decomposição LU para uma matriz de ordem n pode obter-se da
seguinte forma:
u1 j = a1 j , j = 1,..., n
ai1
l i1 = , i = 2 ,..., n
u11
k −1
u kj = a kj − l km u mj , j = k,..., n
m =1
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
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)
1i n
ou
(k )
xi − xi( k −1)
max (k )
(10)
1i n xi
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.
- 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 )
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.
- 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.
então o método de Jacobi converge para a solução exata x qualquer que seja a
aproximação inicial x(0).
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.
(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
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:
2
(k ) 1
x3 = 4 ( 16 − 2 x1 − x2 )
(k ) (k )
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.
- 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.
É 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.
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
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.
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
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
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
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.
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!
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
f ( x, y ) = 0
(18)
g ( x, y ) = 0
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
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
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
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
δ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
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
pi xi −1 + d i xi + qi xi +1 = bi ; i = 1,...,5
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
- 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
( )
− 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 Ax = b.
c) Identifique o procedimento de resolução mais eficiente.
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
10.5 m
Q1 = Q2 + 0.5
1.8
4 Q1 + Q21.8 = 10.5 Q1
Q2
x z + 5 y = 1
Partindo do vetor inicial: X = 1, 0, 2 , determine a respetiva solução com duas casas decimais
T
corretas.
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
____________________________________________________________________________________________
1. Introdução
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
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
y1 y'1
W ( y1 , y 2 ) = y1 y' 2 − y 2 y'1 =
y2 y' 2
y (t ) = C1 y1 (t ) + C 2 y 2 (t ) + ... + C n y n (t )
Uma equação diferencial linear de ordem n com coeficientes constantes pode escrever-se na
seguinte forma geral:
- 250 -
Capítulo 7 EDOs
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
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
- 251 -
Capítulo 7 EDOs
(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)
d
t + sin(t + y ) = 0
dt
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
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
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:
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:
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 .
- 253 -
Capítulo 7 EDOs
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
= f (t , y ) , y (t 0 ) = y 0
dy
dt
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.
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
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
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
- 255 -
Capítulo 7 EDOs
= 1 + (y − t) , y (0 ) =
dy 2 1
.
dt 2
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
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!
f 2
ek +1 = ek + h (t k ,y k ) ek + h y (ξ k ) (12)
y 2!
- 256 -
Capítulo 7 EDOs
f f f
max L e max y' ' = max + f D
(t , y ) y (t , y ) (t , y ) t y
h2 h2
ek +1 = ek + hL ek + D = (1 + hL ) ek + D
2! 2
h2
ξ k +1 = (1 + hL ) ξ k + D (13)
2
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
t2 t3 t k +1 ξt
et = 1 + t + + + ... + e
2! 3! (k + 1)!
- 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.
= 1 + (y − t) , y (0 ) =
dy 2 1
.
dt 2
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
Uma boa alternativa ao método traduzido pela equação (15) consiste em integrar ambos os
- 258 -
Capítulo 7 EDOs
y (t k +1 ) = y (t k ) + t f (t , y (t )) dt
t1 + h
k
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
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
= 1 + (y − t) , y (0 ) =
dy 2 1
.
dt 2
- 259 -
Capítulo 7 EDOs
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
y k +1 = y k + hψ (t k ,y k ,h ) (18)
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)
- 260 -
Capítulo 7 EDOs
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 ty 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 )
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:
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
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 )
Q1
Q
Q2
Q0
yk
tk tk+1
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.
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 )
= 1 + (y − t) , y (0 ) =
dy 2 1
.
dt 2
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
d 2z dz dz
2
+a + bz = 0
dt dt dt
- 264 -
Capítulo 7 EDOs
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.
- 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.
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
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 + γ1f 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
- 266 -
Capítulo 7 EDOs
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
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
y k +1 = y k +
h
(55 f k − 59 f k −1 + 37 f k −2 − 9 f k −3 ) (27)
24
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
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:
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 )
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 − 1f 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
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
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
(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 ,...
y (i ) k +1 − y (i −1) k +1
ε
y (i ) k +1
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
ap 0
cuja solução analítica é dada por: p(t ) = .
bp 0 + (a − bp 0 )e − a (t −t )
0
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
- 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
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.
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 *
************************************************
Justificação
y k +1 + 4hy k − y k −1 = 2h
- 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
β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
1ε
α
É 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.
H n n n
y n = C11 + 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
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.
- 277 -
Capítulo 7 EDOs
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
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 .
- 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
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
- 279 -
Capítulo 7 EDOs
dM Q2
= Q1 C1 − M
dt V0 + (Q1 − Q2 ) t
- 280 -
CAPÍTULO 8
____________________________________________________________________________________________
1. Introdução
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.
A - Ordem da EDP
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
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
2u 2u 2u u u
A + B + C +D +E + Fu = G (1)
x 2
x y y 2
x y
- 282 -
Capítulo 8 EDPs
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
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.
- 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
t
(i − 1, n ) (i , n ) (i + 1, n )
x
(i , n − 1)
Figura 1 - Malha de diferenças finitas.
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
u u in − u in−1
= + O(x ) (Diferenças regressivas) (4)
x x
u u in+1 − u in−1
x
=
2x
+ 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.
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.
É ó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
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:
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;
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;
L( ) = f (7)
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
L(ˆ ) −
f Wi d , i = 1,...ne
e
e
i
= 1 + 2 x
j
i j
xi L
xj
Figura 2 - Elemento linear 1D.
= α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
T
Ti = 120ºC
Tj = 90ºC
xi = 1.5 cm x j = 6.0 cm
- 288 -
Capítulo 8 EDPs
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 .
- 289 -
Capítulo 8 EDPs
= α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
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
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
ˆ
=
1
(bi i + b j j + bk k ) e ˆ = 1 (ci i + c j j + ck k )
x 2 A y 2 A
- 291 -
Capítulo 8 EDPs
Pj = 34 Ncm -2 e Pk = 46 Ncm -2 .
P=
1
19
(19 − 4.5 x − 2 y )Pi + (5 x − 2 y )Pj + (− 0.5 x + 4 y )Pk
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
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
- 292 -
Capítulo 8 EDPs
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
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 = −
2π
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
nt .
- 293 -
Capítulo 8 EDPs
Considerando agora que cada harmónico verifica a equação de origem (10), vem:
seja,
iwm lx
al e
k
km = 0 (11)
l,k
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 lx
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
(
T jn +1 − T jn − r T jn−1 − 2T jn + T jn+1 = 0 )
- 294 -
Capítulo 8 EDPs
(
ξ 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)
t 1
r=σ (13)
(x ) 2
2
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.
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 )
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
U nj = Am e iw m jΔΔ
V = Bm e iw
j
n m jΔΔ
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
- 296 -
Capítulo 8 EDPs
1 iβ m
Gm =
iβ m 1-β m2
( )
λ 2 − λ 2 − β m2 + 1 = 0
donde,
2 − β m2 β m β m2 − 4
λ1,2 =
2
ct
1
2x
2u 2u 2u u u
A + B + C +D +E + Fu = G
x 2
x y y 2
x y
- 297 -
Capítulo 8 EDPs
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:
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
(
H in+1 = H in + cc* H i-n1 − 2 H in + H i+n 1 ) (15)
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
2c
t n+1
tn
xi −1 xi xi +1
As formulações explícitas deste tipo têm, em geral, a grande limitação de exigirem valores
muito baixos para t .
2 H H in−+11 − H in +1 − H in + H in+1
=
x 2 (x )2
- 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
tn+1
tn
xi −1 xi xi +1
2 H H in−+11 − 2H in +1 + H in++11
=
x 2 (x )2
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,
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 .
- 300 -
Capítulo 8 EDPs
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
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
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 nt . 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 nt 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
r=
t
(U ) + (1 − ) (U )
n+1 n
(x ) 2 i i
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.
- 302 -
Capítulo 8 EDPs
U n+1 2 =
1 n
2
(
U + U n +1 ) e U n+3 2 =
2
(
1 n +1
U + U n+2 )
u u
+c =0 (19)
t x
dx
=uc (20)
dt
- 303 -
Capítulo 8 EDPs
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:
ξ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.
V V H 2τ
+V +g =− 0
t x x r
(22)
H H c V
2
+V + =0
t x g x
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
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.
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
)
Vi n +1 =
1
( AE + AD )
2
H in +1 =
c
( AE − AD )
2g
g n +1
V1n +1 = H 1 + AD1
c
H in +1 =
MAX
c
g
(AEi MAX
− Vi n +1
MAX
)
- 308 -
Capítulo 8 EDPs
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 .
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.
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).
- 309 -
Capítulo 8 EDPs
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
7 8 9
16 1 2 3 10
15 4 5 6 11
14 13 12
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 .
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 .
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:
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
Pretende-se: i) obter os valores de nos nós da malha; e, ii) traçar as linhas equipotenciais e
de corrente.
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
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 (b11 + b2 2 + b3 3 ) 1 e +
e
1
(c11 + 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 (b11 + b2 2 + b3 3 ) 2 e +
e
1
(c11 + 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 (b11 + b2 2 + b3 3 ) e + (c11 + 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
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
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
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
- 315 -
Capítulo 8 EDPs
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
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 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
- 316 -
Capítulo 8 EDPs
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
Condições de fronteira
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
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
ct
com cc = é incondicionalmente estável.
(x )2
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.
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+ 2h)
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).
c c 2c
+u = 2
t x x
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.
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
Jusante : u (L , t ) = 2 h (h - 0.46) ms
−1 1.5 −1
- 320 -
Referências bibliográficas
Referências bibliográficas
Chapra, S.C. & Canale, R.P. (2014) - Numerical Methods for Engineers. 7th Edition, McGraw
Hill.
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.
Lindfield, G.R. & Penny J.E.T. (2012) - Numerical Methods, Using MATLAB. 3rd Edition.
Elsevier.
- 321 -
Referências bibliográficas
- 322 -
Anexo Soluções
- 323 -
Anexo Soluções
Capítulo 2
- 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
- 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
- 326 -