You are on page 1of 24

Notas de Aulas de Anlise Numrica

Professor Gesil Amarante Primeiro semestre de 2006

Nota inicial
Estas notas de aulas no tm 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 crtica (uns mais que outros, claro) no por acaso. Use-os. Apenas adiciono as estes a particular nfase que este vosso humilde ministrante tem dado durante as aulas a tpicos constantes do programa da disciplina. Com a vantagem de os alunos no precisarem reservar na biblioteca ou pagar pela posse. Sugestes e observaes de vocs, alunos, sero sempre bem-vindas. Fico feliz se essas notas passarem no julgamento de vocs como teis durante este tempo em que aprenderemos juntos um pouco de nossa humana cincia.

Referncias: [1] Clculo Numrico Dlcio Sperandio, Joo Teixeira Mendes e Luiz Henry Monken e Silva Pearson Editora [2] Clculo Numrico Aspectos Tericos e Computacionais Mrcia A. Gomes Ruggiero Vera Lcia da Rocha Lopes 2a Edio Pearson Editora

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

Introduo (aulas 01 e 02)


Problema Real

Problema Numrico
Modelo Fsico
Quando os dados de entrada e de sada so conjuntos finitos e discretos. Casos como a equao abaixo x 5 + 5 x 4 10 x 3 + 2 x 2 8 x + 5 = 0 no so um problemas numricos. Algumas vezes podemos transformar problemas no-numricos em problemas numricos. O caso da equao diferencial abaixo um exemplo (retirado de [2] ) no um problema numrico:

Modelo Matemtico

Escolha do mtodo Numrico Implementao

d2 y 2 2 p/ x (0,5) dx 2 = x + y y ( 0) = 0 y ( 5) = 1

Anlise dos resultados

mas que pode ser transformado num problema numrico:


f ( x + h) f ( x h) f '( x) = ; 2h Por diferenas finitas: f '' x = f ( x + h ) 2 f ( x ) + f ( x ) . ( ) h2

yi +1 2 yi + yi -1 = h 2 ( x 2 + y 2 ) , i = 1, 2,....m 1 y0 = 0 y =1 m Mtodo Numrico

Mtodo empregado para a expresso do problema como um problema numrico, como no exemplo acima, mais o conjunto de procedimentos para a soluo. Para a escola do mtodo mais apropriado devemos ter em mente a preciso, a capacidade de resoluo do problema especfico e o custo computacional do mtodo.

Notas de Aula de Anlise Numrica


Algoritmo

Professor Gesil Amarante

Descrio seqencial do mtodo.


Mtodos Iterativos

Freqentemente utilizamos mtodos diretos e mtodos iterativos. A distino entre um e outro ficar clara mais adiante, mas, essencialmente, o mtodo iterativo apresenta aspecto de procedimento circular que interrompido quando satisfeita uma condio (teste de parada). Assim, estes mtodos tm trs etapas, basicamente, Tentativa Inicial Equao de recorrncia Teste da Parada

Exemplo: mudana de base numrica.

Bases Numricas
As representaes numricas so, por princpio, equivalentes, sendo que uma ou outra pode ser mais til em determinado tipo de situao. A escolha do sistema decimal que adotamos (na maior parte das vezes) se deu por alguma convenincia e mais por uma conjuno de fatores histricos que no vale a pena aqui discutir. O fato que qualquer nmero pode ser descrito em qualquer base e que essa representao obedece seguinte regra bsica: Seja a base , nas quais o Nmero N vai ser representado com os algarismos aj:

N = a j j + a j 1 j 1 + a j 2 j 2 + ... + a0 0 + .a1 1 + ... + a j j


Para transformarmos N de uma base para outra, por exemplo, de decimal para binria e vice versa, precisamos fazer sucessivas multiplicaes ou divises pela base-alvo, dependendo se estamos falando de nmeros inteiros ou reais Vamos trabalhar primeiro com inteiros: pgina de ttulo do livro " Libro Intitulado Arithmetica Practica " por Juan de Yciar, matemtico e calgrafo Basco, Saragossa 1549.

Binrios a decimais

Dado um nmero N, binrio, para express-lo em decimal, deve-se escrever cada nmero que o compe (bit), multiplicado pela base do sistema (base = 2), elevado posio que ocupa. Exemplo: 1001(binrio) 1 23 + 0 22 + 0 21 + 1 20 = 9 Portanto, 1001 9 em decimal

Notas de Aula de Anlise Numrica


Decimais a Binrios

