|
71 | 71 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
72 | 72 | \vspace{-.5cm} |
73 | 73 | Este trabalho apresenta resultados de estudos realizados em um projeto de |
74 | | -iniciação científica cujo objetivo é explorar graficamente alguns efeitos do |
| 74 | +iniciação científica e tem como objetivo explorar graficamente alguns efeitos do |
75 | 75 | cálculos realizados com ponto flutuante e das Unidades de Última Posição (Units |
76 | 76 | of Last Place - ULP). |
77 | 77 |
|
78 | | -Um Sistema de Ponto Flutuante (SPF) é a técnica utilizada para aproximar |
| 78 | +Um Sistema de Ponto Flutuante (SPF) é a maneira utilizada para aproximar |
79 | 79 | números reais pelos computadores através de representações binárias compactas. |
80 | | -O padrão definido por ~\cite{IEEE754} formaliza essa arquitetura, alocando bits |
81 | | -para sinal, expoente e mantissa em precisões simples (32 bits) e dupla (64 |
82 | | -bits), como representado na equação \ref{eq:spf}. A natureza discreta e finita |
83 | | -do conjunto dos reais, essa abordagem introduz erros de representação |
84 | | -intrínsecos que, ao se propagarem e acumularem em operações aritméticas |
85 | | -sucessivas, podem comprometer severamente a exatidão numérica do sistema. |
| 80 | +Devido a sua natureza discreta e finita dessa representação, erros de |
| 81 | +representação são intrínsecos, que propagam-se em operações aritméticas |
| 82 | +sucessivas, se acumulando e podendo comprometer severamente a exatidão numérica |
| 83 | +do sistema. |
86 | 84 |
|
87 | | -O número representado em ponto flutuante em computadores é então calculado |
88 | | -como: |
89 | | - |
90 | | -\vspace{-.3cm} |
| 85 | +Um número representado em ponto flutuante em computadores é então calculado |
| 86 | +como: \vspace{-.3cm} |
91 | 87 | \begin{equation} |
92 | 88 | x = (-1)^s \times (1 + \sum_{i=1}^{t-1} (d_i \times \beta^{-i})) \times \beta^e, |
93 | 89 | \label{eq:spf} |
94 | 90 | \end{equation} |
95 | | -onde $s$ é o bit de sinal, $d_i$ são os dígitos significativos, $e$ é o expoente, $\beta$ é a base e $t$ é o número de dígitos significativos. O expoente é armazenado com um viés, ou seja, o valor real do expoente é calculado como $e = E - bias$, onde $E$ é o valor armazenado e $bias$ é um valor constante que depende do formato utilizado. O sistema para 64 bits, utilizado na maioria dos computadores atuais, é definido por $\beta = 2$, $t = 53$, $L = -1022$ e $U = 1023$. |
| 91 | +onde $s$ é o bit de sinal, $d_i$ são os dígitos significativos, $e$ é o expoente, $\beta$ é a base e $t$ é o número de dígitos significativos. O expoente é armazenado com um viés, ou seja, o valor real do expoente é calculado como $e = E - bias$, onde $E$ é o valor armazenado e $bias$ é um valor constante que depende do formato de precisão utilizado. O sistema para 64 bits, utilizado na maioria dos computadores atuais, é definido por $\beta = 2$, $t = 53$, $L = -1022$ e $U = 1023$. |
| 92 | + |
| 93 | +O padrão definido por ~\cite{IEEE754} formaliza essa arquitetura, alocando bits |
| 94 | +para sinal, expoente e mantissa em precisões simples (32 bits) e dupla (64 |
| 95 | +bits), como representado na equação \ref{eq:spf}. |
96 | 96 |
|
97 | 97 | A Unit of Last Place (ULP) é a menor diferença entre dois números |
98 | 98 | representáveis em ponto flutuante, ou seja, a distância entre um número e o |
99 | 99 | próximo número representável ~\cite{muller2005}. O conjunto de números se torna |
100 | 100 | mais esparso quanto mais distante o número for de zero, aumentando o erro |
101 | | -relativo. Dessa forma a ULP se torna uma medida relativa importante para |
| 101 | +relativo. Dessa forma, a ULP se torna uma medida relativa importante para |
102 | 102 | avaliar a precisão dos cálculos realizados com ponto flutuante, podendo ser |
103 | 103 | calculada como: |
104 | 104 | \begin{equation} |
|
113 | 113 | \label{fig:ulp} |
114 | 114 | \end{figure} |
115 | 115 | \vspace{-.3cm} |
116 | | -Um erro comum em SPF's é o da perda de significância, ou cancelamento catastrófico, que ocorre quando é realizada uma operação com dois números de grandeza muito diferente ou muito próximos, resultando em um valor com menos dígitos significativos do que os números originais, devido ao alinhamento de mantissa. |
117 | | -Um exemplo desse comportamento é observado na função $f(x) = x^{10} + l - x^{10}$. Embora para $x \in \mathbb{R}$ o resultado é igual a $l$, ao efetuarmos os cálculos usando ponto flutuante,o gráfico da figura \ref{fig:erros1} ilustra que o valor correto é exibido apenas até um certo valor de $x$. |
| 116 | +Um erro comum em SPF's é o da perda de significância, ou cancelamento catastrófico, que ocorre quando é realizada uma operação com dois números muito próximos ou de grandezas muito diferentes, resultando em um valor com menos dígitos significativos do que os números originais, devido ao alinhamento de mantissa. |
| 117 | +Um exemplo desse comportamento é observado na função $f(x) = x^{23} + l - x^{23}$. Embora para $x \in \mathbb{R}$ o resultado é igual a $l$, ao efetuarmos os cálculos usando ponto flutuante,o gráfico da figura \ref{fig:erros1} ilustra que o valor correto é exibido apenas até um certo valor de $x$. |
118 | 118 | % Após esse valor observamos um intervalo em que ocorre uma oscilação caótica no resultado da função. Posteriormente, observamos que a função assume o valor zero. |
119 | | -\vspace{-.5cm} |
120 | 119 |
|
121 | 120 | \begin{figure}[H] |
122 | 121 | \centering |
|
0 commit comments