thought re graphing calculators ...
Hi Brian,
I think I have a counterexample. Run the script, that you can find here:
(or below.) Runs with Python 2.6 or later. It certainly could be mimicked on a (programmable) graphics calculator.
This ran perfectly on Python 3.1rc1 (r31rc1:73069, May 31 2009, 08:57:10) on my WinXP box (one of a few). Note: if this level of chaos / noise bothers you (the functions are algebraically the same, after all), then I recommend using the decimal type instead of the floating type, converting to float just to make your turtle happy: # File: tdemo_chaos.py # Author: Gregor Lingl # amended to use Decimal by Kirby Urner 2009-09-28 # Date: 2009-06-24 # A demonstration of chaos from turtle import * from decimal import Decimal k = Decimal('3.9') N = 80 def f(x): x = Decimal(str(x)) return k*x*(1-x) def g(x): x = Decimal(str(x)) return k*(x-x**2) def h(x): x = Decimal(str(x)) return k*x-k*x*x def jumpto(x, y): penup(); goto(x,y) def line(x1, y1, x2, y2): jumpto(x1, y1) pendown() goto(x2, y2) def coosys(): line(-1, 0, N+1, 0) line(0, -0.1, 0, 1.1) def plot(fun, start, colour): pencolor(colour) x = start jumpto(0, x) pendown() dot(5) for i in range(N): x=fun(x) goto(i+1,float(x)) dot(5) def main(): reset() setworldcoordinates(-1.0,-0.1, N+1, 1.1) speed(0) hideturtle() coosys() plot(f, 0.35, "blue") plot(g, 0.35, "green") plot(h, 0.35, "red") # Now zoom in: for s in range(100): setworldcoordinates(0.5*s,-0.1, N+1, 1.1) return "Done!" if __name__ == "__main__": main() mainloop() Kirby
kirby urner schrieb:
Hi Brian,
.... This ran perfectly on Python 3.1rc1 (r31rc1:73069, May 31 2009, 08:57:10) on my WinXP box (one of a few).
Note: if this level of chaos / noise bothers you (the functions are algebraically the same, after all), then I recommend using the decimal type instead of the floating type, converting to float just to make your turtle happy:
That's fine (for the turtle). But if someone thinks that everything is calculated "correctly" now, she/he is bound to get disappointed. And that's the point (imho). Regards, Gregor # Author: Gregor Lingl # amended to use Decimal by Kirby Urner 2009-09-28 # re-corrupted to show the vainness (in principle) of kirby's effort 2009-09-28 # Date: 2009-06-24 # A demonstration of chaos from turtle import * from decimal import Decimal k = Decimal('3.9') N = 160 def f(x): x = Decimal(str(x)) return k*x*(1-x) def g(x): x = Decimal(str(x)) return k*(x-x**2) def h(x): x = Decimal(str(x)) return k*x-k*x*x def jumpto(x, y): penup(); goto(x,y) def line(x1, y1, x2, y2): jumpto(x1, y1) pendown() goto(x2, y2) def coosys(): line(-1, 0, N+1, 0) line(0, -0.1, 0, 1.1) def plot(fun, start, colour): pencolor(colour) x = start jumpto(0, x) pendown() dot(5) for i in range(N): x=fun(x) goto(i+1,float(x)) dot(5) def main(): reset() setworldcoordinates(-1.0,-0.1, N+1, 1.1) speed(0) hideturtle() coosys() plot(f, 0.35, "blue") plot(g, 0.35, "green") plot(h, 0.35, "red") # Now zoom in: for s in range(220): setworldcoordinates(0.5*s,-0.1, N+1, 1.1) return "Done!" if __name__ == "__main__": main() mainloop()
On Mon, Sep 28, 2009 at 3:12 PM, Gregor Lingl <gregor.lingl@aon.at> wrote:
kirby urner schrieb:
Hi Brian,
....
This ran perfectly on Python 3.1rc1 (r31rc1:73069, May 31 2009, 08:57:10) on my WinXP box (one of a few).
Note: if this level of chaos / noise bothers you (the functions are algebraically the same, after all), then I recommend using the decimal type instead of the floating type, converting to float just to make your turtle happy:
That's fine (for the turtle). But if someone thinks that everything is calculated "correctly" now, she/he is bound to get disappointed. And that's the point (imho).
Yes, it's a philosophical point. Doing it manually would be error prone so the "correct" way is more science fiction or fantasy than a reality. The older ways of teaching math set up some false expectations, and then when reality fails to make good, reality gets blamed, instead of the broken metaphysics behind much of "modern" math. Kirby
Regards, Gregor
# Author: Gregor Lingl # amended to use Decimal by Kirby Urner 2009-09-28 # re-corrupted to show the vainness (in principle) of kirby's effort 2009-09-28 # Date: 2009-06-24
# A demonstration of chaos
from turtle import * from decimal import Decimal
k = Decimal('3.9')
N = 160
def f(x): x = Decimal(str(x)) return k*x*(1-x)
def g(x): x = Decimal(str(x)) return k*(x-x**2)
def h(x): x = Decimal(str(x)) return k*x-k*x*x
def jumpto(x, y): penup(); goto(x,y)
def line(x1, y1, x2, y2): jumpto(x1, y1) pendown() goto(x2, y2)
def coosys(): line(-1, 0, N+1, 0) line(0, -0.1, 0, 1.1)
def plot(fun, start, colour): pencolor(colour) x = start jumpto(0, x) pendown() dot(5) for i in range(N): x=fun(x) goto(i+1,float(x)) dot(5)
def main(): reset() setworldcoordinates(-1.0,-0.1, N+1, 1.1) speed(0) hideturtle() coosys() plot(f, 0.35, "blue") plot(g, 0.35, "green") plot(h, 0.35, "red") # Now zoom in: for s in range(220): setworldcoordinates(0.5*s,-0.1, N+1, 1.1) return "Done!"
if __name__ == "__main__": main() mainloop()
On Mon, Sep 28, 2009 at 4:03 PM, kirby urner <kirby.urner@gmail.com> wrote:
On Mon, Sep 28, 2009 at 3:12 PM, Gregor Lingl <gregor.lingl@aon.at> wrote:
kirby urner schrieb:
Hi Brian,
....
This ran perfectly on Python 3.1rc1 (r31rc1:73069, May 31 2009, 08:57:10) on my WinXP box (one of a few).
Note: if this level of chaos / noise bothers you (the functions are algebraically the same, after all), then I recommend using the decimal type instead of the floating type, converting to float just to make your turtle happy:
That's fine (for the turtle). But if someone thinks that everything is calculated "correctly" now, she/he is bound to get disappointed. And that's the point (imho).
Yes, it's a philosophical point. Doing it manually would be error prone so the "correct" way is more science fiction or fantasy than a reality.
The older ways of teaching math set up some false expectations, and then when reality fails to make good, reality gets blamed, instead of the broken metaphysics behind much of "modern" math.
Kirby
Regards, Gregor
# Author: Gregor Lingl # amended to use Decimal by Kirby Urner 2009-09-28 # re-corrupted to show the vainness (in principle) of kirby's effort # fixed to show robustness of engineering solutions vs. imaginary superpowers of non-existent math gods 2009-09-28 # Date: 2009-06-24
# A demonstration of chaos
from turtle import * from decimal import Decimal
from turtle import * from decimal import Decimal, getcontext getcontext().prec = 50 :) Kirby
kirby urner schrieb:
On Mon, Sep 28, 2009 at 4:03 PM, kirby urner <kirby.urner@gmail.com> wrote:
On Mon, Sep 28, 2009 at 3:12 PM, Gregor Lingl <gregor.lingl@aon.at> wrote:
... That's fine (for the turtle). But if someone thinks that everything is calculated "correctly" now, she/he is bound to get disappointed. And that's the point (imho).
Yes, it's a philosophical point. Doing it manually would be error prone so the "correct" way is more science fiction or fantasy than a reality.
The older ways of teaching math set up some false expectations, and then when reality fails to make good, reality gets blamed, instead of the broken metaphysics behind much of "modern" math.
Kirby
Regards, Gregor
# Author: Gregor Lingl # amended to use Decimal by Kirby Urner 2009-09-28 # re-corrupted to show the vainness (in principle) of kirby's effort
# fixed to show robustness of engineering solutions vs. imaginary superpowers of non-existent math gods
2009-09-28 # Date: 2009-06-24
# A demonstration of chaos
from turtle import * from decimal import Decimal
from turtle import * from decimal import Decimal, getcontext getcontext().prec = 50
:)
Kirby
Strategy of escalation? Arms race? from turtle import * from decimal import Decimal, getcontext getcontext().prec = 50 k = Decimal('3.9') N = 250 That's what I meant with (in principle) Gregor
On Tue, Sep 29, 2009 at 9:15 AM, Gregor Lingl <gregor.lingl@aon.at> wrote:
Strategy of escalation? Arms race?
Not so much. There's nothing on the other side. Will anyone do this manually? Is that what "correctly" means? More likely they mean something like "symbolically" which is akin to "just imagining something without really doing any of the work" (so no contest, I walk away happy). The ability to brute force these data points with a self-feedback circuit governed by various expressions, is for computers and computers only. Humans by themselves aren't even in the game. At the very least you'll want an abacus, or lowly calculator if you're a nerd (snicker).
from turtle import * from decimal import Decimal, getcontext getcontext().prec = 50
k = Decimal('3.9')
N = 250
That's what I meant with (in principle)
Gregor
Yes, I understood. But what's the principle? In my curriculum, we worship nature and physical phenomena a lot more, so this imaginary thing where you imagine the same curves out to infinity, but don't actually plot anything, who worthless is that? To think, people actually get paid for such daydreaming. Amazing. Kirby
kirby urner schrieb:
On Tue, Sep 29, 2009 at 9:15 AM, Gregor Lingl <gregor.lingl@aon.at> wrote:
Strategy of escalation? Arms race?
Not so much. There's nothing on the other side. Will anyone do this manually? Is that what "correctly" means? More likely they mean something like "symbolically" which is akin to "just imagining something without really doing any of the work" (so no contest, I walk away happy).
The ability to brute force these data points with a self-feedback circuit governed by various expressions, is for computers and computers only. Humans by themselves aren't even in the game. At the very least you'll want an abacus, or lowly calculator if you're a nerd (snicker).
Oh no, when thinking about calculations or even only viewing diverging graphs humans not only are in the game but are still its main characters. Since say 5000 years humans have devoloped the concepts of numbers, calculations and algebra. They have discovered, that calculations obey certain algebraic laws like a*(b+c) = a*b + a*c and the like. Finally they have devoloped the concepts of algebraic structures like rings, fields etc. The purpose of my script simply is to show, that what we know as real numbers are different things (entities) than what we have invented (using nature an physical phenomena) as machine numbers. These two simply obey different sets of algebraic laws. The distributive law is not valid for machine numbers with the operations + and *. And this statement is true independent from the setting for getcontext().prec. (Floating point) machine numbers with + and * do not form a field. To describe their behaviour you have to devise different algebraic structures. This is not a gewgaw! In fact my intentions are much less ambituous. I'd be very glad if even 50 % of my students accepted seriously that the squareroot of two does not equal to 1.41421356237. They do not, regardless of the fact that they are able to multiply this number with itself by hand (!) and to recognize that the result does not equal 2.
from turtle import * from decimal import Decimal, getcontext getcontext().prec = 50
k = Decimal('3.9')
N = 250
That's what I meant with (in principle)
Gregor
Yes, I understood. But what's the principle?
In my curriculum, we worship nature and physical phenomena a lot more,
so this imaginary thing where you imagine the same curves out to infinity, but don't actually plot anything, who worthless is that? A very dangerous argument, in my opinion. Many (if not most) mathematicians agree with
Usually, e. g. when explaining the butterfly effect (does one use this term in English?), on argues that long-term forecasting the future is impossible because of necessary inaccuracies of the initial values as results of measuements. But look precisely: in the example we talk about, there are no measurements, which can be inaccurate and the initial values are well defined. It's the mathematics of machine numbers which generates - after a sequence of only a few hundred arithmetic operations - results, which are completely senseless (or lack any meaning). If you don't mind, ok. But you have to admit it. That is not the case with ordinary numbers. the statement that one of the most central concepts of mathematics - and the one concept which makes mathematics interesting - is the concept of infinity. If not one had to abandon a large part of classical mathematics.
To think, people actually get paid for such daydreaming. Amazing.
Now I stared at this sentence for about 10 Minutes but I can't figure out what you wanted to express exactly with this phrase. Don't know if it is my limited knowledge of the English language, my lack of getting the irony or simply my inability to accept the point of view of the modern geometrician, who anly accepts as real what he can visualize. Gregor
Kirby
On Tue, Sep 29, 2009 at 5:58 PM, Gregor Lingl <gregor.lingl@aon.at> wrote:
The ability to brute force these data points with a self-feedback circuit governed by various expressions, is for computers and computers only. Humans by themselves aren't even in the game. At the very least you'll want an abacus, or lowly calculator if you're a nerd (snicker).
Oh no, when thinking about calculations or even only viewing diverging graphs humans not only are in the game but are still its main characters.
Yes, in terms of being the architects of computers and the programming languages that control them, humans are still the stars. Mandelbrot made his original discoveries at IBM, with what were more like primitive X-rays in terms of being low resolution, like having only a float type, not a real decimal type. Of course Fractint found a way to convert these chaos chains into integers, thereby taking advantage of algorithms pioneered for this type. Were I to teach fractals in the classroom, I'd want to use the Decimal type. I'm unclear if this would mean needing to build a new complex type (independent of the built-in), with decimals for both real and imaginary parts. This would be an interesting exercise (lots of __ribs__).
Since say 5000 years humans have devoloped the concepts of numbers, calculations and algebra. They have discovered, that calculations obey certain algebraic laws like a*(b+c) = a*b + a*c and the like. Finally they have devoloped the concepts of algebraic structures like rings, fields etc.
Yes, these have been interesting discoveries and remain highly relevant in the workaday world. The idea of closure makes perfect sense in this world of types (Python is a typed language). Is a * b always going to yield a type the same as a,b? (assuming a,b were of the same type to begin with). If polynomials are the type, then a*b is a polynomial, as is a+b. Not a/b though. Polynomials form a ring, not a field.
The purpose of my script simply is to show, that what we know as real numbers are different things (entities) than what we have invented (using nature an physical phenomena) as machine numbers. These two simply obey different sets of algebraic laws. The distributive law is not valid for machine numbers with the operations + and *. And this statement is true independent from the setting for getcontext().prec. (Floating point) machine numbers with + and * do not form a field. To describe their behaviour you have to devise different algebraic structures.
I might put it differently. Real numbers are somewhat speculative and are imagined to run through all these algebraic feedback circuits to give identical results. The reals have never been implemented however, are more of an "abstract class" from which we inherit methods. The subclasses are responsible for doing the actual work. No one has ever used a real number in a real calculation. They've used what some call "approximate types" which makes sense if you think of reals as ideal i.e. we've decided "perfect" inheres in something which has no existence. The flip side of the coin is: if it doesn't exist, it's less perfect.
This is not a gewgaw!
In fact my intentions are much less ambituous. I'd be very glad if even 50 % of my students accepted seriously that the squareroot of two does not equal to 1.41421356237. They do not, regardless of the fact that they are able to multiply this number with itself by hand (!) and to recognize that the result does not equal 2.
My model of most antiquated education regimes is as follows: brow beat the kids when they're still young and undefended, easy to bully, weed out those that question authority too much, keeping those who obey. The newer models (since constructivism) get more philosophy in early and train kids to vigorously debate and question, on the theory that older people are always a source of obsolete ideas that must be filtered, as well as positive ideas worth perpetuating. Deference simply on the basis of age is a recipe for disaster in any civilization. Learn to question authority, as a survival skill. As a tip to teachers, I advise against defensiveness on behalf of some supposed monolith or cathedral i.e. lets think of "maths" in the plural, as they do in the UK. If some school of thought wants to pioneer a contrarian discourse that's not completely supportive of the last 100 years or more, so what? We celebrate consistency and coherency, not uniformity. Could we develop a geometry which does not depend on the metaphysics of real numbers, continuity, infinity? Or still have infinity, but make it more like Poincare's, a direction (like a time axis). Recall I'm Wittgenstein-trained so have a penchant for not abiding by orthodoxies. Poincare realized the solar system was chaotic long before the rank and file. Kirby
from turtle import * from decimal import Decimal, getcontext getcontext().prec = 50
k = Decimal('3.9')
N = 250
That's what I meant with (in principle)
Gregor
On Tue, Sep 29, 2009 at 8:13 PM, kirby urner <kirby.urner@gmail.com> wrote:
Since say 5000 years humans have devoloped the concepts of numbers, calculations and algebra. They have discovered, that calculations obey certain algebraic laws like a*(b+c) = a*b + a*c and the like. Finally they have devoloped the concepts of algebraic structures like rings, fields etc.
Yes, these have been interesting discoveries and remain highly relevant in the workaday world. The idea of closure makes perfect sense in this world of types (Python is a typed language). Is a * b always going to yield a type the same as a,b? (assuming a,b were of the same type to begin with). If polynomials are the type, then a*b is a polynomial, as is a+b. Not a/b though. Polynomials form a ring, not a field.
You can take quotients of polynomials if you adjoin one point at infinity to either the real or complex field. But you're right, it isn't quite a field.
My model of most antiquated education regimes is as follows: brow beat the kids when they're still young and undefended, easy to bully, weed out those that question authority too much, keeping those who obey.
The newer models (since constructivism) get more philosophy in early and train kids to vigorously debate and question, on the theory that older people are always a source of obsolete ideas that must be filtered, as well as positive ideas worth perpetuating. Deference simply on the basis of age is a recipe for disaster in any civilization. Learn to question authority, as a survival skill.
Even in math. Peano "proved" that all models of the natural numbers are isomorphic, but it turns out that you can't carry out that proof in any countably axiomatizable system. This opens the door to non-standard arithmetic and analysis. Conway found a non-standard arithmetic that extends to games of perfect information. We aren't done with this idea.
As a tip to teachers, I advise against defensiveness on behalf of some supposed monolith or cathedral i.e. lets think of "maths" in the plural, as they do in the UK.
If some school of thought wants to pioneer a contrarian discourse that's not completely supportive of the last 100 years or more, so what? We celebrate consistency and coherency, not uniformity.
Could we develop a geometry which does not depend on the metaphysics of real numbers, continuity, infinity? Or still have infinity, but make it more like Poincare's, a direction (like a time axis).
There are vast realms of such geometries, going back to projective geometries over finite fields and the like, and to general topology. Lie groups (including the one-point compactification of the complex plane) and Lie algebras. Banach spaces. Measure theory. Spaces of fractal dimension. Minkowski space. Differential geometry of Einsteinian spacetime. Non-commutative geometries in quantum mechanics (von Neumann algebras over Hilbert space). Many more.
Recall I'm Wittgenstein-trained so have a penchant for not abiding by orthodoxies.
Likewise, but I trace it back earlier, to the Pythagorean who discovered that 2^0.5 is irrational, to Socrates, and to Shakayamuni Buddha.
Poincare realized the solar system was chaotic long before the rank and file.
Peano, Hausdorff, Julia, Koch, and many others were also playing with fractals starting more than a century ago.
Kirby
-- Edward Mokurai (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://earthtreasury.org/
On Wed, Sep 30, 2009 at 1:39 AM, Edward Cherlin <echerlin@gmail.com> wrote: << trim >>
Yes, these have been interesting discoveries and remain highly relevant in the workaday world. The idea of closure makes perfect sense in this world of types (Python is a typed language). Is a * b always going to yield a type the same as a,b? (assuming a,b were of the same type to begin with). If polynomials are the type, then a*b is a polynomial, as is a+b. Not a/b though. Polynomials form a ring, not a field.
You can take quotients of polynomials if you adjoin one point at infinity to either the real or complex field. But you're right, it isn't quite a field.
The definition of "polynomial" is quite narrow and the rational expressions one gets with p/q, p,q both polynomials, need not simplify to something worthy of that brand name. Many bastard children if you wanna sound neo-Victorian about it (not saying I do). It's really not a big trauma if you need to shift types. Early Pythons had a closure model for integer division such that int / int always had an int answer -- a kind of pure algebra preserved with //. Nowadays we're used to the 3.x standard wherein int/int is more like a ring, where you "fall out" of the integer type simply for taking a multiplicative inverse of any |integer| except 1 (0 raises an exception). << trim >>
Could we develop a geometry which does not depend on the metaphysics of real numbers, continuity, infinity? Or still have infinity, but make it more like Poincare's, a direction (like a time axis).
There are vast realms of such geometries, going back to projective geometries over finite fields and the like, and to general topology. Lie groups (including the one-point compactification of the complex plane) and Lie algebras. Banach spaces. Measure theory. Spaces of fractal dimension. Minkowski space. Differential geometry of Einsteinian spacetime. Non-commutative geometries in quantum mechanics (von Neumann algebras over Hilbert space). Many more.
A feature we're looking for is "accessible to grade schoolers" i.e. we don't want you already out the other end of some lengthy pipeline wherein brainwashing has already occurred. I understand that some elite schools get into jiggering with the fifth postulate (Euclid's) even pre-college, however I'm more interested in following the lead of Karl Menger (dimension theorist) and messing with the "dimension" concept. This discussion fuels debate in the high schools, with strong players on both sides. Not waiting for any fool PhD to get in the ring and sound intelligent about a non-Euclidean geometry (is more the attitude we encourage, among people as young as 15).
Recall I'm Wittgenstein-trained so have a penchant for not abiding by orthodoxies.
Likewise, but I trace it back earlier, to the Pythagorean who discovered that 2^0.5 is irrational, to Socrates, and to Shakayamuni Buddha.
Yeah, these dudes were born earlier in time, I agree. <debate> Resolved: "Irrational numbers are of course morally superior to the rationals as all the best constants (e, phi, pi) are irrational, even transcendental if we're lucky." Pro, con or stand aside? Come prepared next Tuesday. </debate>
Poincare realized the solar system was chaotic long before the rank and file.
Peano, Hausdorff, Julia, Koch, and many others were also playing with fractals starting more than a century ago.
Kirby
Or you could say Phi (golden mean) is the Phirst Phractal (certainly the recursivity is there in the algebra). Kirby Urner ндсжег воss
-- Edward Mokurai (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://earthtreasury.org/
participants (3)
-
Edward Cherlin
-
Gregor Lingl
-
kirby urner