GithubHelp home page GithubHelp logo

Expand things like (x+y)^2 about mathsteps HOT 7 OPEN

google avatar google commented on July 4, 2024
Expand things like (x+y)^2

from mathsteps.

Comments (7)

hmaurer avatar hmaurer commented on July 4, 2024

I think there should be an extra condition: the expansion should lead to a "simpler version".

It seems this would be quite hard to model because the simplification might happen "10 steps ahead". For example, you might have some expression with a term like (x+y)^5. Expanding it might lead to a bunch of terms cancelling out and be left with something like such as 0. However, it might also lead to a very long expression which is everything but simpler than (x+y)^5. This is tricky :/

Maybe if we could get some measure of the simplicity of an expression (and that's a big if), we could then have a system where the program could backtrack if it cannot find a "simpler" expression than whatever steps it has already reached. It's alright to go a bit uphill but only if you go downhill later :p

from mathsteps.

tkosan avatar tkosan commented on July 4, 2024

On the following website is a file named moses-simp.pdf that contains a paper titled "Algebraic Simplification a Guide for the Perplexed":

https://groups.csail.mit.edu/mac/users/gjs/6.945/readings/simplification/

It describes the various ways simplification is typically used in a CAS, which may be helpful for this discussion.

from mathsteps.

kevinbarabash avatar kevinbarabash commented on July 4, 2024

We should probably also take into consider the context of the expression (x+y)^2. If it's in an equation like (x+y)^2 = 0 then it makes more sense to square root both sides, e.g.

(x+y)^2 = 0
=> nthRoot((x+y)^2) = nthRoot(0)
=> x+y = 0
=> ...

Having some way to detect and perform steps that apply to equations will help with this situation and others to produce steps that are more like what a human would do.

from mathsteps.

evykassirer avatar evykassirer commented on July 4, 2024

agreed @kevinbarabash - I think we're gonna have to revamp the way equations work, to be a lot more smart about things. I wonder what the steps towards that are... read some papers? have a meeting on gitter where we brainstorm stuff?

from mathsteps.

tkosan avatar tkosan commented on July 4, 2024

@evykassirer, I think it would be useful to brainstorm about various ways mathsteps might be used in the future before determining how equations should work.

from mathsteps.

aelnaiem avatar aelnaiem commented on July 4, 2024

I'll be adding a timeline and doing a better job organizing over the next few days as part of the wiki effort and that will give us something we can discuss around

from mathsteps.

aelnaiem avatar aelnaiem commented on July 4, 2024

I think this should be done within the context of the problem. So in simplifications, it should expand, and in the case of solving an equation, and the variable being solved for is in the root, then we square both sides. Seems like a decent first approach at this problem.

from mathsteps.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.