• Nenhum resultado encontrado

Se D < 0, mostre a mensagem: “A equação não possui raízes reais”.

Uma vez planejado, o algoritmo pode ser implementado em um programa de computador.

Programas de computador

Um programa de computador (código) é um conjunto (lista) de comandos (opera- ções) que devem ser executados pelo computador. Diferentes linguagens de progra- mação usam diferentes sintaxes para os comandos, mas, em geral, os comandos po- dem ser agrupados em várias categorias:

Comandos de entrada e saída de dados. Esses comandos são usados para im-

portar dados para o computador, mostrá-los no monitor, ou para armazenar resultados numéricos em arquivos.

Comandos de defi nição de variáveis.

Comandos que executam operações matemáticas. Estes incluem operações

padrão (adição, multiplicação, potenciação, etc.) e comandos que calculam os valores de funções comumente usadas (trigonométricas, exponenciais, lo- garítmicas, etc.).

Comandos que controlam a ordem de execução de comandos e que permitem

ao computador executar ou não certos grupos de comandos em diferentes circunstâncias. Esses comandos estão tipicamente associados a declarações condicionais que permitem a tomada de decisões, como por exemplo a ordem em que determinados comandos devem ser executados. Muitas linguagens têm comandos “se-senão” para este propósito, mas muitos outros comandos existem com a mesma fi nalidade.

Comandos que permitem ao computador repetir seções do programa. Em

muitas linguagens, esses comandos são chamados de loops. Eles são muito úteis para a programação de métodos numéricos, já que muitos desses méto- dos usam iterações para obter soluções precisas.

Comandos que criam fi guras e gráfi cos mostrando resultados.

Um programa de computador pode ser escrito como uma longa lista de comandos, mas em geral é dividido em partes menores e bem defi nidas

(subprogramas). Essas partes são programas auto-sufi cientes que conduzem uma parcela do total de operações a serem realizadas. Com essa abordagem, as várias partes podem ser escritas e testadas de forma independente. Em muitas linguagens de computador, os subprogramas são chamados de sub-rotinas ou funções.

Conforme já mencionado, métodos numéricos são implementados neste livro usando o MATLAB, que é uma linguagem relativamente nova para a computa- ção técnica. O MATLAB é poderoso e fácil de usar. Ele contém muitas funções residentes que são extremamente úteis na resolução de problemas na ciência e na engenharia.

Assume-se que o leitor deste livro tenha pelo menos algum conhecimento de MATLAB e de programação. Para aqueles que não o têm, uma introdução ao MATLAB é apresentada no Apêndice. Ela inclui uma seção sobre declarações condicionais e loops, que são os blocos construtivos básicos da programação. Para uma introdução mais detalhada à programação, o leitor deve recorrer a livros dedicados à programação de computadores. Para ajudar o leitor a seguir os pro- gramas de MATLAB listados neste livro, comentários e explicações são coloca- dos logo após os programas.

1.5 PROBLEMAS

Problemas de solução manual

Resolva manualmente os problemas a seguir. Quando necessário, use uma calcu- ladora ou escreva um programa no MATLAB para realizar os cálculos.

1.1 Converta o número binário 1011101 para o formato decimal.

1.2 Converta o número binário 11000101.101 para o formato decimal.

1.3 Converta o número binário 10010101110001.01110101 para o formato de- cimal.

1.4 Escreva o número 81 nos seguintes formatos (na letra (c), siga a norma IEEE–754): (a) Formato binário; (b) Representação em ponto fl utuante na base 2. (c) Cadeia de 32 bits em precisão simples.

1.5 Escreva o número 66,25 nos seguintes formatos (na letra (c), siga a norma IEEE–754): (a) Formato binário; (b) Representação em ponto fl utuante na base 2. (c) Cadeia de 32 bits em precisão simples.

1.6 Escreva o número –0,625 nos seguintes formatos (na letra (c), siga a norma IEEE–754): (a) Formato binário; (b) Representação em ponto fl utuante na base 2. (c) Cadeia de 32 bits em precisão simples.

1.7 Escreva o número 0,533203125 nos seguintes formatos (na letra (c), siga a norma IEEE–754): (a) Formato binário; (b) Representação em ponto fl utu- ante na base 2. (c) Cadeia de 32 bits em precisão simples.

1.8 Escreva o número 256,1875 nos seguintes formatos (na letra (c), siga a nor- ma IEEE–754): (a) Formato binário; (b) Representação em ponto fl utuante na base 2. (c) Cadeia de 64 bits em precisão dupla.

1.9 Escreva o número –30952 nos seguintes formatos (na letra (c), siga a norma IEEE–754): (a) Formato binário; (b) Representação em ponto fl utuante na base 2. (c) Cadeia de 64 bits em precisão dupla.

1.10 Escreva o número 0,33203125 nos seguintes formatos (na letra (c), siga a norma IEEE–754): (a) Formato binário; (b) Representação em ponto fl utu- ante na base 2. (c) Cadeia de 64 bits em precisão dupla.

1.11 Escreva o número 0,001220703125 nos seguintes formatos (na letra (c), siga a norma IEEE–754): (a) Formato binário; (b) Representação em ponto fl utu- ante na base 2. (c) Cadeia de 64 bits em precisão dupla.

1.12 Escreva o número 0,2 no formato binário usando um número sufi ciente de algarismos de forma que o erro relativo real seja menor que 0,005.

1.13 Considere a função .

