



















































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Conceito de Erro, Representação dos Números Reais, Sistemas Lineares, Interpolação, Ajuste de Curva, Integração Numérica.
Tipologia: Notas de estudo
1 / 91
Esta página não é visível na pré-visualização
Não perca as partes importantes!




















































































CI-
MÉTODOS
NUMÉRICOS
Prof. Ionildo José SanchesProf. Ionildo José Sanches Prof. Ionildo José SanchesProf. Ionildo José Sanches
Prof. Diógenes Cogo FurlanProf. Diógenes Cogo FurlanProf. Diógenes Cogo FurlanProf. Diógenes Cogo Furlan
E-Mail : [email protected] URL : http://www.ionildo.cjb.net/metodos/
Cálculo Numérico é a obtenção da solução de um problema pela aplicação de método numérico; a solução do problema será caracterizada, então, por um conjunto de números, exatos ou aproximados.
Método Numérico é um algoritmo composto por um número finito de operações envolvendo apenas números (operações aritméticas elementares, cálculo de funções, consulta a uma tabela de valores, consulta a um gráfico, arbitramento de um valor, etc.).
Problema Físico
Modelo Matemático Solução
Modelagem Resolução
Modelagem é a fase de obtenção do modelo matemático que descreve o comportamento do sistema físico. Resolução é a fase de obtenção da solução através da aplicação de métodos numéricos (este é o objetivo de estudo do Cálculo Numérico ).
EAN = N − N ’ Erro absoluto
Por exemplo, sabendo-se que π ∈ (3.14, 3.15) tomaremos para π um valor dentro deste intervalo e teremos, então, | EA π| = |π - π‘| < 0.01.
Erro Relativo é definido como o erro absoluto dividido pelo valor aproximado:
= = Erro Relativo
É claro que EAN só poderá ser determinado se N for exatamente conhecido; como isso é raro, em cálculos numéricos costuma-se trabalhar com uma limitação máxima para o erro, ao invés do próprio (indicando-se, então, | E | < ε, onde ε é o limite).
Por exemplo, se α = 3876.373 e só desejamos a parte inteira α ’ , o erro absoluto será: ∆α = | α − α' | = 0.
Se fizermos o mesmo com o número β = 1.373, teremos: ∆β = | β − β' | = 0.
Obviamente, o efeito de aproximação de β é muito maior do que em α, mas o erro absoluto é o mesmo nos dois casos. O erro relativo, entretanto, pode traduzir perfeitamente este fato, pois:
δα =
≅ 0,000096 < 10-4^ δβ =
2.5 Erro de Arredondamento
Ao se aplicar um método numérico, os erros devidos aos valores iniciais, intermediários e finais conduzem a um erro global (diferença entre o exato e o obtido) também chamado de arredondamento.
Erros iniciais são os cometidos no arredondamento dos dados iniciais. Os erros intermediários são decorrentes dos erros cometidos durante a aplicação do método numérico e os erros finais decorrentes da apresentação final do resultado.
Os tipos de arredondamentos mais conhecidos são:
Critério de Arredondamento : no cálculo manual, ao registrar um valor aproximado, costuma-se usar a seguinte regra:
Assim, com 2 números significativos tem-se:
O uso deste critério limita o erro a meia unidade da última casa conservada:
Os valores aproximados obtidos podem ser inferiores (valor aproximado por falta) ou superiores
(valor aproximado por excesso) aos exatos; 1.41 é o valor aproximado, por falta, de 2 ; 1.26 é o valor de (^3 2) , aproximado por excesso.
Para concluir este item de erro de arredondamento, deve-se ressaltar a importância de se saber o número de dígitos significativos do sistema de representação da máquina que está sendo utilizada para que se tenha a noção da precisão do resultado obtido.
Além da precisão decimal, o cálculo do chamado Épsilon da máquina nos dá uma idéia da exatidão da máquina.
O ε da máquina é o menor número de ponto flutuante, tal que: 1 + ε > 1. Alguns métodos para cálculo de ε não dão seu valor exato, mas isto nem sempre é necessário, pois o que importa é a sua ordem de grandeza.
O programa abaixo, escrito na linguagem C, calcula uma aproximação do ε da máquina:
#include <stdio.h> int main() { float Eps=1.0; while (Eps + 1 > 1) Eps = Eps / 2.0; printf("A maquina acha que %1.25f vale zero!\n", Eps); return 0; }
O programa acima, executado num Pentium, obteve a seguinte resposta:
A maquina acha que 0.0000000000000000000542101 vale zero!
Logo, o número de dígitos significativos é 19.
2.6 Erro de Truncamento
São erros provenientes da utilização de processos que deveriam ser infinitos ou muito grandes para a determinação de um valor e que, por razões práticas, são truncados.
Estes processos infinitos são muito utilizados na avaliação de funções matemáticas, tais como, exponenciação, logaritmos, funções trigonométricas e várias outras que uma máquina pode ter.
Exemplo: Uma máquina poderia calcular a função seno( x ) e exponencial( x ) utilizando as seguintes técnicas:
seno ( x ) = x − x^ + x^ − x +
3 5 7
3! 5! 7!
ex^ = 1 2 3
2 3
Fazendo truncamento:
3.1 Introdução
Números
Complexos (2+3√-1 )
Reais
Irracionais (π; √2 )
Racionais
Inteiros (-1004; 2)
Fracionários
Ordinários (32/7; 1/3)
Decimais (-3.15; 0.33...)
Algumas das propriedades básicas da aritmética real não valem mais quando executadas no computador, pois, enquanto na matemática alguns números são representados por infinitos dígitos, no computador isso não é possível, pois uma palavra de memória é finita e a própria memória também.
Exemplos: 2 , 3 , π e 3
Se desejássemos calcular a área de uma circunferência de raio 100m, obteríamos os seguintes resultados:
a) A = 31400m^2 b) A = 31416 m^2 c) A = 31415.92654 m^2
Como justificar as diferenças entre os resultados? É possível obter o valor exato desta área?
Os erros ocorridos dependem da representação dos números na máquina utilizada. A representação de um número depende da base escolhida ou disponível na máquina em uso e do número máximo de dígitos usados na sua representação.
O número π, por exemplo, não pode ser representado através de um número finito de dígitos decimais. No exemplo mostrado acima, o número π foi escrito como 3.14, 3.1416 e 3. respectivamente nos casos (a), (b) e (c). Em cada um deles foi obtido um resultado diferente, e o erro neste caso depende exclusivamente da aproximação escolhida para π, Qualquer que seja a circunferência, a sua área nunca será obtida exatamente, uma vez que π é um número irracional.
Como neste exemplo, qualquer cálculo que envolva números que não podem ser representados através de um número finito de dígitos não fornecerá como resultado um valor exato. Quanto maior o número de dígitos utilizados, maior será a precisão obtida. Por isso, a melhor aproximação para o valor da área da circunferência é aquela obtida no caso (c).
Além disso, um número pode ter representação finita em uma base e não-finita em outras bases. A base decimal é a que mais empregamos atualmente. Um computador opera normalmente no sistema binário.
Observe o que acontece na interação entre o usuário (ou dados do programa) e o computador: os dados de entrada são enviados ao computador pelo usuário no sistema decimal; toda esta informação é convertida para o sistema binário, e as operações todas serão efetuadas neste sistema. Os resultados finais
serão convertidos para o sistema decimal e, finalmente, serão transmitidos ao usuário. Todo este processo de conversão é uma fonte de erros que afetam o resultado final dos cálculos.
Na próxima seção, iremos estudar os processos de conversão de números do sistema decimal para o sistema binário e vice-versa. Estudaremos também a forma de armazenamento feita pelos computadores digitais.
3.2 Sistema de Numeração
Existem vários sistemas numéricos, dentre os quais destacam-se o sistema decimal (base 10), o octal (base 8) e o hexadecimal (base 16).
Em um sistema numérico com base β, existem β dígitos e o maior é β – 1. De um modo geral, um número na base β, (ajaj-1...a 2 a 1 a 0 )β, 0 ≤ a k ≤ (β – 1), k = 1, 2, ..., j , pode ser escrito na forma polinomial:
aj ββββ j^ + aj-1 ββββ j-1+...+ a 2 ββββ^2 + a 1 ββββ^1 + a 0 ββββ^0
Com esta representação, podemos facilmente converter um número representado em qualquer sistema para o sistema decimal.
3.2.1 Sistema de Numeração Decimal
No sistema de numeração usual, o sistema decimal, usamos dez dígitos 0, 1, ..., 9. Um número maior que 9 é representado usando uma convenção que atribui significado à posição ou lugar ocupado por um dígito. Por exemplo, em virtude das posições ocupadas pelos dígitos individuais no número 2015, este número tem significado numérico calculado como:
2015 = 210^3 + 010^2 + 110^1 + 510^0 = 2000 + 0 + 10 + 5 = 2015
Notamos que um número é expresso como uma soma de potências de 10 multiplicadas por coeficientes apropriados. No sistema decimal, 10 é a base do sistema. Existem 10 dígitos, o maior sendo
3.2.2 Sistema de Numeração Binário
No sistema binário existem apenas 2 dígitos: 0 e 1. Como os circuitos eletrônicos usados no computador apresentam 2 estados possíveis, convencionou-se chamar o estado desligado de 0 e o estado ligado de 1. Cada dígito de um número representado no sistema binário é denominado bit (contração de BI nary digi T ) , o conjunto de 4 bits é denominado nibble e o de 8 bits de byte , termo bastante utilizado na área de informática.
3.2.2.1 Conversão do Sistema Binário para Decimal
Quando um número é escrito no sistema binário, os dígitos individuais representam os coeficientes de potências de 2. Por exemplo, o número decimal 19 é escrito em representação binária como 10011, pois este arranjo de dígitos binários significa:
10011 = 12^4 + 02^3 + 02^2 + 12^1 + 1*2^0 = 16 + 0 + 0 + 2 + 1 = 19
3.2.2.2 Conversão do Sistema Decimal para Binário
A conversão de um número decimal para binário é feita da seguinte forma:
r 3 = 0.
k = 3 2 r 3 = 1.0 ⇒ d 3 = 1 r 4 = 0
Temos então 0.125 10 = 0.001 2 , sendo portanto a representação binária finita. Já para r = 0.1 10 , teremos: r 1 = 0.
k = 1 2 r 1 = 0.2 ⇒ d 1 = 0 r 2 = 0.
k = 2 2 r 2 = 0.4 ⇒ d 2 = 0 r 3 = 0.
k = 3 2 r 3 = 0.8 ⇒ d 3 = 0 r 4 = 0.
k = 4 2 r 4 = 1.6 ⇒ d 4 = 1 r 5 = 0.
k = 5 2 r 5 = 1.2 ⇒ d 5 = 1 r 6 = 0.2 = r 2
Como r 6 = r 2 , teremos que os resultados para k de 2 e 5 se repetirão e então: r 10 = r 6 = r 2 = 0.2 e assim indefinidamente.
Concluímos que: (0.1) 10 = (0.0001100110011 0011... ) 2 e, portanto, o número (0.1) 10 não tem representação binária finita.
O fato de um número não ter representação finita no sistema binário pode acarretar a ocorrência de erros aparentemente inexplicáveis em cálculos efetuados em sistemas computacionais binários.
Um computador que opera no sistema binário irá armazenar uma aproximação para (0.1) 10 , uma vez que possui uma quantidade fixa de posições para guardar os dígitos de mantissa de um número, e esta aproximação será usada para realizar os cálculos. Não se pode, portanto, esperar um resultado exato.
Podemos agora entender melhor por que o resultado da operação:
1
1000 . n =
∑
não é obtido corretamente num computador. Supondo uma máquina digital que trabalhe com apenas 9 dígitos na mantissa, o número (0.1) 10 seria armazenado como (0.000110011) 2 e este número representa exatamente (0.099609375) 10. Portanto, todas as operações que envolvem (0.1) 10 seriam realizadas com esta aproximação. Veremos na próxima seção a representação de números em aritmética de ponto flutuante com o objetivo de se entender melhor a causa de resultados imprecisos em operações numéricas.
O programa a seguir permite calcular (^01) 1
1000 . i =
∑ , sendo 100 o valor exato dessa somatória.
#include <stdio.h> int main() { int i; float x=0;
for (i=1;i<=1000; i++) x = x + 0.1; printf("x = %.20f", x); return 0; }
Quando essa somatória é efetuada utilizando o computador o valor é: 99.. Se trocarmos o tipo float para double (maior precisão) o resultado será 99..
3.3 Aritmética de Ponto Flutuante
Usa-se, rotineiramente, duas formas para fazer o armazenamento dos números em máquinas: ponto fixo (para valores inteiros) e ponto flutuante (para valores reais).
Uma máquina de calcular, ou um computador digital, representa um número real no sistema denominado aritmética de ponto flutuante. Neste sistema, o número x é representado na forma:
x = ±^ β β β β β
e t
1 2 3 ....
1 2 3
onde: β: é a base em que a máquina opera; d i: são números inteiros contidos no intervalo 0 ≤ d i ≤ (β - 1); i = 1, 2, ..., t ; d 1 ≠ 0; e : representa o expoente de β e assume valores entre I ≤ e ≤ S ; I , S : limite inferior e limite superior, respectivamente, para a variação do expoente.
t
1 2 3
os seus dígitos significativos e t é o número de dígitos significativos do sistema de representação, comumente chamado de precisão da máquina.
Exemplo 1: No sistema de base β = 10 (decimal), tem-se:
.
.
Os números assim representados estão normalizados, isto é, a mantissa é um valor entre 0 e 1. A forma normalizada é utilizada nas operações envolvendo ponto flutuante em computadores digitais.
No sistema de base β = 2 (binário), tem-se:
.
Exemplo 2: Numa máquina de calcular cujo sistema de representação utilizado tenha β=2, t = 10, I = − 15 e S = 15, o número 25 10 e 3.5 10 é, assim representado:
Considere, por exemplo, uma máquina que opera no sistema:
β = 10; t = 3; e ∈ [-5,5].
Os números serão representados da seguinte forma nesse sistema:
O menor número ( m ), em valor absoluto, representado nesta máquina é:
m = 0.100 * 10-5^ = 10-
e o maior número ( M ), em valor absoluto, é:
M = 0.999 * 10^5 = 99900
Considere o conjunto dos números reais R e o seguinte conjunto:
G = { x ∈ R | m ≤ | x | ≤ M }
Dado um número real x , várias situações poderão ocorrer:
Algumas linguagens de programação permitem que as variáveis sejam declaradas em precisão dupla. Neste caso, esta variável será representada no sistema de aritmética de ponto flutuante da máquina, mas com aproximadamente o dobro de dígitos disponíveis na mantissa. É importante observar que, neste caso, o tempo de execução e requerimento de memória aumentam de forma significativa.
O C fornece três tipos para números de ponto flutuante. Cada tipo tem um intervalo e uma precisão especificada:
Tipo Nº de bits Intervalo Inicio Fim float (^32) 3.4E− 38 3.4E+ double (^64) 1.7E− 308 1.7E+ long double (^80) 3.4E− 4932 3.4E+
O tipo long double é o tipo de ponto flutuante com maior precisão. É importante observar que os intervalos de ponto flutuante, na tabela acima, estão indicados em faixa de expoente, mas os números podem assumir valores tanto positivos quanto negativos.
3.4 Propagação de Erros
Durante as operações aritméticas de um método, os erros dos operandos produzem um erro no
resultado da operação; sendo A , a , B , b os valores exatos e aproximados, respectivos, e E a e E b, os erros dos operandos.
A + B = (a + Ea) + (b + Eb) = a + b + Ea + Eb ∴ EAA+B = Ea + Eb A − B = (a + Ea) − (b + Eb) = a − b + Ea − Eb ∴ EAA-B = Ea − Eb A * B = (a + Ea) (b + Eb) = ab + aEb + bEa + EbEa ∴ EAAB = aEb + bEa + Eb*Ea
Vejamos através de um exemplo, como os erros descritos anteriormente podem influenciar o desenvolvimento de um cálculo.
Exemplo: Suponha-se que as operações abaixo sejam processadas em uma máquina com 4 dígitos significativos e fazendo-se: x 1 = 0.349110^4 e x 2 = 0.234510^0 tem-se:
( x 2 + x 1 ) − x 1 = (0.234510^0 + 0.349110^4 ) − 0.349110^4 = 0.349110^4 − 0.3491*10^4 = 0.
x 2 + ( x 1 − x 1 ) = 0.234510^0 + (0.349110^4 − 0.3491*10^4 ) = 0.2345 + 0. = 0.
Os dois resultados são diferentes, quando não deveriam ser, pois a adição é uma operação distributiva. A causa desta diferença foi um arredondamento feito na adição ( x 2 + x 1 ), cujo resultado tem 8 dígitos. Como a máquina só armazena 4 dígitos, os menos significativos foram desprezados.
Ao se utilizar máquinas de calcular deve-se estar atento a essas particularidades causadas pelo erro de arredondamento, não só na adição mas também nas outras operações.
É importante salientar, que normalmente, os métodos iterativos são mais precisos quando executados em um computador que permite agilizar os cálculos matemáticos, obtendo assim uma melhor precisão.
Exercício: Calcular 4 e de 2 usando o Método de Newton definido por:
1 1
− −
n n n
x x
x
x , para n = 1, 2, 3, ...
onde: x : o número a ser calculado a raiz x 0 : uma atribuição inicial qualquer diferente de zero (por exemplo, x 0 = 1).
Como vimos anteriormente, o cálculo das duas raízes de uma equação do segundo grau, colocada sob a forma ax^2 + bx + c = 0, são facilmente obtidas pela fórmula de Baskara. Entretanto, se colocarmos uma expressão em que apareça uma equação transcendente, a solução já não é tão simples, como demonstram os exemplos abaixo:
ex^ + x = 0 cos ( x ) – x = 0 ln ( x ) + x – 2 = 0
Mesmo um polinômio de grau maior que três já não tem uma solução algébrica simples como a da equação do segundo grau, a não ser em casos particulares. Vamos analisar como enfrentar esse problema, tão comum em diversas áreas da engenharia, da economia, das ciências, da física, entre tantas outras.
Essas equações, com enorme freqüência, nos levam a raízes reais não racionais que, ao serem representadas no computador, necessariamente, o serão de forma aproximada, pelas razões já expostas no capítulo anterior, tendo em vista que necessitariam de infinitos dígitos, em suas mantissas, para serem representadas.
Além disso, em geral, estamos interessados em obter esses valores, essas raízes, com uma determinada precisão, com um erro tolerável, com algumas casas decimais, sem a pretensão de obter valores exatos. Isso é mais do que suficiente, para a maioria dos problemas práticos encontrados.
Os métodos numéricos a serem apresentados, partindo de valores inicialmente propostos, buscam aprimorar esses valores, diminuindo os erros, aproximando-se, assim, dos valores das raízes procuradas, até que os erros sejam aceitáveis, podendo-se garantir que sejam erros inferiores a valores pré-definidos.
Para se calcular uma raiz duas etapas devem ser seguidas:
x ' = (^) i lim →∞ x i
Além disto, temos que estipular critérios de parada, pois na pratica não calcularemos infinitos termos, mas apenas o suficiente para atingirmos a exatidão desejada.
4.1.3 Isolamento de Raízes
Nesta fase é feita uma análise teórica e gráfica da função f (x). Para tal fim, usa-se freqüentemente um importante teorema da álgebra.
Teorema : Se uma função f ( x ) contínua num intervalo [a, b] assume valores de sinais opostos nos pontos extremos deste intervalo, isto é, f ( a ). f (b) < 0, então o intervalo conterá, no mínimo, uma raiz da equação f ( x ) = 0; em outras palavras haverá, no mínimo, um número ξ ∈ (a, b) tal que f (ξ) = 0.
4.1.3.1 Número de Raízes Reais
Na seção anterior vimos como delimitar as raízes reais de F ( x ) = 0. Agora iremos verificar quantas raízes existem no intervalo delimitado. Os métodos a seguir dão uma boa indicação sobre o número de raízes do intervalo.
Teorema de Bolzano : Seja F ( x ) = 0 uma equação algébrica com coeficientes reais e x ∈ (a, b):
A determinação do número de raízes de equações transcendentes geralmente é quase impossível, pois algumas equações podem ter um número infinito de raízes.
Não faremos maiores considerações sobre este importante tópico, por não ser o objeto de estudo neste momento, e por merecer um trabalho a parte, devido a extensão de seu conteúdo. Entretanto, podemos salientar que o problema de isolar raízes constitui-se da enumeração , localização e separação das mesmas.
4.1.3.2 Refinamento
Depois de isolar a raiz no intervalo [a, b], passa-se a calculá-la através de métodos numéricos. Como veremos adiante, estes métodos devem fornecer uma seqüência {xi} de aproximação, cujo limite é a raiz exata ξ. Em cada aproximação xn , da raiz exata ξ, usa-se um destes critérios e compara-se o resultado com a tolerância ε pré-fixada.
A verificação, de que xn está "suficientemente" próxima da raiz, pode ser feita de dois modos diferentes (que podem levar a resultados diferentes):
| f ( xn ) | ≤ ε ( abordagem pelo eixo y)
| xn − xn -1 | ≤ ε (abordagem pelo eixo x)
Observa-se que dependendo dos números envolvidos é aconselhável usar os testes de erro relativo:
1
1 −
n
n n x
x x ≤ ε
4.1.4 Classificação dos métodos
Métodos de quebra: Os métodos de quebra são os mais intuitivos geometricamente; contudo, são os que convergem mais lentamente. Estes métodos são assim chamados porque a partir de um intervalo que contenha uma raiz da função, vai-se particionando este intervalo em outros menores, que ainda contenham a raiz. Dependendo da escolha do ponto de quebra do intervalo, poderemos ter diferentes métodos, tais como.