Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用JavaScript求解复杂方程_Javascript - Fatal编程技术网

如何用JavaScript求解复杂方程

如何用JavaScript求解复杂方程,javascript,Javascript,我有一个类型的方程式 23/(x+3) +[ (x-3)/(x+3) ] *2 = 57 我想用java-script来解x。有没有javascript库来解这些类型的方程。谢谢你的帮助 您可以使用这个库,但您需要为表达式编写解析器,您可以使用它或自己编写解析器。只有少量的标记就不会那么难了。您可以使用它-它允许您将表达式传递到解析器中,该解析器返回一个函数对象,该函数对象可以对给定的输入进行求值 下面是一个例子: var expr = Parser.parse("2 ^ x"); expr

我有一个类型的方程式

23/(x+3)  +[ (x-3)/(x+3) ] *2 = 57
我想用java-script来解x。有没有javascript库来解这些类型的方程。谢谢你的帮助

您可以使用这个库,但您需要为表达式编写解析器,您可以使用它或自己编写解析器。只有少量的标记就不会那么难了。

您可以使用它-它允许您将表达式传递到解析器中,该解析器返回一个函数对象,该函数对象可以对给定的输入进行求值

下面是一个例子:

var expr = Parser.parse("2 ^ x");
expr.evaluate({ x: 3 }); // 8

有一些JavaScript解算器可以从数值上解决您的问题。我知道的非线性解算器是。下面是一个适合你的问题的例子。我们要做的第一件事是重新排列成F(x)=0的形式

x0=-2.7999997597933


用户功能
这是一个使用Ceres.js解决用户提供函数的示例

从导入{Ceres}https://cdn.jsdelivr.net/gh/Pterodactylus/Ceres.js@master/Ceres-v1.5.3.js' var fn1=函数f1(x){ //你必须重新排列你的函数,使其等于0 23/(x[0]+3)+(x[0]-3)/(x[0]+3))*2=57 返回23/(x[0]+3)+(x[0]-3)/(x[0]+3))*2-57; } 让解算器=新Ceres() add_函数(fn1)//将第一个方程添加到解算器。 solver.promise.then(函数(结果){ var x_guess=[1]//猜测解决方案的初始值。 var s=solver.solve(x_guess)//解方程 var x=s.x//将计算出的解数组分配给变量x document.getElementById(“demo”).value=s.report//Print solver report 解析器()/ /需要在C++中释放内存 })
您的等式实际上是一个需要解析的字符串,还是只需要在开发过程中用JavaScript计算?