GithubHelp home page GithubHelp logo

Factoring support for quadratics about mathsteps HOT 7 OPEN

google avatar google commented on July 24, 2024 1
Factoring support for quadratics

from mathsteps.

Comments (7)

sangwinc avatar sangwinc commented on July 24, 2024

Perhaps you might like to also consider "completing the square" as a method for solving quadratics?

x^2+2*a*x +c = 0,
x*(x+2*a) +c = 0, 
(x+a-a)*(x+a+a)+c = 0, 
(x+a)^2-a^2+c = 0
(x+a)^2 = a^2-c

... etc.

I've only just come across your system (and I'm impressed: email to follow).

Does your system provide more than one solution, or does it always just give "the way" to solve an equation?

from mathsteps.

evykassirer avatar evykassirer commented on July 24, 2024

as far as I remember, completing the square tends to be used for graphing, and isn't as useful for factoring (which is what this particular issue is working on, and would be used for simplifyExpression and solveEquation)

I could totally see another function alongside solveEquation that completes the square for quadratics and/or gives steps for graphing a function. Feel free to open an issue for that if you'd like to see it be worked on :)

Right now we always give one solution, but in the future it might be possible to configure certain settings to get certain kinds of solutions.

from mathsteps.

evykassirer avatar evykassirer commented on July 24, 2024

unassigned, since the initial pull request went through

we still need to add quadratic equation, and also expose factoring to users of the mathsteps module

from mathsteps.

aelnaiem avatar aelnaiem commented on July 24, 2024

Thanks for updating this! I will probably pick up exposing factoring in the API. Should it just be around factor() or should it be factorQuadratic? Also, factoring is often one step (currently it always is but it will have more steps once we support the quadratic equation). Finally, should we support factoring for equations as well? In the case that it's x^2 + 3x + 2 = 0, we actually have two results (similar to absolutes), x = -1 and x = -2. So maybe we wait until we have multiple case support before we tackle that?

from mathsteps.

hmaurer avatar hmaurer commented on July 24, 2024

note that factoring is sort of the opposite of simplifying, because simplifying distributes and we would want to "un-distribute"

I am inclined to disagree with that. Take Mathematica as an example, they have two functions: "Expand" and "Factor". "Expand" behaves like simplifyExpression, and "Factor" is an advanced version of what is being discussed in this issue. However the goal of simplifyExpression is not (or is it?) to expand, it is to simplify, aka to make it as clear as possible to the student.

With that in mind, factorisation could very well be used in the simplification process. For example, one might argue that 2x + 2y is a more complex expression than 2 * (x + y). Likewise, x^2 + y^2 + 2*x*y is certainly more complex than (x + y)^2. It is harder to reader, harder to find the roots of, etc. Now of course this depends on how we define "expression complexity", what the student's goal is, etc. The simplification process might also need to start by expanding an expression, cancel out terms, then factor it back to a nice result. This might be particularly

from mathsteps.

evykassirer avatar evykassirer commented on July 24, 2024

I think your message got cut off

that's a good point! it's hard to know what form a student is looking for, but adding factoring at the end is definitely something we can consider doing, or adding as an option parameter or something

from mathsteps.

aelnaiem avatar aelnaiem commented on July 24, 2024

There's a new pull request for exposing factoring
#148

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.