Cálculo Numérico- UFABC
Resolução da lista 1
Em computadores e máquinas digitais, o formato de representação na forma digital de números reais recebe o nome de Ponto Flutuante. Nesse formato, cada número possui um espaço para armazenamento limitado. Sendo assim, é logico pensar que quanto maior o tamanho desse espaço, maior será a precisão do número digitalizado.
A capacidade de representação de cada máquina é diferente portanto os valores do menor/maior ponto flutuante variam.
Os Softwares MATLAB e SCILAB usam o padrão de precisão IEEE 754, atualmente o mais comum em computadores de uso pessoal com arquiteturas de processamento de 32 ou 64 bits. O sistema F de ponto flutuante nesses softwares é dado por:
F=F( 2,53,-1021,1024)
No SCILAB, os comandos equivalentes aos “realmax” e “realmin” do MATLAB são, respectivamente:
number_properties("huge"), que retorna o valor: 1.79769313486231570D+308
number_properties("tiny"), que retorna o valor: 2.22507385850720138D-308
Um número positivo maior que “realmax” irá retornar uma mensagem de erro (overflow) e será tratado como infinito. Já um número menor que “realmin” retornará uma mensagem de erro denominada underflow, ou será reconhecida como nulo.
No sistema de ponto flutuante, o valor de Eps é tal que x+y=x, se y<Eps, ou seja, x+Eps é o menor número no sistema de ponto flutuante F maior que x. Analiticamente Eps representa o menor valor infinitesimal entre dois pontos na reta (mensurável pela máquina no sistema F).
O valor predefinido de Eps no SCILAB é dado por:
%eps = 2^-52 = 2,220446D-16
Ex 2.
Quando fornecemos um número de entrada para um computador, geralmente o informamos na base decimal. A máquina, por sua vez, para a realização das operações necessárias, transforma-o em binário, e uma vez que o resultado é obtido transforma-o para a forma decimal novamente. Esse processo de transformação de bases, pode carregar, ao longo das operações, uma série de erros.
A partir de um procedimento numérico, calcula-se o erro absoluto de uma medida. Ele representa o módulo da diferença entre o valor exato de um número x , e seu valor aproximado x’.
Já o erro relativo calculamos como sendo o erro absoluto, dividido pelo valor aproximado x’. Nesse caso, é comum representarmos o resultado final como uma fração, que, ao ser multiplicada por 100, revela uma porcentagem. Ou seja, qual o percentual de erro daquela medida.
Nesse exercício, no primeiro caso, trabalhamos com um x muito pequeno (da ordem de 10^-15). O erro absoluto e relativo deram 0,1102230.
No segundo caso, não houve erro absoluto e relativo. Isso pode ser explicado uma vez que o valor de x é inteiro, facilitando a representação. Pode-se dizer que a máquina possui capacidade de armazenamento para todos os algarismos que representam x.
Código do MATLAB
fprintf('Entre com o valor de x: \n');
x = input('x = ');
p = floor(((1+x)-1)/x)
pE = ((1+x)-1)/x
ErroAbs = abs(p - pE)
ErroRel = ErroAbs/abs(pE)
Command WIndow:
>> Ex2A [Para x muito pequeno]
Entre com o valor de x:
x = 1.e-15
p =
0
pE =
1.1102
ErroAbs =
1.1102
ErroRel =
Inf
-----------------------------------------------
>> Ex2A [Para x muito grande]
Entre com o valor de x:
x = 1.e+15
p =
1
pE =
1
ErroAbs =
0
ErroRel =
0
Para a resolução do exercício foi utilizado o programa MATLAB.
O comando usado para expandir as casas decimais para melhorar a precisão:
format long
O código utilizado:
x = linspace (1-2*10^-8,1+2*10^-8,401) // indica o intervalo, assim como as 401 divisões em pontos equidistantes
y=x.^7-7*x.^6+21*x.^5-35*x.^4+35*x.^3-21*x.^2+7*x-1 // indica a função dada
plot(x,y) //simplesmente para a criação do gráfico 1:
Gráfico 1: plot da função y=x^7-7*x^6+21*x^5-35*x^4+35*x^3-21*x^2+7*x-1 no MATLAB
Durante a resolução foram encontrados alguns problemas com o “plot” do gráfico em que o programa apenas suportava 100 divisões em pontos equidistantes. O problema foi solucionado com a utilização do comando “clear” para todas as variáveis e a reimplementação do código.
O gráfico mostrou um comportamento oscilatório da função. Ele pode ser explicado devido aos erros de cancelamento de algarismos significativos. Trabalhamos com a soma de números muito próximos, apesar dos sinais opostos. O resultado, verifica-se dessa maneira, impreciso.
Para fins comparativos, plotou-se o mesmo gráfico no programa Excel, , porém este só permite a inclusão de 255 pontos por gráfico. Cientes dessa limitação, plotou-se apenas os 250 primeiros pontos do intervalo dado, a partir do valor mínimo (1-2E-8), obtendo-se um gráfico em barras com melhor visualização dos valores no eixo x, conforme o gráfico 2 a seguir:
Gráfico 2: plot da função y=x^7-7*x^6+21*x^5-35*x^4+35*x^3-21*x^2+7*x-1 no Excel




