Live data from Hacker News

Architectural Changes in Math.js v2

josdejong.com

1–9 of 9 posts

Re: Architectural Changes in Math.js v2

#3
Something I'd really like Math.js to do is to be able to simplify expressions.

Say I had "abx + c = y", I'd like to substitute values into a,b and c and get something like "5x - 1 = y" back. But Math.js won't allow you to have these kinds of "symbolic" variables in their expressions - trying to eval statements such as the ones above will just return an error saying x and y are undefined. Huge bummer in my view.

Anyone know about easy solutions to this problem? I may end up doing it server-side before I render the equations I need, but I'd really like to use someone else's open source project rather than try to figure this stuff out myself...

Re: Architectural Changes in Math.js v2

#4

Something I'd really like Math.js to do is to be able to simplify expressions. Say I had "abx + c = y", I'd like to substitute values into a,b and c and get something like "5x - 1 = y" back. But Math.js won't allow you to have these kinds of "symbolic" variables in their expressions - trying to eval statements such as the ones above will just return an error saying x and y are undefined. Huge bummer in my view. Anyon…

Server side, have you looked at sympy?

Re: Architectural Changes in Math.js v2

#5

Something I'd really like Math.js to do is to be able to simplify expressions. Say I had "abx + c = y", I'd like to substitute values into a,b and c and get something like "5x - 1 = y" back. But Math.js won't allow you to have these kinds of "symbolic" variables in their expressions - trying to eval statements such as the ones above will just return an error saying x and y are undefined. Huge bummer in my view. Anyon…

You should check out this algebra.js project I've been working on for funsies.

  var exp = new Expression("a");
  exp = exp.multiply("b");
  exp = exp.multiply("x");
  exp = exp.add("c");

  console.log(exp.toString());

  exp = exp.evaluateAt({a:5, b:1, c:-1})
  console.log(exp.toString());

  var eq = new Equation(exp, new Expression("y"));
  console.log(eq.toString());

  var x = eq.solveFor("x");
  console.log("x = " + x.toString());
Yields:

  abx + c
  5x - 1
  5x - 1 = y
  x = 1/5y + 1/5
You can play with it here: http://algebra.js.org/

Re: Architectural Changes in Math.js v2

#6

Something I'd really like Math.js to do is to be able to simplify expressions. Say I had "abx + c = y", I'd like to substitute values into a,b and c and get something like "5x - 1 = y" back. But Math.js won't allow you to have these kinds of "symbolic" variables in their expressions - trying to eval statements such as the ones above will just return an error saying x and y are undefined. Huge bummer in my view. Anyon…

[deleted]

Re: Architectural Changes in Math.js v2

#7

Something I'd really like Math.js to do is to be able to simplify expressions. Say I had "abx + c = y", I'd like to substitute values into a,b and c and get something like "5x - 1 = y" back. But Math.js won't allow you to have these kinds of "symbolic" variables in their expressions - trying to eval statements such as the ones above will just return an error saying x and y are undefined. Huge bummer in my view. Anyon…

@pachydermic you can use math.parse("abx + c = y") which returns an expression tree. You can perform transformations on this tree. See docs: http://mathjs.org/docs/expressions/expression_trees.html. There is an early implementation of algebraic differentiation (not yet public): https://github.com/josdejong/mathjs/pull/411. Next step is to implement functions simplify and integrate. It all looks very promising.

Re: Architectural Changes in Math.js v2

#8

Something I'd really like Math.js to do is to be able to simplify expressions. Say I had "abx + c = y", I'd like to substitute values into a,b and c and get something like "5x - 1 = y" back. But Math.js won't allow you to have these kinds of "symbolic" variables in their expressions - trying to eval statements such as the ones above will just return an error saying x and y are undefined. Huge bummer in my view. Anyon…

You should check out this algebra.js project I've been working on for funsies. var exp = new Expression("a"); exp = exp.multiply("b"); exp = exp.multiply("x"); exp = exp.add("c"); console.log(exp.toString()); exp = exp.evaluateAt({a:5, b:1, c:-1}) console.log(exp.toString()); var eq = new Equation(exp, new Expression("y")); console.log(eq.toString()); var x = eq.solveFor("x"); console.log("x = " + x.toString()); Yiel…

@nicolewhite algebra.js looks really interesting. I hadn't seen it before. Maybe we can somehow join forces (I'm the author or math.js). If you're interested just drop me a mail or open a discussion on github.

Re: Architectural Changes in Math.js v2

#9

Earlier quoted context omitted.

You should check out this algebra.js project I've been working on for funsies. var exp = new Expression("a"); exp = exp.multiply("b"); exp = exp.multiply("x"); exp = exp.add("c"); console.log(exp.toString()); exp = exp.evaluateAt({a:5, b:1, c:-1}) console.log(exp.toString()); var eq = new Equation(exp, new Expression("y")); console.log(eq.toString()); var x = eq.solveFor("x"); console.log("x = " + x.toString()); Yiel…

@nicolewhite algebra.js looks really interesting. I hadn't seen it before. Maybe we can somehow join forces (I'm the author or math.js). If you're interested just drop me a mail or open a discussion on github.

Sure. I just looked at the expression tree you linked to above and it looks like pretty similar functionality.