Você está na página 1de 63

ANÁLISE DE ERROS

F. Wolfango Macedo

UTAD

Departamento de Matemática

Vila Real

1992
ÍNDICE ANÁLISE DE ERROS

Prefácio

Capítulo 1 INTRODUÇÃO

1. Tipos de Erros

2. O Processo de Medição

3. Aproximação de Valores Numéricos

4. Representação dos Números Reais

5. Bibliografia

6. Exercícios e Problemas

Capítulo 2 PROPAGAÇÃO DE ERROS

1. Erros nas Operações com Números Aproximados

2. Erros nas Operações-Máquina em Vírgula Flutuante

3. Bibliografia

4. Exercícios

Capítulo 3 ANÁLISE INTERVALAR DE ERROS

1. Intervalos

2. Operações Aritméticas Intervalares

3. Vectores e Matrizes Intervalares

4. Funções Intervalares

5. Aritmética Intervalar em Vírgula Flutuante

6. Aplicação da Aritmética Intervalar à Análise de Erros

7. Software para Análise Intervalar

8. Bibliografia

9. Exercícios e Problemas
Prefácio

O presente texto destina-se ao ensino da disciplina de Métodos Numéricos, que o


autor tem vindo a leccionar desde 1988 a alunos de Engenharia da UTAD. Essa
disciplina é de natureza introdutória, pelo que a abordagem das questões relativas
à Análise de Erros não poderá ser feita aí com grande extensão e profundidade.
Ainda assim a matéria incluída tem importância para os futuros Engenheiros, que
deverão apurar a sua sensibilidade para o rigor dos dados experimentais e dos
resultados numéricos dos algoritmos computacionais que utilizarão
quotidianamente na sua actividade profissional.

A familiaridade com as noções expostas nestes apontamentos é tanto mais


necessária quanto é certo que existe por vezes a tendência para aceitar como
fidedigno qualquer resultado numérico desde que proveniente da execução de um
algoritmo em computador digital. Esse tipo de resultados não dispensa, todavia,
uma análise numérica fundada nos conceitos elementares aqui expostos.

Antes do advento dos computadores digitais, os técnicos e cientistas podiam fazer


uma análise casuística dos erros que afectavam os resultados dos seus cálculos,
que envolviam então um número relativamente pequeno de operações, executadas
por vezes penosamente de modo manual ou com recurso, na melhor das hipóteses,
a calculadoras mecânicas ou eléctricas. Essa análise de errros envolvia os
seguintes aspectos: 1º) a determinação dos erros provenientes dos instrumentos e
dos métodos experimentais (geralmente simples) que afectam os dados de
observação e de medição; 2º) análise dos erros propagados ao longo da sequência
de cálculos necessários à obtenção dos resultados (sequências geralmente pouco
extensas); 3º) análise de erros provenientes da modelação matemática (geralmente
de tipo determinístico).

A recente revolução digital na instrumentação e na computação tornou


extremamente complexa a análise de erros dos dados, muitas vezes obtidos de
modo automático, com sofisticados instrumentos laboratoriais ou com sistemas de
controlo automático, com conversão A/D e transferência directa on-line para
ficheiros digitais, utilizados através de pacotes de programas de análise de dados,
executados muitas vezes em tempo real.

A análise de erros em tais circunstâncias torna-se extremamente complexa e


difícil: 1º) os instrumentos digitais são extremamente sofisticados, com
capacidade computacional própria, através de microprocessadores incorporados
que procedem a filtragem de erros e à digitalização dos dados; 2º) os algoritmos
computacionais são cada vez mais complexos, invocando as mais eficientes
rotinas da Álgebra Linear Numérica, que envolvem vectores e matrizes de elevada
dimensão e em grande número, executados com o recurso a processadores
vectoriais e a técnicas de processamento paralelo ou distribuído; 3º) a modelação
matemática tornou-se mais complexa, devido não só à dimensão e estrutura dos
modelos, mas também à sua natureza. Os modelos estocásticos, cada vez mais
utilizados, envolvem computação estatística e gráfica, que acrescenta à análise de
erros numéricos dos modelos determinísticos a dificuldade suplementar da
análise de dados estatísticos.
Uma análise de erros exaustiva, abrangendo todas as fases e processos acima
enumerados, desde a aquisição dos dados até à interpretação dos resultados, é
tarefa que não tentaremos aqui, visto que muitos desses aspectos serão melhor
abordados dentro das várias disciplinas mais especializadas que contribuem para a
formação actual dos Engenheiros: Instrumentação, Técnicas Laboratoriais,
Sistemas Digitais, Técnicas de Controlo Automático, Controlo Estatístico da
Qualidade, etc.

Limitamo-nos aqui tão somente a uma análise de erros dos algoritmos numéricos
básicos. Referimos de passagem, no capítulo 1, a análise de erros instrumentais, a
calibração de instrumentos e métodos experimentais, apenas mencionando a
análise estatística e a compensação dos erros de observação, melhor tratada dentro
das disciplinas específicas que recorrem a esse tipo de análise. Dedicamos alguma
atenção, no capítulo 2, aos erros das operações elementares e à propagação de
erros de arredondamento nas operações máquina em vírgula flutuante e em
algoritmos numéricos fundamentais. No capítulo 3 apresentamos uma introdução
à análise intervalar de erros, cujo desenvolvimento futuro aliviará o utilizador de
programas computacionais da tarefa enfadonha e por vezes impossível de uma
análise de erros provenientes das inúmeras operações executadas através desses
programas, cada vez mais sofisticados e que tendem a funcionar como uma
caixa-negra para a maioria dos utilizadores ocasionais. Pensamos que os
produtores de software científico tentarão, cada vez mais, incluir métodos de
avaliação do rigor numérico dos resultados dos algoritmos que incluem nos seus
programas, constituindo a análise intervalar de erros um método previlegiado para
essa avaliação. Mas tal resultado só será conseguido se os utilizadores desse
software, isto é, os Engenheiros e Investigadores, estiverem cientes da
necessidade dessa avaliação. É com o objectivo de ajudar a tornar consciente e
permanente essa necessidade que se publica este trabalho didáctico.

Devo aqui, finalmente, agradecer ao Prof. Doutor Fernandes de Carvalho a


revisão do texto original e as sugestões apresentadas e ao aluno de Engenharia
Agrícola da UTAD, Fernando W. Macedo, a preciosa ajuda no processamento e
apresentação gráfica do texto ao longo de inúmeras revisões, sem a qual este
trabalho não teria sido publicado. O nosso agradecimento também para todos os
funcionários da UTAD que, de um modo ou de outro, participaram na edição
deste texto.

UTAD, 25 de Abril de 1992.


Capítulo 1 INTRODUÇÃO 1-1

1. Tipos de Erros 1-1

Erros Grosseiros 1-2


Erros Sistemáticos 1-2
Erros Aleatórios 1-3

2. O Processo de Medição 1-4

2.1. Propagação de Erros Aleatórios 1-6

2.2. Erros Sistemáticos 1-6

3. Aproximação de Valores Numéricos 1-7

3.1. Erro Verdadeiro. Erro Absoluto. Erro Absoluto Máximo 1-7

Escalares 1-7
Vectores 1-8

3.2. Erro Relativo 1-9

Escalares 1-9
Vectores 1-10

4. Representação dos Números Reais 1-11

4.1. Representação Decimal de um Número Real 1-11

Algarismos significativos 1-12


Arredondamento de Números Reais 1-12

4.2. Representação em Vírgula Fixa 1-13

4.3. Representação em Vírgula Flutuante 1-13

Operações-Máquina em Vírgula Flutuante 1-18


“Overflow” e “Underflow” 1-19

5. Bibliografia 1-20

6. Exercícios e Problemas 1-21


http://www.utad.pt/~wmacedo

Capítulo 1 INTRODUÇÃO

4. Representação dos Números Reais


4.1. Representação Decimal de um Número Real

A expressão decimal de um número real a é:

a = α m × 10 m + α m − 1 × 10 m − 1 +…+ α m − n +1 × 10 m − n + 1 +… , (20)

em que

α i = algarismo ∈ {0, 1, …, 9} ; i = 1, …, n

m = maior expoente de 10; n = número de algarismos significativos.

? Exemplo 10.

31567
. = 3 × 101 + 1× 100 + 5 × 10−1 + 6 × 10−2 + 7 × 10−3

= (3 + 1× 10−1 + 5 × 10−2 + 6 × 10−3 + 7 × 10−4 ) × 101

= 31567
. × (101 )

= 31567
. E1 ; ( n = 5algarismos significativos)

0.00745 = 7 × 10−3 + 4 × 10−4 + 5 × 10−5

= ( 7 + 4 × 10−1 + 5 × 10−2 ) × 10−3

. × 10−3
= 745

= 745
. E−3 ; (n = 3algarismos significativos).

A expressão decimal de um número inteiro n é

n = ± ( α m α m − 1 K α 0 )10

= ( α m × 10 m + α m − 1 × 10 m − 1 + K + α 0 ) . (21)

Se x é um número real positivo, a sua parte inteira, simbolizada por I (x), é o


maior inteiro não superior a x, enquanto que a sua parte decimal é

D( x ) = x − I( x ) . (22)

A parte decimal pode escrever-se na forma



D (x) = ∑β
k =1
k ⋅ 10 − k , (23)

em que β k são dígitos. Quando β k = 0 para k > k0, dizemos que a dízima D (x) é

4. Representação dos Números Reais I-1


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

finita. Caso contrário a dízima é infinita, periódica ou não. Como sabemos, os


números racionais podem exprimir-se exactamente por dízimas finitas ou por
dízimas infinitas periódicas, enquanto que os números irracionais apenas se
podem exprimir exactamente por dízimas infinitas não periódicas.

? Exemplo 11.

ΠSendo x = + 253
. tem-se:

I (x ) = 2 ; D (x ) = 053
.

2 3 = 066
. … = 0. ( 6), dízima periódica

2 4 = 05
. , dízima finita

2 = 141
. … , dízima infinita não periódica

Algarismos significativos

Todos os algarismos da expressão decimal de um número real serão considerados


significativos, excepto os zeros iniciais, que apenas fixam a posição da vírgula. Os
zeros finais ou intermédios são significativos. Diremos que os primeiros n
algarismos significativos de um número são correctos quando o erro absoluto
máximo desse número não exceder meia unidade da casa decimal do último
desses algarismos. Se

1
| ∆a| = máx | a − a| = ⋅ 10 m − n + 1 , (24)
2

então os primeiros n algarismos significativos do número a são correctos.

? Exemplo 12.

1
a = 3225
. ; a = 32.3 ; | ∆a| = | a − a | = 005
. ≤ × ( 01
.)
2

O valor aproximado a tem os algarismos significativos correctos até ao das décimas (inclusivé),
i.e., 3 algarismos significativos correctos.

1
b = 0.999 ; b = 1000
. ; | ∆b| = | b − b | = 0001
. ≤ ⋅ 0.01
2

O valor aproximado b tem os algarismos significativos correctos até ao das centésimas (inclusivé),
i.e., 3 algarismos significativos correctos.

I-2 Capítulo I INTRODUÇÃO


http://www.utad.pt/~wmacedo

Arredondamento de Números Reais

Consideremos a representação decimal de um número real a. É muitas vezes


necessário arredondá-lo, i.e., substituí-lo por um número a próximo de a, com um
número pré-fixado de algarismos significativos. A regra de arredondamento é a
que se apresenta através dos exemplos 13.

? Exemplo 13.

Número Número arredondado com 5 algarismos significativos


23.4321 23.432
6100.23 6100.2
5000000 5.0000E 6
23.43252 23.432
23.43250 regra da paridade 23.432
23.43350 regra da paridade 23.432

Se um número exacto é arredondado segundo a regra de arredondamento ilustrada


no exemplo 13, retendo-se n algarismos significativos, todos eles são correctos, e
o seu erro absoluto máximo não excede 1 2 unidade da última casa decimal retida.

As calculadoras electrónicas de algibeira fazem o arredondamento (ou truncatura)


dos resultados, em conformidade com a capacidade máxima do seu registo visual
ou através da instrução FIX n em que n indica o número de algarismos a reter.
Convém verificar se a calculadora faz arredondamentos ou truncaturas.

A precisão de um número aproximado não depende do número dos seus


algarismos significativos, mas antes do número dos seus algarismos significativos
correctos. Quando um resultado contém algarismos significativos incorrectos
procede-se ao seu arredondamento, retendo-se apenas algarismos significativos
correctos, ou, relaxando-se um pouco esta exigência, adoptar-se-á a seguinte
regra prática: Os resultados intermédios não devem conter mais do que 1 ou 2
algarismos significativos incorrectos.

4.2. Representação em Vírgula Fixa

Na representação em vírgula fixa estabelece-se um número fixo de dígitos antes


da vírgula, seja l1, e um número fixo de dígitos depois da vírgula, seja l2, sendo o
número de dígitos (decimais, binários, hexadecimais, etc.) da representação
l = l1 + l2.

? Exemplo 14. Com l1 = 3, l2 = 5, tem-se:

24.567 → 024 ⋅ 56700 ; 00324


. → 000 ⋅ 03240

4.3. Representação em Vírgula Flutuante

Um número x ∈ ℜ pode exprimir-se na forma x = ± m × b e , em que:

4. Representação dos Números Reais I-3


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

Œ m = mantissa, um número tal que b −1 ≤ m ≤ b 0 . Quando b = 10, tem-se que


. ≤ m ≤ 1 e quando b = 2, tem-se que 05
01 . ≤ m ≤ 1 . A mantissa m tem pois a
expressão m = (0 ⋅ d1 d 2 K d p ) b , com d1 ≠ 0. Uma mantissa m que satisfaz esta
condição diz-se normalizada. O número de dígitos da mantissa é geralmente
pré-fixado.
• e = expoente, número inteiro relativo, e ∈ Z.

Quando a base b está subentendida, podemos usar a expressão equivalente


x = ± m E b , em que o símbolo E separa a mantissa do expoente. A notação
x = ± m E b em que m é uma mantissa normalizada é a notação científica
normalizada do número x.

Exemplo 15.

Notação Decimal (base = b = 10) Notação Científica Normalizada (p = 4) Expoente Decimal

0.002450 .2450E -2 -2

-6543 - .6543E 4 4

Notação Binária (base = b = 2) Notação Científica Normalizada (p = 6) Expoente Binário

10.0111 .100111E (10)2 (10)2

1001.11 .100111E (100)2 (100)2

Em notação científica normalizada, como o exemplo 15 mostra, a mantissa não


possui dígitos à esquerda da vírgula (ponto), ocupando esta a posição extrema
esquerda da mantissa, i.e., a notação científica normalizada tem a forma
± ( ⋅ d1 d 2 K d p )b E ± e , com d1 ≠ 0. Na passagem da notação científica
normalizada para notação usual, a posição da vírgula é fixada pelo expoente e.

? Exemplo 16.

− ( .34567)10 E 3 = − 34567
. ; (.10111)2 E (100) 2 = 10111
.

− ( .34567)10 E 1 = − 34567
. ; (.10111)2 E (10) 2 = 10111
.

Os dois exemplos anteriores mostram qual o papel do expoente e na fixação da


posição da vírgula (ponto). Em notação científica normalizada a vírgula (ponto)
ocupa sempre a posição mais à esquerda na mantissa, e o expoente serve para
fazer deslocar (flutuar) a vírgula (ponto). Por este motivo a notação científica
normalizada também se designa por notação em vírgula flutuante. A notação em
vírgula flutuante economiza dígitos quando queremos representar números muito
grandes ou muito pequenos.

? Exemplo 17.

0.00000023 → .23E − 6 ( três dígitos ) ; 23000000 → .23E 8 ( três dígitos )

Pelo facto de a notação em vírgula flutuante ser muito económica em dígitos ela é

I-4 Capítulo I INTRODUÇÃO


http://www.utad.pt/~wmacedo

usada para registo de números nas memórias dos computadores. Na figura 2


mostra-se a estrutura física desse registo, cujo comprimento é finito.

Figura 1.2: Registo de um número em vírgula


flutuante na memória de um computador.

O número total de dígitos do registo (l), o número de dígitos do expoente (g) e o


número de dígitos da mantissa (p) variam com o computador, assim como a base
b utilizada. Na maior parte dos computadores utiliza-se a base b = 2 (notação
binária), embora em certos computadores se use a base b = 16 (notação
hexadecimal) e na maior parte das calculadoras de bolso se use a base b = 10
(notação decimal). O expoente e tem valores situados num intervalo fixo
-ei < e < es, variando os limites ei, es com o computador, sendo geralmente
es = ei.

O quadro abaixo indica a estrutura dos registos em vírgula flutuante em alguns


dos computadores científicos mais utilizados.

Computador b p es = ei

IBM 360/370 16 6 26

DEC 11/780 VAX 2 24 27

CDC 6000/CYBER 2 48 210

Certas linguagens de programação permitem estabelecer o número de dígitos dos


registos numéricos, definidos com precisão simples ou dupla. O registo com
precisão dupla ocupa o dobro do espaço de memória e mais do dobro do tempo de
cálculo, relativamente à precisão simples. É sempre possível, através da
programação, constituir registos com o número de dígitos desejados, consoante a
precisão dos cálculos o exige.

