Augmenting LiveCalc with a computer algebra system.

瀏覽次數:24 次
跳到第一則未讀訊息

Ted Kosan

未讀,
2012年3月12日 晚上11:23:492012/3/12
收件者:last...@googlegroups.com
Ian,

Have you thought about the idea of augmenting LiveCalc with an existing computer algebra system?  


I am the owner of the open source MathPiper project ( http://mathpiper.org ) and we have the following two Java-based CASs in the project:

1) MathPiper - An entry-level CAS that has most of its functionality implemented in the MathPiper scripting language. Here are some simple examples of MathPiper code:

http://206.21.94.61/misc/permalink/symbolic_programming.html

http://206.21.94.61/misc/permalink/procedural_vs_functional.html

http://206.21.94.61/misc/permalink/analyze_code_example.html



2) MPReduce - A version of the professional-level Reduce CAS ( http://reduce-algebra.sourceforge.net/  ) that  I modified so that it can be embedded in another application. Here is an example of MPReduce being used to solve some Khan Academy exercises:

http://206.21.94.61/misc/khan-academy/khan_academy_rational.mpw.html


An alternative to augmenting LiveCalc with one of these CASs would be to translate the functions they contain into LiveCalc code. MathPiper is probably better for this than MPReduce because MathPiper is primarily a pattern-matching system.


If anyone is interested in playing with these CASs, they are included in MathPiperIDE (which is a version of JEdit that has been customized for use as a math-oriented development environment). Be default, MathPiperIDE launches with some worksheets already opened that contain MathPiper code. A short worksheet that contains MPReduce code can be found in the mathpiperide/examples/mpreduce directory in the distribution archive.

The most recent version of MathPiperIDE can be obtained here:

http://www.mathpiper.org/development-releases

Ted Kosan

Ian Clarke

未讀,
2012年3月13日 上午11:41:442012/3/13
收件者:last...@googlegroups.com
This would definitely be desirable - a lot of people expect LastCalc to have this kind of functionality already.  

At the heart of LastCalc is a best-first backtracking "parser", which is implemented here:


The idea is that you start with a list of tokens, and then attempt to apply parsers to them, a parser being something that transforms one set of tokens into another.  The goal is to reduce it down to a single token, which is hopefully the answer.

I think the same mechanism can be applied to solving equations, so for example, if we have a way to represent an equation, we could have a parser that transforms one equation representation into another "better" one, perhaps by factorization, or another algebraic operation ("better" is defined by the goal, such as isolating a variable).

In any case, I think it makes sense to reuse LastCalc's built-in parsing mechanism if possible rather than graft on an independent system. 

Ian.



Ted Kosan

--
You received this message because you are subscribed to the LastCalc Group
http://groups.google.com/group/lastcalc?hl=en?hl=en



--
Ian Clarke
回覆所有人
回覆作者
轉寄
0 則新訊息