Comments (7)
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.
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.
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.
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.
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.
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.
There's a new pull request for exposing factoring
#148
from mathsteps.
Related Issues (20)
- Can mathsteps handle derivative and integral? HOT 6
- x * (x - 1) = 1 ===>> throws 'Math error: No term with symbol: x , returning no steps' HOT 1
- How to run mathsteps on smartphone? HOT 1
- Severe security vulnerability HOT 5
- Missing parentheses when multiplying with a negative number HOT 5
- more things to add to linter
- Current Limitations HOT 1
- Mathsteps cannot handle quadratic equations HOT 4
- Development Status HOT 1
- handling latex input
- Script to browserify mathsteps
- compute a reverse expression HOT 1
- Fails when left node is only a parenthesis (eg "(x+1)=4", "((x)/(4))=4")
- Canceling out first variable throws error
- How to render these steps using Mathjax or something else? HOT 1
- Project Status and inactive email HOT 2
- bug : x-2/3=0
- Another bug : 2/x=3/4 HOT 2
- Adapting to iOS Swift
- Adapt README.md to link to the most active fork
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mathsteps.