Professor Gesil Amarante

Dado um nmero decimal, para convert-lo em binrio, basta dividi-lo sucessivamente por 2, anotando o resto da diviso inteira: 12(decimal) 12 / 2 = 6 + 0; 6 / 2 = 3 + 0; 3 / 2 = 1 + 1; 1 / 2 = 0 + 1.

Observe que importante que os nmeros sejam lidos de trs para frente, ou seja: 1100 12 em binrio.

Outro mtodo para converso de decimal para binrio


Considere alguns resultados da potncia 2 x e exponha-os em tabela por ordem decrescente:
2048 1024 512 256 128 64 32 16 8 4 2 1

Deste modo possvel converter grandes quantidades de nmeros decimais para binrios:
Numero decimal 2048 1024 512 256 128 64 32 16 8 4 2 1 Resultado Binario 354 1634 104 2 38 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 101100010 11001100010 1101000 10 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 verificao de uma possvel subtrao no-negativa. 2048>1634. Logo fica "0" (por exemplo, 1634-2048 resultava num nmero 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 3

Notas de Aula de Anlise Numrica


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"

Professor Gesil Amarante

Soma de nmeros binrios


Recordando as seguintes somas bsicas: 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: comea-se a somar desde a esquerda, no exemplo, 1+1=10, ento escrevese 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 nmeros binrios


O produto de nmeros binrios especialmente simples, j que o 0 multiplicado por qualquer coisa resulta 0, e o 1 o elemento neutro do produto. Por exemplo, a multiplicao de 10110 por 1001:
10110 1001 --------10110 00000 00000 10110 --------11000110

Notas de Aula de Anlise Numrica


Nmeros Reais

Professor Gesil Amarante

No caso dos inteiros aplicamos sucessivas divises por 2, guardando os restos. Aqui faremos o contrrio, sucessivas multiplicaes por 2, guardando-se os zeros. Por exemplo: (0.125)10 = .a1a2 a3 a4 ... 2 (0.125)10 = 0.250 ; No h parte real, resultado 0; 2 (0.250)10 = 0.50 ; No h parte real, resultado 0; 2 (0.50)10 = 1.0 ; H parte real, resultado 1; Resto 0. Assim, (0.125)10 = ( 0.001)2

Representao Finita
Nem todos os nmeros que so representados com um nmero finito de algarismos numa base o so nas outras. Por exemplo, 0.1 tem representao finita na base 10, mas, na base 2, ser que tambm o ? Vejamos 2 (0,1)10 = 0, 2 ; No h parte real, resultado 0; 2 (0,2)10 = 0, 4 ; No h parte real, resultado 0; 2 (0,4)10 = 0,8 ; No h parte real, resultado 0; 2 (0,8)10 = 1, 6 ; H parte real, resultado 1, sobra 0,6; 2 (0,6)10 = 1, 2 ; H parte real, resultado 1, sobra 0,2; 2 (0,2)10 = 0, 4 ; No h parte real, resultado 0; . . . Assim, (0.1)10 = ( 0.0001100110011...)2 Neste e em outros casos semelhantes, ficamos sujeitos ao limite fsico de representao da mquina que usamos para fazer os clculos. Tal limite srio candidato propagao de erros e um exemplo de conseqncia disso mostrado no texto pgina 12.

Aritmtica de Ponto Flutuante


Um computador representa nmeros reais da seguinte forma:

N = (.a1a2 a3a4 ...at ) e ,


onde (.a1a2 a3 a4 ...) a representao com t algarismos do nmero na base , chamada mantissa, sendo que a1 deve ser o primeiro algarismo significativo (no nulo) e e um expoente, cujo valor vai de um limite inferior -m at um limite superior M, que depende da capacidade da mquina. Esta forma de representao foi descoberta por Konrad Zuse (1910-1995) para os seus computadores eletromecnicos Z1 e Z3, no incio da dcada de 40. 5

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

Assim: 24543=0,24543 105 , se a mquina pode apresentar 5 algarismos na mantissa, ou 24543=0,245 105 , se a mquina pode apresentar 3 algarismos na mantissa, ou ainda 24543=0,25 105 , se a mquina pode apresentar 2 algarismos na mantissa. Repare que usamos de arredondamento, no truncamento para escolhermos o ltimo algarismo apresentado na mantissa. Um nmero demasiado grande para ser apresentado por uma mquina provoca o que chamamos de OVERFLOW (um nmero por demais pequeno causa um UNDERFLOW). Nesses casos, dependendo da mquina e da linguagem em que programamos, os efeitos pem ser os mais variveis, desde o truncamento involuntrio parada forada do clculo, ou a representao simblica NAN.

Erros e condicionamento
Um problema numrico dito mal-condicionado ou instvel quando sua soluo muito suscetvel aos dados de entrada. No exemplo abaixo temos uma simples equao do segundo grau x 2 100.22 x + 1.2371 = 0 , que tem como solues os valores para x encontrados pelo mtodo de Bscara:

b + b 2 4ac b b 2 4ac e x2 = . 2a 2a Faamos, pois uso desse mtodo para a soluo dessa equao, levando-se em conta que o nmero de algarismos que podemos usar para efetuar os clculos sempre finito (no caso, cinco). Nossos passos sero b 2 = 10044; x1 =
b 2 4ac = 10039; b 2 4ac = 100,19 e, finalmente, chegaremos s solues x1 = 100, 20 e x2 = 0, 015 . Acontece que se substituirmos essas solues na equao original, no encontraremos a confirmao de sua validade. Se ao invs disso usarmos uma propriedade das solues, c x2 = = 0, 012346 , ax1 que, podemos facilmente testar, muito mais prximo da soluo real. Note que neste caso o problema no 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 subtrao de nmeros muito prximos, prximos do limite da representao a ns imposta.

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

Brindes:
Aqui vo algumas informaes extra para vocs aumentarem sua cultura:

Sistema octal
Origem: Wikipdia, a enciclopdia livre.
Sistema Octal um sistema de numerao cuja cuja base 8, ou seja, utiliza 8 smbolos para a representao de quantidade. No ocidente, estes smbolos so os algarismos arbicos: 0 1 2 3 4 5 6 7

O octal foi muito utilizado em informtica como uma alternativa mais compacta ao binrio na programao em linguagem de mquina. Hoje, o sistema hexadecimal mais utilizado como alternativa ao binrio. Este sistema tambm um sistema posicional e a posio de seus algarismos determinada em relao vrgula decimal. Caso isso no ocorra, supe-se implicitamente colocada direita do nmero. A aritmtica desse sistema semelhante a dos sistemas decimal e binrio, o motivo pelo qual no ser apresentada. Exemplo: - Qual o nmero decimal representado pelo nmero octal 4701? Utilizar o TFN. 4 x 8 + 7 x 8 + 0 x 8 + 1 x 8 = = 2048 + 448 + 0 + 1 = 2497

Converses de um sistema para outro


Converso Decimal Octal
Mtodo das divises sucessivas por 8

utilizado para converter nmeros decimais inteiros para o sistema octal e consiste em dividir sucessivamente por 8 o nmero e os quocientes obtidos nessas divises at que o quociente seja 0. O nmero octal desejado formado pelos restos das divises escritas na ordem inversa da sua obteno.
Mtodo de multiplicaes sucessivas por 8

utilizado para converter uma frao decimal para o sistema octal. Multiplica-se a frao decimal por 8, obtendo-se na parte inteira do resultado o primeiro dgito da frao octal resultante. O processo repetido sucessivamente com a parte fracionria do resultado para obter os dgitos seguintes e termina quando a parte fracionria nula ou inferior medida de erro especificada. Exemplo: Converter a frao decimal 0.140625 em octal. 0.140625 x 8 = 1.125 0.125 x 8 = 1.0 Combinamos os dois mtodos anteriores podemos converter para octal nmeros decimais com parte inteira e fracionria.
Mtodo de subtrair potncias de 8

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

Outro mtodo de converso de nmeros decimais para o sistema octal que serve para nmeros com partes inteiras e fracionria o de subtrair potncias de 8. semelhante ao estudado para a converso decimal binrio e para a sua aplicao necessria uma tabela de potncias de 8.

Converso Octal Decimal


Existem vrios mtodos, sendo mais comumente utilizado o proveniente do TFN, em que se faz a converso de forma direta atravs da frmula. Exemplo: Converter o nmero octal 764 para o sistema decimal 764 (10) = 7 x 8 + 6 x 8 + 4 x 8 = 448 + 48 + 4 = 500 (8)

Converso Octal Binrio


Quando existir necessidade de converter nmeros octais em binrios, deve-se separar cada dgito do nmero octal substitu-lo pelo seu valor correspondente de binrio. Exemplo: Converter o nmero octal 1572 em binrio. Logo, 1 5 7 2 = 001 101 111 010
Converso Binrio Octal

Para converter um nmero binrio em octal, executa-se o processo inverso ao anterior. Agrupam-se os dgitos binrios de 3 em 3 do ponto decimal para a esquerda e para a direita, substituindo-se cada trio de dgitos binrios pelo equivalente dgito octal. Por, exemplo, a converso o nmero binrio 1010111100 em octal: 001 010 111 100 1 2 7 4

Assim, tem-se 1010111100bin = 1274oct


Converso Octal Hexadecimal

Para esta converso necessrio executar um passo intermedirio utilizando o sistema binrio. Primeiramente converte-se o nmero octal em binrio e depois converte-se o binrio para o sistema hexadecimal, agrupando-se os dgitos de 4 em 4 e fazendo cada grupo corresponder a um dgito hexadecimal. Por, exemplo, a converso o nmero octal 1057 em hexadecimal: Passagem ao binrio: 1 4 5 7 001 000 101 111 Passagem ao hexadecimal: 0010 0010 1111 2 2 F

Assim, tem-se 1057oct = 22Fhex 8

Notas de Aula de Anlise Numrica


Converso Hexadecimal Octal

Professor Gesil Amarante

Esta converso, assim com a anterior, exige um passo intermedirio em que se utiliza o sistema binrio. Converte-se o nmero hexadecimal em binrio e este em octal. Exemplo: Converter o nmero hexadecimal 1F4 em octal.

Tabela de valores
N. Decimal N. Binrio N. Hexadecimal N. Octal

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001

0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11

0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21

Sistema hexadecimal
O sistema hexadecimal um sistema de numerao vinculado informtica, j que os computadores interpretam as linguagens de programao em bytes, que so compostos de oito dgitos. medida que os computadores e os programas aumentam a sua capacidade de processamento, funcionam com mltiplos de oito, como 16 ou 32. Por este motivo, o sistema hexadecimal, de 16 dgitos, um standard na informtica. Como o nosso sistema de numerao s dispe de dez dgitos, devemos incluir seis letras para completar o sistema. Estas letras e o seu valor em decimal so: A = 10, B = 11, C = 12, D = 13, E = 14 e F = 15. 9

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

O sistema hexadecimal posicional e por ele o valor numrico associado a cada signo depende da sua posio no nmero, e proporcional as diferentes potencias da base do sistema que neste caso 16. Vejamos um exemplo numrico: 3E0,A (16) = 3162 + E161 + 0160 + A16-1 = 3256 + 1416 + 01 + 100,0625 = 992,625 A utilizao do sistema hexadecimal nos computadores, deve-se a que um dgito hexadecimal representa quatro dgitos binrios (4 bits = 1 nibble), por tanto dois dgitos hexadecimais representam oito dgitos binrios (8 bits = 1 byte) que como sabido a unidade bsica de armazenamento de informao.

Tabela de multiplicao
1 2 1 1 2 2 2 4 3 3 6 4 4 8 3 4 5 6 7 8 9 A B C D E F 10

3 6 9

4 8

8 9

A B C D E F

10

A C E 10 12 14 16 18 1A 1C 1E 20 12 15 18 1B 1E 21 24 27 2A 2D 30

C F

C 10 14 18 1C 20 24 28 2C 30 34 38 3C 40 14 19 1E 23 28 2D 32 37 3C 41 46 4B 50

5 5 A F

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

10

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

Desatres Numricos:
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.000000095100606010=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.

11

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

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 Systme de Rfrence 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.

12

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

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.fuberlin.de +49 30 89691 124

http://www.iki.rssi.ru/jplmirror/mars/msp98/news/mco991110.html No comments...

13

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

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 m2. 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.

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 14

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

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.

15

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

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.

16

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

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.

17

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

This picture was taken shortly after the failure.

18

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

Captulo 1 (aulas 03 a 05)


Zeros de Funes Reais
Freqentemente, um problema de Fsica, Engenharia (entre outros) resolvido encontrando-se o(s) valor(es) para o(s) qual(is) uma determinada funo se anula: f (x ) = 0 . (1.1) Muitas vezes o problema a ser resolvido no linear e as funes so do tipo polinomial de ordem alta ou transcendental (seno, co-seno, exponencial, etc...) e no h receitas diretas simples para resolv-lo, como seria no caso de um polinmio de segundo grau, ou mesmo do quarto, para os quais existe soluo algbrica. s vezes poderemos usar os mtodos Figura 1.1 que veremos nesse captulo para encontrar valores para os quais no h uma representao finita, como por exemplo 2 , fazendo f ( x ) = 2 x 2 = 0 . Para encontrar os valores da varivel x em que a funo se anula nessas funes, podemos lanar mo de uma variedade de mtodos, a maioria deles do tipo iterativo, isto , que consistem de procedimentos que se repetem at que uma determinada condio (chamada critrio de parada) seja satisfeita. O grfico ao lado mostra um exemplo de funo que tem mais de uma raiz. Graficamente, simples identificar a condio de nulidade da funo quando sua curva corta o eixo das abscissas e o estudo das funes (domnio, pontos de mximo e mnimo, pontos de inflexo, etc...) valioso para se encontrar o valor dessas razes. Podemos, todavia, evitar a maior parte desse trabalho e concentrarmonos na busca do valor das razes apenas. No raro, a soluo do problema (1.1) s possvel no plano complexo e teramos que utilizar mtodos um tanto mais complicados para encontr-las. Aqui trataremos apenas de razes reais. Basicamente so dois os passos necessrios para a determinao das razes das funes: I) II) Isolamento das razes. Refinamento.
1.75 1.5

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 funo at percebermos que ela muda de sinal, (1.2) f ( a ) f (b) < 0 . Note que o fato esta condio no ser confirmada no exclui necessariamente a presena de razes no intervalo, como no caso da figura 1.2

