Re: algebraic numbers

*To*: mathgroup at smc.vnet.net*Subject*: [mg106250] Re: algebraic numbers*From*: Noqsi <jpd at noqsi.com>*Date*: Wed, 6 Jan 2010 05:59:52 -0500 (EST)*References*: <200912290620.BAA02732@smc.vnet.net> <hhpl0g$9l1$1@smc.vnet.net>

On Jan 4, 11:46 pm, DrMajorBob <btre... at austin.rr.com> wrote: > Computer reals are precisely equal to, No. Computer reals are imprecise. That's the source of their utility. And their difficulties. > and in one-to-one correspondence > with, a miniscule subset of the rationals. Every one of them has a finite > binary expansion. This proves only that they are contained within a finite set. But it makes much more sense to consider the correspondence as one-to- uncountably-many: each individual machine real represents every real number within an interval determined by its precision. Except for those that don't represent numbers at all. > > x = RandomReal[] > digitForm = RealDigits@x; > Length@First@digitForm > rationalForm = FromDigits@digitForm > {n, d} = Through[{Numerator, Denominator}@rationalForm] > d x == n > > 0.217694 > > 16 > > 1088471616079187/5000000000000000 > > {1088471616079187, 5000000000000000} > > True Proves nothing. 0.1 == 1/10 True Now, 1/10 is *not* a member of the "miniscule subset of rationals" you referred to above, and the machine number 0.1 does not precisely represent it: RealDigits[0.1,2] {{1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,1,0},-3} Note that the representation is finite and the last two bits reflect rounding. Nevertheless, the machine manages to create a representation of 0.1, and even reports it to be equal to 1/10. Now, if machine reals behaved as if they were "precisely equal to ... a miniscule subset of rationals" neither of these achievements would be possible. Their imprecision makes this possible. > > A number can't get more rational or algebraic (solving a FIRST degree > polynomial with integer coefficients) than that. All you've done is to find a number with that property equal to x within machine precision. But since there is, in fact, an infinite set of such numbers, finding one isn't remarkable. > > If computer reals are THE reals, I never said they were. Go back and read what I wrote. > why is it that RandomReal[{3,4}] can > never return Pi, Sqrt[11], or ANY irrational? Well, I'm not patient enough for RandomReal[{3,4}]. But, Map[Pi==#&,RandomReal[{3.14159265358970,3.14159265358980},10]] {False,True,False,False,False,True,False,True,False,False} Seems we can easily get Pi from RandomReal. And no, I'm not cheating: the numbers that yielded True here are equal to Pi in the only sense that matters with an imprecise number: they are equal to Pi within their precision. Bobby, you're looking at how machine reals are *encoded*, and a *subset* of them is encoded as if they were precise rationals, as you say. But what matters is how they *behave*. They do not generally behave like precise rationals: they behave imprecisely. And what rational number does a NaN encode? Rational addition and multiplication are associative, but machine real arithmetic isn't. Rational arithmetic is distributive, but machine real arithmetic isn't. etc. Machine reals are not the reals or the rationals: they are themselves, with their own special properties. Those who reason as if machine reals are either real or rational often suffer adverse consequences. Much of the art of numerical analysis depends upon understanding these special properties and their consequences.

**Re: Re: Re: algebraic numbers**

**Re: Re: Re: algebraic numbers**

**Re: Re: Re: algebraic numbers**

**Re: Re: Re: algebraic numbers**