« UnityでVisual C#用の数値計算ライブラリMath.NET numericsを使う(1) まずはNuGetForUnityを使ってインストール。2Dゲーム画面に連立方程式を解いた結果を表示。 | トップページ | 「トライロバレット」(佐藤究さん)を読んだ。すごかった。三葉虫に魅せられた高校生がいじめの標的にされ、一方、戦争帰りの金物屋の店主は高校の上を軍用ヘリが飛んでいるという幻聴に悩まされ…一体これがどうつながるのか?と思ったら帯通り「少年は、変身した。」ヒーローに。 »

2025年1月15日 (水)

PHPの数値計算ライブラリmathPHPを使う(3)数値積分を行う。台形則、シンプソンの公式、シンプソン3/8の公式、ブールの公式が使える。

今回は数値積分。これは簡単にこんな感じで。PHP、unicodeが変数名に使えるので$∫f⟮x⟯dxとかできる。


<?php
require_once __DIR__ . '/vendor/autoload.php';
use MathPHP\NumericalAnalysis\NumericalIntegration;

$f⟮x⟯ = function ($x) {
    return 4 / (1 + $x * $x);
};

$∫f⟮x⟯dx = NumericalIntegration\TrapezoidalRule::approximate($f⟮x⟯, 0, 1, 101);
echo "Trapezoidal: ".$∫f⟮x⟯dx."\n";

$∫f⟮x⟯dx = NumericalIntegration\SimpsonsRule::approximate($f⟮x⟯, 0, 1, 101);
echo "Simpson    : ".$∫f⟮x⟯dx."\n";

$∫f⟮x⟯dx = NumericalIntegration\SimpsonsRule::approximate($f⟮x⟯, 0, 1, 101);
echo "Simpson3/8 : ".$∫f⟮x⟯dx."\n";

$∫f⟮x⟯dx = NumericalIntegration\BoolesRule::approximate($f⟮x⟯, 0, 1, 101);
echo "Boole      : ".$∫f⟮x⟯dx."\n";

結果はこうなった。

Trapezoidal: 3.1415759869231
Simpson    : 3.1415926535901
Simpson3/8 : 3.1415926535901
Boole      : 3.14159265049
シンプソン3/8が一番Πに近いな。Booleの方がいいのかな?と思ってたので意外。

« UnityでVisual C#用の数値計算ライブラリMath.NET numericsを使う(1) まずはNuGetForUnityを使ってインストール。2Dゲーム画面に連立方程式を解いた結果を表示。 | トップページ | 「トライロバレット」(佐藤究さん)を読んだ。すごかった。三葉虫に魅せられた高校生がいじめの標的にされ、一方、戦争帰りの金物屋の店主は高校の上を軍用ヘリが飛んでいるという幻聴に悩まされ…一体これがどうつながるのか?と思ったら帯通り「少年は、変身した。」ヒーローに。 »

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

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

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

コメント

コメントを書く

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

« UnityでVisual C#用の数値計算ライブラリMath.NET numericsを使う(1) まずはNuGetForUnityを使ってインストール。2Dゲーム画面に連立方程式を解いた結果を表示。 | トップページ | 「トライロバレット」(佐藤究さん)を読んだ。すごかった。三葉虫に魅せられた高校生がいじめの標的にされ、一方、戦争帰りの金物屋の店主は高校の上を軍用ヘリが飛んでいるという幻聴に悩まされ…一体これがどうつながるのか?と思ったら帯通り「少年は、変身した。」ヒーローに。 »

最近の記事

最近のコメント

2025年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  
フォト
無料ブログはココログ