如何使用 Nerdamer.js 获得正确的解决方案

时间:2021-01-01 20:36:08

标签: javascript

我正在使用 Nerdamer.js 并且它与代码配合得很好,但是当我解决一些方程时,我得到的结果是一个函数而不仅仅是数字 这是一个例子:

1x³+2x²+3x-4=0
如果你解这个方程,你会得到这些值:
0.7760454350285384
1.7965885235495673
-1.7965885235495673
或者有时只是第一个值

但是当我尝试用 Nerdamer 解决它时,我会得到一个包含一些信息的 3 个对象的数组,每个对象中的答案是:

  1. (-1/3)*(-146+6*sqrt(606))^(1/3)*2^(-1/3)+(5/3)*(-146+6*sqrt(606))^(-1/3)*2^(1/3)-2/3
  2. (1/6)*((-146+6*sqrt(606))^(1/3)*2^(-1/3))^(-1)*(-5+5*i*sqrt(3))+(1/6)*(-146+6*sqrt(606))^(1/3)*(1+i*sqrt(3))*2^(-1/3)-2/3
  3. (1/6)*((-146+6*sqrt(606))^(1/3)*2^(-1/3))^(-1)*(-5-5*i*sqrt(3))+(1/6)*(-146+6*sqrt(606))^(1/3)*(-i*sqrt(3)+1)*2^(-1/3)-2/3

这是我的代码:

let nerdamer = require('nerdamer');
require('nerdamer/Algebra.js');
require('nerdamer/Calculus.js');
require('nerdamer/Solve.js');

这就是我获取值的方式:

var sol = nerdamer.solveEquations('1x^3+2x^2+3x-4=0');
console.log(sol[0].toString());
console.log(sol[1].toString());
console.log(sol[2].toString());

1 个答案:

答案 0 :(得分:1)

您需要为每个解决方案调用 .evaluate()

var sol = nerdamer
  .solveEquations('1x^3+2x^2+3x-4=0')
  .map(solution => nerdamer(solution).evaluate().text())