JavaScript方程式ソルバーライブラリ
-
12-10-2019 - |
質問
変数の方程式を解くJavaScriptライブラリまたは関数はありますか?
そのような 9 = 3 + x
xを解決します。しかし、サイン、コサイン、接線を含むより高度な方程式も解く必要があります。
解決
あなたはできる 近似 Excelが「Goal Seek」と呼ぶものを実行することによる解決策 - の値のテスト値 x
方程式の両側がほぼ一致するまで。方程式をで分割することでこれを行うことができます "="
署名、の各発生を置き換えます x
値で、 eval
両側に、差が特定のしきい値を下回るかどうかを判断します。比較的単純ですが、この方法には欠陥があります(それが近似であるという事実を除く)。たとえば、アルゴリズムは、実際にはそれが単なる局所的な最小/最大である場合、双方が収束していると考えるかもしれません。違いはしきい値のすぐ下に落ちます。また、複数のソリューションで方程式を解くために複数の開始点をテストする必要があります。
実際にプログラムを 解決する 人間としての方程式は(方程式の両側を再配置し、逆関数、派生物/積分などを適用することにより)はるかに複雑であり、どういうわけか完全に独自の感じがします;)
他のヒント
提案したいのですが ナルダマー. 。それは最大Quartic関数を代数的に解決することができ、さまざまな機能を数値的に解くことができます。考慮すべき別のライブラリはです 代数.
//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>
でスクリプトを見てください f(x)= 0のニュートンの方法プログラム. 。使用を使用して方程式を解決します ニュートンの接線法.
所属していません StackOverflow