Professional Documents
Culture Documents
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
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
d2 y 2 2 p/ x (0,5) dx 2 = x + y y ( 0) = 0 y ( 5) = 1
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.
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
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:
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
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.
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
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).
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.
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.
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
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
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.
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
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
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
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
Desatres Numricos:
http://ta.twi.tudelft.nl/users/vuik/wi211/disasters.html#ariane
11
12
http://www.iki.rssi.ru/jplmirror/mars/msp98/news/mco991110.html No comments...
13
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
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.
15
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
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
18
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
Figura 1.2 b
1 2
a
-2 -1
19
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
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 )
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
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 ) =
... 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