« 新型コロナウイルス、日本の陽性者数&ワクチン接種者数総計をプロット&中国、韓国、アメリカ、ドイツ、フランス、イギリスの陽性者数もプロット(12/4更新)日本・韓国・中国の伸びがひどい(特に中国)。日本は20%の人口(5人に1人)がもう陽性になったことに。  | トップページ | 「シーソーモンスター」(伊坂幸太郎さん)を読んだ。8作家が共通ルールで歴史を追って競作する豪華版の1冊だが、それを置いておいても単独で面白い!昭和後期のシーソーモンスター(バブル期!)と近未来のスピンモンスター(AIもの)の2篇。 »

2022年12月 6日 (火)

JavaScriptの数値計算ライブラリmathjsを使う(1) まずは行列演算。LU分解で一次方程式を解き、逆行列と行列式を求める。このココログで直接計算できる機能も付けた。

Visual C#で数値計算シリーズ(Math.NET numerics)をやっている。C#を使っているのは会社で使っている人が多いという理由だけだが、

そういや世の中的にはいろんなランキングでJavaScriptが一位になっているのをよく見る。昔、JavaScriptが出てきたときにちょっとだけ

触って複素数ライブラリやルンゲクッタ法をやったことはあるが、html用の言語ということで当時はデバッグとか面倒だな、、、ということで

早々に触るのをやめた。

今やNode.jsやVisual Studio Codeでめちゃくちゃ扱いやすくなっているのをいまさらながら知った。なのでちょっと触ってみよう。

これも数値計算から入るのが私にはとっつきやすい、ということでこれを使う。mathjs。

https://mathjs.org/

npmでインストールするのが簡単だが、ブラウザからでも簡単に使える。このココログ内で使えるかやってみよう。

まずは行列演算。LU分解で一次方程式を解き、逆行列と行列式を求めることにする。例題はこちらと同じにする。

 Visual C# (C_sharp)の数学ライブラリ Math.NET Numericsを使う(1) 複素行列を定義して一次方程式や逆行列、行列式などを計算する。

コードはこんな感じで。

Mathjs12051

結果はこんな感じ。

Mathjs12052

まずはこれを先頭につけておく必要がある。

    <script src="https://unpkg.com/mathjs@11.4.0/lib/browser/math.js"></script>

LU分解から連立方程式を計算するのは、

            const a = math.matrix(JSON.parse(matrix_a.value))
            const b = math.matrix(JSON.parse(vector_b.value))      
            const lu = math.lup(a)
            answer.innerHTML = math.format(math.lusolve(lu, b),6)
みたいに簡単にできるし、逆行列は
            const a = math.matrix(JSON.parse(matrix_a.value))
            answer.innerHTML = math.format(math.inv(a),6)
行列式は
            const a = math.matrix(JSON.parse(matrix_a.value))
            answer.innerHTML = math.format(math.det(a),6)
math.formatは単に桁数を6桁にするのに使っているだけ。

このサイト(ココログ)で実際に計算できるようにしてみた。例のような形で行列を入力してボタンを押すと計算してくれます。



答え

« 新型コロナウイルス、日本の陽性者数&ワクチン接種者数総計をプロット&中国、韓国、アメリカ、ドイツ、フランス、イギリスの陽性者数もプロット(12/4更新)日本・韓国・中国の伸びがひどい(特に中国)。日本は20%の人口(5人に1人)がもう陽性になったことに。  | トップページ | 「シーソーモンスター」(伊坂幸太郎さん)を読んだ。8作家が共通ルールで歴史を追って競作する豪華版の1冊だが、それを置いておいても単独で面白い!昭和後期のシーソーモンスター(バブル期!)と近未来のスピンモンスター(AIもの)の2篇。 »

パソコン・インターネット」カテゴリの記事

学問・資格」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« 新型コロナウイルス、日本の陽性者数&ワクチン接種者数総計をプロット&中国、韓国、アメリカ、ドイツ、フランス、イギリスの陽性者数もプロット(12/4更新)日本・韓国・中国の伸びがひどい(特に中国)。日本は20%の人口(5人に1人)がもう陽性になったことに。  | トップページ | 「シーソーモンスター」(伊坂幸太郎さん)を読んだ。8作家が共通ルールで歴史を追って競作する豪華版の1冊だが、それを置いておいても単独で面白い!昭和後期のシーソーモンスター(バブル期!)と近未来のスピンモンスター(AIもの)の2篇。 »

最近の記事

最近のコメント

2023年2月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28        
フォト
無料ブログはココログ