~ubuntu-branches/debian/squeeze/maxima/squeeze

« back to all changes in this revision

Viewing changes to doc/maximabook/introduction/introduction.tex

  • Committer: Bazaar Package Importer
  • Author(s): Camm Maguire
  • Date: 2006-10-18 14:52:42 UTC
  • mto: (1.1.5 upstream)
  • mto: This revision was merged to the branch mainline in revision 4.
  • Revision ID: james.westby@ubuntu.com-20061018145242-vzyrm5hmxr8kiosf
ImportĀ upstreamĀ versionĀ 5.10.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
\section{What is Maxima?}
3
 
 
4
 
Maxima (pronounced \maxp\footnote{The acronym \Max\ is the corruption of the main project name MACSYMA, which  stands for Project MAC's 
5
 
SYmbolic MAnipulation System. {\it MAC} itself is an acronym, usually 
6
 
cited as meaning Man and Computer or Machine Aided Cognition. The
7
 
Laboratory for Computer Science at the Massachusetts Institute of Technology
8
 
was known as Project MAC during the initial development of MACSYMA.  The name
9
 
MACSYMA is now trademarked by Macsyma Inc.})
10
 
is a large computer program designed for the manipulation
11
 
of algebraic expressions. You can use \Max\
12
 
for manipulation of algebraic expressions involving
13
 
constants, variables, and functions. It can
14
 
differentiate, integrate, take limits, solve equations,
15
 
factor polynomials, expand functions in power series, solve differential 
16
 
equations in closed form, and perform many other
17
 
operations.  It also has a programming language that you can use to 
18
 
extend Maxima's capabilities.
19
 
 
20
 
 
21
 
\subsection*{The Dangers of Computer Algebra}
22
 
 
23
 
~
24
 
 
25
 
With all this marvelous capability, however, you must bear in mind the 
26
 
limitations inherent in any such tool.  Those considering the use of 
27
 
computers to do mathematics, particularly
28
 
students, must be warned that these systems are no substitute for
29
 
hands on work with equations and struggling with concepts. These systems
30
 
do not build your mathematical intuition, nor will they strengthen
31
 
your core skills. This will matter a great deal down the road, especially
32
 
to those of you who wish to break new ground in theoretical mathematics
33
 
and science. Do not use a computer as a substitute for your basic
34
 
education.
35
 
 
36
 
By the same token, however, proficiency with computers and computer
37
 
based mathematics is crucial for attacking the many problems which
38
 
literally cannot be solved by pencil and paper methods. In many cases
39
 
problems which would take years by hand can be reduced to seconds
40
 
by powerful computers. Also, in the course of a long derivation, it
41
 
is sometimes useful for those who have already mastered the fundamentals
42
 
to do work in these systems as a guard against careless errors, or
43
 
a faster means than a table of deriving some particular result. Also,
44
 
in case of an error, fixing the resulting error can often be much
45
 
quicker and simpler courtesy of a mathematical notebook, which can
46
 
be reevaluated with the correct parameters in place.
47
 
 
48
 
But just as a computer can guard against human error, the human must
49
 
not trust the computer unquestioningly. All of these systems have
50
 
limits, and when those limits are reached it is quite possible for
51
 
bizarre errors to result, or in some cases answers which are actually
52
 
wrong, to say nothing of the fact that the people who programmed these
53
 
systems were human, and make mistakes. To illustrate the limits of
54
 
computer algebra systems, we take the following example: when given the 
55
 
integral \verb@Integrate 1/sqrt(2-2*cos(x))@ \verb@from x=-pi/2 to pi/2@, 
56
 
Mathematica 4.1 gives, with no warnings, \verb@\!\(2\ Log[4] - 2\ Log[Cos[\[Pi]\/8]]@
57
 
\verb@+ 2\ Log[Sin[\[Pi]\/8]]\)@ which \verb@N[%]@ evalutates numerically to
58
 
give 1.00984.  Maxima 5.6 returns the integral unevaluated, the commercial 
59
 
Macsyma says the integral is divergent, and Maple 7 says infinity. (Cite Maxima
60
 
Email list here.)
61
 
Had the person who wished to learn the result blindly trusted most of the 
62
 
systems in question, he might have been misled. So remember to think about 
63
 
the results you are given. The computer is not always necessarily right,
64
 
and even if it gives a correct answer that answer is not necessarily complete.
65
 
 
66
 
\section{A Brief History of Macsyma}
67
 
\label{history}
68
 
 
69
 
The birthplace of Macsyma, where much of the original coding took place, was
70
 
Project MAC at MIT in the late 1960s and earlier 1970s. Project MAC was an MIT
71
 
research unit, which was folded into the current Laboratory for Computer 
72
 
Science.  Research support for Macsyma included the Advanced Research Projects 
73
 
Agency(ARPA), Department of Defense, the US Department of Energy, and other 
74
 
government and private sources.
75
 
 
76
 
The original idea, first voiced by Marvin Minsky, was to automate the kinds 
77
 
of manipulations done by mathematicians, as a step toward understanding the
78
 
