macrakis at alum.mit.edu
Tue Jan 16 09:05:45 CST 2007
On 1/16/07, Michel Van den Bergh <michel.vandenbergh at uhasselt.be> wrote:
> Maybe I should give the specific problem I was looking at.
> The model is an expression (i.e. bfloat(t)) in which you substitute
> values for certain variables and then you want to
> "evaluate it" to get a numeric result, if possible. How to do this
> without invoking ev?
Well, here we run into the subtle and often confusing distinction
between *mathematical expressions* and *programming expressions* in
Maxima. Mathematical functions such as sin, gamma, abs, floor, max,
etc. are dealt with by the simplifier. On the other hand, programming
functions (perhaps we should call them routines or subroutines or
procedures or something for clarity) are dealt with by the evaluator.
Examples of routines are factor, bfloat, partfrac, etc.
Simplification knows nothing about these routines.
Then there are some functions which are *both* mathematical functions
and routines -- the famous noun/verb system. Examples are limit,
integrate, diff, etc. Some transformations are done by the
simplifier: 'integrate(1.x) => x, but others are not: 'integrate(x,x)
=> 'integrate(x,x) vs. integrate(x,x) => x^2/2.
For both mathematical functions and routines, there are global
variables (such as numer, expop, etc.) which affect the value.
Resimplifying " bfloat(x) " has no effect, because bfloat is not a
More information about the Maxima