1.25 1 0.75 0.5 0.25

Figura 1.2 b
1 2

a
-2 -1

19

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

No segundo passo, precisamos utilizar algum mtodo que aproxime cada vez mais um valor ou uma faixa de valores iniciais do valor real da raiz. O mtodo precisa ser eficaz (precisa convergir para a soluo) e ser eficiente (convergir num nmero de iteraes no muito grande) para ser til, e a cada situao o mtodo mais indicado pode variar. Cada um desses mtodos iterativo (recorrente) e segue um fluxograma bsico de funcionamento da seguinte forma: A partir de agora descreveremos sucintamente cada Dados Iniciais um dos mtodos bsicos para se encontrar razes de funes noClculos iniciais lineares: 1) Mtodo da Bisseco: 2) Mtodo do Ponto Falso: k=1 3) Mtodo do Ponto Fixo; 4) Mtodo de NewtonRaphson; Calcular 5) Mtodo da Secante. Aproximao Critrio de Parada N Fim Clculos Intermedirios k=k+1
Figura 1.1 Fluxograma geral dos mtodos iterativos

S Clculos Finais

A seguir compararemos a convergncia dos mtodos. Antes disso porm, discutiremos um pouco os critrios que temos que satisfazer para definir s nossos clculos j produziram resultados satisfatrios ou no, os chamados Critrios de Parada.

