SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Notas de Aulas de Análise Numérica
Professor Gesil Amarante
Primeiro semestre de 2006
NNoottaa iinniicciiaall
Estas notas de aulas não têm como objetivo substituir a leitura dos livros-texto adotados ou
sugeridos. Professores imensamente mais experientes vieram a escrever seus livros que foram
publicados e tornaram-se sucessos de venda e crítica (uns mais que outros, claro) não por acaso.
Use-os.
Apenas adiciono as estes a particular ênfase que este vosso humilde ministrante tem dado
durante as aulas a tópicos constantes do programa da disciplina. Com a vantagem de os alunos não
precisarem reservar na biblioteca ou pagar pela posse.
Sugestões e observações de vocês, alunos, serão sempre bem-vindas. Fico feliz se essas notas
passarem no julgamento de vocês como úteis durante este tempo em que aprenderemos juntos um pouco
de nossa humana ciência.
Referências:
[1] Cálculo Numérico
Délcio Sperandio, João Teixeira Mendes e Luiz Henry Monken e Silva
Pearson Editora
[2] Cálculo Numérico – Aspectos Teóricos e Computacionais
Márcia A. Gomes Ruggiero
Vera Lúcia da Rocha Lopes
2a
Edição
Pearson Editora
1
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
0
Introdução (aulas 01 e 02)
Problema Real
Modelo Físico
Modelo Matemático
Implementação
Escolha do método Numérico
Análise dos resultados
Problema Numérico
Quando os dados de entrada e de saída são
conjuntos finitos e discretos. Casos como a equação
abaixo
5 4 3 2
5 10 2 8 5x x x x x+ − + − + =
não são um problemas numéricos. Algumas vezes
podemos transformar problemas não-numéricos em
problemas numéricos. O caso da equação diferencial
abaixo é um exemplo (retirado de [2] ) não é um
problema numérico:
( )
( )
2
2 2
2
p/
0 0
5 1
d y
x y x
dx
y
y
⎧
= +⎪
⎪⎪
=⎨
⎪ =
⎪
⎪⎩
(0,5)∈
mas que pode ser transformado num problema numérico:
Por diferenças finitas:
( )
( ) ( )
( )
( ) ( ) ( )
2
' ;
2
2
''
f x h f x h
f x
h
.
f x h f x
f x
h
+ − −⎧
=⎪⎪
⎨
+ −⎪ =
⎪⎩
f x+
( )2 2 2
1 -1
0
2 , 1,2,.... 1
0
1
i i i
m
y y y h x y i m
y
y
+
⎧ − + = + = −
⎪⎪
=⎨
⎪ =
⎪⎩
Método Numérico
Método empregado para a expressão do problema como um problema numérico, como no
exemplo acima, mais o conjunto de procedimentos para a solução. Para a escola do método mais
apropriado devemos ter em mente a precisão, a capacidade de resolução do problema específico e o
custo computacional do método.
2
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
Algoritmo
Descrição seqüencial do método.
Métodos Iterativos
Freqüentemente utilizamos métodos diretos e métodos iterativos. A distinção entre um e outro
ficará clara mais adiante, mas, essencialmente, o método iterativo apresenta aspecto de procedimento
circular que é interrompido quando satisfeita uma condição (teste de parada). Assim, estes métodos têm
três etapas, basicamente,
Tentativa Inicial
Equação de recorrência Exemplo: mudança de base numérica.
Teste da Parada
Bases Numéricas
As representações numéricas são, por princípio, equivalentes,
sendo que uma ou outra pode ser mais útil em determinado tipo de
situação. A escolha do sistema decimal que adotamos (na maior parte das
vezes) se deu por alguma conveniência e mais por uma conjunção de
fatores históricos que não vale a pena aqui discutir. O fato é que qualquer
número pode ser descrito em qualquer base e que essa representação
obedece à seguinte regra básica: Seja a base β, nas quais o Número N vai
ser representado com os algarismos aj:
1 2 0 1
1 2 0 1... . ...j j j j
j ja a a aj jN a aβ β β β β β− − − −
− − − −+ + + + + +
página de título do livro
" Libro Intitulado
Arithmetica Practica "
por Juan de Yciar,
matemático e calígrafo
Basco, Saragossa 1549.
= +
Para transformarmos N de uma base para outra, por exemplo, de
decimal para binária e vice versa, precisamos fazer sucessivas
multiplicações ou divisões pela base-alvo, dependendo se estamos falando
de números inteiros ou reais Vamos trabalhar primeiro com inteiros:
Binários a decimais
Dado um número N, binário, para expressá-lo em decimal, deve-se escrever cada número que o compõe
(bit), multiplicado pela base do sistema (base = 2), elevado à posição que ocupa. Exemplo:
1001(binário)
1 × 23
+ 0 × 22
+ 0 × 21
+ 1 × 20
= 9
Portanto, 1001 é 9 em decimal
3
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
Decimais a Binários
Dado um número decimal, para convertê-lo em binário, basta dividi-lo sucessivamente por 2, anotando
o resto da divisão inteira:
12(decimal) 12 / 2 = 6 + 0; 6 / 2 = 3 + 0; 3 / 2 = 1 + 1; 1 / 2 = 0 + 1.
Observe que é importante que os números sejam lidos de trás para frente, ou seja: 1100 é 12 em binário.
Outro método para conversão de decimal para binário
Considere alguns resultados da potência 2x
e exponha-os em tabela por ordem decrescente:
2048 1024 512 256 128 64 32 16 8 4 2 1
Deste modo é possível converter grandes quantidades de números decimais para binários:
Numero decimal 2048 1024 512 256 128 64 32 16 8 4 2 1 Resultado Binario
354 0 0 0 1 0 1 1 0 0 0 1 0 101100010
1634 0 1 1 0 0 1 1 0 0 0 1 0 11001100010
104 0 0 0 0 0 1 1 0 1 0 0 0 1101000
2 0 0 0 0 0 0 0 0 0 0 1 0 10
38 0 0 0 0 0 0 1 0 0 1 1 0 100110
O procedimento é igual a qualquer caso. Vamos acompanhar de perto o caso do 1634, por
exemplo: O procedimento se inicia do extremo esquerdo, e consiste na verificação de uma possível
subtração não-negativa. 2048>1634. Logo fica "0" (por exemplo, 1634-2048 resultava num número
negativo. Logo atribui-se o "0" )
1024<1634. Logo fica "1";
1634-1024=610
512<610. Logo fica "1"
610-512=98
256>98. Logo fica "0"
128>98. Logo fica "0"
64<98. Logo fica "1"
98-64=34
4
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
32<34. Logo fica "1"
34-32=2
16>2. Logo fica "0"
8>2. Logo fica "0"
4>2. Logo fica "0"
2=2. Logo fica "1"
2-2=0
1>0. Logo fica "0"
Soma de números binários
Recordando as seguintes somas básicas:
1. 0+0=0
2. 0+1=1
3. 1+1=10
Assim, ao se somar 100110101 com 11010101, tem-se:
100110101
11010101
-----------
1000001010
Opera-se como em decimal: começa-se a somar desde a esquerda, no exemplo, 1+1=10, então escreve-
se 0 e "leva-se" 1. Soma-se este 1 à coluna seguinte: 1+0+0=1, e segue-se até terminar todas as colunas
(exatamente como em decimal).
Produto de números binários
O produto de números binários é especialmente simples, já que o 0 multiplicado por qualquer coisa
resulta 0, e o 1 é o elemento neutro do produto.
Por exemplo, a multiplicação de 10110 por 1001:
10110
1001
---------
10110
00000
00000
10110
---------
11000110
5
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
Números Reais
No caso dos inteiros aplicamos sucessivas divisões por 2, guardando os restos. Aqui faremos o
contrário, sucessivas multiplicações por 2, guardando-se os zeros. Por exemplo:
10 1 2 3 4(0.125) . ...a a a a− − − −=
102 (0.125) 0.250× = ; Não há parte real, resultado 0;
102 (0.250) 0.50× = ; Não há parte real, resultado 0;
102 (0.50) 1.0× = ; Há parte real, resultado 1; Resto 0.
Assim, ( )10 2
(0.125) 0.001=
Representação Finita
Nem todos os números que são representados com um número finito de algarismos numa base
o são nas outras. Por exemplo, 0.1 tem representação finita na base 10, mas, na base 2, será que também
o é? Vejamos
102 (0,1) 0,2× = ; Não há parte real, resultado 0;
102 (0,2) 0,4× = ; Não há parte real, resultado 0;
102 (0,4) 0,8× = ; Não há parte real, resultado 0;
102 (0,8) 1,6× = ; Há parte real, resultado 1, sobra 0,6;
102 (0,6) 1,2× = ; Há parte real, resultado 1, sobra 0,2;
102 (0,2) 0,4× = ; Não há parte real, resultado 0;
.
.
.
Assim, ( )10 2
(0.1) 0.0001100110011...=
Neste e em outros casos semelhantes, ficamos sujeitos ao limite físico de representação da
máquina que usamos para fazer os cálculos. Tal limite é sério candidato à propagação de erros e um
exemplo de conseqüência disso é mostrado no texto à página 12.
Aritmética de Ponto Flutuante
Um computador representa números reais da seguinte forma:
( )1 2 3 4. ... e
tN a a a a a β= × ,
onde é a representação com t algarismos do número na base β, chamada mantissa, sendo
que a
( 1 2 3 4. ...a a a a )
1 deve ser o primeiro algarismo significativo (não nulo) e e é um expoente, cujo valor vai de um
limite inferior -m até um limite superior M, que depende da capacidade da máquina. Esta forma de
representação foi descoberta por Konrad Zuse (1910-1995) para os seus computadores eletromecânicos
Z1 e Z3, no início da década de 40.
6
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
Assim:
5
24543=0,24543 10× , se a máquina pode apresentar 5 algarismos na mantissa, ou
5
24543=0,245 10× , se a máquina pode apresentar 3 algarismos na mantissa, ou ainda
5
24543=0,25 10× , se a máquina pode apresentar 2 algarismos na mantissa.
Repare que usamos de arredondamento, não truncamento para escolhermos o último algarismo
apresentado na mantissa.
Um número demasiado grande para ser apresentado por uma máquina provoca o que chamamos
de OVERFLOW (um número por demais pequeno causa um UNDERFLOW). Nesses casos,
dependendo da máquina e da linguagem em que programamos, os efeitos põem ser os mais variáveis,
desde o truncamento involuntário à parada forçada do cálculo, ou a representação simbólica NAN.
Erros e condicionamento
Um problema numérico é dito mal-condicionado ou instável quando sua solução é muito
suscetível aos dados de entrada. No exemplo abaixo temos uma simples equação do segundo grau
2
100.22 1.2371 0x x− + = ,
que tem como soluções os valores para x encontrados pelo método de Báscara:
2
1
4
2
b b ac
x
a
+ −
= e
2
2
4
2
b b ac
x
a
− −
= .
Façamos, pois uso desse método para a solução dessa equação, levando-se em conta que o
número de algarismos que podemos usar para efetuar os cálculos é sempre finito (no caso, cinco).
Nossos passos serão
2
2
2
10044;
4 10039;
4 100,19
b
b ac
b ac
=
− =
− =
e, finalmente, chegaremos às soluções
1 2100,20 e 0,015x x= = .
Acontece que se substituirmos essas soluções na equação original, não encontraremos a
confirmação de sua validade. Se ao invés disso usarmos uma propriedade das soluções,
2
1
0,012346
c
x
ax
= = ,
que, podemos facilmente testar, é muito mais próximo da solução real. Note que neste caso o problema
não é matematicamente mal posto. O fato de b ser muito maior que 4ac foi o que induziu a um erro
maior já que tivemos no segundo passo acima a subtração de números muito próximos, próximos do
limite da representação a nós imposta.
7
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
Brindes:
Aqui vão algumas informações extra para vocês aumentarem sua cultura:
Sistema octal
Origem: Wikipédia, a enciclopédia livre.
Sistema Octal é um sistema de numeração cuja cuja base é 8, ou seja, utiliza 8 símbolos para a
representação de quantidade. No ocidente, estes símbolos são os algarismos arábicos: 0 1 2 3 4 5 6 7
O octal foi muito utilizado em informática como uma alternativa mais compacta ao binário na
programação em linguagem de máquina. Hoje, o sistema hexadecimal é mais utilizado como alternativa
ao binário.
Este sistema também é um sistema posicional e a posição de seus algarismos determinada em relação à
vírgula decimal. Caso isso não ocorra, supõe-se implicitamente colocada à direita do número. A
aritmética desse sistema é semelhante a dos sistemas decimal e binário, o motivo pelo qual não será
apresentada.
Exemplo: - Qual o número decimal representado pelo número octal 4701? Utilizar o TFN. 4 x 8³ + 7 x
8² + 0 x 8¹ + 1 x 8 = = 2048 + 448 + 0 + 1 = 2497
Conversões de um sistema para outro
Conversão Decimal – Octal
Método das divisões sucessivas por 8
É utilizado para converter números decimais inteiros para o sistema octal e consiste em dividir
sucessivamente por 8 o número e os quocientes obtidos nessas divisões até que o quociente seja 0. O
número octal desejado é formado pelos restos das divisões escritas na ordem inversa à da sua obtenção.
Método de multiplicações sucessivas por 8
É utilizado para converter uma fração decimal para o sistema octal. Multiplica-se a fração decimal por 8,
obtendo-se na parte inteira do resultado o primeiro dígito da fração octal resultante. O processo é
repetido sucessivamente com a parte fracionária do resultado para obter os dígitos seguintes e termina
quando a parte fracionária é nula ou inferior à medida de erro especificada. Exemplo: Converter a fração
decimal 0.140625 em octal. 0.140625 x 8 = 1.125
0.125 x 8 = 1.0 Combinamos os dois métodos anteriores podemos converter para octal números
decimais com parte inteira e fracionária.
Método de subtrair potências de 8
8
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
Outro método de conversão de números decimais para o sistema octal que serve para números com
partes inteiras e fracionária é o de subtrair potências de 8. é semelhante ao estudado para a conversão
decimal – binário e para a sua aplicação é necessária uma tabela de potências de 8.
Conversão Octal – Decimal
Existem vários métodos, sendo mais comumente utilizado o proveniente do TFN, em que se faz a
conversão de forma direta através da fórmula. Exemplo: Converter o número octal 764 para o sistema
decimal 764 (10) = 7 x 8² + 6 x 8¹ + 4 x 8° = 448 + 48 + 4 = 500 (8)
Conversão Octal – Binário
Quando existir necessidade de converter números octais em binários, deve-se separar cada dígito do
número octal substituí-lo pelo seu valor correspondente de binário. Exemplo: Converter o número octal
1572 em binário.
Logo, 1 5 7 2 = 001 101 111 010
Conversão Binário – Octal
Para converter um número binário em octal, executa-se o processo inverso ao anterior. Agrupam-se os
dígitos binários de 3 em 3 do ponto decimal para a esquerda e para a direita, substituindo-se cada trio de
dígitos binários pelo equivalente dígito octal.
Por, exemplo, a conversão o número binário 1010111100 em octal:
001 010 111 100
1 2 7 4
Assim, tem-se 1010111100bin = 1274oct
Conversão Octal – Hexadecimal
Para esta conversão é necessário executar um passo intermediário utilizando o sistema binário.
Primeiramente converte-se o número octal em binário e depois converte-se o binário para o sistema
hexadecimal, agrupando-se os dígitos de 4 em 4 e fazendo cada grupo corresponder a um dígito
hexadecimal. Por, exemplo, a conversão o número octal 1057 em hexadecimal:
Passagem ao binário:
1 4 5 7
001 000 101 111
Passagem ao hexadecimal:
0010 0010 1111
2 2 F
Assim, tem-se 1057oct = 22Fhex
9
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
Conversão Hexadecimal – Octal
Esta conversão, assim com a anterior, exige um passo intermediário em que se utiliza o sistema binário.
Converte-se o número hexadecimal em binário e este em octal. Exemplo: Converter o número
hexadecimal 1F4 em octal.
Tabela de valores
N.º Decimal N.º Binário N.º Hexadecimal N.º Octal
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 8 10
9 1001 9 11
10 1010 A 12
11 1011 B 13
12 1100 C 14
13 1101 D 15
14 1110 E 16
15 1111 F 17
16 10000 10 20
17 10001 11 21
Sistema hexadecimal
O sistema hexadecimal é um sistema de numeração vinculado à informática, já que os computadores
interpretam as linguagens de programação em bytes, que são compostos de oito dígitos. À medida que
os computadores e os programas aumentam a sua capacidade de processamento, funcionam com
múltiplos de oito, como 16 ou 32. Por este motivo, o sistema hexadecimal, de 16 dígitos, é um standard
na informática.
Como o nosso sistema de numeração só dispõe de dez dígitos, devemos incluir seis letras para completar
o sistema.
Estas letras e o seu valor em decimal são: A = 10, B = 11, C = 12, D = 13, E = 14 e F = 15.
10
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
O sistema hexadecimal é posicional e por ele o valor numérico associado a cada signo depende da sua
posição no número, e é proporcional as diferentes potencias da base do sistema que neste caso é 16.
Vejamos um exemplo numérico: 3E0,A (16) = 3×162
+ E×161
+ 0×160
+ A×16-1
= 3×256 + 14×16 +
0×1 + 10×0,0625 = 992,625
A utilização do sistema hexadecimal nos computadores, deve-se a que um dígito hexadecimal representa
quatro dígitos binários (4 bits = 1 nibble), por tanto dois dígitos hexadecimais representam oito dígitos
binários (8 bits = 1 byte) que como é sabido é a unidade básica de armazenamento de informação.
Tabela de multiplicação
1 2 3 4 5 6 7 8 9 A B C D E F 10
1 1 2 3 4 5 6 7 8 9 A B C D E F 10
2 2 4 6 8 A C E 10 12 14 16 18 1A 1C 1E 20
3 3 6 9 C F 12 15 18 1B 1E 21 24 27 2A 2D 30
4 4 8 C 10 14 18 1C 20 24 28 2C 30 34 38 3C 40
5 5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B 50
6 6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A 60
7 7 E 15 1C 23 2A 31 38 3F 46 4E 54 5D 62 69 70
8 8 10 18 20 28 30 38 40 48 50 58 60 68 70 78 80
9 9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 90
A A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96 A0
B B 16 21 2C 37 42 4E 58 63 6E 79 84 8F 9A A5 B0
C C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4 C0
D D 1A 27 34 41 4E 5D 68 75 82 8F 9C A9 B6 C3 D0
E E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2 E0
F F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1 F0
10 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0 100
11
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
Desatres Numéricos:
http://ta.twi.tudelft.nl/users/vuik/wi211/disasters.html#ariane
Patriot Missile Failure
On February 25, 1991, during the Gulf War, an American Patriot
Missile battery in Dharan, Saudi Arabia, failed to intercept an incoming
Iraqi Scud missile. The Scud struck an American Army barracks and
killed 28 soldiers. A report of the General Accounting office,
GAO/IMTEC-92-26, entitled Patriot Missile Defense: Software
Problem Led to System Failure at Dhahran, Saudi Arabia reported on
the cause of the failure. It turns out that the cause was an inaccurate
calculation of the time since boot due to computer arithmetic errors.
Specifically, the time in tenths of second as measured by the system's internal clock was multiplied by
1/10 to produce the time in seconds. This calculation was performed using a 24 bit fixed point register.
In particular, the value 1/10, which has a non-terminating binary expansion, was chopped at 24 bits after
the radix point. The small chopping error, when multiplied by the large number giving the time in tenths
of a second, lead to a significant error. Indeed, the Patriot battery had been up around 100 hours, and an
easy calculation shows that the resulting time error due to the magnified chopping error was about 0.34
seconds. (The number 1/10 equals 1/24
+1/25
+1/28
+1/29
+1/212
+1/213
+.... In other words, the binary
expansion of 1/10 is 0.0001100110011001100110011001100.... Now the 24 bit register in the Patriot
stored instead 0.00011001100110011001100 introducing an error of
0.0000000000000000000000011001100... binary, or about 0.000000095 decimal. Multiplying by the
number of tenths of a second in 100 hours gives 0.000000095×100×60×60×10=0.34.) A Scud travels at
about 1,676 meters per second, and so travels more than half a kilometer in this time. This was far
enough that the incoming Scud was outside the "range gate" that the Patriot tracked. Ironically, the fact
that the bad time calculation had been improved in some parts of the code, but not all, contributed to the
problem, since it meant that the inaccuracies did not cancel.
The following paragraph is excerpted from the GAO report.
The range gate's prediction of where the Scud will next appear is a function of the Scud's known velocity
and the time of the last radar detection. Velocity is a real number that can be expressed as a whole
number and a decimal (e.g., 3750.2563...miles per hour). Time is kept continuously by the system's
internal clock in tenths of seconds but is expressed as an integer or whole number (e.g., 32, 33, 34...).
The longer the system has been running, the larger the number representing time. To predict where the
Scud will next appear, both time and velocity must be expressed as real numbers. Because of the way
the Patriot computer performs its calculations and the fact that its registers are only 24 bits long, the
conversion of time from an integer to a real number cannot be any more precise than 24 bits. This
conversion results in a loss of precision causing a less accurate time calculation. The effect of this
inaccuracy on the range gate's calculation is directly proportional to the target's velocity and the length
of the the system has been running. Consequently, performing the conversion after the Patriot has been
running continuously for extended periods causes the range gate to shift away from the center of the
target, making it less likely that the target, in this case a Scud, will be successfully intercepted.
12
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
Explosion of the Ariane 5
On June 4, 1996 an unmanned Ariane 5 rocket launched by the European Space
Agency exploded just forty seconds after lift-off. The rocket was on its first
voyage, after a decade of development costing $7 billion. The destroyed rocket
and its cargo were valued at $500 million. A board of inquiry investigated the
causes of the explosion and in two weeks issued a report. It turned out that the
cause of the failure was a software error in the inertial reference system.
Specifically a 64 bit floating point number relating to the horizontal velocity of
the rocket with respect to the platform was converted to a 16 bit signed integer.
The number was larger than 32,768, the largest integer storeable in a 16 bit
signed integer, and thus the conversion failed.
The report of the Inquiry Board is available. The following paragraphs are
extracted from that report.
On 4 June 1996, the maiden flight of the Ariane 5 launcher ended in a failure. Only about 40 seconds
after initiation of the flight sequence, at an altitude of about 3700 m, the launcher veered off its flight
path, broke up and exploded.
The failure of the Ariane 501 was caused by the complete loss of guidance and attitude information 37
seconds after start of the main engine ignition sequence (30 seconds after lift-off). This loss of
information was due to specification and design errors in the software of the inertial reference system.
The internal SRI* software exception was caused during execution of a data conversion from 64-bit
floating point to 16-bit signed integer value. The floating point number which was converted had a
value greater than what could be represented by a 16-bit signed integer.
*SRI stands for Système de Référence Inertielle or Inertial Reference System.
The Vancouver Stock Exchange
In 1982 the Vancouver Stock Exchange instituted a new index initialized to a value of 1000.000.
The index was updated after each transaction. Twenty two months later it had fallen to 520. The cause
was that the updated value was truncated rather than rounded. The rounded calculation gave a value of
1098.892.
13
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
Rounding error changes Parliament makeup
Debora Weber-Wulff, 7 Apr 1992
We experienced a shattering computer error during a German election this past Sunday (5 April).
The elections to the parliament for the state of Schleswig-Holstein were affected. German elections
are quite complicated to calculate. First, there is the 5% clause: no party with less than 5% of the
vote may be seated in parliament. All the votes for this party are lost. Seats are distributed by direct
vote and by list. All persons winning a precinct vote (i.e. having more votes than any other candidate
in the precinct) are seated. Then a complicated system (often D'Hondt, now they have newer
systems) is invoked that seats persons from the party lists according to the proportion of the votes
for each party. Often quite a number of extra seats (and office space and salaries) are necessary so
that the seat distribution reflects the vote percentages each party got.
On Sunday the votes were being counted, and it looked like the Green party was hanging on by their
teeth to a vote percentage of exactly 5%. This meant that the Social Democrats (SPD) could not have
anyone from their list seated, which was most unfortunate, as the candidate for minister president
was number one on the list, and the SPD won all precincts: no extra seats needed.
After midnight (and after the election results were published) someone discovered that the Greens
actually only had 4,97% of the vote. The program that prints out the percentages only uses one place
after the decimal, and had *rounded the count up* to 5%! This software had been used for *years*,
and no one had thought to turn off the rounding at this very critical (and IMHO very undemocratic)
region!
So 4,97% of the votes were thrown away, the seats were recalculated, the SPD got to seat one person
from the list, and now have a one seat majority in the parliament. And the newspapers are clucking
about the "computers" making such a mistake.
Debora Weber-Wulff, Institut fuer Informatik, Nestorstr. 8-9, D-W-1000 Berlin 31 dww@inf.fu-
berlin.de +49 30 89691 124
http://www.iki.rssi.ru/jplmirror/mars/msp98/news/mco991110.html
No comments...
14
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
The sinking of the Sleipner A offshore platform
Nederlands
The Sleipner A platform produces oil and gas in the North Sea and is
supported on the seabed at a water depth of 82 m. It is a Condeep type platform
with a concrete gravity base structure consisting of
24 cells and with a total base area of 16 000 m .
Four cells are elongated to shafts supporting the
platform deck. The first concrete base structure for
Sleipner A sprang a leak and sank under a
controlled ballasting operation during preparation
for deck mating in Gandsfjorden outside Stavanger,
Norway on 23 August 1991.
2
Immediately after the accident, the owner of the
platform, Statoil, a Norwegian oil company appointed an investigation
group, and SINTEF was contracted to be the technical advisor for this
group.
The investigation into the accident is described in 16 reports...
The conclusion of the investigation was that the loss was caused by a failure in a cell wall, resulting in a
serious crack and a leakage that the pumps were not able to cope with. The wall failed as a result of a
combination of a serious error in the finite element analysis and insufficient anchorage of the
reinforcement in a critical zone.
A better idea of what was involved can be obtained from
this photo and sketch of the platform. The top deck weighs
57,000 tons, and provides
accommodation for about 200
people and support for drilling
equipment weighing about
40,000 tons. When the first
model sank in August 1991, the
crash caused a seismic event
registering 3.0 on the Richter
scale, and left nothing but a pile
of debris at 220m of depth. The
failure involved a total economic loss of about $700 million.
The 24 cells and 4 shafts referred to above are shown to the left while
at the sea surface. The cells are 12m in diameter. The cell wall failure was traced to a tricell, a triangular
concrete frame placed where the cells meet. At right one is pictured undergoing failure testing.
The post accident investigation traced the error to inaccurate finite element approximation of the linear
elastic model of the tricell (using the popular finite element program NASTRAN). The shear stresses
15
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
were underestimated by 47%, leading to insufficient design. In particular, certain concrete walls were
not thick enough. More careful finite element analysis, made after the accident, predicted that failure
would occur with this design at a depth of 62m, which matches well with the actual occurrence at 65m.
Further information can be found in the series of reports available for purchase from SINTEF and in an
article from Concrete International, August 1997.
This description is adapted from The sinking of the Sleipner A offshore platform by Douglas N. Arnold.
The Tacoma bridge (erro de projeto)
On November 7, 1940, at approximately 11:00 AM, the first Tacoma Narrows suspension bridge
collapsed due to wind-induced vibrations. Situated on the Tacoma Narrows in Puget Sound, near the
city of Tacoma, Washington, the bridge had only been open for traffic a few months. There is a short
video of the bridge just before break-down (copyright owner The Camera Shop).
There are also photo's available.
Te twisting motion of the center span just prior to failure.
16
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
The nature and severity of the torsional movement is revealed in this picture taken from the Tacoma end
of the suspension span. When the twisting motion was at the maximum, elevation of the sidewalk at the
right was 28 feet (8.5m) higher than the sidewalk at the left.
This photograph actually caught the first failure shortly before 11 o'clock, as the first concrete dropped
out of the roadway.
17
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
A few minutes after the first piece of concrete fell, this 600 foot section broke out of the suspension
span, turning upside down as it crashed in Puget Sound. Notice the car in the top right corner.
This photograph shows the sag in the east span after the failure. With the centre span gone there was
nothing to counter balance the weight of the side spans. The sag was 45 feet (13.7m). Also the immense
size of the anchorages is illustrated.
18
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
This picture was taken shortly after the failure.
19
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
Capítulo 1 (aulas 03 a 05)
Zeros de Funções Reais
Freqüentemente, um problema de Física, Engenharia (entre outros) é resolvido encontrando-se
o(s) valor(es) para o(s) qual(is) uma determinada função se anula:
( ) 0=xf . (1.1)
Muitas vezes o problema a ser resolvido não é linear e as funções são do tipo polinomial de
ordem alta ou transcendental (seno, co-seno, exponencial, etc...) e não há receitas diretas simples para
resolvê-lo, como seria no caso de um polinômio de
segundo grau, ou mesmo do quarto, para os quais existe
solução algébrica. Às vezes poderemos usar os métodos
que veremos nesse capítulo para encontrar valores para
os quais não há uma representação finita, como por
exemplo 2 , fazendo ( ) 02 2
=−= xxf .
Para encontrar os valores da variável x em que a
função se anula nessas funções, podemos lançar mão de
uma variedade de métodos, a maioria deles do tipo
iterativo, isto é, que consistem de procedimentos que se
repetem até que uma determinada condição (chamada critério de parada) seja satisfeita.
Figura 1.1
O gráfico ao lado mostra um exemplo de função que tem mais de uma raiz. Graficamente, é
simples identificar a condição de nulidade da função quando sua curva corta o eixo das abscissas e o
estudo das funções (domínio, pontos de máximo e mínimo, pontos de inflexão, etc...) é valioso para se
encontrar o valor dessas raízes. Podemos, todavia, evitar a maior parte desse trabalho e concentrarmo-
nos na busca do valor das raízes apenas.
Não raro, a solução do problema (1.1) só é possível no plano complexo e teríamos que utilizar
métodos um tanto mais complicados para encontrá-las. Aqui trataremos apenas de raízes reais.
Basicamente são dois os passos necessários para a determinação das raízes das funções:
I) Isolamento das raízes.
II) Refinamento.
No primeiro passo, encontramos um
intervalo [a,b], dentro do qual a raiz se encontra.
A forma mais direta de fazê-lo é ir substituindo
valores para a função até percebermos que ela
muda de sinal,
0)()( <⋅ bfaf . (1.2)
Note que o fato esta condição não ser
confirmada não exclui necessariamente a
presença de raízes no intervalo, como no caso da
figura 1.2
-2 -1 1 2
0.25
0.5
0.75
1
1.25
1.5
1.75
a b
Figura 1.2
20
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
No segundo passo, precisamos utilizar algum método que aproxime cada vez mais um valor ou
uma faixa de valores iniciais do valor real da raiz. O método precisa ser eficaz (precisa convergir para a
solução) e ser eficiente (convergir num número de iterações não muito grande) para ser útil, e a cada
situação o método mais indicado pode variar. Cada um desses métodos é iterativo (recorrente) e segue
um fluxograma básico de funcionamento da seguinte forma:
A partir de agora
descreveremos sucintamente cada
um dos métodos básicos para se
encontrar raízes de funções não-
lineares:
Dados Iniciais
Cálculos iniciais
k=1
Calcular
Aproximação
Critério de Parada
Cálculos Intermediários
Cálculos Finais
k=k+1
Fim
S
N
Figura 1.1 Fluxograma
geral dos métodos iterativos
1) Método da Bissecção:
2) Método do Ponto Falso:
3) Método do Ponto Fixo;
4) Método de Newton-
Raphson;
5) Método da Secante.
A seguir compararemos a
convergência dos métodos. Antes
disso porém, discutiremos um
pouco os critérios que temos que
satisfazer para definir s nossos
cálculos já produziram resultados
satisfatórios ou não, os chamados
Critérios de Parada.
Basicamente, podemos elencar dois critérios de parada bastante simples e intuitivos. O primeiro
é o da proximidade da solução, ou seja, o quão longe da solução final (ξ) está o valor de x com que
estamos trabalhando. Claro que, por definição, não sabemos de antemão o valor de ξ, mas podemos
trabalhar com intervalos gradualmente reduzidos dentro dos quais sabemos que a raiz se encontra (como
veremos mais adiante no método da bissecção).
Assim, se 1εξ <−kx , onde xk é a k-ésimo valor de x que tentamos e ε1 é o nosso erro tolerável,
damo-nos por satisfeitos e encerramos o cálculo.
Um segundo critério é o do valor da função f(xk) no ponto em que estamos trabalhando. Se
( ) 2ε<kxf , encerraremos o processo iterativo.
Cada um desses critérios tem suas vantagens e desvantagens, e devamos escolher o método
baseado no problema específico que estamos resolvendo. O primeiro critério, por exemplo, pode não ser
suficiente na medida em que temos uma derivada alta da função e, mesmo estando próximos de ξ,
podemos ter um valor excessivamente grande de f(xk). O segundo critério pode falhar exatamente na
situação oposta. Podemos ter a função variando pouco próximo à solução, ou mesmo de outra forma
alcançarmos um valor pequeno para f(xk) mesmo estando longe da solução ξ.
Podemos também usar ambos os critérios, para assegurar que estamos realmente próximos de ξ e
com valor pequeno de f, mas isso pode implicar num tempo de cálculo excessivamente grande. A cada
caso devemos julgar nossas necessidades e recursos (sempre escassos) para obtermos o melhor resultado
possível.
21
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
I Método da Bissecção:
Consiste em, depois de isolado o intervalo [a,b], dividir esse intervalo ao meio sucessivas vezes,
sempre mantendo a raiz dentro do intervalo de cada iteração.
Exemplo: A função cujo gráfico é mostrado abaixo tem uma raiz claramente no intervalo [1, 2].
Se dividirmos esse intervalo em dois, teremos dois intervalos: [1, 1,5] e [1,5 , 2]. Pelo mesmo teste (1.2)
vemos que a raiz continua no segundo sub-intervalo, que será novamente dividido ao meio, assim,
podemos seguir os intervalos a cada iteração (k)
através da tabela abaixo e esse intervalo sempre
converge para a raiz.
O problema do método da bissecção é que ele converge de forma extremamente lenta.
Podemos ver que os intervalos seguem uma progressão da forma
k
kk
kk
abab
ab
22
0011 −
=
−
=− −−
.
Como o critério de parada naturalmente indicado é o de que ε<
−
k
ab
2
00
, temos que
kab
200
<
−
ε
,
( ) ( ) ( )εloglog2log 00 −−> abk e, obtemos a convergência necessária após um número de
iterações
( ) ( )
( )2log
loglog 00 ε−−
>
ab
k
II Método da Posição Falsa
Para resolver, em parte esse problema, criou-se o método derivado do método da Bissecção que
tenta acelerar a convergência fazendo não uma média aritmética do intervalo, mas uma média
ponderada, em que o peso das aproximações para cada extremo do intervalo [a,b] é o valor da função no
outro extremo, assim, o ponto de bissecção passa a pender mais para o lado em que os valores da função
se aproximam mais de zero. Tal método é chamado de Método da Posição Falsa. Neste, a k-ésima
posição é dada por
( ) ( )
( ) ( )11
111
−−
−−−−
−
−
=
kk
kkkak
k
afbf
afbbfa
x .
k x f(x) bk-ak
1 1,5 -0.0252505 0,5
2 1,75 0.0358986 0,25
3 1,625 0.00610313 0,125
4 1,5625 -0.00937844 0,0625
5 1,59375 -0.00158884 0,03125
6 1,60938 0.00226934 0,015625
7 1,61719 0.00418929 0.0078125
8 1.61328 0.00323008 0.000339674
9 1.61133 0.0027499 0.000169837
10 1.61035 0.00250967 0.0000849185
0.2
-1 1 2 3
-0.8
-0.6
-0.4
-0.2
a0 b0a1
Figura 1.2 f(x) =0,25(x-2) + 0.1 sen[x]
22
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
Assim, para a função , podemos observar no gráfico da Figura 1.3 que x é
bem mais próximo de ξ do que se utilizássemos o método da Bissecção.
39)( 3
+−= xxxf
Observe que, da mesma forma que o
método da Bissecção, o método da posição falsa
converge sempre que a função é contínua no
intervalo [a,b]. Se a derivada segunda da função
não muda no intervalo, essa convergência é ainda
mais visível. Tente iniciar este processo no mesmo
gráfico ao lado usando como a0 o ponto x=1 e verás
que a convergência fica um tanto retardada por
conta da proximidade com outra raiz externa ao
intervalo. -1 1 2 3 4 5
10
20
30
a0 b0
x1
ξ
Figura 1.3
III Método do Ponto Fixo
Este método consiste em transformar a equação de forma a se obter o valor de x a partir de uma
função de iteração ϕ(x) que é fruto da própria função original. Fazendo x=ϕ(x), podemos entender esse
processo como a interseção do gráfico da função ϕ(x) com a função identidade. Por exemplo: Seja a
função
( ) 062
=−+= xxxf .
Podemos imaginar várias funções de iteração:
( )
( )
( )
( ) .
1
6
e1
6
;6
;6
4
3
2
2
1
+
=
−=
−=
−=
x
x
x
x
xx
xx
ϕ
ϕ
ϕ
ϕ
A forma geral das funções é do tipo
( ) ( ) ( )xfxAxx +=ϕ ,
com a condição de que A(ξ)≠0.
Vemos no gráfico da Figura 1.4 um
exemplo em que a função de iteração que
leva o procedimento a uma convergência á ra
ocorre.
iz da função. Infelizmente, nem sempre a convergência
No caso da função mostrada acima, tomemos a função de convergência ϕ2(x) com x0=1,5.
Teremos x1=6-1,52
=3,75;
x2=6-3,752
=-8.0625;
x3=6-(-8.0625)2
=-59.003906;
...
e o resultado diverge.
23
NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee
Se tomarmos a ϕ1(x), com o mesmo valor inicial, teremos:
...
;99809,196944,16
;96944,112132,26
;12132,2516
3
2
1
==
==
==
-x
-x
,-x
que converge rapidamente para a solução ξ=2.
O que precisamos agora é de um critério para escolhermos entre as várias possíveis funções de
iteração que podem ser apresentadas para a solução de um dado problema.
O critério que usaremos é baseado no seguinte teorema:
Se
i) ϕ(x) e ϕ’(x)são contínuas num intervalo I centrado em ξ ,
ii) ,1)(' <≤ Mxϕ para qualquer x pertencente ao intervalo I e
iii) x0 pertence a I.
Então a seqüência de iterações {xk}convergirá para ξ.

