使用 javascript 求解多项式方程

问题描述 投票:0回答:3

我有一个多项式方程,需要以编程方式求解。等式如下。

x/207000 + (x/1349)^(1/0.282) = (260)^2/(207000*x)

我需要求解 x。我正在为此使用 javascript。 javascript中有没有可以解数学方程的库?

javascript polynomial-math equation-solving
3个回答
3
投票

JavaScript 中的一些计算机代数系统可以求解多项式方程组。使用 Algebrite,您可以求解如下方程:

roots(x^2 + 2x = 4)

这个方程的根是

[-1-5^(1/2),-1+5^(1/2)]

还可以使用 Nerdamer 求解多项式方程组。它的文档包括这个例子:

var sol = nerdamer.solveEquations('x^3+8=x^2+6','x');
console.log(sol.toString());
//1+i,-i+1,-1

2
投票

有一些 JavaScript 求解器可以用数值方法解决您的问题。我所知道的非线性求解器是Ceres.js。这是一个适合您的问题的示例。我们要做的第一件事就是重新排列成 F(x)=0 的形式。

x0 = 184.99976046503917

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>

<h2>User Function</h2>
<p>This is an example of the solution of a user supplied function using Ceres.js</p>

<textarea id="demo" rows="40" cols="170">
</textarea>

<script>
async function ceresSolve(jsonSystem) {
const {Ceres} = await import('https://cdn.jsdelivr.net/gh/Pterodactylus/Ceres.js@latest/dist/ceres.min.js');
let solver = new Ceres()
let results = await solver.run(jsonSystem);
console.log(results.x) //Print solver results
console.log(results.report) //Print solver report
}

let jsonSystem = {
"variables": {
    "x": {
        "guess": 1,
    },
},
"functions": [
    "x/207000+(x/1349)^(1/0.282)-((260)^2/(207000∗x))",
],
}

ceresSolve(jsonSystem) //Call the function
</script>
</body>
</html>


1
投票

尝试math.js

http://mathjs.org/

它可以让您以更简洁的方式执行数学函数。

© www.soinside.com 2019 - 2024. All rights reserved.