Hi,
If we want to improve our equation solver in the range of transcendental
equations, it might be interesting to look at PRESS [1]:
"PRESS (PRolog Equation Solving System) is a system for solving
symbolic, transcendental, non-differential equations."
[1]: http://dream.inf.ed.ac.uk/softwar
That's useful. It looks like the problems it solves are mostly of the
type that can already be solved by SymPy, but doing it this way would
have some advantages (e.g., it looks like it mostly solves things in a
way that would be useful for a "step-by-step" system). I think Harsh
at least should tak
You could look at it, but I think that, unless it has been changed since
I last looked, it has nothing at all to offer vs. an algorithmic approach.
And some real problems in that it returns answers that are wrong, sometimes.
The authors of the program are assuming that the (human?) recipient woul
How does it return invalid results? Does it not check if spurious
solutions were introduced through multiplying both sides of an
equation?
Aaron Meurer
On Wed, May 28, 2014 at 9:14 PM, Richard Fateman wrote:
> You could look at it, but I think that, unless it has been changed since
> I last look
On Wednesday, May 28, 2014 9:16:46 PM UTC-7, Aaron Meurer wrote:
>
> How does it return invalid results? Does it not check if spurious
> solutions were introduced through multiplying both sides of an
> equation?
>
> yes.
Also, if one is inclined to say that computer programs "know" things, th
Ah, but the concept is sound, I think. One just needs to be more
careful in the implementation.
Given that this program was designed to solve "high school algebra,"
it's not surprising that the author chose to ignore complex variables,
for better or for worse.
Aaron Meurer
On Mon, Jun 2, 2014 at
Interestingly, the problem that Richard Fateman uses to introduce his
critique of Press (and other systems) doesn't look to be a happy one for
Sympy.
from sympy.abc import x
from sympy import cos, solve
solve(cos(x)+cos(3*x)+cos(5*x), x)
If you do the high-school level cleverness by hand, and
More than the logic contained in PRESS, I would get inspiration for the
programming style.
The current sympy solve has a lot of manual dispatching through "IF" and
recursion. The code is hard to read, and you also need a debugger to
understand what happens to expressions. I would suggest to eit
+1. I like your thoughts for extensions to the assumptions system.
Aaron Meurer
On Tue, Jun 3, 2014 at 10:50 AM, F. B. wrote:
> More than the logic contained in PRESS, I would get inspiration for the
> programming style.
>
> The current sympy solve has a lot of manual dispatching through "IF" an
It's getting stuck in the checking routine. Try check=False.
If you do rewrite(exp), you get some solutions.
Aaron Meurer
On Mon, Jun 2, 2014 at 11:33 PM, Rathmann wrote:
> Interestingly, the problem that Richard Fateman uses to introduce his
> critique of Press (and other systems) doesn't look
By the way, just some considerations about the Prolog approach to equation
solving. In short, Prolog tries to determine the largest set that satisfies
all given rules. I guess that if PRESS misses some rules, it will end up
showing too many solutions, because the solution set has not been proper
I had a look at SymPy, it looks like this:
In [1]: solve(cos(3*x), x)
Out[1]:
⎡π π⎤
⎢─, ─⎥
⎣6 2⎦
In [2]: solve(cos(n*x), x)
Out[2]:
⎡ π 3⋅π⎤
⎢───, ───⎥
⎣2⋅n 2⋅n⎦
It looks like the cos( ) solver just thinks that cos( ) can be zero at two
points (pi/2 and 3*pi/2), then calls a solver to m
I suppose my objection to the PRESS program is not the "organization" per
se, It could be that knowledge
of mathematics can be encoded procedurally or functionally or as pattern
matches or as rules. Frankly,
I have my own bias, having worked with several of these.
What I object to is the mind
These are all issues that Harsh should be addressing in his GSoC project.
Aaron Meurer
On Wed, Jun 4, 2014 at 6:56 AM, F. B. wrote:
> I had a look at SymPy, it looks like this:
>
> In [1]: solve(cos(3*x), x)
> Out[1]:
> ⎡π π⎤
> ⎢─, ─⎥
> ⎣6 2⎦
>
> In [2]: solve(cos(n*x), x)
> Out[2]:
> ⎡ π 3⋅
14 matches
Mail list logo