Há números reais cuja representação decimal exacta exige uma infinidade de


dígitos, por exemplo o número racional 2/3 = 0.66 (6), cuja representação exacta é
uma dízima infinita periódica. A representação de tais números em vírgula
flutuante, para registo em memórias de computadores, com um número fixo e
portanto limitado de dígitos para escrita da mantissa e do expoente, exige que se
proceda a aproximações, com redução do número de dígitos da mantissa. Essas
aproximações são de dois tipos, arredondamento ou truncatura.

Denotando por v f(x) a representação de um número x ∈ ℜ em vírgula flutuante,


diremos que v f(x) se obteve de x por arredontamento quando v f(x) é o número
em notação científica mais próximo de x, por defeito ou por excesso. Diremos que
v f(x) se obteve de x por truncatura quando v f(x) é o número em notação científica
normalizada mais próximo de x, mas situado entre zero e x.

4. Representação dos Números Reais I-5


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

? Exemplo 18.

Œ Representemos x = 2/3 = 0.666… em notação científica normalizada, com p = 2, b = 10.

Arredondamento: v f (x ) = ( ⋅ 67)E 0

Truncatura: v f ( x ) = ( ⋅ 66 )E 0

• Representemos y = - 6387 em notação científica normalizada, com p = 3, b = 10.

Arredondamento: v f ( y ) = − ( ⋅ 639)E 4

Truncatura: v f ( y ) = − ( ⋅ 638)E 4

sendo portanto 10− ei −1


≤ | x| < 10es .

De um modo geral, seja x = ± m ⋅ 10 e um número em notação científica


. ≤ m < 1, i.e., em que a mantissa tem a expressão decimal
normalizada, em que 01

m = ⋅ d1 d 2 … d i d i + 1 … ; 0 ≤ d i ≤ 9 ; d 1 ≥ 1 , (25)

O arredondamento da mantissa m para p dígitos faz-se do seguinte modo,


produzindo-se uma mantissa arredondada m′:

⋅ d1 d 2 … d p , se 0 ≤ d p + 1 ≤ 4
m′ =  −p
(26)
⋅ d1 d 2 … d p + 10 , se d p + 1 ≥ 5

A regra de arredondamento da mantissa m é pois: acrescenta-se 1 ao dígito d p se


d p + 1 ≥ 5 ou suprimem-se todos os dígitos d p + 1 , …, subsequentes ao dígito d p ,
quando este estiver entre 0 e 4, inclusivé. Após o arredondamento da mantissa m
para p dígitos podemos escrever:

v f ( x ) = ± m′ ×10 e . (27)

Atendendo à regra de arredondamento (26), o erro relativo de arredondamento do


número x é aproximadamente

v f ( x ) − x
 m′ − m
=  = 5 × 10 − ( p+1)
 ≤ 5 × 10 − p , (28)
 x   m   m 

. < m < 1. Podemos escrever portanto que x − x δx ≤ v f ( x ) ≤ x + x δx,


visto que 01
ou simbolicamente:

v f ( x ) = x (1 ± δ x ) (29)

Fazendo ε = 5 × 10 − p , e atendendo a que δx ≤ ε , podemos escrever,


simbolicamente:

v f ( x ) = x (1 ± ε ) . (30)

I-6 Capítulo I INTRODUÇÃO


http://www.utad.pt/~wmacedo

A quantidade ε designa-se por precisão-máquina ou unidade de arredondamento


e representa o erro relativo máximo num arredondamento.

De modo análogo, num sistema de numeração binária, a notação científica


normalizada de um número x = ± m × 2 e stisfaz a condição 2 −1 < m < 1.

A mantissa escreve-se:

m = ⋅ d1 d 2 … d i d i + 1 … ; d i = 0 ou 1 ; d1 = 1 . (31)

O arredondamento da mantissa m para p bits faz-se do seguinte modo,


produzindo-se a mantissa arredondada m′:

⋅ d1 d 2 … d p , se d p + 1 = 0
m′ =  −p
(32)
⋅ d1 d 2 … d p + 2 , se d p + 1 = 1

O erro absoluto máximo no arredondamento da mantissa é δ = 2-p-1 e o erro


relativo máximo é ε = 2-p. Mantem-se válida a igualdade (30) acima, com ε = 2 − p .

Na truncatura de uma mantissa para p dígitos binários (bits) suprimem-se


simplesmente todos os bits subsequentes ao bit dp, i.e., conservam-se apenas os
primeiros p bits. O erro relativo de truncatura de uma mantissa para p dígitos
decimais é δx ≤ 10 − p + 1 e para p bits é δx ≤ 2 − p + 1 .

A sucessão de erros de arredondamento (truncatura) introduzidos ao longo da


execução de um algoritmo é imprevisível. A sua análise é impraticável no caso de
milhares ou mesmo milhões de operações aritméticas executadas usualmente por
um computador com operandos sujeitos a arredondamentos (truncaturas). Esses
erros afectam, por vezes de um modo significativo, o resultado final de um
algoritmo.

A representação de um número real x em vírgula flutuante v f ( x ) = ± m′ E e , com


as limitações

b −1 < m′ < b ; ei ≤ e ≤ es , (33)

obriga a arredondamentos (truncaturas), exigidos pela finitude dos registos


numéricos disponíveis. O número real x é assim aproximado por um número
racional v f ( x ) , com um número finito de dígitos. O conjunto dos números
racionais que se podem escrever com um número finito n de dígitos/bits é um
subconjunto pouco denso do conjunto Q dos números racionais.

? Exemplo 19. Calculemos a densidade dos números racionais do intervalo [2e, 2e+1], com
amplitude 2e que se podem escrever com uma mantissa de p = 24 bits. Com 24 bits podem-se
escrever 224 mantissas distintas. A densidade pretendida é pois 224/2e. Em particular, quando
e = 22, a densidade no intervalo [222, 223] dos racionais com mantissas de 24 bits é apenas de 4,
enquanto a densidade dos racionais com mantissas de 32 bits, nesse mesmo intervalo, é de
210 = 512.

4. Representação dos Números Reais I-7


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

Operações-Máquina em Vírgula Flutuante

Sejam x, y dois números reais e v f ( x ) , v f ( y ) as suas representações-máquina em


vírgula flutuante. Denotemos por • ω • uma qualquer operação aritmética
efectuada com os operandos x, y ∈ℜ e por • ω • a correspondente
operação-máquina efectuada como os operandos v f ( x ) , v f ( y ) .

A operação-máquina • ω • é definida de tal maneira que, sendo z = x • ω • y, se


tem v f ( x ) • ω • v f ( y ) = v f ( z ) , i.e., a operação-máquina com os operandos
v f ( x ) , v f ( y ) produz a representação em vírgula flutuante do resultado z da
operação ordinária. A operação-máquina pode considerar-se como uma operação
ordinária efectuada sobre operandos v f ( x ) , v f ( y ) , ligeiramente alterados por
arredondamentos (truncaturas) e afectados por erros εx, εy provenientes desses
arredondamentos (truncaturas), erros que dependem do computador utilizado,
como vimos atrás. Os mesmos tipos de erro afectam os operandos quando as
operações são efectuadas por qualquer outro meio, incluindo o manual.

Doravante suporemos os operandos das operações-máquina afectados de erros de


arredondamento.

Faremos, no exemplo seguinte, uma análise dos erros de arredondamento numa


multiplicação-máquina de dois factores.

? Exemplo 20. Regra da multiplicação: multiplicam-se as mantissas e adicionam-se os expoentes.


Se a mantissa produzida não está normalizada, normaliza-se corrigindo o expoente. Arredonda-se
finalmente a mantissa do produto para p bits.

Operandos: x = ± mx × 2ex y = ± my × 2 y
e
;

e + ey
Operação: x × y = ± mx ⋅ m y × 2 x ; 2−1 < mx ⋅ m y < 20

A normalização de mx ⋅ m y obriga, se tal for necessário, à translação da vírgula uma posição para a
esquerda. A mantissa arredondada passará a ser

mx ⋅ m y + ∆ xy ou mx ⋅ m y + 2 ∆ xy ,

em que ∆ xy ≤ ∆ = 2− p − 1 (erro absoluto máximo num arredondamento de mantissa).

O resultado da operação-máquina será pois

( mx ⋅ m y + ∆ xy ) × 2e x + ey ; se mx ⋅ m y ≥ 2−1

v f (x ) ⋅ * ⋅ v ( f ( x ) = 
 e x + ey
( mx ⋅ m y + 2 ∆ xy ) × 2 ; se 2−2 ≤ mx ⋅ m y ≥ 2−1

 ∆ xy
1 + , se mx m y ≥ 2−1
e + ey  mx m y
= mx ⋅ m y × 2 x ⋅
1 + 2 ∆ xy
, se 2−2 < mx m y < 2−1
 mx m y

= x ⋅ y (1 ± ε m ) ,

I-8 Capítulo I INTRODUÇÃO


http://www.utad.pt/~wmacedo

onde ε m ≤ 2 ∆ xy ≤ 2− p = ε.

Concluimos assim que o produto-máquina é o produto exacto multiplicado pelo factor (1 ± ε m ) em


que ε m ≤ ε . O erro relativo εm do produto-máquina não excede o erro relativo máximo ε de um
arredondamento ou, dito de outro modo, o erro relativo introduzido por uma operação-máquina
equivale ao erro relativo de um arredondamento.

Conclusões análogas à do exemplo anterior se obteriam para as restantes


operações aritméticas (Ralston e Rabinowitz, 1978).

Em análise de erros devemos portanto ter em conta a propagação dos erros nos
dados iniciais e a propagação dos erros de arredondamento nas
operações-máquina.

“Overflow” e “Underflow”

Qualquer operação-máquina aritmética pode produzir “overflow”. Tal acontece


quando o resultado da operação excede a capacidade de registo da memória em
vírgula flutuante, i.e., quando o resultado da operação for um número x tal que
| x| ≥ M ⋅ b es em que M = 1 − b − p é a maior mantissa admissível com p dígitos
(bits), i.e., uma mantissa com todos os dígitos decimais iguais a 9 ou todos os bits
iguais a 1. O “overflow” resulta frequentemente da tentativa de uma operação
inadmissível, por exemplo uma divisão por zero.

? Exemplo 21. No caso de um minicomputador VAX 780 tem-se e s = 27 , p = 24, pelo que haverá
“overflow” sempre que o resultado de uma operação exceda (1 − 2−24 ) ⋅ 227 ≈ 2128 . Assim, ao tentar
multiplicar os números x = 270 e y = 280 haverá “overflow”.

Situações de “overflow” podem por vezes ser remediadas alterando o algoritmo


computacional, como o seguinte exemplo ilustra.

? Exemplo 22.

Œ Média de dois números positivos. Pode acontecer que algum dos números x e y seja demasiado
grande para ser representável em vírgula flutuante, mas que a sua média ( x + y ) / 2 seja
representável. O cálculo da média poderá então fazer-se pelo algoritmo x − (x − y ) / 2.
n
• Soma de quadrados. Sendo x ↔ ℜ n , a soma de quadrados S = ∑ x i2 poderá causar “overflow”.
1

Em certos casos essa situação poderá ser remediada, calculando-se aquela soma do seguinte
modo:
2
n x 
µ = máx | xi | ; S =µ2⋅  i  .
i 1  µ 

Haverá “underflow” quando o resultado de uma operação é um número x tal que


| x | < b − ei − 1 . Quando há “underflow” o computador substitui geralmente o
resultado por zero ou por símbolo especial.

? Exemplo 23. No caso de um minicomputador VAX 780 tem-se ei = 27, pelo que o menor valor

4. Representação dos Números Reais I-9


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

1 −50 1
absoluto que este computador pode registar é 2-129. Assim, ao tentar dividir ⋅ 2 por ⋅ 280
2 2
haverá “underflow”.

5. Bibliografia
Conte, S.D.; deBoor, C. (1980) 3rd ed. • Elementary Numerical Analysis: An
Algorithm Approach • McGraw-Hill, ISE, N. York

Henrici, P. (1964) • Elements of Numerical Analysis • John Wiley, N. York

Ralston, A.; Rabinowitz, P. (1978) 2nd ed. • A First Course in Numerical


Analysis • McGraw-Hill, ISE, N. York

Ziv, A. (1982) • Relative Distance: an Error Measure in Roundoff Error


Analysis • Mths. Comp., 32, pgs 563-569

6. Exercícios e Problemas

1*. Elabore um algoritmo para passagem da notação (0. a1 a2 … an ) × A e para a 1

notação (0. b1 … bm ) × B e2 .

2. Um computador usa notação científica normalizada na forma


(0. d1 d 2 d 3 d 4 ) × 10 e , com 4 algarismos decimais na mantissa. Sendo

a = 03216
. × 10 3 , b = 03156
. × 10 −2 , c = 0.4567 × 101 ,

efectue as operações

a ab
a+ b+ c , a− b− c , , ,
c c

procedendo aos arredondamentos necessários.

3. Adicione os números abaixo com quatro dígitos significativos, de dois modos:

a) pela ordem em que estão escritos;

b) pela ordem inversa. Proceda a arredondamentos após cada adição. Compare os


resultados.


0.6183 × 100; 0.2182 × 101; 0.7843 × 10 2 ; 0.3456 × 10 2 ; 0.3211 × 10 3; 0.6543 × 10 3; 0.2222 × 10 4

4. Sejam a, b, c números com representação decimal em vírgula fixa e com N


dígitos na parte decimal, sendo a > 0; b, c < 1. Defina-se um produto a*b do
seguinte modo: adicione-se 10 − N / 2 ao produto ordinário a ⋅ b (exacto);

I - 10 Capítulo I INTRODUÇÃO
http://www.utad.pt/~wmacedo

eliminam-se os dígitos da parte decimal de ordem N + 1 e subsequentes.

a) Estabeleça um limite superior do erro absoluto | ( a * b) * c − a ⋅ b ⋅ c | ;

b) De quantas unidades da N-ésima casa decimal podem diferir os “produtos”


( a * b) * c; a * ( b * c)?

5. Proceda a uma análise de erros de arredondamento nas operações-máquina em


vírgula flutuante, análoga à apresentada no exemplo 20, mas relativamente à
divisão e à adição.

6. Quais as vantagens da representação de números em vírgula flutuante sobre a


representação em vírgula fixa?

7*. Elabore um programa computacional para execução de operações aritméticas


em vírgula flutuante, com precisão de N dígitos na mantissa, sendo N um
parâmetro à escolha do utilizador.

8. Verifique que a expressão (19) não é uma distância, por não satisfazer a
desigualdade triangualar em ℜ 2 quando a norma utilizada é a norma L1 . Use os
vectores x = [1 , 0 ]′, y = [ 1 , 1 ]′, z = [ 0 , 1 ]′ nessa verificação.

9*. Elabore um programa que permita escrever um número, dado na forma


decimal, na notação científica normalizada, com d dígitos na mantissa, sendo d
um parâmetro à escolha do utilizador.

6. Exercícios e Problemas I - 11
PROPAGAÇÃO DE ERROS 2-1

2-1

1.1. Erro Absoluto da Soma Algébrica


1.2. Erro Relativo da Soma 2-3
2-4
1.4. Erro Relativo do Produto
Erro Relativo do Quociente 2-7
2-7
Erro Relativo da Potência
1.5. Fórmula Geral de Propagação de Erros 2-8
2-10

2. Erros nas Operações-Máquina em Vírgula Flutuante

2.1. Noção de Algoritmo 2-14


2-15
2.3. Propagação Conjunta de Erros Operatórios e nos Dados Iniciais
2.4. Análise de Erros de Arredondamento Atráves de Grafos 2-22
2-24
Análise de Erros no Algoritmo de Choleski

3. Bibliografia 2-31

2-32
http://www.utad.pt/~wmacedo

Capítulo 2 PROPAGAÇÃO DE ERROS

2. Erros nas Operações-Máquina em Vírgula Flutuante


A representação dos números em vírgula flutuante produz erros de
arredondamento que se propagam ao longo das operações-máquina que permitem
executar um algoritmo. Faremos nesta secção uma análise da propagação desse
tipo de erros.

O erro relativo máximo das operações-máquina pode ser definido como o menor
número positivo ε em vírgula flutuante, aceitável pelo computador, tal que
v f (1 • + • ε ) > 1 .

As operações-máquina em vírgula flutuante são executadas por um computador de


1
modo que o erro relativo máximo seja sempre ε = b1 − p , sendo p o número de
2
dígitos da mantissa e b a base do sistema de numeração utilizado para
representação dos números em vírgula flutuante. Denotando por v f (• + • ) ,
v f (• − • ) , v f (• * • ) , v f (• / • ) os resultados das operações-máquina aritméticas
em vírgula flutuante, verificam-se as igualdades:

v f (x • + • y ) = (x + y ) ⋅ (1 ± ε 1 ) 


v f (x • − • y ) = (x − y ) ⋅ (1 ± ε 2 )


 εi ≤ ε ; i = 1, … , 4 (34)
v f (x • * • y ) = ( x * y ) ⋅ (1 ± ε 3 ) 


v f (x • / • y ) = ( x / y ) ⋅ (1 ± ε 4 ) 

As operações-máquina em vírgula flutuante não possuem exactamente as mesmas


