- 締切済み
C言語で台形公式を使った二重積分のプログラム
台形公式をつかった二重積分の数値計算を行うプログラムをC言語でつくっているのですが、未だ理解が足りず、うまくできていません。 そこで、 •台形公式をつかった二重積分についてわかりやすく説明しているページ。 •台形公式で二重積分を行うプログラムの例があるページ。 •または、台形公式の二重積分(のプログラム)について説明できる方がいれば教えて下さい。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- titeiking2014
- ベストアンサー率25% (8/31)
// 被積分関数(積分したい任意の関数、以下を書き換える) double myFunction( double x , double y ) { double ans=0.0 ; ans = x * x + y * y ; return ans ; } // 積分を処理する関数 double myIntegral( double x_ini , // xの積分区間の最小値 double x_fin , // xの積分区間の最大値 double y_ini , // yの積分区間の最小値 double y_fin , // yの積分区間の最大値 double x_devN , // xの積分の分割数 double y_devN , // yの積分の分割数 double (*fnc)( double x , double y ) // 積分する関数 ) { double ss=0.0 ; // 積分値を保存する変数 double xx=0.0 , yy=0.0 ; // xとyのループ変数 double dx=(x_fin-x_ini)/x_devN ; // 積分の微小区間 double dy=(y_fin-y_ini)/y_devN ; // 積分の微小区間 for( xx=x_ini ; xx<=x_fin ; xx+=dx ) { for( yy=y_ini ; yy<=y_fin ; yy+=dx ) { ss = ss + dx * dy * ( fnc(xx,yy) + fnc(xx+dx,yy) + fnc(xx,yy+dy) + fnc(xx+dx,yy+dy) ) / 4 ; } } return ss ; }