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

定積分に対するシンプソンの1/3ルール


台形公式と同様に、シンプソンの1/3の公式も、aからbの範囲の積分値を見つけるために使用されます。台形とシンプソンの1/3の規則の主な違いは、台形の規則では、セクション全体がいくつかの台形に分割されますが、この場合、各台形も2つの部分に分割されます。

このルールでは、次の式に従います。

定積分に対するシンプソンの1/3ルール

ここで、hは間隔の幅、nは間隔の数です。

を使用してhを見つけることができます

定積分に対するシンプソンの1/3ルール

入力と出力

Input:
The function f(x): (x+(1/x). The lower and upper limit: 1, 2. The number of intervals: 20.
Output:
The answer is: 2.19315

アルゴリズム

integrateSimpson(a, b, n)

入力- 積分の下限と上限、および区間数n。

出力- 統合後の結果。

Begin
   h := (b - a)/n
   res := f(a) + f(b)
   lim := n/2

   for i := 1 to lim, do
      oddSum := oddSum + f(a + (2i - 1)h)
   done

   oddSum := oddSum * 4
   for i := 1 to lim-1, do
      evenSum := evenSum + f(a + 2ih)
   done

   evenSum := evenSum * 2
   res := res + oddSum + evenSum
   res := res * (h/3)
   return res
End

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

float mathFunc(float x) {
   return (x+(1/x));    //function 1 + 1/x
}

float integrate(float a, float b, int n) {
   float h, res = 0.0, oddSum = 0.0, evenSum = 0.0, lim;
   int i;
   h = (b-a)/n;    //calculate the distance between two interval
   res = (mathFunc(a)+mathFunc(b));    //initial sum using f(a) and f(b)
   lim = n/2;

   for(i = 1; i<=lim; i++)
      oddSum += mathFunc(a+(2*i-1)*h);    //sum of numbers, placed at odd number
   oddSum *= 4;    //odd sum are multiplied by 4

   for(i = 1; i<lim; i++)
      evenSum += mathFunc(a+(2*i)*h);    //sum of numbers, placed at even number
   evenSum *= 2;    //even sum are multiplied by 2
   res += oddSum+evenSum;
   res *= (h/3);
   return res;    //The result of integration
}

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: 1 2 20
The answer is: 2.19315

  1. シリーズ1/1の合計を見つけるPythonプログラム! + 2/2! + 3/3! + 4/4! +……。+n/ n!

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 −整数入力nが与えられた場合、級数1/1の合計を見つける必要があります。 + 2/2! + 3/3! + 4/4! +……。+n/ n! ここではforループを実装しているため、時間計算量としてO(n)を取得します。 ここで効率を達成するために、同じループ内で階乗を計算します。 ここでは、以下に説明するようにsumofseries関数をフレーム化します- 例 def sumOfSeries(num):    res = 0    fact =

  2. Windows 8.1/8 での USB デバイスが認識されないというエラーの Do-It-Self 修正

    USBデバイスは使いやすいです。場合によっては、Windows 8.1/8 にアップデートした後、USB ポートを使用してデバイスを Windows PC に接続し、デバイスが認識されないことがあります。これは、USB デバイスが検出されないか、正常に動作しない場合に特に発生します。 Windows 8 が USB デバイスを認識できない場合の問題を解決するために何ができるかを見てみましょう。 1.ドライブがディスクの管理に表示されるかどうかを確認します まず、プラグインしたときに Windows がドライブを検出するかどうかを確認します。Windows キー + R を押し、[ファイル名