JavaScriptで連立方程式を解く方法

JavaScript

Pythonだといくつか連立方程式を解く方法(ライブラリ)があるのですが、JavaScriptにあるかどうか知りませんでした。
調べるとmath.jsというライブラリがあります。
数学に関する色々なことができます。
行列を扱うこともでき、これを使って連立方程式を解くことができます。

使い方

CDNが簡単です。

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/11.10.1/math.min.js"></script>

行列の積

まず行列の計算について見てみます。
積は次のとおりです。

x = [[1, 2], [3, 4]];
y = [[2, 3], [4, 5]];

result = math.multiply(x, y);
console.log(result);

実行結果
[[10, 13], [22, 29]]

逆行列

x = [[1, 2], [3, 4]];
y = [[2, 3], [4, 5]];

result = math.inv(x);
console.log(result);

実行結果
[[-2, 1], [1.5, -0.5]]

連立方程式

8元連立方程式を解いてみます。

4x1+2x2+3x3+3x4+2x5+3x6+4x7+2x8=26
2x1+3x2+2x3+2x4+4x5+2x6+4x7+2x8=13
3x1+4x2+4x3+4x4+2x5+3x6+2x7+3x8=0
4x1+2x2+3x3+4x4+4x5+4x6+2x7+4x8=20
2x1+3x2+2x3+2x4+3x5+2x6+3x7+4x8=5
3x1+4x2+4x3+3x4+2x5+4x6+3x7+2x8=5
4x1+2x2+3x3+3x4+2x5+4x6+2x7+4x8=17
2x1+3x2+2x3+2x4+1x5+3x6+2x7+2x8=-6

A = [
  [4, 2, 3, 3, 2, 3, 4, 2],
  [2, 3, 2, 2, 4, 2, 4, 2],
  [3, 4, 4, 4, 2, 3, 2, 3],
  [4, 2, 3, 4, 4, 4, 2, 4],
  [2, 3, 2, 2, 3, 2, 3, 4],
  [3, 4, 4, 3, 2, 4, 3, 2],
  [4, 2, 3, 3, 2, 4, 2, 4],
  [2, 3, 2, 2, 1, 3, 2, 2]
];
b = [
  26,
  13,
  0,
  20,
  5,
  5,
  17,
  -6
];
x = math.lusolve(A, b);
console.log(x);

実行結果

[
[8.000000000000004],
[-6.999999999999997],
[5.9999999999999964],
[-5],
[4],
[-3.000000000000001],
[1.9999999999999991],
[-1.0000000000000007]
]

コメント

  1. […] JavaScriptで連立方程式を解く方法を紹介しましたが、これをウェブページにしてみました。 […]

タイトルとURLをコピーしました