On 7/9/2012 8:24 PM, Raymond Toy wrote:
> On 7/9/12 9:26 AM, Robert Dodier wrote:
>> Hi Jim, thanks for your interest in Maxima.
>>
>> I've taken the liberty of forwarding your message
>> to the Maxima mailing list.
>>
>> The short answer to your question is that Maxima is
>> a system for formal (that is, content-free) manipulation
>> of expressions. Essentially Maxima comprises a lot of
>> functions which look for patterns in expressions and
>> replace the patterns with something else.
> Is it really right that maxima just does pattern matching? Or are you
> saying "looking for patterns" in a more general sense?
I assume Robert is claiming this in a philosophical sense, just as an
ordinary
computer looks at a instruction and compares it with patterns. If it sees
"addi r1, 3"
it does an immediate add of 3 into register 1.
Maxima is a collection of algorithms with a command language.
Some of the algorithms are "data driven" or in modern parlance,
"object oriented" but I would not call that pattern matching.
I would reserve the term pattern matching for something more particular,
which is a subpart of Maxima.
To see how to build a system like Maxima, read Peter Norvig's book,
Paradigms of Artificial Intelligence. The sections on Lisp, and on how to
build a computer algebra system. It also describes a simple version of
symbolic integration, in a few pages. Good enough to do 80-90% of
freshman calculus integrals.
If you want to do a really good job, you would have to replace the programs
with more robust and much longer programs as specified in books on
Computer Algebra, like the one by Geddes Czapor and Labahn.
If you want learn more about the potential underpinings of such systems
you will have to learn something about modern algebra, complex analysis,
numerical analysis, computer programming language design, data structures,
algorithms, and a host of other matters.
Studying lisp beyond what is in Norvig's book is probably not necessary
for a start. If you need to know more lisp, you will realize that when you
are looking at some code and need to figure it out.
RJF
>
>
>>> I am a student in mathematica major?and i want to study
>>> the source core.But there are
>>> quite a few explain documentary in the /maxima/src address.
>>> I wander if you have more
>>> information about this(explain the function of sinint
>>> etc).And do you have any source
> sinint looks like it's not commented. But the main indefinite
> integrator is in sin.lisp, and there's a link to the paper that
> describes how sin works. Having said that, I think sinint mostly
> handles integration of rational functions of certain forms.
>
> I think you'll get much better answers if you asked a bit more focused
> questions about how things work instead of just asking about
> sinint.lisp. Some files are just huge!
>
>>> concerning LISP (Just to read the source code more easy).
> For general Lisp, there are many web resources describing Lisp. Or you
> can get yourself a book on lisp, like Practical Common Lisp by Peter
> Seibel or Lisp (somewhat old) by Winston and Horn.
>
> Ray
>
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima