![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
シンプソンの公式を用いて積分を求めるプログラムで、
「 y=1/(1+x*x) のように±∞で0に収束するような関数は以下のような無限積分を求めることができる。
∫(-∞→∞){1/(1+x*x)}dx …(a) ただし、無限区間を分割することはできないので、コンピュータを用いた計算では
∫(-a→a){1/(1+x*x)}dx のaに大きな値を入れることで代用する。この積分を求めるプログラムをシンプソンの式を用いて作成し、以下の3ケースについて値を求めて真値と比較せよ。真値は式(a)を解析的に積分することで求めよ。
・a=100、N=1000
・a=100、N=500
・a=200、N=1000 (Nは以下のプログラムと対応しているものです)
」
というもので参考としてS=∫(1→2){1/x}dxをシンプソンの公式を使い求めるものは以下のものなのですが
#include <stdio.h>
double f(double x)
{
return 1/x;
}
int main()
{
int i,N;
double a,b,h,S;
double x[1000],y[1000];
a=1.0;
b=2.0;
N=10;
h=(b-a)/N;
for(i=0;i<=N;i++)
x[i]=a+i*h;
y[0]=f(x[0]);
y[N]=f(x[N]);
S=h*(y[0]+y[N])/3.0;
for(i=1;i<=N-1;i=i+2)
{
y[i]=f(x[i]);
S=S+h*y[i]*4.0/3.0;
}
for(i=2;i<=N-2;i=i+2)
{
y[i]=f(x[i]);
S=S+h*y[i]*2.0/3.0;
}
printf("N=%d,S=%15.10lf\n",N,S);
}
これを生かしてプリグラムをつくりたいのですが、分からなくて困っています。助けてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
doubleの変数にintとintの割り...
-
プログラムでの数字につく”f”の...
-
至急です! マクロ定義で #defi...
-
C++で外積
-
関数におけるif文とreturn文に...
-
浮動小数点の誤差のあわせ方
-
C 開放してるのにエラー(doubl...
-
difftime()について
-
待ち行列シュミレーションのプ...
-
2自由度減衰振動のルンゲクッタ法
-
ガウスのの単純消去法のプログ...
-
C言語でdouble型の小数点の引き...
-
doubleは常に%lfとするべきなのか
-
線形補間
-
C++初心者です。簡単なスコア計...
-
float型とdouble型の変数の違い...
-
斜辺と角度て底辺と高さを出したい
-
AtCoderABC135の問題Cについて
-
信頼区間の1.96や1.65ってどこ...
-
マイナスからプラスへ転じた時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
c言語で、繰り返し文の中で、0....
-
C言語を実行すると-infが出てき...
-
doubleの変数にintとintの割り...
-
float型とdouble型の変数の違い...
-
C 開放してるのにエラー(doubl...
-
C言語の型による処理速度の違い
-
Cで3乗根を求める方法
-
C言語 関数プロトタイプ宣言の...
-
関数におけるif文とreturn文に...
-
至急です! マクロ定義で #defi...
-
-1.#IND00と出てしまうのですが...
-
2次方程式の解を求めるプログ...
-
2分法で方程式の複数の解を自...
-
doubleは常に%lfとするべきなのか
-
C言語で-23乗を取り扱うには
-
C++で外積
-
int とdoubleの比較
-
C言語のプログラムで#include<m...
-
方程式を2分法を用いて解くプロ...
おすすめ情報