是否有JavaScript库或函数可以求解变量的方程式?

9 = 3 + x 并解决x。但是它还应该解决包括正弦,余弦和切线在内的更多高级方程式。

有帮助吗?

解决方案

你可以 近似 通过执行Excel所谓的“目标寻求”的解决方案 - 测试值 x 直到方程式的两侧大约匹配。您可以通过将方程式分开 "=" 签名,替换每种情况 x 有一个价值, eval两侧,确定差异是否低于一定阈值。虽然相对简单,但这种方法存在缺陷(除了它是近似值的事实),例如,算法可能认为双方趋于融合,而实际上它只是局部最小/最大,并且在之后会散开差异略低于您的阈值。您还需要测试多个起点以求解多个解决方案的方程。

为了真正的程序 解决 作为人类的方程式(通过重新安排方程式的两个侧面并应用逆函数,衍生物/积分等)更加复杂,并且某种程度上感觉完全是专有的;)

其他提示

我想建议 Nerdamer. 。它可以通过代数求解到四分之一的函数,并且可以数值求解一系列函数。要考虑的另一个库是 代数.

//solve linear equations
var x = nerdamer.solve('(x+1)*3=x-6', 'x');
console.log(x.toString());
//quadratic
var x2 = nerdamer.solve('x^2-8x+15', 'x');
console.log(x2.toString());
//quadratic algebraically
var x3 = nerdamer.solve('x^2-ax+3*b', 'x');
console.log(x3.toString());
//multiple roots
var x4 = nerdamer.solve('x^6+41*x^5+652*x^4+5102*x^3+20581*x^2+40361*x+30030', 'x');
console.log(x4.toString());
//functions - numerically around to zero up to a predefined range
var x5 = nerdamer.solve('cos(x)^2+sin(x-1)', 'x');
console.log(x5.toString());
//solve a system of linear equations
var x6 = nerdamer.solveEquations(['2x+y=7', 'x-y+3z=11', 'y-z=-1']);
console.log(x6.toString());
//solve a system of nonlinear equations
var x7 = nerdamer.solveEquations(['3*x^2/y=2', 'z*x*y-1=35', '5*z^2+7=52']);
console.log(x7.toString());
<script src="https://cdn.jsdelivr.net/npm/nerdamer@latest/nerdamer.core.js"></script>
<script src="https://cdn.jsdelivr.net/npm/nerdamer@latest/Algebra.js"></script>
<script src="https://cdn.jsdelivr.net/npm/nerdamer@latest/Calculus.js"></script>
<script src="https://cdn.jsdelivr.net/npm/nerdamer@latest/Solve.js"></script>

快速搜索出现 代数JS-Solver. 。我对他们一无所知,但它们似乎合法。 Algebra.js具有不错的OOP API,但似乎没有处理三角函数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top