Más contenido relacionado

La actualidad más candente

Curso completo de matematica para concursos 1400 questoes resolvidas e gaba...
Curso completo de matematica para concursos   1400 questoes resolvidas e gaba...Curso completo de matematica para concursos   1400 questoes resolvidas e gaba...
Curso completo de matematica para concursos 1400 questoes resolvidas e gaba...Cleidvaldo Oliveira
 
Números racionais representação fracionária e decimal - operações e proprie...
Números racionais   representação fracionária e decimal - operações e proprie...Números racionais   representação fracionária e decimal - operações e proprie...
Números racionais representação fracionária e decimal - operações e proprie...Camila Rodrigues
 
Representaçao decimal e fracionaria
Representaçao decimal e fracionariaRepresentaçao decimal e fracionaria
Representaçao decimal e fracionariasandramariadeise
 
Apostila matematica
Apostila matematicaApostila matematica
Apostila matematicaJ M
 
Apresentação1 sistemas numéricos
Apresentação1   sistemas numéricosApresentação1   sistemas numéricos
Apresentação1 sistemas numéricosLarissa Rozza Peluso
 
Apostila matematica fundamental
Apostila matematica fundamentalApostila matematica fundamental
Apostila matematica fundamentalMaryana Moreira
 
Regras para o algoritmo da divisão 2
Regras para o algoritmo da divisão 2Regras para o algoritmo da divisão 2
Regras para o algoritmo da divisão 2Ana Cláudia Lucas
 
