thought: "traditional" vs "programmer" math?...



after some recent exposure (to having taken a physics class), I have noted a
few things, and wonder if maybe they can be commented on.

in particular, I am left thinking that, although both make use of math, the
math of programming and the math of more traditional fields (such as
physics, and in math classes, ...) are different...

I am not claiming there to be any significant implications of any of this,
more just personal observations / thoughts.


first observation:

traditional math seems to like to inline everything, producing potentially
big hairy expressions / ... and then either "simplify" or "solve" the
results (manipulating quite possibly a large collection of seemingly
unrelated "ideas" or "concepts" all in a single process).

an example would be a system consisting of several rigid bodies attached via
strings. in this methodology, one would combine them all into a single mass
of expressions encompassing both the ridig bodies and the strings, as well
as possibly whatever "inclined plane"/... the happen to be resting on.

however, in the usual programmer strategy, one would break the system down
into more fundamental parts (individual operations / functions), and then
connect these parts together, and the overall result will tend to be
"emergent".

for example, one creates a few functions for the behavioral interactions
between the body and the incline, between the string and whatever it is
connected to, ... and it all works no matter how one positions the bodies or
connects them together.

OTOH, if one changes some little detail in a more "traditional" approach,
then seemingly it causes changes which "cascade" and apparently change
nearly every expression in the system.

this is nearly the inverse of the programmer strategy, where once these
general-purpose functions are created, one very rarely needs to change them
again, it is merely a matter of how one puts them together.

(and, the system as a whole is primarily the result of the interactions of
some open-ended set of small "atomic" pieces...).


second observation:

there would seem to be a difference in the particular "tools" one will use
to work through a problem.

for example, a programmer may note "well, I have some code for quaternions
and matrices, may as well just use these...". so, we have things like quats,
matrices, and vectors, all over the place for sake of doing relatively
"simple" operations, such as rotating an object.

the simplest strategy, then, is to use the most capable tool, such as a
matrix or quaternion, and use this (regardless of where the object is, how
it moves, ...).

another person, OTOH, would be like "well, this particular object undergoes
a coplaner rotation, so I am going to use an angle here". an angle may be
chosen for one object even though another object in the system may not
rotate in a single plane.

similarly, a programmer will generally and consistently use, say, one
particular system for expressing translations and rotations (say,
vectors+quats, matrices, ...), whereas a person using a more traditional
strategy will consistently fall back to using piles of rather obtuse-looking
trigonometry-based solutions...


then again, it can be noted that they also like doing everything by hand,
and I have observed how quickly and terribly wrong something like a cross
product, or normalizing a vector, can go when trying to do it using
traditional means. but then I am left to wonder: why do it this way in the
first place?...


similarly, there are lots of derivatives and integrals used, even though
personally I have not seen much need to use them in practice (and, infact,
dividing by very small numbers is very likely to lead to very big roundoff
errors...).

also: people in the more traditional camps seem to not know of such things
as bezier splines (for example, for calculating intermediate values), even
though they seem to be common-place in software (and seem to be plenty
mathematical enough), ...


granted, it could all just be programmer ignorance speaking here, I don't
know...

....



.



Relevant Pages

  • Re: Program Computes incorrectly under VPC.
    ... > can make about a computer and software is that it does math correctly. ... the Application Programmer, not the Operating System Programmer, to be aware ... of the possibility of overflow, and handle it if it occurs. ... you will find that Microsoft said what they are required to say. ...
    (microsoft.public.mac.virtualpc)
  • Re: Good math skills a requirement?
    ... discrete math. ... When I was in high school, ... was spent on geometry, trig, and calculus, to the point where we ... >> I don't see how a programmer would need anything beyond simple arithmetic ...
    (comp.programming)
  • Re: Will pay $$$ for an algorithm to lower a moving average of a series of numbers. Please help.
    ... My site works best on IE since I am not a web programmer and I use ... formula/algorithm that will help predict which subsequent prices are ... I stated it as a math problem to remove the noise ...
    (sci.stat.math)
  • Re: Fermats Last Theorem
    ... First of all read my statement of research see what I have said (on my new math). ... I need programmer not really for my lecture notes, since I know enough Maple to express myself. ... I need it, because there are many classes of polynomials and Riccati, including integrals, needed to be piled up in software for a computer reference. ... I have already described on my lecture notes recently, that Galois theory is incapable of solving higher degree polynomials, because of complexity of its inner structure. ...
    (sci.math)