Baixe o app para aproveitar ainda mais
Prévia do material em texto
CÁLCULO NUMÉRICO Profº. Msc. Pedro Roberto CURSO: _____________________ TURMA: ______________ 1 Capítulo 1 CONCEITOS INICIAIS E PRINCÍPIOS GERAIS DO CÁLCULO NUMÉRICO 1.1 Introdução As fases na resolução de problemas físicos podem, de modo geral, ser assim representadas: A partir do problema físico, com emprego de leis de conservação (quantidade de movimento, massa, energia, etc.), de relações constitutivas, modelos de turbulência, etc., e das condições de contorno, chega-se a um modelo matemático. Neste capitulo apresentam-se conceitos e princípios gerais em cálculo numérico que entram nas etapas de resolução do modelo matemático. 1.2 Conceitos Básicos de Cálculo Numérico 1.2.1 Problema Numérico O tipo de problema que se é resolvido por meio de cálculo numérico denomina-se problema numérico. Considera- se que um problema é numérico quando tanto os dados (dados de entrada) como os resultados (dados de saída) para o problema são conjuntos numéricos finitos. Existe, assim, uma relação funcional entre os dados de entrada, que são as variáveis independentes e os parâmetros do modelo matemático, e os dados de saída, que são os resultados desejados (variáveis dependentes). 2 Exemplo 1.1 Determinar as soluções da equação 𝑥6 − 20𝑥5 − 110𝑥4 + 50𝑥3 − 5𝑥2 + 70𝑥 − 100 = 0 é um problema numérico, tendo em vista que os dados de entrada e de saída são conjuntos numéricos finitos. Exemplo 1.2 Considere o problema de resolver a equação diferencial ordinária { 𝑑2𝑦 𝑑𝑥2 = 𝑥2 + 𝑦2, 𝑝𝑎𝑟𝑎 𝑥 ∈ (0,5) 𝑦(0) = 0 𝑦(5) = 1 Esse não é um problema numérico, uma vez que tanto os dados de entrada como os de saída não se apresentam como uma quantidade finita de números reais. Porém isso não quer dizer que esse problema não possa ser resolvido numericamente. Quando o modelo matemático não conduz a um problema numérico, primeiramente é preciso transformá-lo num problema numérico. A equação (1.1), usando-se os conceitos de diferenças finitas que serão apresentados mais adiante, pode ser transformada na seguinte equação de diferenças: { 𝑦𝑖+1 − 2𝑦𝑖 + 𝑦𝑖−1 = ℎ 2(𝑥𝑖 2 + 𝑦𝑖 2), 𝑖 = 1, 2,… ,𝑚 − 1 𝑦0 = 0 𝑦𝑚 = 1 onde 𝑦𝑖 ≈ 𝑦(𝑥𝑖). O problema (1.2) é agora um problema numérico, pois os dados de entrada formam um conjunto finito de números. Resolvê-los implica calcular 𝑦1, 𝑦2, … , 𝑦𝑚−1, que são os valores aproximados da função solução, 𝑦(𝑥), nos pontos 𝑥1, 𝑥2, … 𝑥𝑚−1, que são igualmente espaçados de ℎ. 1.2.2 Método Numérico Método numérico é um conjunto de procedimentos utilizados para transformar um modelo matemático num problema numérico ou um conjunto de procedimentos usados para resolver um problema numérico. A escolha do método mais eficiente para resolver um problema numérico deve envolver os aspectos: (i) precisão desejada para os resultados; (ii) capacidade do método em conduzir aos resultados desejados (velocidade de convergência), e (iii) esforço computacional despendido (tempo de processamento, economia de memoria necessária para a resolução). 1.2.3 Algoritmo É a descrição sequencial dos passos que caracterizam um método numérico. O algoritmo fornece uma descrição completa de operações bem definidas por meio das quais o conjunto de dados de entrada é transformado em dados de saída. Por operações bem definidas entendem-se as aritméticas e logicas que um computador pode realizar. Dessa forma, um algoritmo consiste de uma sequência de 𝑛 passos, cada um envolvendo um número finito de operações. Ao fim desses 𝑛 passos, o algoritmo deve fornecer valores ao menos ‘próximos’ daqueles que são procurados. O número 𝑛 pode não ser conhecido a priori. É o caso de algoritmos iterativos cuja ideia será enfocada a seguir. Nesse caso, em geral tem-se para 𝑛 apenas uma cota superior. 1.2.4 Interação ou Aproximação Sucessiva 3 Uma das ideias fundamentais do cálculo numérico é a de interação ou aproximação sucessiva. Num sentido amplo, iteração significa a repetição de um processo. Grande parte dos métodos numéricos é iterativa. Um método iterativo se caracteriza por envolver os seguintes elementos constitutivos: (i) Tentativa inicial: consiste em uma primeira aproximação para a solução desejada do problema numérico. (ii) Equação de recorrência: equação por meio da qual, partindo-se da tentativa inicial, são realizadas as iterações ou as aproximações sucessivas para a solução desejada. (iii) Teste de parada: é o instrumento por meio do qual o procedimento iterativo é finalizado. 1.2.5 Aproximação Local Outra ideia a que frequentemente se recorre no cálculo numérico é a de aproximação local de uma função por uma outra, que seja de manuseio mais simples. Por exemplo, aproximar uma função não-linear por uma função linear num determinado intervalo do domínio das funções. 1.3 Conversão de Base Aritmética Com o objetivo de fornecer uma ideia do que ocorre no processo de mudança de base de um número, apresenta-se, a seguir, a conversão do sistema decimal para o binário e vice-versa, para depois abordar o sistema da aritmética de ponto flutuante que as máquinas utilizam para representar os números. De maneira geral, um número real 𝑥 na base 𝛽 é representado por 𝑥 = (𝑎𝑚𝑎𝑚−1…𝑎1𝑎0 , 𝑏1𝑏2…𝑏𝑛)𝛽, que significa 𝑎𝑚𝛽 𝑚 + 𝑎𝑚−1𝛽 𝑚−1 +⋯+ 𝑎1𝛽 1 + 𝑎0𝛽 0 + 𝑏1𝛽 −1 + 𝑏2𝛽 −2 +⋯+ 𝑏𝑛𝛽 −𝑛, (1.4) onde 𝑎𝑖 , 𝑖 = 0, 1, 2,… ,𝑚 𝑒 𝑏𝑗 , 𝑗 = 1, 2, … , 𝑛 são elementos do conjunto 𝐴 = {𝑘 ∈ Ν; 0 ≤ 𝑘 ≤ 𝛽 − 1} De fato, no sistema decimal (𝛽 = 10), 𝐴 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; no octal (𝛽 = 8), 𝐴 = {0,1, 2, 3, 4, 5, 6, 7}; no binário (𝛽 = 2), 𝐴 = {0, 1}, e assim por diante. Exemplo 1.1 Dado o número 𝑥, escreva-o na forma de expressão. 𝑥 𝐹𝑜𝑟𝑚𝑎 𝑑𝑒 𝑒𝑥𝑝𝑟𝑒𝑠𝑠ã𝑜 1.4 (1995)10 1 × 10 3 + 9 × 102 + 9 × 101 + 5 × 100 (19,95)10 1 × 10 1 + 9 × 100 + 9 × 10−1 + 5 × 10−2 (0,1995)10 1 × 10 −1 + 9 × 10−2 + 9 × 10−3 + 5 × 10−4 (10111)2 1 × 2 4 + 0 × 23 + 1 × 22 + 1 × 21 + 1 × 20 (1011,101)2 1 × 2 3 + 0 × 22 + 1 × 21 + 1 × 20 + 1 × 2−1 + 0 × 2−2 + 1 × 2−3 4 Para realizar a conversão de base decimal para binária, considere 𝑥 na base 10, e sejam 𝑖 a parte inteira e 𝑓 a parte fracionaria desse número na base binária. Então, 𝑖 e 𝑓 são determinados por meio do seguinte procedimento: 1. Divide-se sucessivamente a parte inteira de 𝑥 na base 10 por 2, até que o último quociente seja igual a1. Isso é assim esquematizado: 2. Compõe-se 𝑖 da seguinte forma: último quociente obtido que é igual a 1, com os restos das divisões lidos em sentido inverso àquele em que foram obtidos, ou seja, 𝑖 = 1𝑟𝑒 …𝑟1𝑟0. 3. Multiplica-se a parte fracionária de 𝑥 na base 10 por 2. Desse resultado toma-se a parte inteira como sendo o primeiro dígito de 𝑓 na base binária. A parte fracionária oriunda da primeira multiplicação é novamente multiplicada por 2. Do resultado obtido toma-se a parte inteira como segundo dígito de 𝑓 e assim por diante. O processo é repetido até que a parte fracionaria do último produto seja igual a zero ou até que se observe o aparecimento de uma dízima periódica ou não. O esquema de cálculo é o seguinte:Então, 𝑓 = 0, 𝑓1𝑓2 …𝑓𝑘 . 4. Soma-se 𝑖 com 𝑓 para obter o número na base 2 equivalente ao dado na base decimal. Dessa forma: 𝑥 = (𝑎𝑚𝑎𝑚−1…𝑎1𝑎0 , 𝑏1𝑏2, … 𝑏𝑛)10 = (1𝑟𝑒 …𝑟1𝑟0 , 𝑓1𝑓2…𝑓𝑘)2 Exemplo 1.2 Dado o número 𝑥 na base decimal, convertê-lo no seu equivalente na base binária. 𝑥 𝑅𝑒𝑝𝑟𝑒𝑠𝑒𝑛𝑡𝑎çã𝑜 𝑛𝑎 𝑏𝑎𝑠𝑒 2 (23)10 (10111)2 (23,625)10 (10111,101)2 (0,6)10 (0,10011001…)2 Para proceder à conversão da base binária para a decimal, seja 𝑥 = (1𝑟𝑒 …𝑟1𝑟0 , 𝑓1𝑓2 …𝑓𝑘)2. Nesse caso, a conversão de 𝑥 para o sistema decimal é realizada assim: 1. Expressa-se o número binário na forma (1.4). 2. Realizam-se as operações indicadas no item 1 no sistema decimal. Exemplo 1.3 Dado o número 𝑥 na base binária, convertê-lo no seu equivalente na base decimal. 𝑥 𝑅𝑒𝑝𝑟𝑒𝑠𝑒𝑛𝑡𝑎çã𝑜 𝑛𝑎 𝑏𝑎𝑠𝑒 10 (10111)2 1 × 2 4 + 0 × 23 + 1 × 22 + 1 × 21 + 1 × 20 = (23)10 (10111,101)2 1 × 2 4 + 0 × 23 + 1 × 22 + 1 × 21 + 1 × 20 + 1 × 2−1 + 0 × 2−2 + 1 × 2−3 = (23,625)10 Vamos, agora, mostrar uma forma prática para efetuarmos a mudança de base 10 para base 2. Exemplo 1.4 Dado o número 𝑥 na base decimal convertê-lo no seu equivalente na base binária. Vamos primeiramente mostrar como efetuar essa mudança de base para números inteiros, vamos escrever o número (𝟐𝟑)𝟏𝟎 na base binária Inicialmente iremos efetuar a divisão do número (23) por 2. Após isso, vamos continuar dividindo cada quociente encontrado por 2 até chegarmos no quociente igual a zero (0) 5 O valor desejado na base 2 será o número formado pelos restos encontrados nas divisões feitas, sendo esse número escrito no sentido do último resto encontrado até o primeiro Assim concluímos que (𝟐𝟑)𝟏𝟎 = (𝟏𝟎𝟏𝟏𝟏)𝟐 Vamos agora, fazer essa transformação de bases para números decimais. Tomemos como exemplo transformar o número (𝟎, 𝟏𝟐𝟓)𝟏𝟎 para base binária 0,125 2 × 0,250 ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ 2 × 0,500 2 × 1,000̅̅ ̅̅ ̅̅ ̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ 0,125 2 × 𝟎, 250 ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ 2 × 𝟎, 500 2 × 𝟏, 000̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ (𝟎, 𝟏𝟐𝟓)𝟏𝟎 = (𝟎,𝟎𝟎𝟏)𝟐 Conclusão: (𝟐𝟑, 𝟏𝟐𝟓)𝟏𝟎 = (𝟏𝟎𝟏𝟏𝟏,𝟎𝟎𝟏)𝟐 1.4 Aritmética de Ponto Flutuante As máquinas utilizam o sistema de aritmética de ponto flutuante para representar os números e executar as operações. Um número real na base 𝛽, em aritmética de ponto flutuante de 𝑡 dígitos, tem a forma geral ±(. 𝑑1𝑑2…𝑑𝑡) × 𝛽 𝐸 Onde (. 𝑑1𝑑2 …𝑑𝑡) é uma fração de 𝛽 , chamada mantissa, 0 ≤ 𝑑𝑗 ≤ 𝛽 − 1, 𝑗 = 1, 2, … , 𝑡; E é o expoente, 𝐸 ∈ (𝑚,𝑀),𝑚 𝑒 𝑀 são números inteiros, cujos valores dependem da máquina utilizada. Em geral, 𝑚 = −𝑀. Se, 𝑑1 ≠ 0, diz-se que o número está normalizado. Destaque a parte inteira de cada produto O resultado é o número cujas casas decimais são os algarismos referentes a parte inteira de cada produto. 6 O número máximo de dígitos 𝑡 é determinado pelo comprimento da palavra do computador. Um ‘bit’ é um dígito da mantissa, quando é empregada a base 2. Em aritmética de ponto flutuante de 𝑡 dígitos, considerando 𝛽 = 10, adota-se em geral o arredondamento usual, ou seja, por falta quando são abandonados os dígitos que ocupam posições imediatamente após o dígito 𝑑𝑡 , e por excesso quando se abandonam os dígitos após o digito 𝑑𝑡 e se acresce uma unidade ao digito 𝑑𝑡 , sempre que o primeiro dígito após 𝑑𝑡 for maior ou igual a 5. Um número não poderá ser representado na máquina com sistema de aritmética de ponto flutuante se o expoente 𝐸 estiver fora dos limites 𝑚 𝑒 𝑀 . A máquina acusará erro de “underflow” se resultar 𝐸 < 𝑚 e de “overflow”se 𝐸 > 𝑀. Um sistema de ponto flutuante 𝐹 depende das variáveis 𝛽, 𝑡,𝑚 𝑒 𝑀 e pode ser representado pela função: 𝐹 = 𝐹(𝛽, 𝑡,𝑚,𝑀), Exemplo 1.5 (i) Dado o sistema de aritmética de ponto flutuante 𝐹(10, 3,−4, 4), represente o número 𝑥. 𝑥 𝑅𝑒𝑝𝑟𝑒𝑠𝑒𝑛𝑡𝑎çã𝑜 −279,15 − 0,279 × 103 1,35 0,135 × 101 0,024712 0,247 × 10−1 10,093 0,101 × 102 (ii) Dado o sistema de aritmética do ponto flutuante 𝐹(2,10,−15, 15), represente o número 𝑥. 𝑥 𝑅𝑒𝑝𝑟𝑒𝑠𝑒𝑛𝑡𝑎çã𝑜 (23)10 0,1011100000 × 2 101 (−7,125)10 − 0,1110010000 × 2 11 Saiba que cada dígito do computador é chamado de bit. Apresentaremos abaixo uma máquina fictícia de 10 bits para a mantissa, 4 bits para o expoente e 1 bit para o sinal da mantissa e outro bit para o sinal do expoente. Nesse sistema o número (23)10 tem a seguinte representação: Para o número (−7,125)10 = −0,1110010000 × 2 11, tem-se: 7 Por meio desses exemplos, conclui-se que o conjunto dos números representados nesses sistemas é um subconjunto dos números reais, dentro do intervalo de representação numérica do sistema. Logo, ao se representarem números reais por meio desses sistemas, pode-se incorrer em erro de arredondamento, pois nem todos os números reais têm representação no sistema, havendo a necessidade de arredondar para o número mais próximo da máquina. Em geral, nos sistemas de ponto flutuante o zero é representado com o menor expoente possível para se evitar a perda de dígitos nas operações. Exemplo 1.6 Imagine uma calculadora ou um computador que trabalha no sistema de ponto flutuante 𝐹 representado pela função 𝐹 = 𝐹(2, 10, −15, 15) e seu armazenamento seja de 16 bits. Como será representado o número (0,11)10? O valor encontrado apresenta erro de arredondamento? A qual conclusão você chegou? (0,11)10 = (0,00011100001010001… )2 = 0,11100001010001 …× 2 −3 = 0,11100001010001…× 2−11 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 1 Logo o número (0,11)10 , nessa máquina, será representado pelo valor 0,1110000101 × 2 −11 e esse número escrito na base 10 representa exatamente o valor 0,1099853515625, perceba que deu um valor muito próximo de 0,11, entretanto não foi igual, assim podemos concluir que houve erro de arredondamento, desta forma concluímos que nem todos os valores reais poderão ser expressos nessa máquina. 1.5 Precisão Dependendo da máquina e da linguagem computacional utilizada, é possível trabalhar em precisão dupla, que é o mesmo sistema de aritmética de ponto flutuante, mas com o dobro de dígitos disponíveis para a mantissa, isto é, o comprimento da palavra passa a ser 2𝑡. É importante observar que, nesse caso, o tempo de execução e a memória usada aumentam de forma significativa. Portanto, deve-se trabalhar em precisão dupla apenas em casos estritamente necessários. Por último, ao se trabalhar com determinada máquina, é muito importante conhecer os seus limites. Um parâmetro muito utilizado para se avaliar a precisão de determinado sistema de representação é o número de casas decimais exatas da mantissa e este valor é dado pelo valor decimaldo último bit da mantissa, ou seja, o bit de maior significância. Logo: 𝑃𝑅𝐸𝐶𝐼𝑆Ã𝑂 ≤ 1 𝛽𝑡 Exemplo 1.7 8 Numa máquina com 𝛽 = 2 e 𝑡 = 10 , a precisão da mantissa é da ordem 1 210 = 10−3 . Logo o número de dígitos significativos é 3. Explicando melhor: 1 210 = 1 1024 = 0,00097656, logo, 𝑃𝑅𝐸𝐶𝐼𝑆Ã𝑂 ≤ 0,00097656 𝑃𝑅𝐸𝐶𝐼𝑆Ã𝑂 ≤ 0,97656 × 10−3 ≈ 1 × 10−3 1.6 Erros Na busca da solução do modelo matemático por meio de cálculo numérico, os erros surgem de várias fontes e merecem cuidado especial. Do contrário, pode-se chegar a resultados distantes do que se esperaria ou até mesmo obter outros que não têm nenhuma relação com a solução do problema original. As principais fontes de erro são as seguintes: (i) erros nos dados de entrada; (ii) erros no estabelecimento do modelo matemático; (iii) erros de arredondamentos durante a computação; (iv) erros de truncamentos, e (v) erros humanos e de máquinas. 1.5.1 Erro Absoluto e Erro Relativo A partir do momento em que se calcula um resultado por aproximação, é preciso saber como estimar ou delimitar o erro cometido na aproximação. Sem isso, a aproximação obtida não tem significado. Frequentemente é possível, no cálculo numérico, estimar o erro ou até delimitá-lo, isto é, estabelecer a menor das cotas superiores para o erro. A delimitação do erro é sempre desejável, pois com ela tem-se um valor em que o erro cometido seguramente é inferior a um limite. Para se estimar ou delimitar o erro, recorre-se a dois conceitos: erro absoluto e erro relativo. Com efeito, seja �̅� um valor aproximado para uma quantidade cujo valor exato é 𝑎. Então se define: (i) Erro absoluto em �̅�: |𝑬𝑨𝒂| = |�̅� − 𝒂| (ii) Erro relativo em �̅�: |𝑬𝑹𝒂| = | �̅�−𝒂 𝒂 | O erro relativo é frequentemente dado como uma porcentagem. Por exemplo, 3% de erro reativo significa que o erro relativo é 0,03. Se a magnitude do erro em �̅� não excede 0,5 × 10−𝑡, então se diz que �̅� tem 𝒕 casas decimais corretas do valor exato 𝑎. Por exemplo: 0,001234 ± 0,000004 tem cinco casas decimais corretas. Exemplo 1.8 Sabendo que 𝜋 ∈ (3,14; 3,15), tomaremos para 𝜋um valor dentro deste intervalo e teremos, então, |𝑬𝑨𝝅| = |�̅� − 𝝅| < 𝟎, 𝟎𝟏. Seja agora um número 𝑥 representado por �̅� = 2112,9 de tal forma que |𝐸𝐴𝑥| < 0.1 , ou seja, 𝑥 ∈ (2112,8; 2113) e seja o número 𝑦 representado por �̅� = 5,3 de tal forma que |𝐸𝐴𝑦| < 0,1, ou seja, 𝑦 ∈ (5,2; 5,4). Os limitantes superiores para os erros absolutos são os mesmos. Podemos dizer que ambos os números estão representados com a mesma precisão? 9 É preciso comparar a ordem de grandeza de 𝑥 e 𝑦. Feito isto, é fácil concluir que o primeiro resultado é mais preciso que o segundo, pois a ordem de grandeza de 𝑥 é maior que a ordem de grandeza de 𝑦. Então, dependendo da ordem de grandeza dos números envolvidos, o erro absoluto não é suficiente para descrever a precisão de um cálculo. Por esta razão, o erro relativo é amplamente empregado. O erro relativo é definido como o erro absoluto dividido pelo valor aproximado: 𝐸𝑅𝑥 = 𝐸𝐴𝑥 �̅� = 𝑥 − �̅� �̅� No exemplo anterior, temos |𝐸𝑅𝑥| = |𝐸𝐴𝑥| |�̅�| < 0,1 2112,9 ≈ 4,7 × 10−5 e |𝐸𝑅𝑦| = |𝐸𝐴𝑦| �̅� < 0,1 5,3 ≈ 0,02, Confirmando, portanto, que o número 𝑥 é representado com maior precisão que o número 𝑦. 1.5.2 Erros de arredondamento e truncamento Na base decimal o erro de arredondamento é feito da seguinte forma: Se o primeiro algarismo a ser desconsiderado em um número for menor que 5, então basta desconsiderar esse e os demais algarismos que vem após ele. Se o primeiro algarismo a ser desconsiderado em um número for maior do que ou igual a 5, então soma-se uma unidade ao último algarismo que resta no valor aproximado. Exemplo 1.9 Escreva os números abaixo com arredondamento de duas casas decimais 2,34198 ≅ 2,34 −4,595734 ≅ −4,60 −9,45734 ≅ −9,46 0,3419 ≅ 0,34 Já no erro de truncamento é o erro inerente ao método numérico. Surge cada vez que se substitui um procedimento matemático infinito por um processo finito e discreto. Exemplo 1.10 A série de Taylor da função 𝑓 definida por 𝑓(𝑥) = 𝑒𝑥 em torno de 𝑥 = 0 é expressa por: 𝑒𝑥 = 1 + 𝑥 + 𝑥2 2! + 𝑥3 3! + 𝑥4 4! +⋯+ 𝑥𝑛 𝑛! + ⋯ Então 𝑒 = 1 + 1 + 1 2! + 1 3! + 1 4! +⋯+ 1 𝑛! +⋯ Desejando-se calcular o valor de 𝑒 utilizando-se os cinco primeiros termos da série, tem-se: 𝑒 = 1 + 1 + 1 2! + 1 3! + 1 4! , Portanto, 𝑒 ≈ 2,708 . Nessa aproximação há erro de truncamento, pois dos infinitos termos da série foram considerados apenas os cinco primeiros. Exemplo 1.9 10 Dar a representação dos números a seguir num sistema de aritmética de ponto flutuante de três dígitos para 𝛽 = 10,𝑚 = −4 𝑒 𝑀 = 4. 𝑥 Representação obtida por arredondamento Representação obtida por truncamento 1,25 0,125× 10 0,125× 10 10,053 0,101 × 102 0,100 × 102 -238,15 −0,238 × 103 −0,238 × 103 2,71828... 0,272 × 10 0,271 × 10 0,000007 (expoente menor que -4) = 718235,82 (expoente maior que 4) = 1.7 Exercícios 1- Converta os seguintes números decimais para sua forma binária: a) 𝑥 = 37 b) 𝑦 = 2345 c) 𝑧 = 0,1217 2- Converta os seguintes números binários para sua forma decimal: a) 𝑥 = (101101)2 b) 𝑦 = (110101011)2 c) 𝑧 = (0,1101)2 d) 𝑤 = (0,111111101)2 3- Seja um sistema de aritmética de ponto flutuante de quatro dígitos, base decimal e com acumulador de precisão dupla. Dados os números: 𝑥 = 0,7237 × 104 𝑦 = 0,2145 × 10−3 e 𝑧 = 0,2585 × 101 Efetue as seguintes operações, supondo que 𝑥, 𝑦 e 𝑧 estão exatamente representados: a) 𝑥 + 𝑦 + 𝑧 b) 𝑥 − 𝑦 − 𝑧 c) 𝑥 𝑦⁄ d) (𝑥𝑦)/𝑧 e) 𝑥(𝑦 𝑧⁄ ) 4- Considere uma máquina cujo sistema de representação de números é definido por: 𝛽 = 10, 𝑡 = 4,𝑚 − 5 e 𝑀 = 5. Pede-se: a) Qual o menor e o maior número em módulo representados nesta máquina? b) Como será representado o número 73,758 nesta máquina, se for usado o arredondamento? E se for usado o truncamento? c) Se 𝑎 = 42450 e 𝑏 = 3 qual o resultado de 𝑎 + 𝑏? d) Qual o resultado da soma 𝑆 = 42450 +∑3 10 𝑘=1 Nesta máquina? e) Idem para a soma: 𝑆 = ∑3 10 𝑘=1 + 42450 11 (Obviamente o resultado deveria ser o mesmo. Contudo, as operações devem ser realizadas na ordem em que aparecem as parcelas, o que conduzirá a resultados distintos). f) O resultado da operação: 𝑤𝑧/𝑡 pode ser obtido de várias maneiras, bastando modificar a ordem em que os cálculos são efetuados. Para determinados valores de 𝑤, 𝑧 e 𝑡 , uma sequência de cálculos pode ser melhor que outra. Faça uma análise para o caso em que 𝑤 = 100, 𝑧 = 3500 e. 5- Considere uma máquina cujo sistema de representação de números é definido por: 𝛽 = 10, 𝑡 = 4, 𝑚 = −5 e 𝑀 = 5. Como o número 73,758 é representado nessa máquina se for usado o arredondamento? E se for usado o truncamento? 6- Imagine uma calculadora ou um computador que trabalha no sistema de ponto flutuante 𝐹 representado pela função 𝐹 = 𝐹(2, 10, −15, 15) e seu armazenamento seja de 16 bits. Como será representado o número a) (3,2)10 b) (4,25)10 c) (0,375)10 d) (−8,45)10 1.8 Respostas 1- a) (100101)2 b) (100100101001)2 c) (0,000111110010… )2 2- a) (45)10 b) (427)10 c) (0,8125)10 d) (0,994140625)10 3- a) 𝑥 + 𝑦 + 𝑧 = 0,7240 × 104 b) 𝑥 − 𝑦 − 𝑧 = 0,7234 × 104 c) 𝑥 𝑦 = 0,3374 × 108d) 𝑥𝑦 𝑧 = 0,6004 e) 𝑥 ( 𝑦 𝑧 ) = 0,6005 4- a) 𝑚 = 0,1000 × 10−5 = 10−6 𝑀 = 0,9999 × 105 = 99990 b) no arredondamento: 0,7376 × 102 no truncamento: 0,7375 × 102 c) 𝑎 + 𝑏 = 0,4245 × 105 + 0,00003 × 105 = 0,42453 × 105 . Mas o resultado será armazenado com 4 dígitos na mantissa, portanto: 𝑎 + 𝑏 = 0,4245 × 105 d) 𝑆 = 0,4245 × 105 e) 𝑆 = 0,4248 × 105 f) Observar que a opção (𝑤𝑧)/𝑡 conduz a um overflow nesta máquina. 1.9 Conclusão 12 Com essas ideias preliminares e que são básicas em cálculo numérico, o fluxograma apresentado no início, que indicava as fases de um problema real, pode agora ser assim reestruturado: 1.10 - Bibliografia BARROSO, Leônidas Conceição, et al. 1987. CÁLCULO NUMÉRICO (com aplicações). São Paulo : Harbra, 1987. FRANCO, Neide Bertoldi. 2006. CÁLCULO NUMÉRICO. São Paulo : Pearson Prentice Hall, 2006. RUGGIERO, Márcia A. Gomes e LOPES, Vera Lúcia da Rocha. 1996. CÁLCULO NUMÉRICO - Aspectos Teóricos e Computacionais. São Paulo : Pearson Education do Brasil, 1996. SPERANDIO, Décio, MENDES, João Teixeira e SILVA, Luiz Henry Monken. 2003. CÁLCULO NUNÉRICO - Caracterírticas Matemáticas e Computacionais dos Métodos Numéricos. São Paulo : Pearson Pretince Hall, 2003.
Compartilhar