Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does a system like Wolfram Alpha or Mathematica solve equations?

Tags:

I'm building a web-based programming language partially inspired by Prolog and Haskell (don't laugh).

It already has quite a bit of functionality, you can check out the prototype at http://www.lastcalc.com/. You can see the source here and read about the architecture here. Remember it's a prototype.

Currently LastCalc cannot simplify expressions or solve equations. Rather than hard-coding this in Java, I would like to enhance the fundamental language such that it can be extended to do these things using nothing but the language itself (as with Prolog). Unlike Prolog, LastCalc has a more powerful search algorithm, Prolog is "depth-first search with backtracking", LastCalc currently uses a heuristic best-first search.

Before delving into this I want to understand more about how other systems solve this problem, particularly Mathematica / Wolfram Alpha.

I assume the idea, at least in the general case, is that you give the system a bunch of rules for manipulation of equations (like a*(b+c) = a*b + a+c) specify the goal (eg. isolate variable x) and then let it loose.

So, my questions are:

  • Is my assumption correct?
  • What is the search strategy for applying rules? eg. depth first, breadth first, depth first with iterative deepening, some kind of best first?
  • If it is "best first", what heuristics are used to determine whether it is likely that a particular rule application has got us closer to our goal?

I'd also appreciate any other advice (except for "give up" - I regularly ignore that piece of advice and doing so has served me well ;).

like image 450
sanity Avatar asked Sep 10 '13 19:09

sanity


People also ask

Can Wolfram Alpha solve system of equations?

Wolfram|Alpha is capable of solving a wide variety of systems of equations. It can solve systems of linear equations or systems involving nonlinear equations, and it can search specifically for integer solutions or solutions over another domain.

What is the Wolfram Alpha solution?

Wolfram|Alpha is a great tool for finding polynomial roots and solving systems of equations. It also factors polynomials, plots polynomial solution sets and inequalities and more. Learn more about: Equation solving »


1 Answers

I dealt with such questions myself some time ago. I then found this document about simplification of expressions. It is titled Rule-based Simplification of Expressions and shows some details about simplification in Mupad, which later became a part of Matlab.

According to this document, your assumption is correct. There is a set of rules for manipulation of expressions. A heuristic quality metric is is used as a target function for simplification.

like image 78
Marc Hauptmann Avatar answered Nov 09 '22 05:11

Marc Hauptmann