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

二重積分を計算するC++プログラム


変数xの下限、変数xの上限、変数yの下限、変数yの上限、対応するxに対して実行されるステップ、および対応するyに対して実行されるステップが与えられ、タスクは二重積分を生成することです。結果を表示します。

Input-: steps for x = 1.2
steps for y = 0.54
lower limit of x = 1.3
upper limit of x = 2.1
lower limit of y = 1.0
upper limit for y = 2.1
Output-: double integration is : 2.1

以下のプログラムで使用されるアプローチは次のとおりです

  • xとyの上限と下限の値を入力し、その入力でxとyに対して実行される手順を入力します
  • xとyの両方の二重積分を計算するために使用している方法は、シンプソン1/3法です
  • 先に進む前に、次の表を生成してください

二重積分を計算するC++プログラム

  • シンプソン1/3ルールを各行に適用して最初の積分を行い、それを2回繰り返して二重積分を行います
  • 結果を印刷する

アルゴリズム

Start
Step 1-> declare function to  calculate power for integration
   float fun(float x, float y)
   return pow(pow(x, 4) + pow(y, 5), 0.5)
Step 2-> declare function to find the double integral value
   float doubleIntegral(float step_x, float step_y, float lower_x, float upper_x, float lower_y, float upper_y)
   Declare int n1, n2
   Declare float arr[50][50], arr_2[50], result
   set n1 = (upper_x - lower_x) / step_x + 1
   set n2 = (upper_y - lower_y) / step_y + 1
   Loop For int i = 0 and i < n1 and ++i
      Loop For int j = 0 and j < n2 and ++j
         set arr[i][j] = fun(lower_x + i * step_x, lower_y + j * step_y)
      End
   End
   Loop For int i = 0 and i < n1 and ++i
      set arr_2[i] = 0
      Loop For int j = 0 and j < n2 and ++j
         IF (j == 0 || j == n2 - 1)
            Set arr_2[i] += arr[i][j]
         End
         Else IF (j % 2 == 0)
            Set arr_2[i] += 2 * arr[i][j]
         End
         Else
            set arr_2[i] += 4 * arr[i][j]
      End
      set arr_2[i] *= (step_y / 3)
   End
   set result = 0
   Loop For int i = 0 and i < n1 and ++i
      IF (i == 0 || i == n1 - 1)
         set result += arr_2[i]
      End
      Else IF (i % 2 == 0)
         set result += 2 * arr_2[i]
      End
      Else
         set result += 4 * arr_2[i]
      End
      set result *= (step_x / 3)
   End
   return result
Step 2-> In main()
   declare step for x as float step_x = 1.2
   Declare step for y as float step_y = 0.54
   Declare lower limit of xfloat lower_x = 1.3
   Declare upper limit of xfloat upper_x = 2.1
   Declare lower limit of yfloat lower_y = 1.0
   Declare upper limit of yfloat upper_y = 2.1
   Call (step_x, step_y, lower_x, upper_x, lower_y, upper_y)
Stop

#include <bits/stdc++.h>
using namespace std;
float fun(float x, float y) {
    return pow(pow(x, 4) + pow(y, 5), 0.5);
}
// Function to find the double integral value
float doubleIntegral(float step_x, float step_y, float lower_x, float upper_x, float lower_y, float upper_y) {
    int n1, n2;
    float arr[50][50], arr_2[50], result;
    n1 = (upper_x - lower_x) / step_x + 1;
    n2 = (upper_y - lower_y) / step_y + 1;
    for (int i = 0; i < n1; ++i) {
        for (int j = 0; j < n2; ++j) {
            arr[i][j] = fun(lower_x + i * step_x, lower_y + j * step_y);
        }
    }
    for (int i = 0; i < n1; ++i) {
        arr_2[i] = 0;
        for (int j = 0; j < n2; ++j) {
            if (j == 0 || j == n2 - 1)
                arr_2[i] += arr[i][j];
            else if (j % 2 == 0)
                arr_2[i] += 2 * arr[i][j];
            else
                arr_2[i] += 4 * arr[i][j];
        }
        arr_2[i] *= (step_y / 3);
    }
    result = 0;
    for (int i = 0; i < n1; ++i) {
        if (i == 0 || i == n1 - 1)
            result += arr_2[i];
        else if (i % 2 == 0)
            result += 2 * arr_2[i];
        else
            result += 4 * arr_2[i];
    }
    result *= (step_x / 3);
    return result;
}
int main() {
    float step_x = 1.2; //steps for x
    float step_y = 0.54; //steps for y
    float lower_x = 1.3; //lower limit of x
    float upper_x = 2.1; //upper limit of x
    float lower_y = 1.0; //lower limit of y
    float upper_y = 2.1; //upper limit of y
    cout<<"double integration is : "<<(step_x, step_y, lower_x, upper_x, lower_y, upper_y);
    return 0;
}

出力

double integration is : 2.1

  1. グラフのエッジカバーを計算するC++プログラム

    グラフの頂点の数がnの場合、タスクはグラフのエッジカバーを計算することです。エッジカバーは、グラフのすべての頂点をカバーするために必要なエッジの最小数を見つけることです。 n=5のように その場合、そのグラフは次のようになります- したがって、そのエッジカバーは3 nが8である別の例を見てみましょう そして、そのエッジカバーは次のようになります:4 例 Input: n= 5 Output: 3 Input: n= 8 Output: 4 以下で使用されるアプローチは次のとおりです − ユーザーからの入力を受け取ります 頂点の数の結果の上限値を2.0

  2. C++で正三角形の外接円の面積を計算するプログラム

    名前が示すように、正三角形は等しい辺を持ち、またそれぞれ60°の等しい内角を持つものです。正多角形であるため、正三角形とも呼ばれます 正三角形の特性は 同じ長さの3辺 同じ程度の内角60° 多角形の外接円は、多角形のすべての頂点を通過する円です。円の半径は、外接円半径と呼ばれる円の内側のポリゴンのエッジまたは辺にすることができ、円の中心は外接円と呼ばれます。円の内側でも外側でもかまいません 以下に示すのは、正三角形の外接円の図です 問題 正三角形の側面を考えると、タスクは正三角形の外接円の面積を見つけることです。ここで、面積は形状が占めるスペースです。 正三角形の外接円の面