Wil*_*ill 12 javascript equation solver
是否有一个JavaScript库或函数可以解决变量的方程式?
如9 = 3 + x
x和解决.但它也应该解决更高级的方程,包括正弦,余弦和正切.
jig*_*son 11
我想推荐 nerdamer。它可以代数求解四次函数,并且可以数值求解一系列函数。另一个要考虑的库是Algebrite。
//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());
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)
你可以接近测试值-做什么Excel调用"单变量求解"的解决方案x
,直到公式大致匹配的两侧.您可以通过将"="
符号分割为符号,用x
值替换每个出现的eval
两侧,并确定差异是否低于某个阈值来实现.虽然相对简单,但这种方法存在缺陷(除了它是近似的事实),例如算法可能认为双方正在收敛,而实际上它只是一个局部最小值/最大值并且会在之后发散.差异刚好低于你的门槛.您还需要测试多个起点以解决具有多个解决方案的方程式.
对于一个实际解决方程式的程序(通过重新排列方程的两边并应用反函数,导数/积分等等)要复杂得多,并且不知何故感觉完全是专有的;)
归档时间: |
|
查看次数: |
10468 次 |
最近记录: |