Exercicios resolvidos bb matematica
Exercicios resolvidos bb matematicaExercicios resolvidos bb matematica
Exercicios resolvidos bb matematicatrigono_metria
 
Exercícios resolvidos numeros naturais
Exercícios resolvidos numeros naturaisExercícios resolvidos numeros naturais
Exercícios resolvidos numeros naturaisEderronio Mederos
 
Sistemas de Numeração e Conversão de Bases
Sistemas de Numeração e Conversão de BasesSistemas de Numeração e Conversão de Bases
Sistemas de Numeração e Conversão de BasesLeandro Costa
 
Unid 2- sistemas lineares
Unid 2- sistemas linearesUnid 2- sistemas lineares
Unid 2- sistemas linearesBrenda Rayza
 
Frações e números decimais
Frações e números decimaisFrações e números decimais
Frações e números decimaisErasmo lopes
 

La actualidad más candente (17)

Noções
 Noções Noções
Noções
 
Curso completo de matematica para concursos 1400 questoes resolvidas e gaba...
Curso completo de matematica para concursos   1400 questoes resolvidas e gaba...Curso completo de matematica para concursos   1400 questoes resolvidas e gaba...
Curso completo de matematica para concursos 1400 questoes resolvidas e gaba...
 
Sistema de numeração
Sistema de numeraçãoSistema de numeração
Sistema de numeração
 
