Plotting all numbers from a set
이전 댓글 표시
Is it possible to plot all of the floating point numbers from a given set [1,2] to see the interval between consecutive numbers? How do I do this?
채택된 답변
추가 답변 (2개)
Jan
2013년 10월 25일
1 개 추천
The question is not clear. "all floating point numbers from a given set [1,2]" are the two numbers 1.0 and 2.0, and it is easy to "plot" them. But what does "see the interval" mean then?
Do you mean all floating point numbers of a given interval?
Please explain, what you actually want to achieve.
댓글 수: 3
Beaya
2013년 10월 25일
Matt Kindig
2013년 10월 25일
This question is still not clear. Given that the floating point values are defined as (by definition) on a discrete interval, of course they can be presented as 1 + k*epsilon, as floating point numbers are defined that way. The resulting will indeed be uniformly distributed, but only because you are defining them to be so (by defining them as double floating-point numbers, which have a finite set of 64-bit binary representations). In other words, you are not really proving anything.
Jan
2013년 10월 25일
What do you mean by "prove"? What kind of "plot" do you want? A diagram with 2^52 values would not reveal anything. Reading the IEEE-754 definitions should clear all corresponding questions.
Azzi Abdelmalek
2013년 10월 25일
0 개 추천
There is an infinity of floating numbers in your interval. You can't plot all the numbers
댓글 수: 8
Walter Roberson
2013년 10월 25일
There is not an infinity of floating point numbers in the interval: there are only 2^53 or so of them. Too large to manage is not the same as infinite ;-)
Azzi Abdelmalek
2013년 10월 26일
Instead of checking the whole interval, which needs a huge amount of memory and time, we can check the beginning and the end of the interval.
a=1
n=1e+6 % number of samples
pas=1e-21; % step
t=a:pas:a+n*pas;
y=unique(t);
v=unique((diff(y)))
%Result
2.2204e-16
Check it again with
a=2-n*pas
% the result is the same
Walter Roberson
2013년 10월 26일
1 + 1e+6 * 1e-21 does not reach 2, "the end of the interval" ?
Azzi Abdelmalek
2013년 10월 26일
It's not what I meant, I said the first part of the interval [1,2] which is [1,1+1e+6*1e-21] and the last part of the interval [2-1e+6*1e-21,2]
Beaya
2013년 10월 28일
Azzi Abdelmalek
2013년 10월 28일
편집: Azzi Abdelmalek
2013년 10월 28일
From Walter's answer we can see the the smallest step is 2.2204e-16. I could choose pas=1e-22 but the number of samples must be greater, for example n=1e+7. I tried to choose pas as small as possible, at the same time I have to handle the problem of memory
You wrotte 1e-21 = -18.2817181715, It's not possible
Walter Roberson
2013년 10월 28일
-18.2817181715 would be exp(1) - 21, and exp(1) is often given the letter "e" as its symbol.
1e-21 on the other hand means 1 * 10^(-21), and is a syntax known to MATLAB. It can also be written 1.0E-21
Beaya
2013년 11월 1일
카테고리
도움말 센터 및 File Exchange에서 Axis Labels에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!