Visual C# (C_sharp)の数値計算ライブラリ MathNET Numericsを使う(10) 数値積分としてガウス・クロンロッド積分公式と二重指数関数型積分公式を試す。
今回は数値積分やってみよう。
これは例題がちゃんと公式サイトに書かれているので簡単。
https://numerics.mathdotnet.com/Integration.html
数値積分の方法としては
DoubleExponentialTransformation
GaussKronrodRule
GaussLegendreRule
NewtonCotesTrapeziumRule
SimpsonRule
が選べる。今回はガウス・クロンロッド(オーダーいろいろ変える)と二重指数関数型積分公式をやってみよう。
積分は
∫4/(1+x^2)dx (積分範囲[0,1])
と
∫1/√(1-x^2)dx (積分範囲[-1,1])
とする。結果はこちら。
ガウス・クロンロッドの方は予想通りの精度だが、二重指数関数型積分公式が悪いな。
なんで?Githubのコード見てみよう。
今回のコードはこちら。めちゃくちゃ簡単。
テキストでもコードを書いておきます。
using System;
using MathNet.Numerics.Integration;
namespace MathNetIntegral
{
class Program
{
static void Main(string[] args)
{
double ApproximatePi;
double err;
Console.WriteLine("ガウス・クロンロッドの積分公式で∫4/(1+x^2)dx (積分範囲[0,1])の計算");
for (int n = 2; n <= 20; n++)
{
ApproximatePi = GaussKronrodRule.Integrate(x => 4.0 / (1.0 + x * x), 0.0, 1.0, out _, out _, order : n);
err = ApproximatePi - Math.PI;
Console.WriteLine("次数" + n.ToString() + ": " + ApproximatePi.ToString() +" 誤差: " + err.ToString());
}
Console.WriteLine();
Console.WriteLine("二重指数型数値積分で∫1/√(1-x^2)dx (積分範囲[-1,1])の計算");
double integrate = DoubleExponentialTransformation.Integrate(x => 1.0 / Math.Sqrt(1.0 - x * x), -1.0, 1.0, 1.0e-16);
Console.WriteLine(integrate.ToString());
}
}
}
過去のもの:
Visual C# (C_sharp)の数学ライブラリ Math.NET Numericsを使う(1) 複素行列を定義して一次方程式や逆行列、行列式などを計算する。
Visual C# (C_sharp)の数学ライブラリ Math.NET Numericsを使う(2) 補間を行う(Interpolate) リニア、3次スプライン、有理関数などいろいろ使える。
Visual C# (C_sharp)の数学ライブラリ Math.NET Numericsを使う(4) 多項式フィッティングをして、Array.ConvertAllで一括でフィッティングデータを得る。
« 新型コロナウイルス、日本の陽性者数&ワクチン接種者数総計をプロット&中国、韓国、アメリカ、ドイツ、フランス、イギリスの陽性者数もプロット(10/30更新) 日本も韓国も微増し始めた。あとログスケールにしていると3年超えたので左に寄る…いつになったら終息か… | トップページ | 大阪、寝屋川の成田山不動尊でお参り。 »
「パソコン・インターネット」カテゴリの記事
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2025年2月14日 Microwave Journal今月号で透明アンテナ、6Gタワー、月面用アンテナなど、Keysightが6GでEUと提携、TDKが日本酒の味わいを視覚化&車載PoC用巻き線インダクタ、QualcommがSnapdragon 6 Gen 4 Mobile発表(2025.02.14)
- 高周波・RFニュース 2025年2月13日 iFixitがSamsung Galaxy S25 ultraを分解、ぐりぐり回せる3D CTモデルに、Spirentの5G Outlook レポート、QualcommのオンデバイスAIホワイトペーパー、InfineonがCoolSiC™ MOSFETs 650 Vの Q-DPAKとTOLLパッケージで発表(2025.02.13)
- 高周波・RFニュース 2025年2月12日 GSAが5G standaloneウェビナー開催、CTIAと5G americasがケーブルに対抗してSpectrum for Broadband Competitionで連携、NXPがエッジAIのKinaraを買収、PBKreviewsがSamsung Galaxy S25/plus/ultra全部分解していて5Gミリ波AiPは全部1個(2025.02.12)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2025年2月14日 Microwave Journal今月号で透明アンテナ、6Gタワー、月面用アンテナなど、Keysightが6GでEUと提携、TDKが日本酒の味わいを視覚化&車載PoC用巻き線インダクタ、QualcommがSnapdragon 6 Gen 4 Mobile発表(2025.02.14)
- 高周波・RFニュース 2025年2月13日 iFixitがSamsung Galaxy S25 ultraを分解、ぐりぐり回せる3D CTモデルに、Spirentの5G Outlook レポート、QualcommのオンデバイスAIホワイトペーパー、InfineonがCoolSiC™ MOSFETs 650 Vの Q-DPAKとTOLLパッケージで発表(2025.02.13)
- 高周波・RFニュース 2025年2月12日 GSAが5G standaloneウェビナー開催、CTIAと5G americasがケーブルに対抗してSpectrum for Broadband Competitionで連携、NXPがエッジAIのKinaraを買収、PBKreviewsがSamsung Galaxy S25/plus/ultra全部分解していて5Gミリ波AiPは全部1個(2025.02.12)
« 新型コロナウイルス、日本の陽性者数&ワクチン接種者数総計をプロット&中国、韓国、アメリカ、ドイツ、フランス、イギリスの陽性者数もプロット(10/30更新) 日本も韓国も微増し始めた。あとログスケールにしていると3年超えたので左に寄る…いつになったら終息か… | トップページ | 大阪、寝屋川の成田山不動尊でお参り。 »
コメント