前提・実現したいこと
定積分を台形則とシンプソン則を用いて解析的に値を得る課題で、プログラムをC言語で書いていたのですが、次のようなエラーが出てしまい、解決方法がわかりません。
求めたい定積分は ∫_0^2π(sin(2x))dx です。
未熟な質問かもしれませんが、どうかご協力いただけませんでしょうか?
エラーメッセージ
「17行目」で記述エラーを発見しました。
「identifier」を付け忘れています。
ソースコード(C言語)
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define PI=4*arctan(1)
double f(double x){
double y;
y = sin(2 * x);
return y;
}
double Trapezoid(int N){
int n;
double h, I, sum = 0;
h = (PI - 0) / N; ←エラーの該当箇所です for (n = 1; n <= N - 1; n++){ sum += f(0 + n*h); } I = h*(f(0) / 2 + sum + f(PI) / 2); return I;
}
double Simpson(int N){
int n;
double h, I, sum1 = 0, sum2 = 0;
h = (PI - 0) / N; for (n = 1; n <= N / 2 - 1; n++){ sum1 += f(0 + 2 * n*h); } for (n = 1; n <= N / 2; n++){ sum2 += f(0 + (2 * n - 1)*h); } I = (h / 3)*(f(0) + f(PI) + 2 * sum1 + 4 * sum2); return I;
}
int main(void){
int N=1000;
printf("%lf %lf\n",Trapezoid(N),Simpson(N));
return 0;
}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/08 13:06