propriedades que as operações teóricas homólogas. Por exemplo, enquanto
x + y = x ⇔ y = 0 , tem-se no entanto que

ε
v f (x • + • y) = x se | y| < ⋅ | x| , (35)
b

Por outro lado, a operação de adição-máquina em vírgula flutuante não é


associativa.

? Exemplo 9.

a) Sejam os seguintes números ( notação científica normalizada na base 10):

a = 0243215
. E−4 ; b = 0334755
. E2 ; c = − 0334654
. E2

Será então :

v f [a • + • ( b • + • c )] = v f [ 0243215
. E − 4 • + • 0101000
. E − 1]

2. Erros nas Operações-Máquina em Vírgula Flutuante II - 1


= 0101243
. E −1

v f [(a • + • b ) • + • c )] = v f [ 0334755
. E 2 • − • 0334654
. E 2]

= 0000101
. E 2 = 0101000
. E −1

Os dois resultados-máquina são diferentes, contrariamente à propriedade associativa da adição


em ℜ.

b) A não-associatividade da adição-máquina em vírgula flutuante, exemplificada na alínea


anterior, pode demonstrar-se. Sejam x, y, z números representáveis em vírgula flutuante.
Tem-se então:

v f [vf ( x + y ) + z ] = v f [(x + y )(1 + ε 1 ) + z ] = [( x + y )(1 + ε 1 ) + z ] (1 + ε 2 )

v f [ x + v f ( y + z )] = v f [ x + ( y + z )(1 + ε 3 )] = [x + ( y + z )(1 + ε 3 )] (1 + ε 4 ) ,

em que

1 1− p
εi ≤ ε = b ; i = 1, …, 4
2

Geralmente ε 1 , ε 2 , ε 3 , ε 4 , são diferentes e portanto

vf [vf ( x + y ) + z )] ≠ vf [ x + vf ( y + z )] , c. q. d.

O exemplo anterior mostra que dois algoritmos, algebricamente equivalentes, para


o cálculo de uma soma de três parcelas, produzem resultados diferentes em
consequência dos erros de arredondamento das operações-máquina efectuadas. A
propagação dos erros de arredondamento através de um algoritmo, executado por
um computador, pode induzir graves erros no resultado. Convém pois desenvolver
métodos de análise desse tipo de erros. Antes, porém, formalizaremos a noção de
algoritmo.

2.1. Noção de Algoritmo

Seja x (0) ∈ ℜ n um vector cujos componentes são os dados iniciais de um


problema, que consiste em determinar outro vector y ∈ ℜ m , cujos componentes
são os resultados finais pretendidos. Podemos considerar um algoritmo com uma
função ℑ:ℜ n → ℜ m , que transforma x (0) em y. Em cada operação elementar  (i)
do algoritmo, um conjunto de operandos (dados iniciais e/ou resultados de
operações anteriores ), constituindo o vector x (i) ∈ ℜ ni , é transformado num
conjunto de resultados intermédios, constituindo o vector x (i + 1) ∈ ℜ i + 1 :
n

( + 1)
= ℑ i) ( (i
)

Um algoritmo operações
elementares

ℑ = ℑ ( ) o … o ℑ 2) ℑ ( o ℑ (0) (37)

ℑ pode em certos casos resultar de


conjuntos diferentes de operações elementares, ou do mesmo conjunto de
ℑ pode ser obtida por

II - Capítulo II PROPAGAÇÃO DE ERROS


http://www.utad.pt/~wmacedo

diversos algoritmos.

Exemplo 10. Seja ℑ (a, b, c) = a + b + c. A função composta ℑ pode ser realizada por um dos
seguintes algoritmos:

1º Algoritmo:

 a + b  u
ℑ (0 ) (a , b, c ) =   =  v  ∈ℜ
2
; ℑ(0 ) : ℜ 3 → ℜ 2
 c   

ℑ (1) ( u, v ) = ( u + v ) ∈ℜ ; ℑ (1) : ℜ 2 → ℜ1

2º Algoritmo:

 a   u
ℑ (0 ) (a , b, c ) =   =   ∈ℜ
2
; ℑ (0 ) : ℜ 3 → ℜ 2
 b + c  v 

ℑ (1) ( u, v ) = ( u + v ) ∈ℜ ; ℑ (1) : ℜ 2 → ℜ1

? Exemplo 11. Seja y = a 2 − b 2 . Visto que a 2 − b 2 ≡ ( a + b ) ⋅ ( a − b ), o valor y pode ser calculado


através de um dos dois seguintes algoritmos.

1º Algoritmo:

 a 2   u
y1 = a ⋅ a ; ℑ ( 0 ) ( a, b ) =   =  
 b   v

 u   x
y2 = b ⋅ b ; ℑ (1) ( u, v ) =  2  =  
v   z

y = y1 − y 2 ; ℑ ( 2) ( x, z ) = ( x − z )

2º Algoritmo:

 a   u
y1 = a + b ; ℑ (0 )
( a, b ) =  b  =  v 
   
 a + b  w

 u − v  x 
y2 = a − b ; ℑ (1) (u, v, w ) =  = 
 w   z

y = y1 ⋅ y 2 ; ℑ ( 2 ) ( x, z ) = x ⋅ z

2.2. Erros de Arredondamento nas Operações-Máquina

Na execução de um algoritmo cada uma das operações-máquina em vírgula


flutuante introduz eventualmente um erro de arredondamento.

2. Erros nas Operações-Máquina em Vírgula Flutuante II - 3


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

Denotando por ℑ (ji) ( u) a componente j que resulta da operação elementar


ℑ (i) ( u) , em que u é um vector de operandos exactos da operação ℑ (i) , podemos
escrever simbolicamente a seguinte igualdade, análoga à igualdade simbólica
(I-29):

v f [ℑ (i)
j ( u)] = (1 ± ε j ) ⋅ ℑ (ji) ( u) ; εj ≤ε, j = 1, …, ni + 1 (38)

onde ε j é o erro relativo de arredondamento introduzido no cálculo da


componente j de ℑ (i) ( u) em vírgula flutuante. Escrevendo as igualdades (38) na
forma vectorial, obtemos

v f [ℑ (i) ( u)] = ( I ± E i + 1 ) ⋅ ℑ (i)


( u) (39)

em que

E i + 1 = diag ( ε 1 , …, ε ni + 1 ) ; 0<εj ≤ε (40)

Em (38) e (39) suposemos que o vector u dos operandos era exacto. Todavia, os
operandos de cada operação-máquina já estão afectados por erros dos dados
iniciais e por erros de arredondamento originados nas operações-máquina
precedentes. Sejam esses operandos x (i) . Tem-se então
(i + 1)
x = v f [ℑ (i) ( x (i) )] (41)

O erro absoluto de arredondamento introduzido por uma operação-máquina é


pois:

|vf (ℑ (i)
j ) |
( x (i) ) − ℑ (ji) ( x (i) ) ≈ E i + 1 ⋅ ℑ (ji) ( x | (i)
|
)

= Ei + 1 ⋅ x | (i + 1)
|=a i+1 (42)

O vector a i + 1 pode ser interpretado como o erro de arredondamento absoluto


originado na execução da operação ℑ (i) em vírgula flutuante e os elementos
diagonais ε j da matriz Ei + 1 são os erros relativos de arredondamento das
respectivas componentes.

2.3. Propagação Conjunta de Erros Operatórios e nos Dados Iniciais

Os erros dos dados iniciais propagam-se, afectando os operandos da operação ℑ (i) .


O erro que afecta cada um desses operandos obtem-se pela fórmula geral de
propagação dos erros (23). Sendo | ∆x (0) | o erro absoluto máximo que afecta o
vector de dados iniciais x (0) e denotando por | ∆x (i) | o erro absoluto máximo do
vector dos operandos x (i) , podemos escrever a fórmula vectorial que generaliza a
fórmula (23):

|∆x (i + 1)
| = J [ℑ (i)
(x (i)
]|
) ⋅ ∆x (i)
| ; i = 1, …, r (43)

em que J [• ] simboliza uma matriz jacobiana.

II - 4 Capítulo II PROPAGAÇÃO DE ERROS


http://www.utad.pt/~wmacedo

Adicionando aos erros (43), provenientes da propagação dos erros nos dados
iniciais, os erros (42) de arredondamento na operação-máquina i obtem-se a
fórmula iterativa:
(i + 1)
| ∆x | = a i + 1 + J [ℑ (i) ( x (i)
)] ⋅ | ∆x (i) |

= E i + 1 ⋅ x (i + 1) + J [ℑ (i) ( x (i)
)] ⋅ | ∆x (i) | (44)

A fórmula iterativa (44) produz uma sucessão cujo termo final é o erro que afecta
o resultado do algoritmo-máquina (Stoer e Burlisch, 1980):

 
| | + ∑ J [Ψ
r
| ∆y | ≈ ABS J [ℑ ( x )] ⋅ ∆x (0) ( i)
( x (i) )] ⋅ a i + a r + 1 
 i =1 

 r

≈ ABS J [( x )] ⋅ | ∆x (0) | +

∑ J [Ψ
i =1
(i)
( x (i) )] ⋅ Ei ⋅ x (i) + Er +1 ⋅ y , (45)

em que
0
J [ℑ( x )] = Π J [ℑ (i) ( x (i)
)] (46)
i= r

i
J [Ψ (i) ( x ( i)
)] = Π J [ℑ (k )
( x (k ) )] ; i = 0, …, r . (47)
k =r

As fórmulas (45)-(47) permitem calcular o erro absoluto máximo do resultado


final de qualquer algoritmo-máquina em vírgula flutuante, erro que inclui o efeito
da propagação nos erros dos dados iniciais e o efeito acumulado dos erros de
arredondamento de cada uma das operações-máquina que constituem o algoritmo.

? Exemplo 12.

Œ Para o algoritmo-máquina correspondente ao algoritmo 1 do exemplo 11, tem-se:

a) Dados iniciais e intermédios:

 a a 2  a 2 
x (0 )
=  ; x (1)
=  ; x (2)
=  2 ; x ( 3) = y = [ a 2 − b 2 ]
 b b b 

b) Operações elementares:

u 2  u
ℑ (0 ) (u , v ) =   ; ℑ (1) ( u, v ) =  2  ; ℑ (2) ( u, v ) = u − v
v v 

c) Matrizes jacobianas das operações elementares:

 2a 0
J [ℑ (0 ) ( x (0 )
)] =  
 0 1

2. Erros nas Operações-Máquina em Vírgula Flutuante II - 5


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

1 0 
J [ℑ (1) (x (1)
)] =  
 0 2b

J [ℑ (2) ( x ( 2)
)] = [ 1, − 1 ]

0
J [ℑ (x )] = ∏ J [ ℑ (i ) ( x (i )
)] = [ 2a, − 2b ]
i=2

J [Ψ (1)
(x (1)
)] = [ 1, − 2b ]

J [Ψ ( 2)
(x ( 2)
)] = [ 1, − 1 ]

d) Erros absolutos de arredondamento nas operações-máquina:

 ε 0  a 2   ε a 2 
a1 = E1 ⋅ x (1)
= 1 ⋅  =  1 
 0 0  b   0 

 0 0  a 2   0 
a 2 = E2 ⋅ x ( 2)
= ⋅ 2 =  2
 0 ε 2  b   ε 2 b 

a 3 = ε 3 (a 2 − b 2 ) ; | ε i | ≤ ε , i = 1, 2, 3

e) Erros absolutos máximos dos dados iniciais:

 | ∆a |
| ∆x (0 )
|=  
 | ∆b |

f) Erro absoluto máximo do resultado: Substituindo as expressões acima na igualdade (45)


obtem-se o erro absoluto máximo de y = a 2 − b 2 , calculado pelo algoritmo-máquina 1:

  | ∆a |   ε 1a 2   0  
| ∆y| ≈ ABS [ 2a, − 2b]⋅   + [1, − 2b ] ⋅   + [1, − 1] ⋅  2
+ ε 3 (a 2 − b 2 )
  | ∆a |  0  ε 2 b  

{
≈ ABS 2a | ∆a| − 2b | ∆b| + ε 1a 2 − ε 2 b 2 + ε 3 ( a 2 − b 2 ) }
O erro absoluto máximo | ∆yinclui
| os erros produzidos na propagação dos erros nos dados
iniciais e os erros provenientes de arredondamentos nas operações-máquina em vírgula
flutuante.

• Para o algoritmo-máquina correspondente ao algoritmo 2 do exemplo 11, tem-se:

a) Dados iniciais e intermédios:

 a 
 a
x (0 )
=  ; x (1)
= b 
 b  
 a − b

 a + b
x (2)
=  ; x (3) = y = ( a + b ) ⋅ ( a − b )
 a − b

b) Operações elementares:

II - 6 Capítulo II PROPAGAÇÃO DE ERROS


http://www.utad.pt/~wmacedo

 u 
 u + v
ℑ ( 0 ) ( u, v ) =  v  ; ℑ (1) ( u, v, w ) =   ; ℑ (2) ( u, v ) = u ⋅ v
   w 
 u − v

c) Matrizes jacobianas das operações elementares:

1 0 
J [ℑ (0 )
(x (0 )
)] =  0 1 
 
 1 −1

 1 1 0
J [ℑ (1) (x (1)
)] =  
 0 0 1

J [ℑ (2) ( x ( 2)
)] = [ a − b, a + b ]

0
J [ℑ (x )] = Π J [ ℑ (i ) (x (i )
)] = [ 2a, − 2b ]
i =1

 1 1 0
J [Ψ (1)
(x (1)
)] = [ b, a ] ⋅   = [ a − b, a − b, a + b ]
 0 0 1

J [Ψ ( 2)
(x ( 2)
)] = J [ ℑ ( 2) ( x ( 2)
)] = [ a − b, a + b ]

d) Erros absolutos de arredondamento nas operações-máquina:

 0 
a1 = E1 ⋅ x (1)
= diag [ 0, 0, ε 2 ] ⋅ x (1) 
= 0 

 ε 2 ( a − b )

ε 0  a + b  ε 1 ( a + b )
a 2 = E2 ⋅ x ( 2)
= 1 ⋅ =
0 0  a − b  0 

a 3 = E3 ⋅ x ( 3)
= ε 3 (a + b ) ( a − b )

e) Erros absolutos máximos dos dados iniciais:

 ∆a 
| ∆x (0 )
|=  
 ∆b 

f) Erro absoluto máximo do resultado: Substituindo as expressões acima na igualdade (45)


obtem-se o erro absoluto máximo de y = ( a + b ) (a − b ) , calculado pelo algoritmo-máquina 2:

  0 
  ∆a   +
| ∆y| ≈ ABS [ 2a, − 2b] ⋅   + [ a − b, a − b, a + b] ⋅  0 
  ∆
  b 
 
 ε 2 ( a − b)

 ε 1 (a + b ) 
  
+ [ a − b, a + b] ⋅ 0 + + −
ε 3 ( a b ) (a b ) 
 
 0  

≈ ABS {2a| ∆a| − 2b| ∆b| + (a + b ) ( a − b ) ⋅ ( ε 1 + ε 2 + ε 3 )}

2. Erros nas Operações-Máquina em Vírgula Flutuante II - 7


O erro absoluto máximo | ∆y|inclui os erros produzidos na propagação dos erros nos dados
iniciais e dos erros provenientes de arredondamentos nas operações-máquina em vírgula
flutuante.

Do exemplo anterior podemos retirar as seguintes conclusões:

Œ Os erros nos dados iniciais | ∆x (0) | propagam-se nos dois algoritmos de igual
modo e a sua contribuição para o erro final é 2a ⋅ | ∆a| − 2b ⋅ | ∆b| ; este erro é
igual ao produto J [ℑ ( x )] ⋅ | ∆x (0) | . A matriz jacobiana J [ℑ ( x )] não depende
do modo como se haja feito a decomposição da função ℑ ( x ) em operações
(funções) elementares, i.e., é independente dos algoritmos que a realizam. Daí
que aquele produto não dependa do algoritmo escolhido, mas da própria
função ℑ ( x ) que se pretende calcular. Para certas funções o vector
J [ℑ ( x )] ⋅ | ∆x (0) | poderá ter elementos muito grandes em valor absoluto.
Diremos então que o problema de cálculo numérico de ℑ ( x ) é um problema
mal conformado ;
• Os erros de arredondamento provenientes da execução das operações-máquina
em vírgula flutuante, acumulados ao longo de um algoritmo, são dados pela
expressão
r

∑ J [Ψ
i =1
(i)
(x (i)
)] a i + a r + 1 . (48)

A expressão (48) indica que a contribuição do erro absoluto de


arredondamento a i , cometido na execução da operação-máquina ℑ (i − 1) ,
depende de todas as operações subsequentes, visto que

[ ] [ ]
i
J Ψ (i)
(x ( i)
) = Π J ℑ (k )
(x (k )
) , (49)
k =r

e depende ainda da ordem e natureza das operações elementares


ℑ ( i)
, i = 0, …, r , que constituem cada algoritmo.

Compreende-se assim que o algoritmo 1 produza uma acumulação de erros de


arredondamento igual a

ε1 a2 − ε 2 b2 + ε 3 (a 2 − b2 ) , (50)

enquanto que o algoritmo 2 produz uma acumulação de erros de


arredondamento igual a

( a + b)( a − b)( ε 1 + ε 2 + ε 3 ) . (51)

Fazendo ε 1 = ε 2 = ε 3 = ε a expressão (50) tem o valor 2 ε y enquanto que a


expressão (51) tem o valor 3 ε y . Chegamos assim à conclusão que o
algoritmo 1 é mais fiável que o algoritmo 2.

Ž A expressão (48) tem como valor absoluto mínimo


a r + 1 = | Er + 1 ⋅ y | ≤ | y | ⋅ ε , (52)

II - 8 Capítulo II PROPAGAÇÃO DE ERROS


http://www.utad.pt/~wmacedo

qualquer que seja o algoritmo utilizado, mesmo que o algoritmo se reduza


apenas à saída de dados iniciais previamente entrados no computador.

Por outro lado, quando se dá entrada a dados no computador introduz-se um


erro ∆(0) ( x ) tal que

| ∆(0) ( x )| ≤ | x (0)
|⋅ε . (53)

Assim, um algoritmo que consistisse apenas na simples entrada/saída de


dados x (0) produziria o erro

2| x ( 0)
|⋅ ε . (54)

Qualquer que seja o algoritmo usado no cálculo de y = ℑ( x ) , haverá um erro


esperado mínimo:

ABS { J [ℑ(x )] ⋅ | x (0)


}
| + | y| ⋅ ε (55)

Se a contribuição de cada erro de arredondamento a i para a expressão (48) ,


i.e., J [Ψ (i) ( x (i) )] ⋅ a i , não exceder o erro esperado mínimo (55), diremos que
o algoritmo é numericamente estável.

Convém esclarecer o significado dos seguintes conceitos, atrás usados:

Œ Fiabilidade: é uma noção usada na análise comparativa de dois ou mais


algoritmos que resolvem o mesmo problema. Diremos que o algoritmo 1 é
mais fiável que o algoritmo 2, quando o primeiro produzir uma acumulação de
erros de arredondamento menor que o segundo;
• Estabilidade: é uma noção relativa a um determinado algoritmo e ao seu erro
esperado mínimo. Diremos que um algoritmo é estável quando o efeito de cada
erro de arredondamento, nas diversas operações elementares que o constituem,
não excede o erro esperado mínimo;
Ž Conformação: é uma noção relativa a um problema, independentemente do
algoritmo usado para o resolver. Diremos que um problema é mal conformado
quando os efeitos dos erros iniciais dos dados se propagam de modo a causar
um grande efeito no resultado final.

Assim, entre vários algoritmos alternativos instáveis pode existir um que seja
mais fiável que os outros. Esse deve ser o escolhido.

Devemos reter as seguintes conclusões:

Œ Previamente à resolução numérica de um problema deve-se proceder a uma


análise numérica da sua conformação;
• Há problemas bem ou mal conformados. A má-conformação de um problema
não se remedeia alterando o algoritmo; remedeia-se, eventualmente, pela
resolução de problemas bem conformados relacionados com o problema
original;

2. Erros nas Operações-Máquina em Vírgula Flutuante II - 9


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

Ž Previamente à execução de um algoritmo deve-se proceder a uma análise


numérica da sua estabilidade;
• Há algoritmos estáveis e instáveis. Deve-se tentar resolver um problema por
meio de um ou mais algoritmos estáveis. Se apenas dispomos de algoritmos
instáveis para a resolução de um problema, devemos escolher entre eles o
mais fiável. A situação ideal é aquela em que dispomos de vários algoritmos
alternativos estáveis, escolhendo-se então o mais fiável entre eles;
• Ao propor a solução de um problema deve-se prevenir o utilizador da sua
má-conformação, se for caso disso, para que ele ponha cuidado especial na
obtenção de dados iniciais suficientemente rigorosos;

Resumindo: os resultados numéricos devem ser credíveis. Para tanto devem


ser analisados e avaliados do ponto de vista da conformação do problema, da
estabilidade dos algoritmos e da sua fiabilidade relativa. As cinco conclusões
acima devem ser adoptadas como um “pentálogo” do analista numérico
consciencioso.

Figura 2.1: Metodologia


da Análise de Erros.

II - 10 Capítulo II PROPAGAÇÃO DE ERROS


http://www.utad.pt/~wmacedo

2.4. Análise de Erros de Arredondamento Atráves de Grafos

Os grafos permitem a representação da estrutura dos algoritmos e constituem um


meio de análise do mecanismo da propagação dos erros.

Na figura 2 apresentam-se os grafos representativos dos algoritmos 1 e 2 do


exemplo 11. Nos nós dos grafos estão inscritos os dados iniciais e os resultados
intermédios. O nó i é ligado ao nó j por uma seta se o resultado intermédio i é um
operando da operação elementar que produz o resultado j. Em cada nó origina-se
um novo erro relativo de arredondamento, escrito ao lado do nó. Os factores de
amplificação associados aos erros relativos de arredondamento estão escritos ao
lado das setas com origem nos respectivos nós.

Percorrendo os grafos ao longo das setas obtêm-se relações entre os vários tipos
de erro. Para determinar o factor de amplificação pelo qual devemos multiplicar o
erro i para obter a sua contribuição para o erro j, multiplicamos os factores de
amplificação relativos a um percurso possível entre os nós i e j e adicionamos os
produtos relativos aos vários percursos possíveis entre i e j. A análise de erros
através de grafos torna-se assim mecânica e programável.

? Exemplo13.

Œ Do grafo do algoritmo 1 retiram-se as seguintes relações

ε y1 = 1 × ε a + 1 × ε a + ε 1 ; ε y2 = 1 × ε b + 1 × ε b + ε 2

y1 y2
εy = ⋅ ε y1 − ⋅ ε y2 + ε 3
y1 − y 2 y1 − y2

• Do grafo do algoritmo 2 retiram-se as seguintes relações:

a b a b
ε y1 = ⋅εa + ⋅ ε b + ε1 ; ε y2 = ⋅εa − ⋅εb + ε2
a+b a+b a−b a−b

A contribuição do erro ε b para o erro ε y é

 b b 
 × 1− × 1 ⋅ ε b .
a+b a−b 

2.5. Análise de Erros em Problemas e Algoritmos

Faremos seguidamente algumas análises de erros , avaliando a conformação de


problemas e a estabilidade numérica e fiabilidade de algoritmos, de modo a
exemplificar a metodologia seguida na análise de erros, aspecto importante da
análise numérica que não deve ser negligenciado.

Como os exemplos precedentes e subsequentes mostram, a análise da propagação


de erros num algoritmo é quase sempre uma tarefa lógica e computacional mais
árdua que a elaboração e execução do próprio algoritmo.

2. Erros nas Operações-Máquina em Vírgula Flutuante II -


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

? Exemplo 14. O sistema de equações diferenciais lineares ordinárias

 dy1
 dt = y 2

 (56)
 dy
 2 = y1 ,
 dt

possui a seguinte solução analítica geral:

 y1 = a1 ⋅ xp t ) + a 2 ⋅ e p ( − t



 y 2 = a1 ⋅ ex (t ) − a 2 ⋅ xp − t )

Se as condições iniciais

y ( 0 = − y2 ( ) = 1 (58)

as 1 e a2 são a1 = 0 , a 2 = 1.

A resolução numérica do sistema (56) produz valores para y1 e y 2 correspondentes a uma sucessão
de valores t1 , t 2 , … , t n . Se as condições iniciais (58) forem afectadas por erros ∆y1 , ∆y2 , o valor
calculado de a1 será diferente de zero e consequentemente também os termos a1 ⋅ exp( t ). Os erros
de y1 e y 2 crescerão portanto com t. A resolução numérica das equações (56) não é portanto um
problema bem conformado. Para remediar esta situação deveremos determinar as condições
iniciais com a maior precisão possível, o que implica que se meçam as grandezas t, y1, y2 com
grande precisão, o que por sua vez exige registos longos em vírgula flutuante.

? Exemplo 15. A equação algébrica

p(x ) ≡ (x − 1)( x − 2)… ( x − 10) = 0 (59)

possui as raízes 1, 2, …, 10. Se perturbarmos o coeficiente do termo x9 com um pequeno erro, seja
10−6 , a equação (59) passará a ser

p(x ) + 10−6 ⋅ x 9 = 0 , (60)

com raízes completamente diferentes.

Como o exemplo anterior mostra, um pequeno erro num dos coeficientes de um


polinómio pode alterar substancialmente a natureza e valor das suas raízes,
especialmente quando se trata do coeficiente de um termo de grau elevado.
Podemos assim afirmar que a resolução numérica de uma equação algébrica de
elevado grau é em geral um problema mal conformado, visto que pequenas
alterações nos dados iniciais (coeficientes) podem produzir grandes alterações
nas soluções numéricas. Como remediar esta situação? Duas alternativas se
apresentam:

Œ Decompor, se possível, o polinómio p(x) num produto de polinómios


p1 ( x ) ⋅ p2 ( x ) … p r ( x ) ≡ p( x ) e resolver numericamente as equações algébricas
pi(x) = 0, i = 1, …, r, que têm graus mais baixos que a equação original
p(x) = 0, e que serão provavelmente melhor conformadas;

II - 12 Capítulo II PROPAGAÇÃO DE ERROS


http://www.utad.pt/~wmacedo

• Determinar e registar com grande precisão os coeficientes da equação p(x) = 0.

ε ε ε ε


+ − + −

ε ε ε ε

− −
− −

Figura 2.2: Grafos representativos de algoritmos e respectivos mecanismos de propagação de erros.

? Exemplo 16. Resolvamos numericamente a equação algébrica do 2º grau

p(x ) ≡ x 2 + 2 bx − c = 0 , (61)

que tem como solução algébrica

c
x = ℑ ( b, c ) = − b + b 2 + c =
(b + b 2 + c )

Os dados iniciais são os valores numéricos dos coeficientes b, c, supostos afectados por erros
relativos ε b , ε c , cuja contribuição para o erro relativo da solução ℑ ( b, c ) é, como se pode
verificar,

−b −b b+∆2
1
c
⋅εb + ⋅εc = 1 ⋅εb + ⋅εc (62)
∆ 2x ∆ ∆ 2∆ 2
1 1 1
2 2 2

em que ∆ = b 2 + c é o binómio discriminante.

Como os valores absolutos das fracções em (62) não excedem 1, se suposermos que | ε b | ≤ ε ,
| ε c | ≤ ε , obteremos para erro esperado mínimo da solução x a quantidade

ε r < 2ε . (63)

Será em relação à quantidade 2ε que se avaliará a estabilidade dos dois algoritmos para o cálculo
de ℑ ( b, c ).

2. Erros nas Operações-Máquina em Vírgula Flutuante II - 13


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

1º Algoritmo:

x1 = b 2 x 2 = x1 + c x3 = ( x2 ) x = x3 − b
1
; ; 2
; (64)

Quando b >> c > 0 tem-se x 3 ≈ b e consequentemente a última operação x 3 − b causará


complicações (v. Perda de Precisão no Cálculo de Diferenças, Secção 1.3.). Seja x 3 ⋅ ( ε x 3 ) , com
| ε x3 | ≤ ε , o erro de arredondamento no cálculo de x3 em vírgula flutuante. A contribuição deste
erro para o erro relativo da solução x = x 3 − b é

x3 ⋅ ε x3 ∆2
1
1
= ⋅ ( ε x3 ) = ( b ∆ 2 + b 2 + c ) ⋅ ( ε x3 ) = k1 ⋅ ( ε x3 )
1
(65)
−b + ∆
1
x 2
c

Como b, c > 0, o factor de amplificação k1 satisfaz a relação

2b2
k1 > > 0, (66)
c

podendo portanto k1 ser muito grande , visto que assumimos atrás que b >> c.

Conclui-se assim que o algoritmo 1 não é numericamente estável, porque a contribuição do erro de
arredondamento na operação x 3 = (x 2 ) 2 para o erro relativo do resultado final excede muito o
1

erro esperado mínimo 2 ε .

2º Algoritmo:

c
x1 = b 2 x 2 = x1 + c x3 = ( x2 ) x4 = b + x3 x=
1
; ; 2
; ; (67)
x4

Neste algoritmo não surge a complicação de perda de precisão devida ao cálculo de uma diferença,
ao contrário do que acontece no algoritmo anterior. O erro de arredondamento x 3 ⋅ ( ε x3 ) será
amplificado de acordo com as operações subsequentes:

c
x3 → b + x3 → = Ψ (x 3 ) (68)
( b + x3 )

A contribuição do erro x 3 ⋅ (ε x 3 ) para o erro relativo do resultado final é

1 ∂ Ψ ( x3 ) −c ∆2
1

⋅ ⋅ x 3 ( ε x3 ) = ⋅ x ( ε ) = − ⋅ ( ε x3 ) = k 2 ⋅ ( ε x3 ) (69)
∂ x3 x ( b + x3 ) 2
3 x
p+∆2
3 1
x

O factor de amplificação k2 mantem-se pequeno, visto que | k 2 | < 1. Conclui-se assim que o
algoritmo 2 é estável.

Para comprovação empírica das conclusões anteriores quanto à estabilidade dos algoritmos 1 e 2,
resolvamos numericamente a equação x 2 + 999998 . x − 2 = 0 , cujas raízes exactas são -1000 e
0.002. Os valores b = 499.999, c = 2, satisfazem os pressupostos das análises anteriores, isto é,
b >> c > 0 sendo ∆ 2 = 500001
1
. .

Calculemos com 5 casas decimais as raízes − b + ∆ 2 (1º algoritmo) e c / ( b + ∆1/ 2 ) (2º algoritmo).
1

Com ∆ 2 = 500.03 obtemos os valores:


1

Algoritmo 1: x = 0.03100 ; Algoritmo 2: x = 0.00200

? Exemplo 17. Dados x ∈ℜ e k ∈ N , calculemos cos mx e sin mx , usando as fórmulas de


recorrência:

II - 14 Capítulo II PROPAGAÇÃO DE ERROS


http://www.utad.pt/~wmacedo

cos mx = cos x ⋅ cos ( m − 1) x − sin x ⋅ sin (m − 1) x


(70)
sin mx = sin x ⋅ cos ( m − 1) x + cos x ⋅ sin ( m − 1) x , m = 1, … , k ,

e averiguemos o efeito que a propagação de pequenos erros ∆ c e ∆ s nos cálculos de cos x e de


sin x tem nos resultados finais cos kx, sin kx.

Denotando cm = cos mx , sm = sin mx , c = cos x , s = sin x e fazendo

 c − s
G=  ,
 s c

podemos escrever as fórmulas de recorrência (70) na forma matricial

 cm   cm − 1 
 s  = G  s  , m = 1, … , k . (71)
 m  m −1

Usando repetidamente a fórmula de recorrência (71) obtemos

 ck   c0   1
s  = G s  = G
k k
 0 (72)
 k  0  

Aplicando a fórmula dos acréscimos finitos à igualdade (72) obtemos

 ∆c k  ∂ G k  1 ∂ G k  1
 ∆s  = ∂ c ⋅  0 ⋅ ∆c + ∂ s ⋅  0 ⋅ ∆s . (73)
 k    

Ora,

∂G k ∂G k
= k ⋅G k −1 ; = k ⋅ A⋅G k −1
∂c ∂s

 0 −1
∆c = ε c ⋅ cos x ; ∆s = ε s ⋅ sin x ; A=  (74)
 1 0

Como a matriz G é uma matriz de rotação (Givens) plana, com ângulo de rotação x rad, podemos
escrever

 ck − 1 − sk − 1 
G k −1 = 
c k − 1 
. (75)
 sk − 1

Substituindo as expressões (74)-(75) em (73) obtemos

 ∆c k   ck − 1   − sk − 1 
 ∆s  = k ⋅  s  ⋅ ε c ⋅ cos x + k ⋅  c  ⋅ ε s ⋅ sin x , (76)
 k  k −1  k −1 

que é a fórmula de propagação dos erros de arredondamento ∆c = ε c ⋅ cos x e ∆s = ε s ⋅ sin x aos


resultados ck e sk. Supondo que ε c = ε s = ε 0 , e aplicando valores absolutos a ambos os membros
da igualdade (76), obtemos os erros absolutos máximos dos resultados pretendidos:

| ∆c k | = k ε 0 | cos kx| ≤ kε 0 ; | ∆sk | = k ε 0 | sin kx| ≤ kε 0 . (77)

Concluimos assim que, sendo k muito grande, o algoritmo poderá ser instável para certos valores
de x. Os erros esperados mínimos obtêm-se por aplicação da fórmula (55) da secção 2.2.:

2. Erros nas Operações-Máquina em Vírgula Flutuante II - 15


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

| ∆c k | ≈ [ k ⋅ | x sin kx| + | cos kx| ] ⋅ ε

| ∆sk | ≈ [ k ⋅ | x cos kx| + | sin kx|] ⋅ ε (78)

Se kx = 1 obtem-se das fórmulas (78):

| ∆c k | = | ∆sk | ≈ 138
. ε. (79)

Concluimos assim que, sendo k grande e kx = 1, os erros (77) excedem largamente os erros (79),
pelo que podemos finalmente afirmar que o algoritmo constituído pelas fórmulas de recorrência
(70) é numericamente instável.

Análise de Erros no Algoritmo de Choleski

A resolução de um sistema de equações lineares Ax = b , quando A ∈ ℜ n x n é uma


matriz simétrica e definida positiva, pelo método de Choleski, é de grande
economia computacional em relação ao método mais geral de Gauss e é
numericamente estável. Esse método baseia-se na factorização de A na forma

A = R′ R , (80 )

em que R é uma matriz triangular superior com elementos diagonais positivos e


portanto facilmente invertível. Os n (n + 1)/2 elementos não nulos da matriz
R = [rij ] , podem ser determinados linha a linha, pelo seguinte algoritmo de
factorização.

: Algoritmo 1. “Factor-Choleski”

Para i = 1, …, n ;
1
 i −1
2
Calcule: rii =  aii − ∑ rki2 
 k =1 

Para j = 1, … , i − 1;

 a − i −1r r 

 ij k =1 ki kj 
Calcule rij = rii

Na factorização da matriz A pelo algoritmo acima obtem-se um factor aproximado


~ ~ ~
R. O erro dessa factorização é a matriz E = R ′ R - A , cujos elementos têm erros
absolutos máximos dados pelas seguintes relações (Meinguet, 1983):

| eii | < η ⋅  rki2 + ~rii 2 


i
k~ , i = 1, …, n ,
 k =1 

i
| eij | < η ⋅ k | ~rki ⋅ ~rii | , i, j = 1, …, n , (81)
k =1

onde

II - 16 Capítulo II PROPAGAÇÃO DE ERROS


http://www.utad.pt/~wmacedo

ε
η= ; ( n + 1) ε < 1 , (82)
[1 − ( n + 1) ε]

sendo ε a precisão máquina (erro relativo máximo das operações-máquina em


vírgula flutuante).
~
Calculada a matriz R, a resolução do sistema Ax = b é equivalente à resolução
~ ~
consecutiva dos sistemas triangulares R ′ y = b, R x = y, feita através do seguinte
algoritmo.

: Algoritmo 2. “Choleski”

a) Substituição progressiva:

