2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Matlab: вопрос по realmin
Сообщение29.07.2008, 17:15 
Всем привет!
Насколько я понимаю, функция realmin в матлабе должна возвращать наименьшее число вида $2^{-n}$, $n\in \mathbb N$, не округляемое до нуля. При вызове этой функции я получаю, что $n=1022$.
Однако, можно продолжить деление на 2 вплоть до $n=1074$. (т.е. только при $n=1075$ я получаю 0).
Как объяснить такое поведение?

Добавлено спустя 1 час 55 минут 12 секунд:

Объяснение примерно следующее: машинные числа (точнее, double) представляются в виде
$$x=(-1)^s 2^e \sum_{k=1}^m a_k 2^{-k},$$
где $m = 53$, $-1021\leqslant e \leqslant 1024$, $a_k=0;1$.
Если требовать $a_1\neq 0$ (normalized numbers), то получим как раз $n=1021+1=1022$.
Если же этого не требовать (de-normalized numbers), то получим как раз $n=1021+53=1074$.

 
 
 [ 1 сообщение ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group