Maxima by Example: Chapter 1 total rewrite



Am Samstag, den 11.07.2009, 14:17 -0700 schrieb Edwin Woollett:
> Maxima by Example, Chapter 1, Introduction to Maxima
> now has "More Bounce per Ounce".
> 
> Chapter 1 has been completely restructured, rewritten, and
> retitled in order to provide a better introduction to this series of notes.

Hello Edwin,

I have started to have a look at at your introduction. It is a very nice
work.

Some first comments:

1. chapter 1.8.1 page 21:

Chapter 1.8.1 page 21 you give a description of the function apropos.
This function has changed in the recent CVS. The modified function will
be part of the next release. The function apropos did not give the
desired information. The manual says that apropos searches for names
which have a text foo appearing anywhere in a Maxima symbol. That is not
true. You get only symbols which start with foo or have the text $foo in
it. Have a look at your example and you can see this behavior.

The modified version of apropos gives:

(%i2) apropos("exp");
(%o2) [askexp, auto_mexpr, besselexpand, beta_expand, cfexpand, comexp, 
domxexpt, dotexptsimp, errexp, errexp1, errexp2, errexp3, exp, expand, 
expandwrt, expandwrt_denom, expandwrt_factored, expandwrt_nonrat,
expansion, 
expint, expintegral_chi, expintegral_ci, expintegral_e, expintegral_e1, 
expintegral_ei, expintegral_hyp, expintegral_li, expintegral_shi, 
expintegral_si, expintegral_trig, expintexpand, expintrep, explicit,
explose, 
expon, exponentialize, expop, expr, expt, exptdispflag, exptisolate, 
exptsubst, Expt, facexpand, factorial_expand, gamma_expand, logexpand, 
macroexpand, macroexpand1, macroexpansion, matrixexp, poisexpt,
psexpand, 
radexpand, ratexpand, ratsimpexpons, sexplode, solveexplicit,
sumexpand, 
taylor_logexpand, texput, trigexpand, trigexpandplus, trigexpandtimes, 
tr_exponent, tr_warn_fexpr, exp]

A further change is that a string has to be passed to the function
apropos.

2. page 23, Property evflag 

I never used the Maxima function properties. I see that we get seven
times the output "transfun" for e.g. the Maxima function float. I think
this information is not very useful. I have will a look at it.

3. page 24, property evfun

You have stated that the functions rat and trigsimp do not have the
evfun property. Perhaps the property evfun (and evflag) is not
implemented very consistently. I will have a look it.

4. page 33, chapter 1.8.9

You have shown the following problem:

(%i23) ie:integrate(x/(x^3+1),x);
(%o23) log(x^2-x+1)/6+atan((2*x-1)/sqrt(3))/sqrt(3)-log(x+1)/3
(%i24) ratdiff(%,x);
`ratdiff' variable is embedded in kernel
 -- an error.  To debug this try debugmode(true);

ratdiff can not handle the equation, but the message should be not an
obscure error message. Again a problem we have to look at.

5. page 35, gamma_incomplete

You have demonstrated two problems of the Incomplete Gamma function:

a) The bigfloat evaluation does not simplify immediately to a simple
real or complex number.

b) The accuracy for the values gamma_incomplete(1/3,-8) and
gamma_incomplete(1/3,-8) is not very good.

The numerical algorithm of the Incomplete Gamma function is a bit tricky
and complex. Furthermore, it is difficult to get high precision over a
wide range of arguments. On the other side the bigfloat algorithm
converge to every desired precision. I will have a look at the
algorithm. Perhaps we can improve the accuracy.

Dieter Kaiser