Análise Numérica
Short Description
Análise Numérica Richard L. Burden...
Description
Preliminares matemáticos e análise de erros
45
componente de módulo grande apareça, o algoritmo muda a escala da soma anterior e continua a mudar a escala, calcular o quadrado e a soma dos números restantes. O algoritmo supõe que, na transição de números pequenos a médios, números pequenos sem mudança de escala são desprezíveis quando comparados a números médios. De maneira análoga, na transição de números médios a grandes, números médios sem mudança de escala são desprezíveis quando comparados a números grandes. Portanto, a escolha dos parâmetros de mudança de escala deve ser feita de maneira que os números sejam igualados a 0 somente quando forem realmente desprezíveis. As relações típicas entre as características de máquina descritas por t, s , l, emin, emax e os parâmetros do algoritmo N, s, S , y e Y são fornecidos depois do algoritmo. O algoritmo usa três marcadores para indicar os vários estágios no processo de soma. Esses marcadores são valores iniciais fornecidos no Passo 3 do algoritmo. O MARCADOR 1 é 1 até que uma componente média ou grande seja encontrada; então, ele é alterado para 0. O MARCADOR 2 é 0 enquanto números pequenos estão sendo somados, muda para 1 quando um número médio é encontrado pela primeira vez e muda novamente para 0 quando um número grande é encontrado. O MARCADOR 3 é inicialmente 0 e muda para 1 quando um número grande é encontrado pela primeira vez. O Passo 3 também introduz o marcador FEITO, o qual é 0 até que os cálculos sejam concluídos e depois muda para 1. ENTRADA SAÍDA
N , s, S , y, Y , l, n, x1, x2, . . . , xn. NORMA ou uma mensagem de erro apropriada.
Se n # 0 então SAÍDA (‘O inteiro n deve ser positivo’); PARE. Passo 2 Se n ≥ N então SAÍDA (‘O inteiro n é muito grande’); PARE. Passo 3 Faça SOMA 5 0; MARCADOR1 5 1; (Os números pequenos estão sendo somados.) MARCADOR2 5 0; MARCADOR3 5 0; FEITO 5 0; i 5 1. Passo 4 Enquanto (i # n e MARCADOR15 1) execute o Passo 5. Passo 5 Se uxiu , y então faça SOMA 5 SOMA 1 (Sxi)2; i 5 i 1 1 senão faça MARCADOR15 0. (Um número não pequeno encontrado.) Passo 6 Se i . n então faça NORMA 5 (SOMA) 1/2/ S ; FEITO 5 1 senão faça SOMA 5 (SOMA/S ) /S ; ( Escala para números maiores.) MARCADOR2 5 1. Passo 7 Enquanto (i # n e MARCADOR2 5 1) execute Passo 8. (Soma dos números de tamanho médio.) 2 Passo 8 Se uxiu , Y então faça SOMA 5 SOMA 1 x i ; i 5 i 1 1 senão faça MARCADOR2 5 0. (Um número grande foi encontrado.) Passo 1
46
Análise numérica
Se FEITO 5 0 então se i . n então faça NORMA 5 (SOMA)1/2; FEITO 5 1 senão faça SOMA 5 ((SOMA) s) s; ( Mudança de escala para os números grandes.) MARCADOR3 5 1. Passo 10 Enquanto (i # n e MARCADOR3 5 1) execute Passo 11. Passo 11 Faça SOMA 5 SOMA 1 ( sxi)2; (Somar os números grandes.) i5i11. Passo 12 Se FEITO 5 0 então se SOMA1/2 , l s então faça NORMA 5 (SOMA)1/2 /s; FEITO 5 1 senão faça SOMA 5 l. ( A norma é muito grande.) Passo 13 Se FEITO 5 1 então SAÍDA (‘A norma é’, NORMA) senão SAÍDA (‘Norma ≥’, NORMA, ‘ocorreu overow’). Passo 14 PARE. Passo 9
As relações entre as características da máquina t, s , l, emin, emax e os parâmetros do algoritmo N, s, S , y, e Y foram escolhidos em [Brow, W.], p. 471 como sendo: N 5 10e N , s 5 10eS , S 5 10eS , y 510ey, Y 5 10eY ,
onde e N 5 [(t 2 2)/2], o maior inteiro menor ou igual a (t 2 2)/2; onde e s 5 [2 (emax 1 e N )/2]; onde eS 5 [( 1 2 emin )/2], o menor inteiro maior ou igual a (1 2 emin)/2; onde e y 5 [(emin 1 t 2 2)/2]; onde eY 5 [(emax 2 e N ) / 2].
O primeiro computador portátil foi o Osborne I, produzido em 1981, embora fosse muito maior e pesado do que consideraríamos atualmente como portátil.
A conabilidade incorporada neste algoritmo aumentou muito a complexidade em com paração com o algoritmo apresentado antes na seção. Na maioria dos casos, os algoritmos de propósito especial e os de propósito geral dão resultados idênticos. A vantagem do algoritmo de propósito geral é que ele fornece segurança para seus resultados. Muitas formas de software numérico de propósito geral estão disponíveis comercialmente e em domínio público. Muitos dos primeiros softwares foram escritos para computadores de grande porte e uma boa referência para eles é Sources and Development of Mathematical Software, editado por Wayne Cowell [Co]. Agora que o computador pessoal se tornou sucientemente poderoso, softwares numéricos padrão estão disponíveis para eles. A maioria desses softwares numéricos está escrita em FORTRAN, embora alguns pacotes estejam escritos em C, C11 e FORTRAN 90. O sistema FORTRAN (FORmula TRANslator) foi a linguagem de programação cientíca de propósito geral original. Ela ainda é amplamente usada em situações que exigem cálculos cientícos intensivos.
Preliminares matemáticos e análise de erros
47
Procedimentos ALGOL foram apresentados para cálculos com matrizes em 1971 em [WR]. Um pacote de sub-rotinas FORTRAN com base principalmente em procedimentos ALGOL foi então desenvolvido nas rotinas EISPACK. Essas rotinas estão documentadas nos manuais, publicados pela Springer-Verlag como parte de série Lecture Notes in Computer Science, [Sm,B] e [Gar]. As sub-rotinas FORTRAN são usadas para calcular autovalores e autovetores para diversos tipos de matrizes. O LINPACK é um pacote de sub-rotinas FORTRAN para analisar e resolver sistemas de equações lineares e resolver problemas de mínimos quadrados lineares. A documentação desse pacote está contida em [DBMS]. Uma introdução passo a passo ao LINPACK, EISPACK e BLAS (Basic Linear Algebra Subprograms) é fornecida em [CV]. O projeto EISPACK foi o primeiro pacote de software numérico de larga escala a tornar-se disponível em domínio público e abriu caminho para muitos outros pacotes fazerem o mesmo.
O pacote LAPACK, disponível pela primeira vez em 1992, é uma biblioteca de sub-rotinas FORTRAN que suplantou o LINPACK e o EISPACK, integrando esses dois conjuntos de algoritmos em um pacote unicado e atualizado. O software foi reestruturado para atingir grande eciência em processadores vetoriais e outros multiprocessadores de alto desempenho ou de memória compartilhada. O LAPACK foi expandido em profundidade e alcance na versão 3.0, a qual está disponível em FORTRAN, FORTRAN 90, C, C11 e JAVA. C e JAVA estão disponíveis apenas como interfaces de linguagem ou tradutores de bibliotecas FORTRAN de LAPACK. O pacote BLAS não faz parte do LAPACK, mas o código para o BLAS é distribuído com o LAPACK. Outros pacotes para a resolução de tipos especícos de problemas também estão em domínio público. Como alternativa para o netlib, você pode usar o Xnetlib para pesquisar os bancos de dados e recuperar software. Podem-se encontrar mais informações no artigo Software Distribution Using Netlib de Dongarra, Roman e Wade [DRW]. A engenharia de software foi estabelecida como uma disciplina de laboratório durante os anos 1970 e 1980. O EISPACK foi desenvolvido no Argonne Labs e o LINPACK, logo depois. No início dos anos 1980, Argonne foi reconhecido internacionalmente como líder mundial, não apenas no cálculo simbólico como também no numérico.
Esses pacotes de software são altamente ecientes, precisos e conáveis. Eles são cuidadosamente testados, e a documentação está prontamente disponível. Embora os pacotes sejam portáteis, é aconselhável investigar a dependência da máquina e ler toda a documentação. Os programas são testados para quase todas as contingências especiais que possam levar a erros e falhas. No nal de cada capítulo, discutiremos alguns dos pacotes apropriados de propósito geral. Os pacotes comercialmente disponíveis também representam a tecnologia de ponta em métodos numéricos. Seus conteúdos frequentemente baseiam-se nos pacotes de domínio público, mas incluem métodos em bibliotecas para quase todos os tipos de problemas. A IMSL (International Mathematical and Statistical Libraries) consiste nas bibliotecas MATH, STAT e SFUN para matemática numérica, estatística e funções especiais, respectivamente. Essas bibliotecas contêm mais de 900 sub-rotinas originalmente dis poníveis em FORTRAN 77 e agora disponíveis em C, FORTRAN, 90 e JAVA. Essas
48
Análise numérica
sub-rotinas resolvem os problemas mais comuns de análise numérica. As bibliotecas estão comercialmente disponíveis a partir de Visual Numerics. Os pacotes são entregues na forma compilada com documentação extensa. Há um programa-exemplo para cada rotina, bem como informações de referência. A IMSL contém métodos para sistemas lineares, análise de autossistemas, interpolação e aproximação, integração e diferenciação, equações diferenciais, transformadas, equações não lineares, otimização e operações básicas de matriz/vetor. A biblioteca também contém rotinas estatísticas extensas. Em 1970, a IMSL tornou-se a primeira biblioteca cientíca em larga escala para computadores de grande porte. Desde então, as bibliotecas tornaram-se disponíveis para sistemas computacionais, variando desde supercom putadores a computadores pessoais.
O Numerical Algorithms Group (NAG) existe no Reino Unido desde 1970 e oferece mais de mil sub-rotinas em uma biblioteca de FORTRAN 77, cerca de 400 sub -rotinas em uma biblioteca de C, mais de 200 sub-rotinas em uma biblioteca de FOR TRAN 90 e uma biblioteca númerica MPI FORTRAN para máquinas paralelas e redes de estações de trabalho ou computadores pessoais. Uma introdução útil às rotinas NAG pode ser vista em [Ph]. A biblioteca NAG contém rotinas para realizar a maioria das tarefas padrão de análise numérica de maneira similar às da IMSL. Ela também inclui algumas rotinas estatísticas e um conjunto de rotinas grácas. O Numerical Algorithms Group (NAG) foi instituído no Reino Unido em 1971 e desenvolveu a primeira bi blioteca de software matemático. Ela c
View more...
Comments