3 ms·
Why did the author choose such an awful example to start with (polynomials with real coefficients)? This is just upsetting: one would hope to understand things
by crabbone 4y ago
Why did the author choose such an awful example to start with (polynomials with real coefficients)? This is just upsetting: one would hope to understand things (i.e. to derive them from first principles), but instead are given another hand-waving "trust me bro, it works" kind of start...
Why even go into anything that requires "real" numbers when talking to programmers, if no real numbers can possibly exist in computers? You don't need "real" numbers for logic, nor for algebra, neither for combinatorics and many, many more useful areas of mathematics (from programming perspective). And yet the reader is required to take on faith some "math wizardry"...
Even if the author wanted so much to have polynomials, why not take polynomials with rational coefficients? -- A much easier to digest concept that requires no hand-waving and works just as good for the purposes of illustration?
- detrites 4y agoFor me, and I guess for programmers in general, as presumably anticipated by the author, the concept of floating point numbers as a pure construct without having to cram them into n bits was easy to grasp, even relaxing. Perhaps that was the intention there. As for choosing polynomials in general as a starting point, a potential answer is maybe found in the text: > Polynomials occur with stunning ubiquity across mathematics. That is, beyond the concept of basic arithmetic that's surely already known, it's possibly a logical place to begin.
- crabbone 4y agoIf you read my argument... I'm not against polynomials. I'm against using "real" numbers for programming-related examples. Floating point numbers with arbitrary precision are not the same thing as "real" numbers. They are still rational numbers. See, even you made this mistake, not surprisingly, this will confuse (or even worse, will give a false sense of understanding) to programmers reading such examples. Arbitrary precision floating point numbers exist and are quite tangible, while, perhaps, not very common, and that is the concept that's easy to grasp. These behave like almost any other number you know: you can add them, multiply, take a natural logarithm of etc. You cannot do any of those operations on "real" numbers in computers because of the way arithmetic operations work, you'd have to start with the least significant digit (to know if there's a carry), but there's no way to find out what the least significant digit is going to be.
- mr_toad 4y agoMost of machine learning uses approximations to calculus & continuous functions, and those approximations make heavy use of polynomials. As for the definition of reals - most programmers have a basic knowledge of reals and functions already, would working from first principles be any use for programming?
- crabbone 4y agoPlease read my argument: I'm not against the use of polynomials. I'm against using "real" numbers. The "real" numbers taught in high-school or in college are, well, basically, a thinly veiled lie. They "work well" for students who substitute memorizing the page number of a proof of a theorem for actual understanding of a theorem, but they don't work well for mathematicians who would actually want a good theory justifying their existence. Needless to say that nothing in computers work as a "real" number. Knowing this is important to understand that you work with, as you called them "approximations" and that those "approximations" will have pathological cases where the distinction will bite you. Finally, it's completely unnecessary for the purpose the author is using them for to have "real" numbers. It works perfectly fine with a much simpler and straight-forward concept of rationals, which doesn't require any pretension and wink-wink fingers crossed explanations. I specifically pointed this out because I remember how in my days of being a CS student the boneheaded practicum material made my blood boil because a professor would write nonsense like "let A[j] be an array of real numbers" in a... C program! And the same boneheaded professor, when told to correct that to "floating point" or "rational" would spit some more nonsense about "real" numbers.