プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

定積分を数値計算する「台形公式」とは?仕組みとC++実装例をわかりやすく解説

台形公式による定積分の概要

定積分は、台形公式(Trapezoidal Rule)を使うことで数値的に求めることができます。関数 f(x) を区間 a から b まで積分するということは、x = a から x = b の範囲における曲線の下側の面積を求めることを意味します。

この面積を求めるには、領域を n 個の台形に分割します。各台形の幅を h とすると、(b − a) = nh という関係が成り立ちます。分割する台形の数が増えるほど、面積の計算結果はより正確になります。この考え方をもとに、以下の公式で積分を求めます。

入力と出力

Input:
関数 f(x): 1-exp(-x/2.0)、積分区間: 0, 1、分割数: 20
Output:
The answer is: 0.21302

アルゴリズム

integrateTrapezoidal(a, b, n)

入力: 積分の下限 a、上限 b、および分割数 n。

出力: 積分の計算結果。

Begin
    h := (b - a)/n
    sum := f(a) + f(b)
    for i := 1 to n, do
        sum := sum + f(a + ih)
    done
    return sum
End

C++での実装例

#include<iostream>
#include<cmath>
using namespace std;

float mathFunc(float x) {
    return (1-exp(-x/2.0));     // 関数 1 - e^(-x/2)
}

float integrate(float a, float b, int n) {
    float h, sum;
    int i;
    h = (b-a)/n;                // 区間の幅 h を計算
    sum = (mathFunc(a)+mathFunc(b))/2;   // f(a) と f(b) を使って初期値を設定

    for(i = 1; i<n; i++) {
        sum += mathFunc(a+i*h);
    }
    return (h*sum);             // 積分の結果を返す
}

main() {
    float result, lowLim, upLim;
    int interval;
    cout << "Enter Lower Limit, Upper Limit and interval: "; cin >>lowLim >>upLim >>interval;
    result = integrate(lowLim, upLim, interval);
    cout << "The answer is: " << result;
}

実行結果

Enter Lower Limit, Upper Limit and interval: 0 1 20
The answer is: 0.21302

まとめ

台形公式は、曲線下の面積を複数の台形に分割して近似するシンプルかつ強力な数値積分手法です。分割数 n を大きくするほど精度が向上します。上記のC++コードのように、区間幅 h を計算し、各区間の関数値を合計して h を掛けるだけで容易に実装できるため、解析的に積分が難しい関数に対しても有効なアプローチです。

  1. CSMA/CDのバックオフアルゴリズムを解説!衝突解決の仕組みと待ち時間の計算式

    バックオフアルゴリズム(Back Off Algorithm)とはバックオフアルゴリズムは、CSMA/CD(Carrier Sense Multiple Access with Collision Detection)方式において、伝送路上で発生したデータの衝突(コリジョン)を解決するためのアルゴリズムです。複数の端末が同時に信号を送信し、衝突が発生すると、各デバイスはランダムな時間だけ待機してから再送信を行います。この待機と再送信のプロセスは、データが正常に転送されるまで繰り返されます。「バックオフ」と呼ばれるのは、ノードが再び送信を試みる前に、一定時間「後ろに下がって(back-off)」

  2. 【2022年版】PCで使えるAndroid OSおすすめ12選|エミュレータの仕組みも徹底解説

    Googleが開発したAndroidは、スマートフォンやタブレット向けに設計された、世界で最も利用されているOSのひとつです。アプリの作成からダウンロード、インストールまで柔軟に行える利便性の高さから、「PCでもAndroidを使いたい」と考える人は少なくありません。実際、エミュレータソフトやAndroidベースのOSを活用すれば、WindowsパソコンやノートPCでもAndroidアプリやゲームを快適に動かせます。 本記事では、PCで使えるおすすめのAndroid OS・エミュレータを12個厳選して紹介します。まずは、これらのツールがどのような仕組みで動作しているのかを理解しておきましょう