Sistemas de numeração
Sistemas de numeraçãoSistemas de numeração
Sistemas de numeração
 
Números racionais representação fracionária e decimal - operações e proprie...
Números racionais   representação fracionária e decimal - operações e proprie...Números racionais   representação fracionária e decimal - operações e proprie...
Números racionais representação fracionária e decimal - operações e proprie...
 
ICC-04 Sistemas Numéricos
ICC-04 Sistemas NuméricosICC-04 Sistemas Numéricos
ICC-04 Sistemas Numéricos
 
Representaçao decimal e fracionaria
Representaçao decimal e fracionariaRepresentaçao decimal e fracionaria
Representaçao decimal e fracionaria
 
Apostila matematica
Apostila matematicaApostila matematica
Apostila matematica
 
Apresentação1 sistemas numéricos
Apresentação1   sistemas numéricosApresentação1   sistemas numéricos
Apresentação1 sistemas numéricos
 
Apostila matematica fundamental
Apostila matematica fundamentalApostila matematica fundamental
Apostila matematica fundamental
 
Regras para o algoritmo da divisão 2
Regras para o algoritmo da divisão 2Regras para o algoritmo da divisão 2
Regras para o algoritmo da divisão 2
 
Sistema binario
Sistema binarioSistema binario
Sistema binario
 
Exercicios resolvidos bb matematica
Exercicios resolvidos bb matematicaExercicios resolvidos bb matematica
Exercicios resolvidos bb matematica
 
Exercícios resolvidos numeros naturais
Exercícios resolvidos numeros naturaisExercícios resolvidos numeros naturais
Exercícios resolvidos numeros naturais
 
Sistemas de Numeração e Conversão de Bases
Sistemas de Numeração e Conversão de BasesSistemas de Numeração e Conversão de Bases
Sistemas de Numeração e Conversão de Bases
 
Unid 2- sistemas lineares
Unid 2- sistemas linearesUnid 2- sistemas lineares
Unid 2- sistemas lineares
 