Para i = 1, …, n ;
i −1
 b i − ∑ ~rik ~yk 
 
Calcule: yi = k =1
~r
ii

b) Substituição regressiva:

 y − i +1~r x 

 i k =1 ik k 
Calcule: x i = ~r
ii

~
O erro resultante na fase de substituição progressiva é o vector b - R ′ y e o erro
~
resultante na fase de substituição regressiva é o vector y - R x . Os erros
absolutos máximos das componentes desses dois vectores são determinados pelas
relações

 i
~r y 
i
bi −


k =1
ki k < η ⋅ ∑ k ⋅ | rki y k | ;

 k =1
~ i = 1, …, n ,

 i
~r x 
i
y i −


k =n
ki k < η ⋅ ∑ ( n + 1 − k ) ⋅ | rik x k | ;

 k =n
~ i = 1, …, n . (83)

As desigualdades (81) e (83) escrevem-se nas seguintes formas matriciais:


~ ~ ~ ~ ~
| R ′ R - A| < η ⋅ [| R ′ | ⋅ D1 ⋅ | R | + ( diag R ) 2 ]

~ ~
| b - R ′ y| < η ⋅ | R ′ | ⋅ D 1 ⋅ | y|

~ ~
| y - R x | < η ⋅ | R | ⋅ D 2 ⋅ | x| , (84)

onde os módulos se referem aos elementos das matrizes ou vectores e em que

D 1 = diag (1, 2, …, n) ; D 2 = diag ( n, …, 2, 1) (85)

O erro da solução x pode ser decomposto do seguinte modo:

2. Erros nas Operações-Máquina em Vírgula Flutuante II - 17


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

~ ~ ~ ~ ~
b - Ax = ( b - R ′ y ) + R ′ ( y - R x ) + ( R ′ R - A ) x . (86)

O erro absoluto máximo da solução x é determinado pela relação


~
{ ~ ~ ~
| b - A x| < η ⋅ 2 | R ′ | ⋅ D 1 ⋅ | R | + | R ′ | ⋅ | R | ⋅ D 2 +

~ ~ ~
}
+ ( diag R ) 2 + η ⋅ | R ′ | ⋅ D1 ⋅ | R | ⋅ D 2 ⋅ | x| . (87)

Geralmente,

1
( n + 1) ε ≤ , (88)
2

donde, tendo em atenção as relações (82),

η ≤2ε ; ( n + 1) η ≤ 1 . (89)

Com as hipóteses (88)-(89), a relação (87) simplifica-se:

(2n + 3) ε ~ ~
| b - A x| < ⋅ | R ′ | ⋅ | R | ⋅ | x| , (90)
1 − ( n + 1) ε

1
supondo que ( n + 1) ε ≤ .
2

As conclusões anteriores resumem-se no seguinte teorema.

2 Teorema 1. Seja x a solução aproximada, do sistema Ax = b , em que a matriz A é real, simétrica e


definida positiva, obtida pelo algoritmo 2 “Choleski” com aritmética em vírgula flutuante. A
solução aproximada x pode ser interpretada como a solução exacta do sistema perturbado

(A + δ A ) ⋅ x = b , (91)

onde a perturbação

( b - A x ) x′
δA = (92)
x′ x

satisfaz a relação

( 2n + 3 ) ε ~ ~
| δ A| < ⋅ | R′ | ⋅ | R | , (93)
1 − ( n + 1) ε

1
supondo que ( n + 1) ε ≤ .
2

II - 18 Capítulo II PROPAGAÇÃO DE ERROS


http://www.utad.pt/~wmacedo

3. Bibliografia
Hamming, R.W. (1973) 2nd ed. • Nummerical Methods for Scientists and
Engineers • Mc-Graw Hil , N.York

Knuth, D.E. (1969) • The Art of Computer Programming • Addison-Wesley


Publ. Co, Reading, Mass.

Importante obra clássica em três volumes, contendo uma grande diversidade de


algoritmos da mais diversa natureza, numéricos e semi-numéricos. Esta obra é
adoptada em muitos Cursos de Ciências de Computação, em grande número de
Universidades dos Estados Unidos e de outros países .

Meinguet, J. (1983) • Refined Error Analysis of Cholesky Factorization • SIAM


J. Num. Analysis, vol.20, nº6, pgs 1243-1251

Stoer, J.; Burlisch, R. (1980) • Introduction to Numerical Analysis •


Springer-Verlag, Berlin

Esta obra é de nível intermédio. Está repleta de bons exemplos e exercícios. Foi
seguida de perto na redacção da secção 2.2.

Wilkinson, J.H. (1964) • Rounding Errors in Algebraic Processes •


Prentice-Hall, Englewood Cliffs, N.J.

Obra clássica e fundamental de análise geral de erros de arredondamento e de


aritmética em vírgula flutuante.

4. Exercícios

1. Proceda ao arredondamento dos seguintes números de modo a ficarem com o


números de algarismos significativos indicados entre parênteses:

626457
. ( 4) ; 066678
. (3) ; 000378
. (2) ; 06547
. E 5 ( 4)

2. Um carpinteiro mede o comprimento de um barrote de madeira, com


aproximadamente 2 m, servindo-se de um metro articulado, cuja menor graduação
é o cm, e um mecânico mede o diâmetro de um veio com aproximadamente 2
polegadas, servindo-se de uma craveira provida de um nónio cuja natureza é de
1/100 de polegada.

a) Quais as precisões absolutas e relativas das duas medições?


b) Qual a medição com maior rigor?

3.

a) Calcule a diferença entre 6852.4 e 48.392, exprimindo-a apenas com


algarismos significativos correctos, sabendo que os algarismos significativos

3. Bibliografia II - 19
F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

dos dois números são todos correctos.

b) Calcule 10 − π com 5 algarismos significativos correctos.

3 3
4. Calcule o erro absoluto máximo de S = ∑ ∑ [X ( i, j )]
i =1 j =1
2
, supondo que os

elementos da matriz X (i, j) têm valores numéricos próximos de 5, com o


formato ≠ • ≠ e com todos os algarismos significativos correctos.

5. Pretende-se determinar a área da secção circular de um veio de transmissão


com a precisão relativa de 0.1%. Com que precisão relativa se deve medir o seu
diâmetro?

. x = − 43.489 , apresentando a solução apenas com


6. Resolva a equação 623
algarismos significativos correctos.

7. Supondo que os coeficientes das seguintes equações têm todos os algarismos


significativos correctos, determine as suas raízes e os respectivos erros absolutos
máximos.

. x 2 − 123
a) 62 . x − 51
. =0

b) x 2 − 20 x + 1 = 0

8. Dois comprimentos têm os valores aproximados l1 ≈ 625


. m e l2 ≈ 5.43 m .

a) Calcule os valores aproximados de l1 + l 2 , l1 + (01


. ) ⋅ l 2 , l1 + (001
. ) ⋅ l 2 , usando
uma aritmética de 3 algarismos;
b) Indique as origens e as grandezas dos erros intervenientes nos cálculos
efectuados em a).

9. Suponha que os parâmetros a, ω, y, na equação

x = a ⋅ sin (ω ⋅ t + y ) ,

são determinados com os erros absolutos máximos ∆a , ∆ω , ∆y ,


respectivamente. Calcule o erro absoluto máximo ∆x e diga qual dos
parâmetros tem menor efeito sobre o erro ∆x.
0. 5
10. Calcule o valor do integral definido I = ∫ sin x ⋅ δ x com 5 casas decimais
0

correctas.

11. A grandeza T pode-se calcular através da fórmula T = / g /2

valor aproximado = 9.8 e pretendemos determinar com aproximação de 0.1, a


l l ≈ 2 ) de
T

20 Capítulo II PROPAGAÇÃO DE ERROS


http://www.utad.pt/~wmacedo

12.

a) Calcule o erro relativo da expressão E = x ⋅ y 2 ⋅ sin z , expresso nos erros


relativos de x, y e z.
b) Com que erros absolutos se devem obter x ≈ 20° , y ≈ 10° , z ≈ 45° , de modo
que se obtenha | ∆E| = 001
. .

13. Elabore algoritmos numericamente estáveis para o cálculo das seguintes


expressões:

1 1− x
a) − ; | x| << 1
1+3x 1+ x

1 1
 1  1
2 2

b)  x +  − x −  ; x >> 1
 x  x

1 − cos x
c) ; x√0 ; x << 1
x

14. Suponha que dispõe de um algoritmo para cálculo de arc sin x , com
aritmética em vírgula flutuante, mantissas de p dígitos, com erro relativo inferior a
5 ⋅ 10 − p . Atendendo à relação

x
arc tan x = arc sin ,
1 + x2

aquele programa servirá para calcular arc tan x. Calcule o erro relativo de
arc tan x e diga se o algoritmo disponível é estável para este problema.

15. A função tan (z/2) pode ser calculada usando a fórmula


1

 z  1 − cos z 
2

tan   = ±   .
 2  1 + cos z 

Será esta fórmula numericamente estável para z = 0, z = π


2 ? Em caso negativo
proponha algoritmos estáveis para o cálculo de tan (z/2).

16. Sendo f(x) = a + bx, a √ 0 , b √ 0 , a derivada f ′ (0) = b pode ser calculada pela
fórmula

f ( h) − f ( − h)
f ′ (0) = .
2h

Use esta fórmula com aritmética binária em vírgula flutuante e exprima valores
de h (pequenos) como potências de 2. Nesse caso as operações-máquina de
multiplicação por h e de divisão por 2h são exactas. Determine o erro relativo
máximo no cálculo de f ′ (0) . Qual o comportamento desse erro quando h ⊗ 0 ?

4. Exercícios I - 21
F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

17. As duas raízes quadradas, u ± iv, do complexo x + iy com y √ 0 , podem ser


calculadas através das fórmulas


[ ]
1 1/ 2
u = ± x + ( x 2 + y 2 )1 / 2
 2
 y
 v=
 2u

Averigue a estabilidade numérica deste algoritmo quando x ≥ 0 e quando x < 0.


Modifique as fórmulas, se necessário, de modo a obter um algoritmo
numericamente estável.

18. Seja x = [x1 , …, x n ]′ uma amostra de uma variável aleatória. A variância s2


daquela amostra pode ser calculada por qualquer das fórmulas:

1 n 1 n
s2 = ⋅ ( x i2 − n x 2
) ; s2 = ⋅ ( x i − x )2 ,
n−1 i =1 n−1 i=1

1 n
em que x = ⋅ x i . Qual das duas fórmulas é a mais fiável?
n i =1

19. Prove que a multiplicação-máquina em vírgula flutuante não é distributiva em


relação à adição-máquina.

20.* Averigue a estabilidade do algoritmo de Gauss para resolução de um sistema


de equações lineares.

II - 22 Capítulo II PROPAGAÇÃO DE ERROS


http://www.utad.pt/~wmacedo

Capítulo 3 ANÁLISE INTERVALAR DE ERROS 3-1

1. Intervalos 3-1

1.1. Funcionais de Intervalos 3-2

2. Operações Aritméticas Intervalares 3-3

2.1. Operações Unárias 3-4


2.2. Operações Binárias 3-4

3. Vectores e Matrizes Intervalares 3-7

3.1. Normas de Vectores e de Matrizes Intervalares 3-7

4. Funções Intervalares 3-9

4.1. Extensão Intervalar Natural de uma Função Real Racional 3-10


4.2. Expressão Racional Intervalar 3-11
4.3. Funções Transcendentes 3-13

5. Aritmética Intervalar em Vírgula Flutuante 3-14

5.1. Convergência Numérica 3-15


5.2. Critério de Terminação de um Algoritmo Iterativo Intervalar 3-16
5.3. Algoritmos Intervalares 3-17
Resolução Iterativa de Sistemas de Equações Lineares 3-17

6. Aplicação da Aritmética Intervalar à Análise de Erros 3-20

7. Software para Análise Intervalar 3-21

8. Bibliografia 3-22

9. Exercícios e Problemas 3-22

I-1
Capítulo 3 ANÁLISE INTERVALAR DE ERROS

Quando um algoritmo é constituído apenas por algumas operações e as variáveis


envolvidas são em pequeno número é possível uma análise exaustiva da
propagação dos erros dos dados iniciais e dos erros de arredondamento originados
nas operações-máquina. Mas quando o algoritmo é complexo, envolvendo grande
número de operações e variáveis, digamos da ordem dos milhares de milhões,
caso muito usual, uma análise exaustiva da propagação dos erros, do tipo que
fizemos no capítulo 2, torna-se extremamente difícil, e a sua programação
bastante complexa. Por tal motivo haverá que recorrer a outros tipos de análise de
erros, exequíveis quando o algoritmo envolve elevado número de operações e
variáveis. Um dos métodos privilegiados para a análise numérica de erros em tais
casos é a análise intervalar, que permite o cálculo do erro absoluto máximo que
afecta o resultado de um algoritmo, por propagação dos erros dos dados iniciais e
dos erros de arredondamento nas operações-máquina em vírgula flutuante.

A ideia básica desse método consiste em utilizar uma aritmética intervalar em


que cada dado inicial, resultado intermédio ou final x é considerado como um
número desconhecido suposto existir num intervalo ~ x = [x′ , x′ ′ ] ⊆ ℜ, em que
x′ ≤ x′ ′ são dois números conhecidos. Cada número aproximado x é representado
por um intervalo ~ x tal que x ∈ ~
x . Em aritmética intervalar os operandos são
~ ~ ~ ~
intervalos. As operações da aritmética intervalar são simbolizadas por +, −, *, / , e
qualquer desta operações será genericamente simbolizada por ω. ~ Quando não
houver dúvida sobre a natureza intervalar das operações ou dos operandos
dispensa-se o til. O resultado final de um algoritmo intervalar é um intervalo que
contém o resultado pretendido e cuja amplitude define o erro que afecta esse
resultado.

A execução de um algoritmo intervalar em computador exige operações de


arredondamento. Às expressões racionais reais correspondem expressões racionais
intervalares cujos valores são intervalos que incluem os resultados reais.

1. Intervalos

2 Definição 1. Seja A um conjunto parcialmente ordenado pela relação ≤. Um intervalo a~ ⊆ A é


definido por

a~ = [ a′ , a′ ′ ] = { a ∈ A | a′ ≤ a ≤ a′ ′ } , (1)

em que a′ , a′ ′ ∈ A, a′ ≤ a′ ′.

Identificaremos o intervalo [a, a] ⊆ A com o elemento (ponto) a ∈ A. Denotaremos


por I(A) o conjunto de todos os intervalos com extremos em A. Interessam-nos
especialmente os casos em que A = ℜ n , n = 1, 2, …
F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

? Exemplo 1.

Œ Um intervalo a~ ↔ I ( ℜ ) corresponde a um segmento de recta ℜ, como mostra a figura abaixo.

Entre intervalos de I (ℜ ) podem estabelecer-se várias relações, nomeadamente as seguintes:

Igualdade: [ x′ , x′ ′ ] = [ y′ , y′ ′ ] ⇔ x′ = y′ ; x′ ′ = y′ ′

Inclusão: [ x′ , x′ ′ ] ϒ [ y′ , y′ ′ ] ⇔ y′ ≤ x′ ≤ x′ ′ ≤ y′ ′