power of computers to exhibit a kind of intelligent behavior. \cite{MAC-M-124}
79
 
The undertaking grew out of a previous effort at MITRE Corp called Mathlab, 
80
 
work of Carl Engelman and others, plus the MIT thesis work of Joel Moses on 
81
 
symbolic integration, and the MIT thesis work of William A. Martin. The new
82
 
effort was dubbed Macsyma - Project MAC's SYmbolic MAnipulator. The original 
83
 
core design was done in July 1968, and coding began in July 1969. This was long
84
 
before the days of personal computers and cheap memory - initial development 
85
 
was centered around a single computer shared with the Artificial Intelligence 
86
 
laboratory, a DEC PDP-6.  This was replaced by newer more powerful machines 
87
 
over the years, and eventually the Mathlab group acquired its own DEC-PDP-10, 
88
 
MIT-ML running the ITS operating system. This machine became a host on the 
89
 
early ARPANET, predecessor to the internet, which helped it gain a
90
 
wider audience. As the effort grew in scope and ability the general
91
 
interest it created led to attempts to "port" the code - that is, to
92
 
take the series of instructions which had been written for one machine
93
 
and operating system and adapt them to run on another, different 
94
 
system. The earliest such effort was the running of Macsyma in a MacLisp 
95
 
environment on a GE/Honeywell Multics mainframe, another system
96
 
at MIT. The Multics environment provided essentially unlimited address
97
 
space, but for various reasons the system was not favored by 
98
 
programmers and the Multics implementation was never popular.
99
 
The next effort came about when a group at MIT designed and implemented a machine
100
 
which was based on the notion that hardware support of Lisp would make
101
 
it possible to overcome problems that inhibited the solution of
102
 
many interesting problems.  The Lisp machine clearly had to support 
103
 
Macsyma, the largest Lisp program of the day, and the effort paid off with 
104
 
probably the best environment for Macsyma to date (although requiring something
105
 
of an expert perspective).  Lisp machines, as well as other special
106
 
purpose hardware, tended to become slow and expensive compared to
107
 
off-the-shelf machines built around merchant-semiconductor CPUs, and
108
 
so the two companies that were spun off from MIT (Symbolics Inc, and 
109
 
LMI) both eventually disappeared.  Texas Instruments built a machine called
110
 
the Explorer bases on the LMI design, but also stopped production.
111
 
 
112
 
Around 1980, the idea of porting Macsyma began to be more interesting,
113
 
and the Unix based vaxima distribution, which ran on a Lisp system 
114
 
built at the University of California at Berkeley for VAX UNIX demonstrated 
115
 
that it was both possible and practical to run the software on less expensive 
116
 
systems.  (This system, Franz Lisp, was implemented primarily in Lisp with 
117
 
some parts written in C.) Once the code stabilized, the new version opened up 
118
 
porting possibilities, ultimately producing at least six variations on the 
119
 
theme which included Macsyma, Maxima, Paramax/Paramacs, Punimax, Aljbar, and 
120
 
Vaxima.  These have followed somewhat different paths, and most were destined 
121
 
to fade into the sunset.  The two which survived obscurity, Maxima and 
122
 
Macsyma, we will discuss below.  Punimax was actually an offshoot of Maxima - 
123
 
some time around 1994 Bruno Haible (author of clisp) ported maxima to clisp.
124
 
Due to the legal concerns of Richard Petti, then the owner of the commercial
125
 
Macsyma, the name was changed to Punimax.  It has not seen much activity since
126
 
the initial port, and although it is still available the ability of the main
127
 
Maxima distribution to compile on Clisp makes further development of 
128
 
Punimax unlikely.
129
 
 
130
 
 There is a certain surprising aspect in this multiplicity of versions
131
 
and platforms, given how the code seemed tied to the development environment,
132
 
which included a unique operating system.  Fortunately, Berkeley's building 
133
 
a replica of the Maclisp environment on the MIT-ML PDP-10, using tools 
134
 
available in almost any UNIX/C environment, helped solve this problem.
135
 
Complicating the matter was the eventual demise of the PDP-10 and 
136
 
Maclisp systems as Common Lisp (resembling lisp-machine lisp), influenced by 
137
 
BBN lisp and researchers at Stanford, Carnegie Mellon University, and Xerox, began to take 
138
 
hold.  It seemed sensible to re-target
139
 
the code to make it compatible with what eventually
140
 
became the ANSI Common Lisp standard.  Since almost everything needed for
141
 
for Macsyma can be done in ANSI CL, the trend toward standardization 
142
 
made many things simpler.  There are a few places
143
 
where the language is not standardized, in particular connecting to
144
 
modules written in other languages, but much of the power of the
145
 
system can be expressed within ANSI CL. It is a trend the Maxima
146
 
project is planning to carry on, to maintain and expand on this
147
 
flexibility which has emerged.
148
 
 
149
 
 With all these versions, in recent history there are two which have
150
 
been major players, due this time more to economics than to code
151
 
quality.  1982 was a watershed year in many respects for Macsyma - it
152
 
marks clearly the branching of Macsyma into two distinct products, 
153
 