Frações e números decimais
Frações e números decimaisFrações e números decimais
Frações e números decimais
 

Similar a Cálculo Numérico

2008 helio2anoaula01
2008 helio2anoaula012008 helio2anoaula01
2008 helio2anoaula01Evandro Alves
 
Operacoes numeros decimais
Operacoes numeros decimaisOperacoes numeros decimais
Operacoes numeros decimaisEquipe_FAETEC
 
Aula_Zegonc_Ponto_Flutuante_NEW.pdf
Aula_Zegonc_Ponto_Flutuante_NEW.pdfAula_Zegonc_Ponto_Flutuante_NEW.pdf
Aula_Zegonc_Ponto_Flutuante_NEW.pdfJeysonOrihuela
 
Análise de arredondamento em ponto flutuante
Análise de arredondamento em ponto flutuanteAnálise de arredondamento em ponto flutuante
Análise de arredondamento em ponto flutuanteFelipe Belarmino
 
Organização de Computadores - Aula 03
Organização de Computadores - Aula 03Organização de Computadores - Aula 03
Organização de Computadores - Aula 03thomasdacosta
 
Aula notação científica (2).ppt
Aula notação científica (2).pptAula notação científica (2).ppt
Aula notação científica (2).pptJooHonorato3
 
Aula 3 - Erros.ppt
Aula 3 - Erros.pptAula 3 - Erros.ppt
Aula 3 - Erros.pptJoely14
 
ABAIXO DO BÁSICO -CÂNDIDO PORTINARI.pptx
ABAIXO DO BÁSICO -CÂNDIDO PORTINARI.pptxABAIXO DO BÁSICO -CÂNDIDO PORTINARI.pptx
ABAIXO DO BÁSICO -CÂNDIDO PORTINARI.pptxNairaROBERTAMOREIRAF
 
Matemática - Módulo 01
Matemática -  Módulo 01Matemática -  Módulo 01
Matemática - Módulo 01Everton Moraes
 
Mat bas03 operacoes com decimais
Mat bas03   operacoes com decimaisMat bas03   operacoes com decimais
Mat bas03 operacoes com decimaisNivea Neves
 
isoladas-matematica-do-zero-aula-2-dudan-resolvido.pdf
isoladas-matematica-do-zero-aula-2-dudan-resolvido.pdfisoladas-matematica-do-zero-aula-2-dudan-resolvido.pdf
isoladas-matematica-do-zero-aula-2-dudan-resolvido.pdfLourencianneCardoso
 

Similar a Cálculo Numérico (20)

2008 helio2anoaula01
2008 helio2anoaula012008 helio2anoaula01
2008 helio2anoaula01
 
Operacoes numeros decimais
Operacoes numeros decimaisOperacoes numeros decimais
Operacoes numeros decimais
 
Calculo numerico
Calculo numerico Calculo numerico
Calculo numerico
 
Aula_Zegonc_Ponto_Flutuante_NEW.pdf
Aula_Zegonc_Ponto_Flutuante_NEW.pdfAula_Zegonc_Ponto_Flutuante_NEW.pdf
Aula_Zegonc_Ponto_Flutuante_NEW.pdf
 
Análise de arredondamento em ponto flutuante
Análise de arredondamento em ponto flutuanteAnálise de arredondamento em ponto flutuante
Análise de arredondamento em ponto flutuante
 
Organização de Computadores - Aula 03
Organização de Computadores - Aula 03Organização de Computadores - Aula 03
Organização de Computadores - Aula 03
 
Apendice
ApendiceApendice
Apendice
 
Sistema de numeração
Sistema de numeraçãoSistema de numeração
Sistema de numeração
 
Apostila teoria - 2013 - 60
Apostila   teoria - 2013 - 60Apostila   teoria - 2013 - 60
Apostila teoria - 2013 - 60
 
Aula notação científica (2).ppt
Aula notação científica (2).pptAula notação científica (2).ppt
Aula notação científica (2).ppt
 
Aula 3 - Erros.ppt
Aula 3 - Erros.pptAula 3 - Erros.ppt
Aula 3 - Erros.ppt
 
ABAIXO DO BÁSICO -CÂNDIDO PORTINARI.pptx
ABAIXO DO BÁSICO -CÂNDIDO PORTINARI.pptxABAIXO DO BÁSICO -CÂNDIDO PORTINARI.pptx
ABAIXO DO BÁSICO -CÂNDIDO PORTINARI.pptx
 
Ap matemática m1
Ap matemática m1Ap matemática m1
Ap matemática m1
 
Tabela de conversao
Tabela de conversaoTabela de conversao
Tabela de conversao
 
PARTE 5 - Bases Especiais
PARTE 5 - Bases EspeciaisPARTE 5 - Bases Especiais
PARTE 5 - Bases Especiais
 
Matemática - Módulo 01
Matemática -  Módulo 01Matemática -  Módulo 01
Matemática - Módulo 01
 
Calculo numérico
Calculo numéricoCalculo numérico
Calculo numérico
 
Mat bas03 operacoes com decimais
Mat bas03   operacoes com decimaisMat bas03   operacoes com decimais
Mat bas03 operacoes com decimais
 
Fin a01
Fin a01Fin a01
Fin a01
 
isoladas-matematica-do-zero-aula-2-dudan-resolvido.pdf
isoladas-matematica-do-zero-aula-2-dudan-resolvido.pdfisoladas-matematica-do-zero-aula-2-dudan-resolvido.pdf
isoladas-matematica-do-zero-aula-2-dudan-resolvido.pdf
 