Ordem: [ x′ , x′ ′ ] < [ y′ , y′ ′ ] ⇔ x′ ′ < y′ ; [ x′ , x′ ′ ] > [ y′ , y′ ′ ] ⇔ x′ > y′ ′

• Sendo a relação ≤ entre vectores de ℜ 2 definida para componentes homólogas dos vectores
a′ , a′ ′ ∈ℜ 2 o intervalo ~
a = [a′ , a′ ′ ] corresponde a um rectângulo do plano ℜ 2 , como mostra a
figura abaixo.

1.1. Funcionais de Intervalos

2 Definição 2. Sendo a~ ∈I ( ℜ ), definem-se as seguintes funcionais de a.


~

ΠAmplitude de um intervalo:

amp (a~ ) = a′ ′ − a′ (2)

• Amplitude relativa de um intervalo:

amp (a~ )
r( a~ ) = (3)
| a′ + a′ ′ |

Ž Magnitude de um intervalo:

mag (a~ ) = | a~| = máx (| a′ | , | a′ ′ | ) (4)

• Mignitude de um intervalo:

mig ( a~ ) = mín (| a′ | , | a′ ′ | ) (5)

I-2 Capítulo III ANÁLISE INTERVALAR DE ERROS


http://www.utad.pt/~wmacedo

• Ponto médio de um intervalo:

( x′ + x′ ′ )
m ( a~ ) = (6)
2

As funcionais de intervalos acima definidas têm as seguintes propriedades


importantes.

ΠAmplitude de uma soma de intervalos.


~ ~
amp ( ~
a ± b ) = amp ( ~
a ) + amp ( b ) , (7)

e em particular

amp ( ~
a−~
a ) = 2 amp ( ~
a) , (8)

donde

amp ( ~
a) > 0 ⇒ ~
a−~
a≠0 (9)

A propriedade (9) constitui uma das peculiaridades da aritmética intervalar.


(Moore, 1966);

• Amplitude de um produto de intervalos.

amp ( ~
x / ~y ) ≤ amp ( ~
x ) ⋅ mag ( ~y ) + mag ( ~
x ) ⋅ amp ( ~y ) (10)

Ž Amplitude de um quociente de intervalos. Se 0 ≈ ~y, então

mag ( ~y ) ⋅ amp ( ~
x ) + mag ( ~ x ) ⋅ amp ( y )
~
~ ~
amp( x * y ) ≤ (11)
mag ( ~y ) ⋅ mig ( ~y )

• Amplitude relativa de um produto de intervalos.

r (~
x ) + r ( ~y )
r (~
x * ~y ) = (12)
1 + r (~x ) ⋅ r ( ~y )

• Amplitude relativa de um quociente de intervalos. Se 0 ≈ ~y, então

r (~
x / ~y ) = r( ~
x * ~y ) (13)

2. Operações Aritméticas Intervalares


Em análise intervalar de erros interessam-nos especialmente as operações
aritméticas, embora se possam definir outros tipos de operações com intervalos,
por exemplo operações de conjuntos (reunião, intersecção, complementar).

2. Operações Aritméticas Intervalares I-3


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

2.1. Operações Unárias

2 Definição 3. (Simétrico/Recíproco). Entre as operações intervalares unárias figuram a passagem


~ definida por
ao simétrico de x,

− x~ = − [ x′ , x′ ′ ] = [ − x′ ′ , − x′ ] , (14)

e o cálculo do recíproco de x, definido por

1 1
( x~ ) −1 = [ x′ , x′ ′ ] −1 = [ , ], se 0 ≈ ~
x. (15)
x′ ′ x′

Como consequência imediata destas duas definições obtemos:

x~ − ~y = ~
x + (− ~y ) ; ~
x / ~y = ~
x * ( ~y )−1 , se 0 ∉ ~y. (16)

2.2. Operações Binárias

Qualquer operação aritmética binária ω deverá possuir a propriedade geral


~z = ~
xω~ ⇒ {x ω y | ∈~
x , y ∈~ } ⊂ ~z ,
devendo o intervalo ~ ter a menor amplitude possível. No caso da divisão, se
0 ∈ ~y, elementos na forma x / 0, x ∈ ~
x ~z
não se podem calcular, pelo que devemos concluir que a propriedade (17) é válida
para todas as operações intervalares, com excepção da divisão.

definidas.

2 .

Œ Adição: [ x′ , x′ ′ ] + [ y′ , y′ ′ ] = [ x′ + y′ , x′ ′ + y′ ′ ]

• Subtração: [ x′ , x′ ′ ] − [ y′ , y′ ′ ] = [ x′ − y′ ′ , x′ ′ − y′ ]

Ž Multiplicação: [ x′ , x′ ′ ]* [ y′ , y′ ′ ] = [ z′ , z′ ′ ] , em que:

z′ = mín {elementos do quadro Q(*)}

z′ ′ = máx {elementos do quadro Q(*)}

Quadro Q(*)

* y′ y′ ′
x′ x′ y′ x′ y′ ′
x′ ′ x′ ′ y′ x′ ′ y′ ′

I-4 Capítulo III ANÁLISE INTERVALAR DE ERROS


http://www.utad.pt/~wmacedo

• Divisão: Uma divisão intervalar só é definida quando 0 não pertence ao intervalo divisor. Se
0 ∉[ y′ , y′ ′ ] , então [ x′ , x′ ′ ] / [ y′ , y′ ′ ] = [ z′ , z′ ′ ], em que:

z′ = mín {elementos do quadro Q(/)}

z′ ′ = máx {elementos do quadro Q(/)}

Quadro Q(/)

/ y′ y′ ′
x′ x′ y′ x′ y′ ′
x′ ′ x′′ y′ x′′ y′ ′

Numa divisão intervalar o intervalo divisor não deve possuir o zero, o que
constitui uma grande limitação desta operação e da própria aritmética intervalar.

Note-se que nas definições das operações aritméticas intervalares intervêm apenas
extremos de intervalos. Do ponto de vista da aritmética intervalar podemos
portanto identificar um intervalo [ a′ , a′ ′ ] com um par de números ( a′ , a′ ′ ) e
definir axiomaticamente as operações aritméticas intervalares sem atender ao
significado ou interpretabilidade dos intervalos.

As propriedades mais importantes das operações intervalares binárias são as


seguintes:

Adição Multiplicação
~
x + ~y = ~y + x~ x~ * ~y = ~y * x~
( x~ + ~y ) + ~
z = x~ + ( ~y + ~
z) (~
x * ~y ) * ~
z = x~ * ( ~y * ~
z)
~ ~
x + [0 , 0] = x (x~ + ~y ) * ~
z ⊂ x~ * ~
z + ~y * ~
z ~ ~
x * [1 , 1] = x
−(~
x + ~y ) = (− ~
x ) + ( − ~y ) (sub-distributividade) (~
x * ~y )−1 = (x~ ) −1 * ( y ) −1
~

A adição e a multiplicação intervalares possuem as propriedades comutativa,


associativa e de existência de respectivos elementos neutros, mas a multiplicação
intervalar não é distributiva em relação à adição intervalar, sendo apenas
sub-distributiva, excepto quando o factor multiplicativo se reduz a um número
real. Outras peculariedades da aritmética intervalar são as seguintes.

Œ~
x−~
x = 0, ~
x /~
x = 1, somente quando amp ( ~
x)= 0

• Quando amp ( ~
x ) ≠ 0, tem-se:

~
x−~
x = amp ( ~
x ) ⋅ [−1 , 1]
~
x  x′ x′ ′ 
= , , se x′ > 0
x  x′ ′ x′ 
~

~
x  x′ ′ x′ 
= , , se x′ ′ > 0
x  x′ x′ ′ 
~

2. Operações Aritméticas Intervalares I-5


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

As operações da aritmética intervalar são fáceis de programar, pois dependem


apenas de um pequeno número de operações aritméticas usuais e de operações de
ordenação.

: Algoritmo 1. “MultInt”. Este algoritmo calcula o produto intervalar [ z1 , z 2 ] = [x1 , x 2 ]* [ y1 , y 2 ].

Entre: x1 , x 2 , y1 , y 2 ;

Calcule: a1 = x1 y1 ; a 2 = x1 y 2 ; a 3 = x 2 y1 ; a 4 = x 2 y 2 ;

z1 = mín ( a1 , a 2 , a 3 , a 4 );

z 2 = máx (a1 , a 2 , a 3 , a 4 );

Sai: [ z1 , z 2 ].

No algoritmo anterior faz-se o cálculo de quatro produtos e duas ordenações. Esse


esforço computacional pode ser reduzido, através da determinação prévia dos
sinais dos extremos dos intervalos, originando-se nove casos possíveis, em oito
dos quais haverá que executar apenas duas multiplicações, como se indica no
seguinte quadro.

[ x1 , x 2 ] z1 z2
x1 ≥ 0 y1 ≥ 0 x1 y1 x2 y2
x1 ≥ 0 y2 ≤ 0 x2 y1 x1 y2
x1 < 0 ∧ x 2 > 0 y1 ≥ 0 x1 y 2 x2 y2
x2 ≤ 0 y1 ≥ 0 x1 y 2 x 2 y1
x1 ≥ 0 y1 < 0 ∧ y 2 > 0 x2 y1 x2 y2
x2 ≤ 0 y1 > 0 ∧ y 2 > 0 x1 y 2 x1 y1
x1 < 0 ∧ x 2 > 0 y2 ≤ 0 x2 y1 x1 y1
x2 ≤ 0 y2 ≤ 0 x 2 y2 x1 y1
x1 < 0 ∧ x 2 > 0 y1 < 0 ∧ y 2 > 0 mín ( x1 y2 , x 2 y1 ) máx ( x1 y1 , x 2 y 2 )

A aplicação da aritmética intervalar pode produzir resultados pessimistas, como o


seguinte exemplo mostra.

? Exemplo 2. Supondo que y ∈ ~y = [ 09 . ] , calculemos pelo esquema de Horner o valor do


. , 11
polinómio z = f ( y ) = y 3 − 3 y 2 + 3 y = (( y − 3) * y + 3) * y :

u~ = ~y − [ 3 , 3] = [ −21
. , − 19
. ] ; v~ = u~ * ~y = [ −2.31 , − 171
. ]
~ = v~ + [ 3 , 3] = [ 069 ~ ~
w . , 129
. ] ; z = ω * ~y = [0.621 , 1419
. ]

Por outro lado,

{ f ( y ) | y ∈ ~y} = [ 0999
. , 1001
. ],

intervalo que representa a variação total de f ( y ) no intervalo ~y = [ 09


. , 11
. ].

Podemos assim concluir que o intervalo [0.621 , 1.419] é pessimista. O pessimismo de certos
resultados da aritmética intervalar é um motivo frequente de crítica a este método de análise de

I-6 Capítulo III ANÁLISE INTERVALAR DE ERROS


http://www.utad.pt/~wmacedo

erros.

3. Vectores e Matrizes Intervalares

2 Definição 5. (Vector/matriz intervalar). Um vector intervalar ~


~
a ∈I ( ℜ n ) é um vector cujos
~
componentes são intervalos reais a i ∈I (ℜ ) , i = 1, … , n . Uma matriz intervalar A ∈I ( ℜ m x n ) é uma
matriz cujos elementos são intervalos reais a~ij ∈I ( ℜ ) , i = 1, … , m , j = 1, … , n .

Aplicando-se a aritmética intervalar aos elementos de vectores e matrizes


intervalares, com as peculiaridades respectivas, pode-se construir uma álgebra de
vectores e matrizes intervalares e usar os conceitos definidos para os vectores e
matrizes ordinários, nomeadamente o conceito de espaço vectorial e conceitos
associados; as definições de normas de vectores e de matrizes; distância entre
vectores; raio espectral de uma matriz, etc., conceitos que intervêm na análise
intervalar dos erros que afectam os algoritmos matriciais.

3.1. Normas de Vectores e de Matrizes Intervalares

Sendo ~
a ∈ I ( ℜ n ) um vector intervalar n-dimensional, podemos adoptar as normas

|| a~ || ∞ = máx {| ~ an |} ,
a | , …, | ~

|| a ||1 = ~
a | +…+ ~
a| (18)

em que ~i | é a magnitude ou valor absoluto do intervalo i ∈ I ( ℜ ), funcional de ~


ai
atrás definida.

? Exemplo 3. Sendo a~ = [[−3 , 2] , [ 0 , 1] , [ −4 , 3]]′ ∈I ( ℜ 3 ) , tem-se

| a~1 | = máx ( 3 , 2) = 3 ; | a~2 | = 1 ; | a~3 | = 4 ,

donde

| | a~||∞ = máx ( 3, 1, 4 ) = 4 ; | | a~| |1 = 3 + 1 + 4 = 8 .

~ ~
Sendo ~
a , b ∈ I ( ℜ n ) podemos definir como distância entre ~
a e b qualquer das
~ ~
normas || ~
a - b|| ∞ , || a~ - b||1 , ou a métrica

~
d( a~ , b) = máx {| a′ - b′ | , | a′ ′ - b′ ′ |} (19)

~
Sendo A ∈ I ( ℜ m x n ), podemos utilizar as seguintes normas de matrizes
intervalares:

~  n 
|| A|| ∞ = max ∑ | ~ aij |  (20)
1 ≤ i≤ n
 j =1 

~ m 
|| A||1 = max ∑ | ~ aij |  (21)
1≤ j ≤ n
 i =1 

3. Vectores e Matrizes Intervalares I-7


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

No estudo da convergência de algoritmos matriciais iterativos é necessária a


~
utilização da noção de raio espectral de uma matriz. Sendo A ∈ I ( ℜ n x n ) uma
~
matriz quadrada intervalar o raio espectral de A é definido por
~
ρ( A ) = máx
1≤ i≤ n
{ | λ ( A) | ; A ∈ A~} ,
i (22)

~
i.e., ρ( A ) é o maior dos valores próprios (absolutos) λ i ( A ), de todas as matrizes
~
A ∈ A.

Prova-se (Valença, 1983) que


~ ~
ρ( A ) ≤ || mag ( A )|| (23)

~
em que mag ( A ) = [ | a ij |] , i.e., o raio espectral de uma matriz intervalar tem como
~

limite superior a norma de uma matriz ordinária cujos elementos são os valores
absolutos (magnitudes) dos elementos da matriz intervalar.

? Exemplo 4. Seja

~ ~ a ~
c
A = ~ ~ ,
b d

~ ~
com ~
a = [−2 , 2] , b = [−1 , 0] , ~
c = [ −2 , 3] , d = [ −3 , 4] , cujas magnitudes são | a| = 2 , | b| = 1 , | c| = 3 ,
~ ~ ~

| d | = 4 . A matriz das magnitudes é pois


~

~  2 1
mag (A ) =  ,
 3 4

donde se conclui que:

~  2 1
ρ( A ) ≤   =7
 3 4 ∞

 2 1
≤   =5
 3 4 1

4. Funções Intervalares
Seja f uma função real de n variáveis reais. Se a função f for definida por uma
expressão do tipo f ( x ) = p( x ) / q( x ) em que p( x ) e q( x ) são polinómios algébricos
reais, com x ∈ ℜ n , dizemos que a função f é uma função real racional. Na
expressão analítica de uma função real racional intervem apenas um número finito
de operações aritméticas ( + , −, *,/) com operandos reais.

Podemos estender a definição de função real racional ao caso de variáveis


intervalares ~ x n . O contra-domínio da função f ( ~
x1 , … , ~ x1 , … , ~
x n ) é o conjunto:

I-8 Capítulo III ANÁLISE INTERVALAR DE ERROS


http://www.utad.pt/~wmacedo

C(~ x n ) = { f ( x1 , … , x n ) | x i ∈ ~
x1 , … , ~ x i , i = 1, …, n} (24)

O conjunto (contra-domínio) tem as seguintes propriedades, como é fácil


verificar:

ΠMonotonia
~
x i ⊂ ~y i , i = 1, …, n ⇒ C ( ~
x1 , … , ~
x n ) ⊂ C ( ~y1 , … , ~y n ) ; (25)

• Degenerescência
~
x i = [x i , x i ] = x i , i = 1, …, n ⇒ C ( ~
x1 , … , ~
x n ) = f ( x1 , … , x n ). (26)

A construção do contra-domínio C é difícil, pois exige o cálculo de uma


infinidade de valores f ( x1 , …, x n ) da função real racional. Por essa razão
contentar-nos-emos, geralmente, com uma aproximação intervalar do conjunto C.
Com esse objectivo constroi-se o intervalo
~
C = [inf (C ) , sup(C )] , (27)

~ ~
que contém o contra-domínio C, i.e., C ⊃ C . O intervalo C possui as propriedades
de monotonia e degenerescência, tal como o conjunto C. A construção do
~
intervalo C exige o cálculo dos extremos inf (C) e sup (C), problema que continua
difícil. Assim, tenta-se construir uma função intervalar racional, F, com variáveis
intervalares ~x1 , …, ~
x n , que além de ser fácil de calcular possua as seguintes
propriedades:

ΠMonotonia inclusiva;

• Degenerescência;
~
Ž Os seus valores sejam intervalos que incluam o intervalo C, i.e., seja:

F(~
x1 , …, ~
x n ) ⊃ [inf (C ) ; sup(C )] ⊃ C ( ~
x1 , …, ~
xn ) ; (28)

• Os intervalos F( ~
x1 , …, ~
x n ) tenham a menor amplitude possível.

Uma função F construída com as quatro propriedades acima designa-se por


extensão intervalar natural da função f.

Devemos desde já realçar a importância das propriedades de monotonia e de


degenerescência da função F a construir. A propriedade de monotonia inclusiva
será fundamental para a aplicação da aritmética intervalar à análise de erros, pois
significará que ao diminuir a incerteza dos dados não poderá aumentar a
incerteza dos resultados. Se a aritmética intervalar não possuisse esta propriedade
seria apenas uma curiosidade, sem utilidade para a análise de erros. A propriedade
de degenerescência significará que a função F constituirá uma extensão natural da
função real racional f, visto que quando as variáveis intervalares ~ x i , i = 1, …, n ,
degenerarem em números reais x i , i = 1, …, n , os resultados intervalares
F( ~
x1 , …, ~
x n ) degenerarão em números reais f ( x1 , …, x n ).

4. Funções Intervalares I-9


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

4.1. Extensão Intervalar Natural de uma Função Real Racional

2 Definição 6. (Função monótona). Uma função real racional f com variáveis x1 , …, x n diz-se:

Parcialmente isótona relativamente à variável x i quando:

xi ≥ yi 
 ⇒ f ( x1 , … , xn ) ≥ f ( y1 , … , yn ) ; (29)
xj = yj , j ≠ i

• Parcialmente antítona relativamente à variável x i quando:

xi ≥ yi 
 ⇒ f ( x1 , … , xn ) ≤ f ( y1 , … , yn ) ; (30)
xj = yj , j ≠ i

Ž Parcialmente monótona relativamente à variável x i quando for parcialmente isótona ou


antítona em relação a essa variável;

• Monótona quando for parcialmente monótona relativamente a cada uma das variáveis x1 , … , x n .

Quando a função real racional f é monótona pode-se construir uma função F que
goze das quatro propriedades requeridas para uma extensão intervalar natural da
função f , atrás enumeradas.

2 Teorema 1.

ΠSejam:

f: função monótona;

A: conjunto dos índices das variáveis isótonas;

B: conjunto dos índices das variáveis antítonas;


~
x = [ x~1 , …, x~n ]′ ∈I ( ℜ n )

• Definam-se para i = 1, …, n:

x ′ i ∈ A x ′ ′ , i ∈ A
ui ≡  i vi ≡  i (31)
xi ′ ′ , i ∈B xi ′ i ∈B

F (~
x1 …, ~n = [ f ( u1 … , n ) f (v ,… )] (32)

são os valores intervalares da extensão natural da função real racional .

A função construída do modo indicado no teorema 1 possui as quatro


propriedades que caracterizam uma expressão intervalar natural de uma função
f, atrás referidas, verificando-se ainda que
~
(~
x1 , …, ~
x n ) = [ nf ( ) , su (C ) ] = C

I-
http://www.utad.pt/~wmacedo

? Exemplo 5.

Œ A função g ( x1 , x 2 ) = x1 − x 2 , com x1 , x2 ∈ℜ, é monótona, visto ser parcialmente monótona em


relação a x1 (isótona) e parcialmente monótona em relação a x 2 (antítona), no domínio ℜ.

• A função f ( x1 , x 2 ) = x1 + x 2 , com x1 , x 2 ∈ℜ, não é monótona emℜ, mas é monótona em ℜ +0 ,


visto que neste domínio ambos os termos x12 e x 22 são isótonos.

Supondo que ~
x = [~
x1 , x~2 ]′ ∈ I[( ℜ +0 ) 2 ] , tem-se neste caso, A = {1 , 2}, e portanto

F (~
x1 , x~2 ) = [ f ( x1′ , x 2 ′ ) , f ( x1′ ′ , x 2 ′ ′ ) ]

[ 2 , 3]
Particularizando para x~ =   , tem-se
 [1 , 4]

F ( [2 , 3] , [1 , 4] ) = [ 22 + 12 , 32 + 4 2 ] = [ 5 , 25]

[ −2 , 2]
Mas para x~ =  ~ ~
 ∈I ( ℜ ) não se pode construir F ( x1 , x 2 ) com base nas variáveis
2

[ −3 , 3]
isótonas e antítonas, porque f ( x1 , x 2 ) não é monótona emℜ.

4.2. Expressão Racional Intervalar

Seja f ( x1 , …, x n ) uma função real racional. Se substituirmos as variáveis x i ∈ℜ


por intervalos ~ x i ∈ I ( ℜ) e as operações aritméticas ordinárias, pelas
correspondentes operações intervalares obteremos uma expressão racional
~
intervalar f ( ~x1 , …, ~ x n ) , que possui as propriedades de monotonia inclusiva e
degenerescência, i.e.:

~ ~ ~ ~
x i ⊂ ~y i , i = 1, …, n ⇒ f ( x1 , …, ~
x n ) ⊂ f ( ~y1 , …, ~y n ) (35)

~ ~ ~
x i = [x i , x i ] = x i , i = 1, …, n ⇒ f ( x1 , …, ~
x n ) = f ( x i , …, x n ) (36)

~
No entanto, não estão garantidas para a expressão racional intervalar f ( ~ x1 , …, ~
xn )
as restantes propriedades que caracterizam uma extensão intervalar natural de f,
~
i.e., nem sempre a expressão racional intervalar f ( ~
x1 , …, ~
x n ) produz os intervalos
F( ~
x1 , …, ~
x n ) construídos na secção 4.1.

Exemplo 6. Seja ( x1 x ) = 2
1 + x 2 . Calculemos a expressão racional intervalar
~~ ~
f ( x1 , x 2 ) = x~1 * ~
x12 + ~
x2 * ~
x 22

f (x1 , 2 F ( x~ ~2 ).

Dados: ~
x1 = [1 , 2] , x~2 = [ 2 , 3]. Tem-se para estes dados:

~~ ~
f ( x1 , x 2 ) = [1 , 4] + [ 4 , 9] = [5 , 13]

Ao dado ~ x1 = [1 , 2] corresponde para x12 o contra-domínio [1 , 4] e ao dado x~2 = [ 2 , 3]


corresponde para x 22 o contra-domínio [4 , 9], donde se conclui que o contra-domínio de
f (x1 , x 2 ) = x12 + x 22 é C ( x~1 , x~2 ) = [ 5 , 13].

4. Funções Intervalares I - 11
F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

Por outro lado, sendo x~1 , ~


x 2 ↔ ℜ + e sendo a função f ( x1 , x 2 ) isótona, tanto relativamente a x1
+
como a x 2 , em ℜ , podemos escrever

u1 = x1′ = 1 ; u 2 = x2 ′ = 2 ; v1 = x1′ ′ = 2 ; v 2 = x2 ′ ′ = 3 ,

donde

F (~
x1 , x~2 ) = [ f ( u1 , u 2 ) , f ( v1 , v 2 ) ] = [ 5 , 13] .

Concluimos assim, para os dados fornecidos, que:


~~ ~
f ( x1 , x 2 ) = F ( x~1 , x~2 ) = C ( x~1 , ~
x2 ) = [5,13] .

~~ ~
Nem sempre, no entanto, se tem f ( x1 , x 2 ) = F ( x~1 , x~2 ), como o seguinte contra-exemplo
demonstra.

‚ Dados: ~
x1 = [−1 , 1] , x~2 = [ 2 , 3]. Neste caso tem-se:

~~ ~
f ( x1 , x 2 ) = [ −1 , 1] + [ 4 , 9] = [ 3 , 10] .

Ao dado x~1 = [ −1 , 1] corresponde para x12 o contra-domínio [0,1] e ao dado x~2 = [ 2 , 3]


corresponde para x 22 o contra-domínio [4,9], pelo que podemos escrever
C (x~1 , ~
x 2 ) = [ 0 , 1] + [ 4 , 9] = [ 4 , 10] , donde
~
C = [ inf (C ) , sup(C ) ] = [ 4 , 10] = F ( x~1 , x~2 ) .

Para os dados fornecidos tem-se pois


~~ ~ ~
f ( x1 , x 2 ) ⊃ F ( x~1 , x~2 ) = C = C ( x~1 , x~2 )

~ ~
Verifica-se assim neste caso que f (x~1 , x~2 ) ≠ F ( x~1 , x~2 ), i.e., a expressão racional intervalar f e
~
a extensão intervalar natural F não são coincidentes.

4.3. Funções Transcendentes

Facilmente se conseguem estabelecer as seguintes extensões intervalares naturais


das mais usuais funções transcendentes. Sendo ~
x = [ x′ , x′ ′ ], obtém-se:

1) ( ~
x ) 2 = [ ( x′ ) 2 , ( x′ ′ ) 2 ] , para x′ > 0 ;
1 1 1
(37)
~
2) e x = [ e x ′ , e x ′′ ]; (38)

3) ln ~
x = [ ln x′ , ln x′ ′ ] , para x′ > 0 ; (39)

I - 12 Capítulo III ANÁLISE INTERVALAR DE ERROS


http://www.utad.pt/~wmacedo


[−11, ] , para amp ( ~ x ) ≥ 2π
 π π
[sin x′ , sin x′ ′ ] , para ~x ⊂ [− , ]
 2 2
 π π
x = [sin x′ ′ , sin x′ ] , para ~
4) sin ~ x ⊂ [− , ] (40)
 2 2
[mín (sin x′ , sin x′ ′ ) ; 1 ] , quando π ∈ ~
x
 2
 π
[ − 1 ; máx (sin x′ , sin x′ ′ )] , quando − ∈ ~x
 2

5) arcsin ~
x = [ arcsin x′ , arcsin x′ ′ ] , para ~
x ⊂ [−1 , 1]; (41)

, ] , quando amp ( ~
[−11 x ) ≥ 2π

 ~
[cos x′ , cos x′ ′ ] , para x ⊂ [π , 2π ]


6) cos ~
x = [cos x′ ′ , cos x′ ] , para ~ x ∈[0 , π ] (42)

 ~
[ − 1 , máx (cos x′ , cos x′ ′ ) ] , quando π ∈ x


[mín (cos x′ , cos x′ ′ ) , 1 ] , quando 0 ∈ ~
x

7) arccos ~
x = [ arccos x′ ′ , arccos x′ ]; (43)

? π π
Exemplo 7. Sendo f ( x ) = sin x + cos x e x~ = [ − ε , + ε ], ε > 0 pequeno, calculemos um
2 2
π π π π
contra-domínio aproximado da função f. Façamos a decomposição x~ = [ − ε , ] ∪ [ , + ε ].
2 2 2 2

π π   π π
{ f (x ) | x ∈x~} =  f ( x ) | x ∈[ 
− ε , ] ∪  f (x ) | x ∈[ , + ε ] 
 2 2   2 2 

 π π   π π 
=  sin ( − ε ) ; 1 + cos ( − ε ) ∪  sin ( + ε ) + cos ( + ε ); 1 
 2 2   2 2 

 π π π 
=  sin ( + ε ) + cos ( + ε ); 1+ cos ( − ε )
 2 2 2 

[
= (1 − δ 2 ) 2 ; 1 + δ ,
1

]
π  π 
em que δ = cos  − ε  . Como ε é pequeno, também é pequeno cos  − ε  = δ e podemos
2  2 
escrever

C ( x~ ) = { f ( x ) | x ∈~
x } ⊃ [ 1− δ ; 1+ δ ] .

O intervalo [ 1 − δ ; 1 + δ ] é uma aproximação (por defeito) do contra-domínio C ( ~


x).

4. Funções Intervalares I - 13
F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

5. Aritmética Intervalar em Vírgula Flutuante


Os operandos das operações-máquina têm uma representação em vírgula flutuante
com uma mantissa de comprimento fixo p. Todos os resultados das
operações-máquina devem portanto ser arredondados de modo a ficarem com uma
mantissa desse comprimento. Denotemos por M(p) o conjunto dos números em
vírgula flutuante cujo comprimento de mantissa é p (dígitos binários ou decimais).
Suponhamos ainda, para simplificar, que os expoentes respectivos podem ser
escritos com um número infinito de dígitos. Em geral, sendo a ∈ ℜ, não se tem no
entanto a ∈ M ( p). O número real a deverá portanto ser aproximado para um
número-máquina vf ( a) ∈ M ( p). Vimos atrás como se efectuam essas
aproximações, por arredondamento ou por truncatura:

a ∈ℜ → vf ( a) ∈ M ( p).

A aproximação é feita de tal modo que | a − v ⋅ f ( a)| ≤ ε ⋅ | a|.

Um intervalo real [a′ , a′ ′ ] ∈ I ( ℜ) é arredondado para um intervalo-máquina


v f [a′ , a′ ′ ] ∈ I [M ( p)], tal que [a′ , a′ ′ ] ⊂ v f [a′ , a′ ′ ] = [a* ′ , a* ′ ′ ]. Para que a
inclusão seja satisfeita deverá ser a* ′ ≤ a′, a* ′ ′ ≤ a′ ′. Poderá ser ou não
a* ′ = v f ( a′ ), a* ′ ′ = v f ( a′ ′ ).

A um número real a corresponde, como vimos, um intervalo real [a , a] ∈ I ( ℜ) e


este intervalo é arredondado para um intervalo-máquina [a′ , a′ ′ ] ⊂ I [M ( p)] tal
que [a , a] ⊂ [a′ , a′ ′ ]. Obviamente, para que esta última inclusão se cumpra deverá
ser a′ ≤ a, a′ ′ ≥ a. O arredondamento é feito de tal modo que amp [a′ , a′ ′ ] ≤ ε ⋅ | a|.

Já vimos na secção I-4.3. que, sendo a, b ∈ M ( p) dois operandos-máquina, a


operação-máquina • ω • é definida de tal modo que se tenha

| a ω b − a • ω • b| ≤ ε ⋅ | a ω b| (44)

Quando se efectua uma operação-máquina intervalar • ω • os intervalos resultantes


são arredondados. A operação-máquina intervalar deve ser definida de tal modo
que se tenha

~ ~
amp [a • ω • b ] ≤ k ⋅ ε ⋅ amp [a ω b ]
~ ~
(45)

Enquanto que os computadores com aritmética em vírgula flutuante fazem


automaticamente o arredondamento dos operandos e dos resultados das
operações-máquina o mesmo não sucede em relação a intervalos. Nenhum
computador actual (1992) executa operações-máquina de aritmética intervalar em
hardware. Estas operações deverão pois ser programadas pelo analista ou poderão
ser utilizados pacotes de programas adquiridos para o efeito, havendo vários
disponíveis. Existem mesmo linguagens de programação que admitem, além de
dados de tipo inteiro, real e complexo, dados do tipo intervalo (Wipperman et al.,
1968).

I - 14 Capítulo III ANÁLISE INTERVALAR DE ERROS


http://www.utad.pt/~wmacedo

5.1. Convergência Numérica

Seja f uma função real racional, com variáveis x1 , …, x n ∈ℜ, e

y = f ( x 1 , x 2 , …, x n ) ∈ ℜ (46)

A expressão-máquina correspondente em aritmética com vírgula flutuante e com


mantissas de comprimento p, é

y p = f [v f ( x1 ), …, v f ( x n )] ∈ M ( p) , (47)

com operandos v f ( x1 ), …, v f ( x n ) ∈ M ( p).

A expressão-máquina em aritmética intervalar com vírgula flutuante é


~y = f ( ~
x1 ,…, ~
x n ) ∈ I [ M ( p) ] (48)

com operandos ~
x1 , …, ~
x n ∈ I [ M ( p)].

Os arredondamentos dos extremos dos intervalos e as operações intervalares são


definidos de tal modo que sendo x i ∈ ~
x i , i = 1, …, n se tenha y ∈ ~y .

A expressão real racional (46) diz-se numericamente convergente se as expressões


(47) e (48) são contínuas quando p → ∞, i.e., lim y p = y, lim ~y = y.
p→ ∞ p→ ∞

Com as regras de arredondamento usuais, atrás descritas, prova-se que qualquer


expressão real racional (46) é numericamente convergente. Esta convergência
numérica tem o seguinte significado:

Œ O resultado y p ∈ M ( p) é uma aproximação do número y ∈ℜ, estando y p tanto


mais próximo de y quanto maior for p;
• Uma análise de erros permite determinar um limite superior para | y p − y|, em
função de p;
Ž A expressão intervalar ~y tem propriedades de monotonia inclusiva e de
degenerescência.

O resultado ~y constitui um intervalo de erro no cálculo de y em aritmética com


vírgula flutuante, conhecidos os intervalos de erro das variáveis x i . Se as variáveis
x i não estivessem afectadas por erros, e fosse p = ∞, ter-se-ia
~y = [ y , y] = y = y . Não estando as variáveis x afectadas por erros e sendo p
p i
finito tem-se

yp ≠ y ; y p , y ∈ ~y . (49)

Assintoticamente, amp ( ~y ) = 0 .

As considerações acima sobre convergência numérica de uma expressão racional


não se aplicam a qualquer expressão ou algoritmo como o seguinte
contra-exemplo mostra.