Basicamente, podemos elencar dois critrios de parada bastante simples e intuitivos. O primeiro o da proximidade da soluo, ou seja, o quo longe da soluo final () est o valor de x com que estamos trabalhando. Claro que, por definio, no sabemos de antemo o valor de , mas podemos trabalhar com intervalos gradualmente reduzidos dentro dos quais sabemos que a raiz se encontra (como veremos mais adiante no mtodo da bisseco). Assim, se xk < 1 , onde xk a k-simo valor de x que tentamos e 1 o nosso erro tolervel, damo-nos por satisfeitos e encerramos o clculo. Um segundo critrio o do valor da funo f(xk) no ponto em que estamos trabalhando. Se ( ) f x k < 2 , encerraremos o processo iterativo. Cada um desses critrios tem suas vantagens e desvantagens, e devamos escolher o mtodo baseado no problema especfico que estamos resolvendo. O primeiro critrio, por exemplo, pode no ser suficiente na medida em que temos uma derivada alta da funo e, mesmo estando prximos de , podemos ter um valor excessivamente grande de f(xk). O segundo critrio pode falhar exatamente na situao oposta. Podemos ter a funo variando pouco prximo soluo, ou mesmo de outra forma alcanarmos um valor pequeno para f(xk) mesmo estando longe da soluo . Podemos tambm usar ambos os critrios, para assegurar que estamos realmente prximos de e com valor pequeno de f, mas isso pode implicar num tempo de clculo excessivamente grande. A cada caso devemos julgar nossas necessidades e recursos (sempre escassos) para obtermos o melhor resultado possvel. 20

