[Maxima] Typos and Questions
Martin RUBEY
rubey@labri.fr
Sun, 22 Sep 2002 23:24:52 +0200 (CEST)
Hi,
after my first experiences with maxima a year ago I didn't have any time
to spend on it, now I tried it again (new university, no MMA) and was, in
fact, rather pleased. I thought I'd just write up some simple
observations, sorry I can't contribute more at this time...
Thanks for your work, it's just great!
Martin
Line 230 of maxima.1 should read
Maxima. If gnuplot is available, it can be used by setting a plot
instead of
Maxima. If is gnuplot is available, it can be used by setting a plot
---------------
Page 3 of the Maximabook:
Line 187 of maxima.tex should probably read
\chapter{Trig through Calculus}
instead of
\chapter{Trig through Through Calculus}
--------------
Page 66 of the Maximabook:
Line 69 of prog.tex should read
with input or output commands. The input is provided through
instead of
with input or output commands. The input is provide through
---------------
local(func) should be emphasised in the documentation, i.e., it wasn't
intuitively clear to me that
block([func],func(x):=x^2); defines func globally,
and it takes some time to find out.
---------------
In MMA and I believe in Maple too, I can say
f[2]:=3
f[3]:=5 and the like,
in Maxima it seems, that the easiest way to do this is
f(x):=Block([],local(f),Map(lambda([x,y],f[x]:y),[2,3],[3,5]),f[x]);
Am I right?
--------------
Is there a obvious way to convert arrays, matrices and lists (of the right
form) into each other or do I have to loop over all the indices?
--------------
The docu says
- Function: DEFINE (f(x1, ...), body)
is equivalent to f(x1,...):="body but when used inside functions
it happens at execution time rather than at the time of definition
of the function which contains it.
Asside from the fact that " should (globally, at least also in
"Introduction to Command Line") be replaced by '',
define(f(x),Block([],local(f),Map(lambda([x,y],f[x]:y),[1,3,5],[2,5,1]),f[x]));
returns
f(x) := f[x]
and
f(x):=''Block([],local(f),Map(lambda([x,y],f[x]:y),[1,3,5],[2,5,1]),f[x]);
returns
f(x):=BLOCK([],LOCAL(f),MAP(LAMBDA([x,y],f[x]:y),[1,3,5],[2,5,1]),f[x])
so, it seems that this is not really an equivalence. In fact, it seems to
me that '' doen't do anything in this context. Furthermore
g():= f(x):=''Block([],local(f),Map(lambda([x,y],f[x]:y),[1,3,5],[2,5,1]),f[x]);
(as well as the same statement without '' ) makes g(); return
f(x):=BLOCK([],LOCAL(f),MAP(LAMBDA([x,y],f[x]:y),[1,3,5],[2,5,1]),f[x])
(and now f is defined), while
g():=define(f(x),Block([],local(f),Map(lambda([x,y],f[x]:y),[1,3,5],[2,5,1]),f[x]));
makes g(); return
f(x):=f[x]
(which is what I expected) So, I think the docu should say something like
- Function: DEFINE (f(x1, ...), body)
is equivalent to f(x1,...):=evaluated_body, where evaluated_body is
the evaluation of body.
---------------
wishlist:
Erf should accept complex arguments
Why doesn't Integrate(...), numer; call Romberg(...); ?