5. Aritmética Intervalar em Vírgula Flutuante I - 15


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

? Exemplo 8.

  1
1 , se 1 −   * 3 > 0
y=  3
0 , caso contrário

Œ Calculando y em aritmética real (exacta), obtemos y = 0;

• Calculando y em aritmética em vírgula flutuante (p finito), com truncatura de dízimas,


obtemos:

1 − (0.3132 … 3p )* 3 = 1 − 0.9192 … 9p ,

donde y p = 1, qualquer que seja p. Concluimos assim, com este tipo de aritmética, que a
expressão dada não é convergente;

Ž Calculando y com aritmética intervalar, em vírgula flutuante (p finito), com truncatura de


dízimas, obtemos:

1 − [0.31 … 3p ; 03
. 1 … 4 p ]* 3 = 1 − [ 09
. 1 … 9p ; 1, 01 … 02p ]

= [ − 0.01 … 02p ; 00
. 1 … 01p ] > 0 ,

donde ~y = 0 , qualquer que seja p. Concluimos assim, com este tipo de aritmética, que a
expressão dada é convergente.

5.2. Critério de Terminação de um Algoritmo Iterativo Intervalar

Nickel (1977) apresentou o seguinte teorema, que estabelece um critério de


terminação de um algoritmo iterativo intervalar convergente, programado para
aritmética em vírgula flutuante com p dígitos.

2 Teorema 2. (Nickel).

Œ Consideremos um algoritmo iterativo convergente em aritmética real (exacta):

x~ν x~ν + 1 ~
x , ν ∈ℵ ; lim ~
x ν = x~
ν⊗∞

• Suponhamos que durante a execução do algoritmo anterior em aritmética com vírgula flutuante,
com p dígitos na mantissa, se verificam as condições

v f (~
x ν ) x~ν ; ν, p ∈ℵ

lim[ v f (x~ν ) ] = x~ ; ν ∈ℵ
p→ ∞

Ž Definamos o seguinte critério de terminação do algoritmo (índice terminal = n):

amp (x~ν + 1 ) < amp ( ~


xν ) ; ν = 1, … , n − 1

amp (x~n + 1 ) ≥ amp ( ~


xn ) .

• Então,

lim ( x~n ) = x~.


p→ ∞

I - 16 Capítulo III ANÁLISE INTERVALAR DE ERROS


http://www.utad.pt/~wmacedo

O critério estabelecido pelo teorema de Nickel é independente do número de


dígitos p, da precisão-máquina ε, e do tipo de aproximação (arredondamento ou
truncatura).

5.3. Algoritmos Intervalares

Não está no âmbito deste estudo uma revisão geral dos algoritmos disponíveis em
vários domínios da Matemática Intervalar. Referiremos aqui apenas algoritmos
intervalares usados no domínio da Álgebra Linear Numérica, de grande
importância pelas suas aplicações, onde a análise de erros pelos métodos
estudados no capítulo 2 apresenta grande dificuldade, devida ao grande número de
equações e coeficientes geralmente envolvidos.

Resolução Iterativa de Sistemas de Equações Lineares

Vários algoritmos iterativos estão disponíveis na literatura especializada para a


resolução numérica de um sistema de equações lineares

Ax = b, (50)

em que A ↔ ℜ n × n , x ↔ ℜ n , b ↔ ℜ n . Escrevamos o sistema (50) nas formas


equivalentes:

CAx = Cb ; x - x + CAx = Cb

x = x - CAx + Cb ; x = ( I n - CA ) x + Cb (51)

Fazendo T = I n − CA, r = Cb, o sistema (51) escreve-se na forma

x = Tx + r , (52)

donde a fórmula de iteração

x ν + 1 = Tx ν + r ; ν = 0, 1, …, n . . (53)

A aplicação da fórmula (53) requer o conhecimento de uma solução inicial


aproximada, x 0 ↔ ℜ n . Qualquer que esta seja, a fórmula iterativa (53) será
convergente para um limite x * , solução do sistema (50), se e somente se ρ(T) < 1,
em que ρ(T) denota o raio espectral da matriz T.

No caso de um sistema de equações lineares intervalares,


~ ~
Ax = b, (54)

~ ~
em que A ∈ I ( ℜ n × n ), ~
x ∈ I ( ℜ n ), b ∈ I ( ℜ n ), a fórmula de iteração é

~ ~~ ~
x ν + 1 = Tx ν + r . (55)

A aplicação da fórmula (55) requer o conhecimento de um intervalo inicial ~ x 0 , tal


~ ~
que x * ∈ x 0 . O intervalo x 0 poderá ser determinado por qualquer método directo,

5. Aritmética Intervalar em Vírgula Flutuante I - 17


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

sem grande precisão, nomeadamente através do método de Gauss, que fornece


subsidiariamente a matriz C ≡ A −1 . Calculada a matriz C, podemos calcular uma
~
matriz intervalar T tal que T ∈ T e um vector intervalar r tal que r ∈ ~r.

2 Teorema 3.

ΠO processo iterativo
~ ~
x ν + 1 = Tx~ν + ~
r

x* , qualquer que seja a solução inicial ~


converge para um intervalo ~ x 0 , se e somente se
~
ρ [ mag ( T )] < 1.
~ ~
• Denotando por {x*} o conjunto das soluções das equações Ax = b, verifica-se a relação

~
x* [ inf .{x } , sup.{x } ] ,
* *

~
quando ρ [ mag ( T )] < 1.

Geralmente ~ x * ≠ [ inf {x * }, sup {x * }], mas a igualdade dos dois intervalos


verifica-se nas condições do seguinte teorema.

2 ~ ~ ~
Teorema 4. Seja T = [ T′ , T′ ′ ] = [ tij ] , com t ij ≥ 0 . Se ρ (T′ ′ ) < 1 , o processo iterativo
~
~
x ν + 1 = Tx~ν + ~
r é convergente para ~
x* , qualquer que seja o intervalo inicial ~x 0 e verifica-se a
desigualdade
~
x* = [ inf {x* }, sup {x* } ]
~
Além disso, o limite ~
x* é o mesmo, quer a matriz de iteração T corresponda ao método de Jacobi
ou ao método de Gauss-Seidel.

? Exemplo 9. Resolvamos o sistema

2 0  a  1 1 2
4  ⋅   =   ; soluções exactas: a = ; b =
 3  b  4 2 3
Ax b

Tem-se:

 05
. . 
00
C = A −1 ≈ 
 −06 . 
. 03

. 0.0 [−01
 00 . ] [ −01
. ; 01 . ] ~
. ; 01
T = I - CA ≈   ∈ =T
 00
. 01 . ] [ −01
.  [−0.1; 01 . ]
. ; 01

~
O limite superior da matriz intervalar T é a matriz real

 01 .
. 01
T′ ′ = 
 01
. . 
01

I - 18 Capítulo III ANÁLISE INTERVALAR DE ERROS


http://www.utad.pt/~wmacedo

cujos valores próprios são λ 1 = 0, λ 2 = 02


. . O raio espectral da matriz T′ ′ é pois ρ ( T′ ′ ) = 02
. < 1.
Podemos portanto concluir que o processo iterativo
~
x~ ν + 1 = T~xν + ~
r (56)

será convergente para uma solução intervalar ~


x* = [ inf {x* }, sup {x* } ] em que {x*} é o conjunto
de todas as soluções do sistema
~
x = Tx + r~ . (57)

Aplicando a fórmula de iteração (57) obtem-se sucessivamente:

~ [0.4 ; 06
. ]  0.2
x0 = ~
r=  = sol. inicial ; amp ( ~
x0 ) =  
[ 06 . ]
. ; 07  01
.

~ [ 027 . ]
. ; 073  046
. 
x~1 = Tx~ 0 + r~ =   ; amp ( ~
x1 ) = 
[ 047 . ]
. ; 090 . 
 043

~ [0.24 ; 076
. ]  053
. 
x~ 2 = Tx~1 + r~ =   ; amp ( x~ 2 ) =  
[0.44 ; 095
. ]  0.51

~ ~~
x 6 = Tx ~ [ 0225
. ; 0.775]
; amp (~
 0550
. 
5 + r =   x6 ) = 
[ 0425
. ; 0.972] . 
 0547

~ ~~
x 7 = Tx ~ [ 0225
. . ]
; 0775  0550
; amp ( x~ 7 ) = 
. 
6 + r =  
[ 0425
. . ]
; 0972 . 
 0547

Ponto médio de ~
x7:

 0500
. 
m(~
x7 ) = 
. 
 0698

Adoptando como solução aproximada o valor m( ~


x 7 ) cometemos um erro cuja magnitude máxima é
0.026, visto que

  05.   05 . 
mag   2 / 3 −  0692   < 0.026 .
    . 

O tempo de execução do algoritmo intervalar que acabamos de descrever é longo,


cerca de 10 vezes superior ao tempo de execução em aritmética usual, devido à
~
necessidade do cálculo prévio de C, T , ~r , e ~ x 0 , supondo que as operações
intervalares são tão rápidas como as operações usuais, o que não é verdade. A
execução do algoritmo exige normalmente, com software de qualidade, cerca de
100 a 1000 vezes mais tempo que um algoritmo ordinário (Nickel, 1977). Além
disso, os melhores algoritmos intervalares para resolução de sistemas de equações
lineares fornecem um intervalo-solução pessimista.

Assim, espera-se progresso na área da Matemática Intervalar, quer através da


construção de micro-processadores intervalares quer através da elaboração de
melhores algoritmos, esforço compensador atendendo a que a resolução intervalar
de um problema permite o encaixe do resultado numérico, fornecendo portanto
limites para os erros que afectam esse resultado, objectivo subjacente a todo o
cálculo numérico.

5. Aritmética Intervalar em Vírgula Flutuante I - 19


F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

6. Aplicação da Aritmética Intervalar à Análise de Erros


Antes de calcular uma expressão real racional, podemos proceder a uma análise
prévia da propagação de erros, usando as técnicas descritas na secção II-2.
Quando calculamos uma expressão do tipo (48) essa análise é feita
automaticamente e os erros acumulados são revelados durante o cálculo através
dos resultados intervalares obtidos.

O quadro seguinte compara as características dos dois tipos de abordagem na


análise de erros, a análise de propagação de erros e a análise intervalar de erros.

Análise de Propagação Análise Intervalar

manual automática

prévia à execução do algoritmo durante a execução do algoritmo

revela a conformação de um tipo de resultados válidos somente para o algoritmo


problemas considerado, para os erros nos dados iniciais
fornecidos e para o computador em que se
executa o algoritmo

revela a estabilidade de um algoritmo

7. Software para Análise Intervalar


Têm sido publicados programas para execução de operações aritméticas
intervalares em vírgula flutuante. Entre esses programas devemos referir o
desenvolvido na linguagem algorítmica Triplex Algol-60 (Wippermann, 1968).
Um triplex é um termo ordenado [ x′ , x, x′ ′ ], tal que x′ ≤ x ≤ x′ ′, em que o número
real x ∈ [ x′ , x′ ′ ] é considerado o valor principal ou central do intervalo. Outro
sistema para execução de operações intervalares que merece referência é o
desenvolvido por Yoke (1967), na Universidade de Wisconsin. Esse sistema utiliza
um pré-compilador FORTRAN, para execução de operações elementares,
aritméticas, lógicas e relacionais com intervalos.

Mais recentemente, uma versão da linguagem de programação PASCAL,


denominada PASCAL-XSC (Extended Scientific Computation), foi desenvolvida
na Alemanha (Numerik Software GmbH, 1992). Essa linguagem aceita dados do
tipo vector e matriz intervalar, real ou complexo e operações definidas com estas
entidades, codificadas nessa linguagem. Por esta via a aritmética intervalar
encontrará fácil aplicação no cálculo científico. Esperemos que esta tendência de
enriquecimento dos compiladores de linguagens de programação mais usuais com
operadores intervalares continue, enquanto não se desenvolver e vulgarizar a
micro-programação da aritmética intervalar.

8. Bibliografia
Hansen, E.R. (1969) • Topics in Interval Analysis • Oxford University Press,
London.

Moore, R.E. (1966) • Interval Analysis • Prentice-Hall, Englewood Cliffs, U.S.A.

I - 20 Capítulo III ANÁLISE INTERVALAR DE ERROS


http://www.utad.pt/~wmacedo

Obra clássica e pioneira no domínio da Matemática Intervalar. Moore é


universalmente reconhecido como o “pai” dessa disciplina matemática,
actualmente com várias ramificações, nomeadamente nas áreas da Aritmética,
Álgebra, Análise, Topologia e Geometria e com aplicações em Estatística, em
Análise Numérica, em Engenharia, em Psicologia, etc.

Moore, R.E. (1979) • Methods and Applications of Interval Analysis • SIAM,


Philadelphia, U.S.A.

Contém várias aplicações de Matemática Intervalar, nomeadamente na área de


Programação Linear (Optimização), Equações Diferenciais Ordinárias, Métodos
Iterativos, Econometria. Inclui uma extensa bibliografia em anexo, organizada por
Bierbaum e Schwiertz, com 730 referências, além das referências bibliográficas
do próprio autor, em número de 100. Os Professores Bierbaum e Schwiertz
trabalham respectivamente nos Institutos de Matemática das Universidades de
Karlsrube e Freiburg, onde a Matemática Intervalar tem tido grande
desenvolvimento.

Nickel, K. (1977) • Interval Analysis • In D.Jacobs (ed.)

Nickel, K. (1977) • The State of the Art in Numerical Analysis • Academic Press,
London

O Prof. Nickel trabalha no Instituto de Matemática da Universidade de Freiburg,


Alemanha, sendo uma das maiores autoridades mundiais em Matemática
Intervalar, com extensa obra e importantes contribuições teóricas nesse domínio.
Seguimos de perto esta referência na redacção da secção 5 deste capítulo.

Numerik Software, GmbH (1992) • PASCAL-XSC • Baden-Baden, Germany.

Valença, M.R. (1983) • Controlo Automático de Erros em Cálculo Numérico •


Ed. Soc. Portuguesa de Matemática, Lisboa.

A autora, especialista em Matemática Intervalar, é docente no Departamento de


Matemática da Universidade do Minho, Braga.

Wipperman, H.W. et. al. (1968) • The Algorithm Language Triplex-ALGOL-60 •


Numer. Math., 11:175-180.

O Prof. Wipperman trabalha no Instituto de Matemática da Universidade de


Karlsruhe, Alemanha.

Yohe, J.M. (1977) • The Interval Arithmetic Package • Mathematics Research


Center, University of Wisconsin, MA, USA.

8. Bibliografia I - 21
F. WOLFANGO DE MACEDO (1992) - ANÁLISE DE ERROS - UTAD, Vila Real, Portugal

9. Exercícios e Problemas

1. Sendo ~x , ~y intervalos emℜ, definam-se as seguintes operações com intervalos


~
x ∪ ~y = [ mín ( x′ , y′ ) , máx ( x′ ′ , y′ ′ ) ]
~
x ∩ ~y = [ máx ( x′ , y′ ) , máx ( x′ ′ , y′ ′ ) ]

a) Enquanto as operações ∪ e ∩ são sempre possíveis com conjuntos, a operação


∩ não é sempre possível com intervalos. Para que intervalos é essa operação
possível? Em que difere a operação ∪ relativa a conjuntos e a operação ∪
relativa a intervalos?
b) Prove que a operação ∪ com intervalos é comutativa e associativa.
c) Quando dois intervalos ~ x , ~y ⊂ ℜ têm pontos comuns dizemos que são
sobrepostos e escrevemos ~
x ′ ~y . Supondo que ~
x ′ ~y , prove que:
~
x ∩ ~y = ~y ∩ ~
x ; (~
x ∩ ~y ) ⊂ ( ~
x ∪ ~y )

amp ( ~
x ∩ ~y ) ≤ amp ( ~
x) ; amp ( ~
x ∩ ~y ) ≤ amp ( ~y )

2*. Elabore um programa computacional para execução das operações aritméticas


intervalares, unárias e binárias, aplicando os conhecimentos da secção 2.

3*. Elabore um programa para cálculo das funcionais de intervalos definidas na


secção 1.1.

4*. Elabore um programa para cálculo das normas L1 , L2 , L∞ de vectores e de


matrizes intervalares.

5. Determine um limite superior do raio espectral da matriz

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

aplicando a desigualdade (23).

6. Considere a função real f ( x ) = x 2 − 2x .

a) Construa o contra-domínio C = { f ( x ) | x ∈ ~
x }, para ~
x = [0 , 3] .
b) Construa a seguinte aproximação de C:
~
C = [ inf (C ) , sup(C ) ]

~
c) Calcule a expressão racional intervalar f ( ~
x).

d) Construa uma extensão intervalar natural da função f(x).

I - 22 Capítulo III ANÁLISE INTERVALAR DE ERROS


http://www.utad.pt/~wmacedo

7. Resolva o seguinte sistema pelo algoritmo intervalar descrito na secção 5.3.


Sugestão: utilize meios gráficos para obtenção de uma solução intervalar
aproximada.

 −2 x + 3 y = 4


− x + y = 6

8*. Elabore um programa computacional para execução de operações com


matrizes intervalares, reais ou complexas.

9. Exercícios e Problemas I - 23

Você também pode gostar