Notas de Aula de Anlise Numrica I Mtodo da Bisseco:

Professor Gesil Amarante

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 iterao. Exemplo: A funo cujo grfico 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 iterao (k) atravs da tabela abaixo e esse intervalo sempre 0.2 converge para a raiz. a0 a1 b0 f (x) bk-ak k x -1 1 2 3 1 1,5 -0.0252505 0,5 -0.2 2 1,75 0.0358986 0,25 3 1,625 0.00610313 0,125 -0.4 4 1,5625 -0.00937844 0,0625 5 1,59375 -0.00158884 0,03125 -0.6 6 1,60938 0.00226934 0,015625 7 1,61719 0.00418929 0.0078125 -0.8 8 1.61328 0.00323008 0.000339674 9 1.61133 0.0027499 0.000169837 Figura 1.2 f(x) =0,25(x-2) + 0.1 sen[x] 10 1.61035 0.00250967 0.0000849185 O problema do mtodo da bisseco que ele converge de forma extremamente lenta. Podemos ver que os intervalos seguem uma progresso da forma b a k 1 b0 a 0 bk a k = k 1 = . 2 2k b a Como o critrio de parada naturalmente indicado o de que 0 k 0 < , temos que 2 b0 a0 < 2k ,
k log(2 ) > log(b0 a 0 ) log( ) e, obtemos a convergncia necessria aps um nmero de iteraes log(b0 a 0 ) log( ) k> log(2 )

