PHPの数値計算ライブラリmathPHPを使う(1)まずは行列計算。連立方程式、逆行列、行列式はもちろん、LU分解、QR分解、コレスキー分解なども簡単にできる。
過去にVisual C#用の数値計算ライブラリMath.NET numericsやJavaScript用の数値計算ライブラリmath.jsを使って遊んでみたが、
今回はPHPの数値計算ライブラリ、mathPHPを使ってみる。
https://github.com/markrogoyski/math-php
インストールは書いてある通りにすればすぐできた。機能かなり充実している。ではまずは連立方程式、逆行列、行列式を計算してみよう。
事例はJavaScriptのときに使ったもの。
<?php
require_once __DIR__ . '/vendor/autoload.php';
use MathPHP\LinearAlgebra\MatrixFactory;
use MathPHP\LinearAlgebra\Vector;
$m = [
[ 2, 1, 1],
[-1, 1, -1],
[ 1, 2, 3]
];
$A = MatrixFactory::create($m);
$b = new Vector([2, 3, -10]);
$x = $A->solve($b);
$A_inv = $A->inverse();
$detA = $A->det();
print("x = $x\n");
print("A⁻¹ = $A_inv\n");
print("det(A) = $detA\n");
|
結果は
x = [3, 1, -5]
A⁻¹ = [0.55555555555556, -0.11111111111111, -0.22222222222222]
[0.22222222222222, 0.55555555555556, 0.11111111111111]
[-0.33333333333333, -0.33333333333333, 0.33333333333333]
det(A) = 9
となって一瞬で計算できた。めっちゃ簡単。
行列の分解もLU分解(とCrout分解)、QR分解、コレスキー分解、特異値分解(SVD、これは別の記事で書く)などが簡単にできる。
QR分解やってみよう。Wikipediaに出てた例題を使う。
<?php
require_once __DIR__ . '/vendor/autoload.php';
use MathPHP\LinearAlgebra\MatrixFactory;
$A = MatrixFactory::create([[12, -51, 4],
[6, 167, -68],
[-4, 24, -41],
]);
$QR = $A->qrDecomposition();
$Q = $QR->Q;
$R = $QR->R;
print("Q = $Q\n");
print("R = $R\n");
|
Q = [-0.85714285714286, 0.39428571428571, 0.33142857142857]
[-0.42857142857143, -0.90285714285714, -0.034285714285714]
[0.28571428571429, -0.17142857142857, 0.94285714285714]
R = [-14, -21, 14]
[5.5169544146758E-17, -175, 70]
[6.1489275210009E-18, -3.5527136788005E-15, -35]
となってこれも簡単に計算できた。
ちょっといろいろ使ってみよう(続く)。
« 2025年のマグロの初競り価格は2億700万円。ということで1999年からの価格推移をリニアスケールとログスケールでプロット。 | トップページ | 宝塚を久しぶりにぶらぶら歩く。阪急宝塚駅前の像から宝塚大劇場、手塚治虫記念館、宝塚音楽学校、花の道などを通りかかる。 »
「パソコン・インターネット」カテゴリの記事
- Pascalの開発者ヴィルトさんがお亡くなりになったということで、そういやDelphiってどうなってる?と思って調べると、もはやボーランドではなくEmbacardero社が販売していて、しかも無償のDelphi 12 Community Editionがある。早速インストールして試す。(2025.01.10)
- UnityでVisual C#用の数値計算ライブラリMath.NET numericsを使う(1) まずはNuGetForUnityを使ってインストール。2Dゲーム画面に連立方程式を解いた結果を表示。(2025.01.14)
- 2025年年賀状に描く巳の絵をいろんな生成AI(OpenAI ChatGPT-4o, Google Gemini 2 Flash Experimental、XのGrok2、Microsoft Designer)に描いてもらう。同じプロンプトだったが一番好きなのはChatGPTかな。でも実は年賀状には全部使った。(2024.12.31)
- 高周波回路シミュレータQucsStudioがuSimmicsに名称変更し、バージョンも4.8.3から5.8にアップデートされた。Qucsと区別するためだそうだ。また、Pythonの高周波用ライブラリscikit-rfもv1.5.0にバージョンアップされていた(2024.12.04)
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2025年1月13日 IEEE Microwave Magazineの特集はニューラルネットワークとマイクロ波、Siversがミリ波ビームフォーマー開発を受注、バイデン・ハリス政権が ワイヤレス革命に1億 1,700 万ドル、HoneywellとNXPが航空機技術で提携(2025.01.13)
- UnityでVisual C#用の数値計算ライブラリMath.NET numericsを使う(1) まずはNuGetForUnityを使ってインストール。2Dゲーム画面に連立方程式を解いた結果を表示。(2025.01.14)
- 高周波・RFニュース 2025年1月9日 CES2025に合わせて各社プレスリリース、特にQualcomm、NVIDIA、INTELが大量。SEMCOのC0G MLCC (1210 inch, 22nF, 1000V)解説、TIのAI搭載60GHz車内レーダ、MarvellのCPO、Qorvoの車載UWB SoC、TDKのセンサがAI白杖に採用(2025.01.09)
- NHK パンサー尾形さんの笑わない数学 微分・積分 スペシャルがもうすぐ始まる。これから見てリアルタイムでポストしたのでそのスレッドを残す。(2024.12.29)
「旅行・地域」カテゴリの記事
- 塚口神社でお参り。(2025.01.18)
- 西宮神社でお参り、そして大マグロにお賽銭を貼ろうとしたがもう全身貼られていて断念した。(2025.01.09)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2025年1月13日 IEEE Microwave Magazineの特集はニューラルネットワークとマイクロ波、Siversがミリ波ビームフォーマー開発を受注、バイデン・ハリス政権が ワイヤレス革命に1億 1,700 万ドル、HoneywellとNXPが航空機技術で提携(2025.01.13)
- Pascalの開発者ヴィルトさんがお亡くなりになったということで、そういやDelphiってどうなってる?と思って調べると、もはやボーランドではなくEmbacardero社が販売していて、しかも無償のDelphi 12 Community Editionがある。早速インストールして試す。(2025.01.10)
- UnityでVisual C#用の数値計算ライブラリMath.NET numericsを使う(1) まずはNuGetForUnityを使ってインストール。2Dゲーム画面に連立方程式を解いた結果を表示。(2025.01.14)
- 高周波・RFニュース 2025年1月9日 CES2025に合わせて各社プレスリリース、特にQualcomm、NVIDIA、INTELが大量。SEMCOのC0G MLCC (1210 inch, 22nF, 1000V)解説、TIのAI搭載60GHz車内レーダ、MarvellのCPO、Qorvoの車載UWB SoC、TDKのセンサがAI白杖に採用(2025.01.09)
« 2025年のマグロの初競り価格は2億700万円。ということで1999年からの価格推移をリニアスケールとログスケールでプロット。 | トップページ | 宝塚を久しぶりにぶらぶら歩く。阪急宝塚駅前の像から宝塚大劇場、手塚治虫記念館、宝塚音楽学校、花の道などを通りかかる。 »
コメント