Cálculo Numérico

  • 1. Notas de Aulas de Análise Numérica Professor Gesil Amarante Primeiro semestre de 2006 NNoottaa iinniicciiaall Estas notas de aulas não têm como objetivo substituir a leitura dos livros-texto adotados ou sugeridos. Professores imensamente mais experientes vieram a escrever seus livros que foram publicados e tornaram-se sucessos de venda e crítica (uns mais que outros, claro) não por acaso. Use-os. Apenas adiciono as estes a particular ênfase que este vosso humilde ministrante tem dado durante as aulas a tópicos constantes do programa da disciplina. Com a vantagem de os alunos não precisarem reservar na biblioteca ou pagar pela posse. Sugestões e observações de vocês, alunos, serão sempre bem-vindas. Fico feliz se essas notas passarem no julgamento de vocês como úteis durante este tempo em que aprenderemos juntos um pouco de nossa humana ciência. Referências: [1] Cálculo Numérico Délcio Sperandio, João Teixeira Mendes e Luiz Henry Monken e Silva Pearson Editora [2] Cálculo Numérico – Aspectos Teóricos e Computacionais Márcia A. Gomes Ruggiero Vera Lúcia da Rocha Lopes 2a Edição Pearson Editora
  • 2. 1 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee 0 Introdução (aulas 01 e 02) Problema Real Modelo Físico Modelo Matemático Implementação Escolha do método Numérico Análise dos resultados Problema Numérico Quando os dados de entrada e de saída são conjuntos finitos e discretos. Casos como a equação abaixo 5 4 3 2 5 10 2 8 5x x x x x+ − + − + = não são um problemas numéricos. Algumas vezes podemos transformar problemas não-numéricos em problemas numéricos. O caso da equação diferencial abaixo é um exemplo (retirado de [2] ) não é um problema numérico: ( ) ( ) 2 2 2 2 p/ 0 0 5 1 d y x y x dx y y ⎧ = +⎪ ⎪⎪ =⎨ ⎪ = ⎪ ⎪⎩ (0,5)∈ mas que pode ser transformado num problema numérico: Por diferenças finitas: ( ) ( ) ( ) ( ) ( ) ( ) ( ) 2 ' ; 2 2 '' f x h f x h f x h . f x h f x f x h + − −⎧ =⎪⎪ ⎨ + −⎪ = ⎪⎩ f x+ ( )2 2 2 1 -1 0 2 , 1,2,.... 1 0 1 i i i m y y y h x y i m y y + ⎧ − + = + = − ⎪⎪ =⎨ ⎪ = ⎪⎩ Método Numérico Método empregado para a expressão do problema como um problema numérico, como no exemplo acima, mais o conjunto de procedimentos para a solução. Para a escola do método mais apropriado devemos ter em mente a precisão, a capacidade de resolução do problema específico e o custo computacional do método.
  • 3. 2 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee Algoritmo Descrição seqüencial do método. Métodos Iterativos Freqüentemente utilizamos métodos diretos e métodos iterativos. A distinção entre um e outro ficará clara mais adiante, mas, essencialmente, o método iterativo apresenta aspecto de procedimento circular que é interrompido quando satisfeita uma condição (teste de parada). Assim, estes métodos têm três etapas, basicamente, Tentativa Inicial Equação de recorrência Exemplo: mudança de base numérica. Teste da Parada Bases Numéricas As representações numéricas são, por princípio, equivalentes, sendo que uma ou outra pode ser mais útil em determinado tipo de situação. A escolha do sistema decimal que adotamos (na maior parte das vezes) se deu por alguma conveniência e mais por uma conjunção de fatores históricos que não vale a pena aqui discutir. O fato é que qualquer número pode ser descrito em qualquer base e que essa representação obedece à seguinte regra básica: Seja a base β, nas quais o Número N vai ser representado com os algarismos aj: 1 2 0 1 1 2 0 1... . ...j j j j j ja a a aj jN a aβ β β β β β− − − − − − − −+ + + + + + página de título do livro " Libro Intitulado Arithmetica Practica " por Juan de Yciar, matemático e calígrafo Basco, Saragossa 1549. = + Para transformarmos N de uma base para outra, por exemplo, de decimal para binária e vice versa, precisamos fazer sucessivas multiplicações ou divisões pela base-alvo, dependendo se estamos falando de números inteiros ou reais Vamos trabalhar primeiro com inteiros: Binários a decimais Dado um número N, binário, para expressá-lo em decimal, deve-se escrever cada número que o compõe (bit), multiplicado pela base do sistema (base = 2), elevado à posição que ocupa. Exemplo: 1001(binário) 1 × 23 + 0 × 22 + 0 × 21 + 1 × 20 = 9 Portanto, 1001 é 9 em decimal
  • 4. 3 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee Decimais a Binários Dado um número decimal, para convertê-lo em binário, basta dividi-lo sucessivamente por 2, anotando o resto da divisão inteira: 12(decimal) 12 / 2 = 6 + 0; 6 / 2 = 3 + 0; 3 / 2 = 1 + 1; 1 / 2 = 0 + 1. Observe que é importante que os números sejam lidos de trás para frente, ou seja: 1100 é 12 em binário. Outro método para conversão de decimal para binário Considere alguns resultados da potência 2x e exponha-os em tabela por ordem decrescente: 2048 1024 512 256 128 64 32 16 8 4 2 1 Deste modo é possível converter grandes quantidades de números decimais para binários: Numero decimal 2048 1024 512 256 128 64 32 16 8 4 2 1 Resultado Binario 354 0 0 0 1 0 1 1 0 0 0 1 0 101100010 1634 0 1 1 0 0 1 1 0 0 0 1 0 11001100010 104 0 0 0 0 0 1 1 0 1 0 0 0 1101000 2 0 0 0 0 0 0 0 0 0 0 1 0 10 38 0 0 0 0 0 0 1 0 0 1 1 0 100110 O procedimento é igual a qualquer caso. Vamos acompanhar de perto o caso do 1634, por exemplo: O procedimento se inicia do extremo esquerdo, e consiste na verificação de uma possível subtração não-negativa. 2048>1634. Logo fica "0" (por exemplo, 1634-2048 resultava num número negativo. Logo atribui-se o "0" ) 1024<1634. Logo fica "1"; 1634-1024=610 512<610. Logo fica "1" 610-512=98 256>98. Logo fica "0" 128>98. Logo fica "0" 64<98. Logo fica "1" 98-64=34
  • 5. 4 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee 32<34. Logo fica "1" 34-32=2 16>2. Logo fica "0" 8>2. Logo fica "0" 4>2. Logo fica "0" 2=2. Logo fica "1" 2-2=0 1>0. Logo fica "0" Soma de números binários Recordando as seguintes somas básicas: 1. 0+0=0 2. 0+1=1 3. 1+1=10 Assim, ao se somar 100110101 com 11010101, tem-se: 100110101 11010101 ----------- 1000001010 Opera-se como em decimal: começa-se a somar desde a esquerda, no exemplo, 1+1=10, então escreve- se 0 e "leva-se" 1. Soma-se este 1 à coluna seguinte: 1+0+0=1, e segue-se até terminar todas as colunas (exatamente como em decimal). Produto de números binários O produto de números binários é especialmente simples, já que o 0 multiplicado por qualquer coisa resulta 0, e o 1 é o elemento neutro do produto. Por exemplo, a multiplicação de 10110 por 1001: 10110 1001 --------- 10110 00000 00000 10110 --------- 11000110
  • 6. 5 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee Números Reais No caso dos inteiros aplicamos sucessivas divisões por 2, guardando os restos. Aqui faremos o contrário, sucessivas multiplicações por 2, guardando-se os zeros. Por exemplo: 10 1 2 3 4(0.125) . ...a a a a− − − −= 102 (0.125) 0.250× = ; Não há parte real, resultado 0; 102 (0.250) 0.50× = ; Não há parte real, resultado 0; 102 (0.50) 1.0× = ; Há parte real, resultado 1; Resto 0. Assim, ( )10 2 (0.125) 0.001= Representação Finita Nem todos os números que são representados com um número finito de algarismos numa base o são nas outras. Por exemplo, 0.1 tem representação finita na base 10, mas, na base 2, será que também o é? Vejamos 102 (0,1) 0,2× = ; Não há parte real, resultado 0; 102 (0,2) 0,4× = ; Não há parte real, resultado 0; 102 (0,4) 0,8× = ; Não há parte real, resultado 0; 102 (0,8) 1,6× = ; Há parte real, resultado 1, sobra 0,6; 102 (0,6) 1,2× = ; Há parte real, resultado 1, sobra 0,2; 102 (0,2) 0,4× = ; Não há parte real, resultado 0; . . . Assim, ( )10 2 (0.1) 0.0001100110011...= Neste e em outros casos semelhantes, ficamos sujeitos ao limite físico de representação da máquina que usamos para fazer os cálculos. Tal limite é sério candidato à propagação de erros e um exemplo de conseqüência disso é mostrado no texto à página 12. Aritmética de Ponto Flutuante Um computador representa números reais da seguinte forma: ( )1 2 3 4. ... e tN a a a a a β= × , onde é a representação com t algarismos do número na base β, chamada mantissa, sendo que a ( 1 2 3 4. ...a a a a ) 1 deve ser o primeiro algarismo significativo (não nulo) e e é um expoente, cujo valor vai de um limite inferior -m até um limite superior M, que depende da capacidade da máquina. Esta forma de representação foi descoberta por Konrad Zuse (1910-1995) para os seus computadores eletromecânicos Z1 e Z3, no início da década de 40.
  • 7. 6 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee Assim: 5 24543=0,24543 10× , se a máquina pode apresentar 5 algarismos na mantissa, ou 5 24543=0,245 10× , se a máquina pode apresentar 3 algarismos na mantissa, ou ainda 5 24543=0,25 10× , se a máquina pode apresentar 2 algarismos na mantissa. Repare que usamos de arredondamento, não truncamento para escolhermos o último algarismo apresentado na mantissa. Um número demasiado grande para ser apresentado por uma máquina provoca o que chamamos de OVERFLOW (um número por demais pequeno causa um UNDERFLOW). Nesses casos, dependendo da máquina e da linguagem em que programamos, os efeitos põem ser os mais variáveis, desde o truncamento involuntário à parada forçada do cálculo, ou a representação simbólica NAN. Erros e condicionamento Um problema numérico é dito mal-condicionado ou instável quando sua solução é muito suscetível aos dados de entrada. No exemplo abaixo temos uma simples equação do segundo grau 2 100.22 1.2371 0x x− + = , que tem como soluções os valores para x encontrados pelo método de Báscara: 2 1 4 2 b b ac x a + − = e 2 2 4 2 b b ac x a − − = . Façamos, pois uso desse método para a solução dessa equação, levando-se em conta que o número de algarismos que podemos usar para efetuar os cálculos é sempre finito (no caso, cinco). Nossos passos serão 2 2 2 10044; 4 10039; 4 100,19 b b ac b ac = − = − = e, finalmente, chegaremos às soluções 1 2100,20 e 0,015x x= = . Acontece que se substituirmos essas soluções na equação original, não encontraremos a confirmação de sua validade. Se ao invés disso usarmos uma propriedade das soluções, 2 1 0,012346 c x ax = = , que, podemos facilmente testar, é muito mais próximo da solução real. Note que neste caso o problema não é matematicamente mal posto. O fato de b ser muito maior que 4ac foi o que induziu a um erro maior já que tivemos no segundo passo acima a subtração de números muito próximos, próximos do limite da representação a nós imposta.
  • 8. 7 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee Brindes: Aqui vão algumas informações extra para vocês aumentarem sua cultura: Sistema octal Origem: Wikipédia, a enciclopédia livre. Sistema Octal é um sistema de numeração cuja cuja base é 8, ou seja, utiliza 8 símbolos para a representação de quantidade. No ocidente, estes símbolos são os algarismos arábicos: 0 1 2 3 4 5 6 7 O octal foi muito utilizado em informática como uma alternativa mais compacta ao binário na programação em linguagem de máquina. Hoje, o sistema hexadecimal é mais utilizado como alternativa ao binário. Este sistema também é um sistema posicional e a posição de seus algarismos determinada em relação à vírgula decimal. Caso isso não ocorra, supõe-se implicitamente colocada à direita do número. A aritmética desse sistema é semelhante a dos sistemas decimal e binário, o motivo pelo qual não será apresentada. Exemplo: - Qual o número decimal representado pelo número octal 4701? Utilizar o TFN. 4 x 8³ + 7 x 8² + 0 x 8¹ + 1 x 8 = = 2048 + 448 + 0 + 1 = 2497 Conversões de um sistema para outro Conversão Decimal – Octal Método das divisões sucessivas por 8 É utilizado para converter números decimais inteiros para o sistema octal e consiste em dividir sucessivamente por 8 o número e os quocientes obtidos nessas divisões até que o quociente seja 0. O número octal desejado é formado pelos restos das divisões escritas na ordem inversa à da sua obtenção. Método de multiplicações sucessivas por 8 É utilizado para converter uma fração decimal para o sistema octal. Multiplica-se a fração decimal por 8, obtendo-se na parte inteira do resultado o primeiro dígito da fração octal resultante. O processo é repetido sucessivamente com a parte fracionária do resultado para obter os dígitos seguintes e termina quando a parte fracionária é nula ou inferior à medida de erro especificada. Exemplo: Converter a fração decimal 0.140625 em octal. 0.140625 x 8 = 1.125 0.125 x 8 = 1.0 Combinamos os dois métodos anteriores podemos converter para octal números decimais com parte inteira e fracionária. Método de subtrair potências de 8
  • 9. 8 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee Outro método de conversão de números decimais para o sistema octal que serve para números com partes inteiras e fracionária é o de subtrair potências de 8. é semelhante ao estudado para a conversão decimal – binário e para a sua aplicação é necessária uma tabela de potências de 8. Conversão Octal – Decimal Existem vários métodos, sendo mais comumente utilizado o proveniente do TFN, em que se faz a conversão de forma direta através da fórmula. Exemplo: Converter o número octal 764 para o sistema decimal 764 (10) = 7 x 8² + 6 x 8¹ + 4 x 8° = 448 + 48 + 4 = 500 (8) Conversão Octal – Binário Quando existir necessidade de converter números octais em binários, deve-se separar cada dígito do número octal substituí-lo pelo seu valor correspondente de binário. Exemplo: Converter o número octal 1572 em binário. Logo, 1 5 7 2 = 001 101 111 010 Conversão Binário – Octal Para converter um número binário em octal, executa-se o processo inverso ao anterior. Agrupam-se os dígitos binários de 3 em 3 do ponto decimal para a esquerda e para a direita, substituindo-se cada trio de dígitos binários pelo equivalente dígito octal. Por, exemplo, a conversão o número binário 1010111100 em octal: 001 010 111 100 1 2 7 4 Assim, tem-se 1010111100bin = 1274oct Conversão Octal – Hexadecimal Para esta conversão é necessário executar um passo intermediário utilizando o sistema binário. Primeiramente converte-se o número octal em binário e depois converte-se o binário para o sistema hexadecimal, agrupando-se os dígitos de 4 em 4 e fazendo cada grupo corresponder a um dígito hexadecimal. Por, exemplo, a conversão o número octal 1057 em hexadecimal: Passagem ao binário: 1 4 5 7 001 000 101 111 Passagem ao hexadecimal: 0010 0010 1111 2 2 F Assim, tem-se 1057oct = 22Fhex
  • 10. 9 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee Conversão Hexadecimal – Octal Esta conversão, assim com a anterior, exige um passo intermediário em que se utiliza o sistema binário. Converte-se o número hexadecimal em binário e este em octal. Exemplo: Converter o número hexadecimal 1F4 em octal. Tabela de valores N.º Decimal N.º Binário N.º Hexadecimal N.º Octal 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 8 10 9 1001 9 11 10 1010 A 12 11 1011 B 13 12 1100 C 14 13 1101 D 15 14 1110 E 16 15 1111 F 17 16 10000 10 20 17 10001 11 21 Sistema hexadecimal O sistema hexadecimal é um sistema de numeração vinculado à informática, já que os computadores interpretam as linguagens de programação em bytes, que são compostos de oito dígitos. À medida que os computadores e os programas aumentam a sua capacidade de processamento, funcionam com múltiplos de oito, como 16 ou 32. Por este motivo, o sistema hexadecimal, de 16 dígitos, é um standard na informática. Como o nosso sistema de numeração só dispõe de dez dígitos, devemos incluir seis letras para completar o sistema. Estas letras e o seu valor em decimal são: A = 10, B = 11, C = 12, D = 13, E = 14 e F = 15.
  • 11. 10 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee O sistema hexadecimal é posicional e por ele o valor numérico associado a cada signo depende da sua posição no número, e é proporcional as diferentes potencias da base do sistema que neste caso é 16. Vejamos um exemplo numérico: 3E0,A (16) = 3×162 + E×161 + 0×160 + A×16-1 = 3×256 + 14×16 + 0×1 + 10×0,0625 = 992,625 A utilização do sistema hexadecimal nos computadores, deve-se a que um dígito hexadecimal representa quatro dígitos binários (4 bits = 1 nibble), por tanto dois dígitos hexadecimais representam oito dígitos binários (8 bits = 1 byte) que como é sabido é a unidade básica de armazenamento de informação. Tabela de multiplicação 1 2 3 4 5 6 7 8 9 A B C D E F 10 1 1 2 3 4 5 6 7 8 9 A B C D E F 10 2 2 4 6 8 A C E 10 12 14 16 18 1A 1C 1E 20 3 3 6 9 C F 12 15 18 1B 1E 21 24 27 2A 2D 30 4 4 8 C 10 14 18 1C 20 24 28 2C 30 34 38 3C 40 5 5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B 50 6 6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A 60 7 7 E 15 1C 23 2A 31 38 3F 46 4E 54 5D 62 69 70 8 8 10 18 20 28 30 38 40 48 50 58 60 68 70 78 80 9 9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 90 A A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96 A0 B B 16 21 2C 37 42 4E 58 63 6E 79 84 8F 9A A5 B0 C C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4 C0 D D 1A 27 34 41 4E 5D 68 75 82 8F 9C A9 B6 C3 D0 E E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2 E0 F F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1 F0 10 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0 100
  • 12. 11 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee Desatres Numéricos: http://ta.twi.tudelft.nl/users/vuik/wi211/disasters.html#ariane Patriot Missile Failure On February 25, 1991, during the Gulf War, an American Patriot Missile battery in Dharan, Saudi Arabia, failed to intercept an incoming Iraqi Scud missile. The Scud struck an American Army barracks and killed 28 soldiers. A report of the General Accounting office, GAO/IMTEC-92-26, entitled Patriot Missile Defense: Software Problem Led to System Failure at Dhahran, Saudi Arabia reported on the cause of the failure. It turns out that the cause was an inaccurate calculation of the time since boot due to computer arithmetic errors. Specifically, the time in tenths of second as measured by the system's internal clock was multiplied by 1/10 to produce the time in seconds. This calculation was performed using a 24 bit fixed point register. In particular, the value 1/10, which has a non-terminating binary expansion, was chopped at 24 bits after the radix point. The small chopping error, when multiplied by the large number giving the time in tenths of a second, lead to a significant error. Indeed, the Patriot battery had been up around 100 hours, and an easy calculation shows that the resulting time error due to the magnified chopping error was about 0.34 seconds. (The number 1/10 equals 1/24 +1/25 +1/28 +1/29 +1/212 +1/213 +.... In other words, the binary expansion of 1/10 is 0.0001100110011001100110011001100.... Now the 24 bit register in the Patriot stored instead 0.00011001100110011001100 introducing an error of 0.0000000000000000000000011001100... binary, or about 0.000000095 decimal. Multiplying by the number of tenths of a second in 100 hours gives 0.000000095×100×60×60×10=0.34.) A Scud travels at about 1,676 meters per second, and so travels more than half a kilometer in this time. This was far enough that the incoming Scud was outside the "range gate" that the Patriot tracked. Ironically, the fact that the bad time calculation had been improved in some parts of the code, but not all, contributed to the problem, since it meant that the inaccuracies did not cancel. The following paragraph is excerpted from the GAO report. The range gate's prediction of where the Scud will next appear is a function of the Scud's known velocity and the time of the last radar detection. Velocity is a real number that can be expressed as a whole number and a decimal (e.g., 3750.2563...miles per hour). Time is kept continuously by the system's internal clock in tenths of seconds but is expressed as an integer or whole number (e.g., 32, 33, 34...). The longer the system has been running, the larger the number representing time. To predict where the Scud will next appear, both time and velocity must be expressed as real numbers. Because of the way the Patriot computer performs its calculations and the fact that its registers are only 24 bits long, the conversion of time from an integer to a real number cannot be any more precise than 24 bits. This conversion results in a loss of precision causing a less accurate time calculation. The effect of this inaccuracy on the range gate's calculation is directly proportional to the target's velocity and the length of the the system has been running. Consequently, performing the conversion after the Patriot has been running continuously for extended periods causes the range gate to shift away from the center of the target, making it less likely that the target, in this case a Scud, will be successfully intercepted.
  • 13. 12 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee Explosion of the Ariane 5 On June 4, 1996 an unmanned Ariane 5 rocket launched by the European Space Agency exploded just forty seconds after lift-off. The rocket was on its first voyage, after a decade of development costing $7 billion. The destroyed rocket and its cargo were valued at $500 million. A board of inquiry investigated the causes of the explosion and in two weeks issued a report. It turned out that the cause of the failure was a software error in the inertial reference system. Specifically a 64 bit floating point number relating to the horizontal velocity of the rocket with respect to the platform was converted to a 16 bit signed integer. The number was larger than 32,768, the largest integer storeable in a 16 bit signed integer, and thus the conversion failed. The report of the Inquiry Board is available. The following paragraphs are extracted from that report. On 4 June 1996, the maiden flight of the Ariane 5 launcher ended in a failure. Only about 40 seconds after initiation of the flight sequence, at an altitude of about 3700 m, the launcher veered off its flight path, broke up and exploded. The failure of the Ariane 501 was caused by the complete loss of guidance and attitude information 37 seconds after start of the main engine ignition sequence (30 seconds after lift-off). This loss of information was due to specification and design errors in the software of the inertial reference system. The internal SRI* software exception was caused during execution of a data conversion from 64-bit floating point to 16-bit signed integer value. The floating point number which was converted had a value greater than what could be represented by a 16-bit signed integer. *SRI stands for Système de Référence Inertielle or Inertial Reference System. The Vancouver Stock Exchange In 1982 the Vancouver Stock Exchange instituted a new index initialized to a value of 1000.000. The index was updated after each transaction. Twenty two months later it had fallen to 520. The cause was that the updated value was truncated rather than rounded. The rounded calculation gave a value of 1098.892.
  • 14. 13 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee Rounding error changes Parliament makeup Debora Weber-Wulff, 7 Apr 1992 We experienced a shattering computer error during a German election this past Sunday (5 April). The elections to the parliament for the state of Schleswig-Holstein were affected. German elections are quite complicated to calculate. First, there is the 5% clause: no party with less than 5% of the vote may be seated in parliament. All the votes for this party are lost. Seats are distributed by direct vote and by list. All persons winning a precinct vote (i.e. having more votes than any other candidate in the precinct) are seated. Then a complicated system (often D'Hondt, now they have newer systems) is invoked that seats persons from the party lists according to the proportion of the votes for each party. Often quite a number of extra seats (and office space and salaries) are necessary so that the seat distribution reflects the vote percentages each party got. On Sunday the votes were being counted, and it looked like the Green party was hanging on by their teeth to a vote percentage of exactly 5%. This meant that the Social Democrats (SPD) could not have anyone from their list seated, which was most unfortunate, as the candidate for minister president was number one on the list, and the SPD won all precincts: no extra seats needed. After midnight (and after the election results were published) someone discovered that the Greens actually only had 4,97% of the vote. The program that prints out the percentages only uses one place after the decimal, and had *rounded the count up* to 5%! This software had been used for *years*, and no one had thought to turn off the rounding at this very critical (and IMHO very undemocratic) region! So 4,97% of the votes were thrown away, the seats were recalculated, the SPD got to seat one person from the list, and now have a one seat majority in the parliament. And the newspapers are clucking about the "computers" making such a mistake. Debora Weber-Wulff, Institut fuer Informatik, Nestorstr. 8-9, D-W-1000 Berlin 31 dww@inf.fu- berlin.de +49 30 89691 124 http://www.iki.rssi.ru/jplmirror/mars/msp98/news/mco991110.html No comments...
  • 15. 14 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee The sinking of the Sleipner A offshore platform Nederlands The Sleipner A platform produces oil and gas in the North Sea and is supported on the seabed at a water depth of 82 m. It is a Condeep type platform with a concrete gravity base structure consisting of 24 cells and with a total base area of 16 000 m . Four cells are elongated to shafts supporting the platform deck. The first concrete base structure for Sleipner A sprang a leak and sank under a controlled ballasting operation during preparation for deck mating in Gandsfjorden outside Stavanger, Norway on 23 August 1991. 2 Immediately after the accident, the owner of the platform, Statoil, a Norwegian oil company appointed an investigation group, and SINTEF was contracted to be the technical advisor for this group. The investigation into the accident is described in 16 reports... The conclusion of the investigation was that the loss was caused by a failure in a cell wall, resulting in a serious crack and a leakage that the pumps were not able to cope with. The wall failed as a result of a combination of a serious error in the finite element analysis and insufficient anchorage of the reinforcement in a critical zone. A better idea of what was involved can be obtained from this photo and sketch of the platform. The top deck weighs 57,000 tons, and provides accommodation for about 200 people and support for drilling equipment weighing about 40,000 tons. When the first model sank in August 1991, the crash caused a seismic event registering 3.0 on the Richter scale, and left nothing but a pile of debris at 220m of depth. The failure involved a total economic loss of about $700 million. The 24 cells and 4 shafts referred to above are shown to the left while at the sea surface. The cells are 12m in diameter. The cell wall failure was traced to a tricell, a triangular concrete frame placed where the cells meet. At right one is pictured undergoing failure testing. The post accident investigation traced the error to inaccurate finite element approximation of the linear elastic model of the tricell (using the popular finite element program NASTRAN). The shear stresses
  • 16. 15 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee were underestimated by 47%, leading to insufficient design. In particular, certain concrete walls were not thick enough. More careful finite element analysis, made after the accident, predicted that failure would occur with this design at a depth of 62m, which matches well with the actual occurrence at 65m. Further information can be found in the series of reports available for purchase from SINTEF and in an article from Concrete International, August 1997. This description is adapted from The sinking of the Sleipner A offshore platform by Douglas N. Arnold. The Tacoma bridge (erro de projeto) On November 7, 1940, at approximately 11:00 AM, the first Tacoma Narrows suspension bridge collapsed due to wind-induced vibrations. Situated on the Tacoma Narrows in Puget Sound, near the city of Tacoma, Washington, the bridge had only been open for traffic a few months. There is a short video of the bridge just before break-down (copyright owner The Camera Shop). There are also photo's available. Te twisting motion of the center span just prior to failure.
  • 17. 16 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee The nature and severity of the torsional movement is revealed in this picture taken from the Tacoma end of the suspension span. When the twisting motion was at the maximum, elevation of the sidewalk at the right was 28 feet (8.5m) higher than the sidewalk at the left. This photograph actually caught the first failure shortly before 11 o'clock, as the first concrete dropped out of the roadway.
  • 18. 17 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee A few minutes after the first piece of concrete fell, this 600 foot section broke out of the suspension span, turning upside down as it crashed in Puget Sound. Notice the car in the top right corner. This photograph shows the sag in the east span after the failure. With the centre span gone there was nothing to counter balance the weight of the side spans. The sag was 45 feet (13.7m). Also the immense size of the anchorages is illustrated.
  • 19. 18 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee This picture was taken shortly after the failure.
  • 20. 19 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee Capítulo 1 (aulas 03 a 05) Zeros de Funções Reais Freqüentemente, um problema de Física, Engenharia (entre outros) é resolvido encontrando-se o(s) valor(es) para o(s) qual(is) uma determinada função se anula: ( ) 0=xf . (1.1) Muitas vezes o problema a ser resolvido não é linear e as funções são do tipo polinomial de ordem alta ou transcendental (seno, co-seno, exponencial, etc...) e não há receitas diretas simples para resolvê-lo, como seria no caso de um polinômio de segundo grau, ou mesmo do quarto, para os quais existe solução algébrica. Às vezes poderemos usar os métodos que veremos nesse capítulo para encontrar valores para os quais não há uma representação finita, como por exemplo 2 , fazendo ( ) 02 2 =−= xxf . Para encontrar os valores da variável x em que a função se anula nessas funções, podemos lançar mão de uma variedade de métodos, a maioria deles do tipo iterativo, isto é, que consistem de procedimentos que se repetem até que uma determinada condição (chamada critério de parada) seja satisfeita. Figura 1.1 O gráfico ao lado mostra um exemplo de função que tem mais de uma raiz. Graficamente, é simples identificar a condição de nulidade da função quando sua curva corta o eixo das abscissas e o estudo das funções (domínio, pontos de máximo e mínimo, pontos de inflexão, etc...) é valioso para se encontrar o valor dessas raízes. Podemos, todavia, evitar a maior parte desse trabalho e concentrarmo- nos na busca do valor das raízes apenas. Não raro, a solução do problema (1.1) só é possível no plano complexo e teríamos que utilizar métodos um tanto mais complicados para encontrá-las. Aqui trataremos apenas de raízes reais. Basicamente são dois os passos necessários para a determinação das raízes das funções: I) Isolamento das raízes. II) Refinamento. No primeiro passo, encontramos um intervalo [a,b], dentro do qual a raiz se encontra. A forma mais direta de fazê-lo é ir substituindo valores para a função até percebermos que ela muda de sinal, 0)()( <⋅ bfaf . (1.2) Note que o fato esta condição não ser confirmada não exclui necessariamente a presença de raízes no intervalo, como no caso da figura 1.2 -2 -1 1 2 0.25 0.5 0.75 1 1.25 1.5 1.75 a b Figura 1.2
  • 21. 20 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee No segundo passo, precisamos utilizar algum método que aproxime cada vez mais um valor ou uma faixa de valores iniciais do valor real da raiz. O método precisa ser eficaz (precisa convergir para a solução) e ser eficiente (convergir num número de iterações não muito grande) para ser útil, e a cada situação o método mais indicado pode variar. Cada um desses métodos é iterativo (recorrente) e segue um fluxograma básico de funcionamento da seguinte forma: A partir de agora descreveremos sucintamente cada um dos métodos básicos para se encontrar raízes de funções não- lineares: Dados Iniciais Cálculos iniciais k=1 Calcular Aproximação Critério de Parada Cálculos Intermediários Cálculos Finais k=k+1 Fim S N Figura 1.1 Fluxograma geral dos métodos iterativos 1) Método da Bissecção: 2) Método do Ponto Falso: 3) Método do Ponto Fixo; 4) Método de Newton- Raphson; 5) Método da Secante. A seguir compararemos a convergência dos métodos. Antes disso porém, discutiremos um pouco os critérios que temos que satisfazer para definir s nossos cálculos já produziram resultados satisfatórios ou não, os chamados Critérios de Parada. Basicamente, podemos elencar dois critérios de parada bastante simples e intuitivos. O primeiro é o da proximidade da solução, ou seja, o quão longe da solução final (ξ) está o valor de x com que estamos trabalhando. Claro que, por definição, não sabemos de antemão o valor de ξ, mas podemos trabalhar com intervalos gradualmente reduzidos dentro dos quais sabemos que a raiz se encontra (como veremos mais adiante no método da bissecção). Assim, se 1εξ <−kx , onde xk é a k-ésimo valor de x que tentamos e ε1 é o nosso erro tolerável, damo-nos por satisfeitos e encerramos o cálculo. Um segundo critério é o do valor da função f(xk) no ponto em que estamos trabalhando. Se ( ) 2ε<kxf , encerraremos o processo iterativo. Cada um desses critérios tem suas vantagens e desvantagens, e devamos escolher o método baseado no problema específico que estamos resolvendo. O primeiro critério, por exemplo, pode não ser suficiente na medida em que temos uma derivada alta da função e, mesmo estando próximos de ξ, podemos ter um valor excessivamente grande de f(xk). O segundo critério pode falhar exatamente na situação oposta. Podemos ter a função variando pouco próximo à solução, ou mesmo de outra forma alcançarmos um valor pequeno para f(xk) mesmo estando longe da solução ξ. Podemos também usar ambos os critérios, para assegurar que estamos realmente próximos de ξ e com valor pequeno de f, mas isso pode implicar num tempo de cálculo excessivamente grande. A cada caso devemos julgar nossas necessidades e recursos (sempre escassos) para obtermos o melhor resultado possível.
  • 22. 21 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee I Método da Bissecção: Consiste em, depois de isolado o intervalo [a,b], dividir esse intervalo ao meio sucessivas vezes, sempre mantendo a raiz dentro do intervalo de cada iteração. Exemplo: A função cujo gráfico é mostrado abaixo tem uma raiz claramente no intervalo [1, 2]. Se dividirmos esse intervalo em dois, teremos dois intervalos: [1, 1,5] e [1,5 , 2]. Pelo mesmo teste (1.2) vemos que a raiz continua no segundo sub-intervalo, que será novamente dividido ao meio, assim, podemos seguir os intervalos a cada iteração (k) através da tabela abaixo e esse intervalo sempre converge para a raiz. O problema do método da bissecção é que ele converge de forma extremamente lenta. Podemos ver que os intervalos seguem uma progressão da forma k kk kk abab ab 22 0011 − = − =− −− . Como o critério de parada naturalmente indicado é o de que ε< − k ab 2 00 , temos que kab 200 < − ε , ( ) ( ) ( )εloglog2log 00 −−> abk e, obtemos a convergência necessária após um número de iterações ( ) ( ) ( )2log loglog 00 ε−− > ab k II Método da Posição Falsa Para resolver, em parte esse problema, criou-se o método derivado do método da Bissecção que tenta acelerar a convergência fazendo não uma média aritmética do intervalo, mas uma média ponderada, em que o peso das aproximações para cada extremo do intervalo [a,b] é o valor da função no outro extremo, assim, o ponto de bissecção passa a pender mais para o lado em que os valores da função se aproximam mais de zero. Tal método é chamado de Método da Posição Falsa. Neste, a k-ésima posição é dada por ( ) ( ) ( ) ( )11 111 −− −−−− − − = kk kkkak k afbf afbbfa x . k x f(x) bk-ak 1 1,5 -0.0252505 0,5 2 1,75 0.0358986 0,25 3 1,625 0.00610313 0,125 4 1,5625 -0.00937844 0,0625 5 1,59375 -0.00158884 0,03125 6 1,60938 0.00226934 0,015625 7 1,61719 0.00418929 0.0078125 8 1.61328 0.00323008 0.000339674 9 1.61133 0.0027499 0.000169837 10 1.61035 0.00250967 0.0000849185 0.2 -1 1 2 3 -0.8 -0.6 -0.4 -0.2 a0 b0a1 Figura 1.2 f(x) =0,25(x-2) + 0.1 sen[x]
  • 23. 22 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee Assim, para a função , podemos observar no gráfico da Figura 1.3 que x é bem mais próximo de ξ do que se utilizássemos o método da Bissecção. 39)( 3 +−= xxxf Observe que, da mesma forma que o método da Bissecção, o método da posição falsa converge sempre que a função é contínua no intervalo [a,b]. Se a derivada segunda da função não muda no intervalo, essa convergência é ainda mais visível. Tente iniciar este processo no mesmo gráfico ao lado usando como a0 o ponto x=1 e verás que a convergência fica um tanto retardada por conta da proximidade com outra raiz externa ao intervalo. -1 1 2 3 4 5 10 20 30 a0 b0 x1 ξ Figura 1.3 III Método do Ponto Fixo Este método consiste em transformar a equação de forma a se obter o valor de x a partir de uma função de iteração ϕ(x) que é fruto da própria função original. Fazendo x=ϕ(x), podemos entender esse processo como a interseção do gráfico da função ϕ(x) com a função identidade. Por exemplo: Seja a função ( ) 062 =−+= xxxf . Podemos imaginar várias funções de iteração: ( ) ( ) ( ) ( ) . 1 6 e1 6 ;6 ;6 4 3 2 2 1 + = −= −= −= x x x x xx xx ϕ ϕ ϕ ϕ A forma geral das funções é do tipo ( ) ( ) ( )xfxAxx +=ϕ , com a condição de que A(ξ)≠0. Vemos no gráfico da Figura 1.4 um exemplo em que a função de iteração que leva o procedimento a uma convergência á ra ocorre. iz da função. Infelizmente, nem sempre a convergência No caso da função mostrada acima, tomemos a função de convergência ϕ2(x) com x0=1,5. Teremos x1=6-1,52 =3,75; x2=6-3,752 =-8.0625; x3=6-(-8.0625)2 =-59.003906; ... e o resultado diverge.
  • 24. 23 NNoottaass ddee AAuullaa ddee AAnnáálliissee NNuumméérriiccaa PPrrooffeessssoorr GGeessiill AAmmaarraannttee Se tomarmos a ϕ1(x), com o mesmo valor inicial, teremos: ... ;99809,196944,16 ;96944,112132,26 ;12132,2516 3 2 1 == == == -x -x ,-x que converge rapidamente para a solução ξ=2. O que precisamos agora é de um critério para escolhermos entre as várias possíveis funções de iteração que podem ser apresentadas para a solução de um dado problema. O critério que usaremos é baseado no seguinte teorema: Se i) ϕ(x) e ϕ’(x)são contínuas num intervalo I centrado em ξ , ii) ,1)(' <≤ Mxϕ para qualquer x pertencente ao intervalo I e iii) x0 pertence a I. Então a seqüência de iterações {xk}convergirá para ξ.