and ultimately gave rise to the events which have made Maxima both 
154
 
possible and desirable.  MIT had decided, with the gradual spread of 
155
 
computers throughout the academic world, to put Macsyma on the market
156
 
commercially, using as a marketing partner the firm of  Arthur D. Little, Inc.
157
 
This version was sold to the Symbolics Inc., which, depending on your 
158
 
perspective, either turned the project into a significant marketing effort
159
 
to help sell their high-priced lisp machines, or was a diversionary
160
 
tactic to deny their competitors (LMI) this program.  At the same
161
 
time MIT forced UC Berkeley (Richard Fateman) to withdraw the
162
 
copies from about 50 sites of the VAX/UNIX and VAX/VMS versions
163
 
of Macsyma that he had distributed with MIT's consent, until some 
164
 
agreement could be reached for technology transfer. Symbolics hired some of 
165
 
the MIT staff to work at Symbolics in order to improve the code,which was 
166
 
now proprietary. The MIT-ML PDP-10 also went
167
 
off the Arpanet in 1983. (Interestingly, the closing of the MIT Lisp
168
 
and Macsyma efforts was a key reason Richard Stallman decided to form
169
 
the Free Software Foundation.)  Between the high prices, closed 
170
 
source code, and neglecting all platforms in favor of Lisp Machines  
171
 
pressure came to bear on MIT to release another version to accommodate 
172
 
these needs, which they did with some reluctance.  The new version was distributed
173
 
via the National Energy Software Center, and called DOE Macsyma. It 
174
 
had been re-coded in a dialect of lisp written for the VAX at MIT
175
 
called NIL. There was never a complete implementation. At about the 
176
 
same time a VAX/UNIX version "VAXIMA" was put into the same library by 
177
 
Berkeley. This ran on any of hundreds of machines running the Berkeley version of 
178
 
VAX Unix, and through a UNIX simulator on VMS, on any VAX system.
179
 
The DOE versions formed the basis of the subsequent non-Symbolics 
180
 
distributions. The code was made available through the National Energy
181
 
Software Center, which in its attempt to recoup its costs, charged
182
 
a significant fee \verb@($1-2k?).@  It provided full source, but in a 
183
 
concession to MIT, did not allow redistribution.  This prohibition seems 
184
 
to have been disregarded, and especially so since NESC disappeared.  Perhaps 
185
 
it didn't recoup its costs! Among all the new activity centered around DOE 
186
 
Macsyma, Prof. William Schelter began maintaining 
187
 
a version of the code at UT Austin, calling his variation Maxima. He
188
 
refreshed the NESC version with a common-lisp compatible code version.
189
 
 
190
 
 
191
 
There were, from the earliest days, other computer algebra systems
192
 
including Reduce, CAMAL, Mathlab-68, PM, and ALTRAN.  More 
193
 
serious competition, however, did not arrive until Maple and Mathematica were
194
 
released, Maple in 1985 (Cite list of dates) and Mathematica in 1988 (cite 
195
 
wolfram website). These systems were inspired by Macsyma in terms of their 
196
 
capabilities, but they proved to be much better at the challenge of building
197
 
mind-share.  DOE-Macsyma, because of the nature of its users and maintainers, never 
198
 
responded to this challenge. Symbolics' successor Macsyma Inc, having 
199
 
lost market share and unable to meet its expenses, was sold in the summer of 
200
 
1999 after attempts to find endowment and academic buyers failed. (Cite Richard
201
 
Petti usenet post.)  The purchaser withdrew Macsyma from the market 
202
 
and the developers and maintainers of that system dispersed. Mathematica and Maple
203
 
appeared to have vanquished Macsyma.
204
 
 
205
 
It was at this point Maxima re-entered the game.  Although it was not
206
 
widely known in the general academic public, W. Schelter had been
207
 
maintaining and extending his copy of the code ever since 1982. He 
208
 
had decided to see what he could do about distributing it more widely.  
209
 
He attempted to contact the NESC to request permission to distribute
210
 
derivative works.  The duties of the NESC had been assumed in 1991 by
211
 
the Energy Science and Technology Software Center, which granted him
212
 
virtually unlimited license to make and distribute derivative works,
213
 
with some minor export related caveats.  
214
 
 
215
 
It was a significant breakthrough.  While Schelter's code had been available 
216
 
for downloading for years, this 
217
 
activity became legal with the release from DOE granted in Oct. 1998, and
218
 
Maxima began to attract more attention.  
219
 
When the Macsyma company abruptly vanished in 1999, with no warning or
220
 
explanation, it left their customer base hanging.  They began looking
221
 
for a solution, and some drifted toward Maxima.
222
 
 
223
 
Dr. Schelter maintained the Maxima system until his untimely death in
224
 
July, 2001. It was a hard and unexpected blow, but Schelter's obtaining
225
 
the go-ahead to release the source code saved the project and possibly
226
 
even the Macsyma system itself. A group of users and developers who 
227
 
had been brought together by the email list for Maxima decided to try and
228
 
form a working open source project around the Maxima system, rather
229
 
than let it fade - which is where we are today.
230