II Mtodo da Posio Falsa


Para resolver, em parte esse problema, criou-se o mtodo derivado do mtodo da Bisseco que tenta acelerar a convergncia fazendo no uma mdia aritmtica do intervalo, mas uma mdia ponderada, em que o peso das aproximaes para cada extremo do intervalo [a,b] o valor da funo no outro extremo, assim, o ponto de bisseco passa a pender mais para o lado em que os valores da funo se aproximam mais de zero. Tal mtodo chamado de Mtodo da Posio Falsa. Neste, a k-sima posio dada por a f (bk 1 ) bk 1 f (a k 1 ) xk = k a . f (bk 1 ) f (a k 1 ) 21

Notas de Aula de Anlise Numrica

Professor Gesil Amarante

Assim, para a funo f ( x) = x 3 9 x + 3 , podemos observar no grfico da Figura 1.3 que x bem mais prximo de do que se utilizssemos o mtodo da Bisseco. Observe que, da mesma forma que o Figura 1.3 30 mtodo da Bisseco, o mtodo da posio falsa converge sempre que a funo contnua no intervalo [a,b]. Se a derivada segunda da funo 20 no muda no intervalo, essa convergncia ainda mais visvel. Tente iniciar este processo no mesmo 10 grfico ao lado usando como a0 o ponto x=1 e vers que a convergncia fica um tanto retardada por a0 b0 conta da proximidade com outra raiz externa ao -1 1 2 3 4 5 intervalo.

x1

III Mtodo do Ponto Fixo


Este mtodo consiste em transformar a equao de forma a se obter o valor de x a partir de uma funo de iterao (x) que fruto da prpria funo original. Fazendo x=(x), podemos entender esse processo como a interseo do grfico da funo (x) com a funo identidade. Por exemplo: Seja a funo f (x ) = x 2 + x 6 = 0 . Podemos imaginar vrias funes de iterao:

1 (x ) = 6 x ; 2 (x ) = 6 x 2 ;
6 1e x 6 4 (x ) = . x +1 A forma geral das funes do tipo (x ) = x + A( x ) f (x ) , com a condio de que A()0. Vemos no grfico da Figura 1.4 um exemplo em que a funo de iterao que leva o procedimento a uma convergncia raiz da funo. Infelizmente, nem sempre a convergncia ocorre. No caso da funo mostrada acima, tomemos a funo de convergncia 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.
22

3 (x ) =

Notas de Aula de Anlise Numrica


Se tomarmos a 1(x), com o mesmo valor inicial, teremos:
x1 = 6-1,5 = 2,12132; x 2 = 6-2,12132 = 1,96944; x3 = 6-1,96944 = 1,99809;

Professor Gesil Amarante

... que converge rapidamente para a soluo =2. O que precisamos agora de um critrio para escolhermos entre as vrias possveis funes de iterao que podem ser apresentadas para a soluo de um dado problema. O critrio que usaremos baseado no seguinte teorema:

Se i) (x) e (x)so contnuas num intervalo I centrado em , ii) ' ( x) M < 1, para qualquer x pertencente ao intervalo I e iii) x0 pertence a I. Ento a seqncia de iteraes {xk}convergir para .

23

You might also like