(a) Use o formato decimal com seis algarismos signifi cativos (aplique arredon- damento) para calcular, usando uma calculadora, f(x) para x = 0,007.

(b) Use o MATLAB (usando format long) para calcular o valor de f(x) e o erro relativo real causado pelo arredondamento no valor de f(x) obtido na letra (a). (c) Multiplique f(x) por para obter uma forma de f(x) menos propen-

sa a erros de arredondamento. Com essa nova forma, use o formato decimal com seis algarismos signifi cativos (aplique arredondamento) para calcular, usando uma calculadora, f(x) para x = 0,007. Compare o valor obtido com aqueles obtidos nas letras (a) e (b).

1.14 Considere a função .

(a) Use o formato decimal com seis algarismos signifi cativos (aplique arredon- damento) para calcular, usando uma calculadora, f(x) para x = 0,005.

(b) Use o MATLAB (usando format long) para calcular o valor de f(x) e o erro relativo real causado pelo arredondamento no valor de f(x) obtido na letra (a).

(c) Multiplique f(x) por para obter uma forma de f(x) menos propensa a erros de arredondamento. Com essa nova forma, use o formato decimal com seis algarismos signifi cativos (aplique arredondamento) para calcular, usando uma calculadora, f(x) para x = 0,005. Compare o valor obtido com aqueles obtidos nas letras (a) e (b).

1.15 Considere a função .

(a) Use o formato decimal com seis algarismos signifi cativos (aplique arredon- damento) para calcular, usando uma calculadora, f(x) para x = 0,00275.

(b) Use o MATLAB (usando format long) para calcular o valor de f(x) e o erro relativo real causado pelo arredondamento no valor de f(x) obtido na letra (a).

1.16 A expansão em série de Taylor de cos(x) é dada por:

(1.20) Use os três primeiros termos na Eq. (1.20) para calcular o valor de . Calcu- le o erro de truncamento. Use o formato decimal com seis algarismos signifi cati- vos (aplique arredondamento).

1.17 A expansão em série de Taylor da função f(x) = ex é:

(1.21) Use a Eq. (1.21) para calcular o valor de e−2 para os seguintes casos. Em cada caso também calcule o erro relativo real (use format long no MATLAB para calcular o valor verdadeiro de e−2). Use números decimais com seis algarismos signifi cativos (aplique arredondamento).

(a) Use os quatro primeiros termos. (b) Use os seis primeiros termos. (c) Use os oito primeiros termos.

1.18 Use os sete primeiros termos na Eq. (1.21) para calcular um valor estima- do para e. Realize as contas no MATLAB (use format long para mostra os números). Determine o erro relativo real. Para o valor exato de e, use

exp(1) no MATLAB.

1.19 Desenvolva um algoritmo para determinar se um dado número inteiro é um número primo.

1.20 Desenvolva um algoritmo para somar todos os números primos entre 0 e um dado número.

1.21 Desenvolva um algoritmo para converter inteiros dados na forma decimal para o formato binário.

Problemas de programação no MATLAB

Resolva os seguintes problemas usando o ambiente MATLAB. Não use funções residentes do MATLAB para mudar o formato dos números.

1.22 Escreva um programa que implemente o algoritmo desenvolvido no Proble- ma 1.19. O programa deve começar atribuindo um valor para a variável x. Quando o programa é executado, uma mensagem deve ser mostrada dizendo se o valor atribuído a x é ou não é um número primo. Execute o programa com x = 79, x = 126 e x = 367.

1.23 Escreva no MATLAB uma função que implemente o algoritmo desenvolvi- do no Problema 1.20. Chame a função de sp = somaprimos(int), onde o argumento de entrada int deve ser um número maior que 1, e o argumento

de saída sp é a soma de todos os números primos menores que int. Use essa função para calcular a soma de todos os números primos entre 0 e 30.

1.24 Escreva no MATLAB uma função que converta números inteiros para o forma- to binário. Chame a função de b = integerTObina(d), onde o argumento de entrada d é o inteiro a ser convertido e o argumento de saída b é um vetor com 1s e 0s que representa o número binário. O maior número que pode ser convertido com o emprego da função deve ser um número binário com vinte 1s. Se um número maior for entrado como d, a função deve exibir uma mensagem de erro. Use a função para converter os números 81, 30952 e 1500000.

1.25 Escreva no MATLAB uma função que converta números reais do formato decimal para o formato binário. Chame a função de b = deciTObina(d), onde o argumento de entrada d é o inteiro a ser convertido e o argumento de saída b é um vetor de 30 posições representando o número binário (con- tendo 1s e 0s). Os primeiros 15 elementos de b armazenam os algarismos à esquerda da vírgula decimal, e os seus últimos 15 elementos armazenam os algarismos à direita da vírgula decimal. Se mais de 15 posições forem neces- sárias no formato binário para representar os algarismos à direita da vírgula decimal, os algarismos devem ser cortados. Se o número d for maior do que a capacidade de armazenamento de b, a função deve exibir uma mensagem de erro. Use essa função na janela de comandos do MATLAB para converter os números 85,321; 0,00671 e 3006,42.

1.26 O valor de π pode ser calculado com a série:

(1.22)

Escreva um programa no MATLAB que calcule o valor de π usando n ter- mos da série e calcule o erro relativo real correspondente (para o valor ver- dadeiro de π, use a variável pi predefi nida no MATLAB). Use o programa para calcular π e o erro relativo real para: