フーリエ係数

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ykneu

フーリエ係数

#1

投稿記事 by ykneu » 7年前

コード:

#include<stdio.h>
#include<math.h>

int main(void){
double h,f[10000],a[10000],b[10000],g,x;
int i,j,k,m,p;
h=(2*3.14159265358979)/10000.0;
for(i=0;i<=4999;i++){
	f[i]=sin((h*i)/2.0);
}
for(i=5000;i<=9999;i++){
	f[i]=-sin((h*i)/2.0);
}

for(j=0;j<=9999;j++){
	a[j]=0.0;
	b[j]=0.0;
	for(k=0;k<=9999;k++){
		a[j]=a[j]+(2.0/10000.0)*f[k]*cos(j*k*h);
		b[j]=b[j]+(2.0/10000.0)*f[k]*sin(j*k*h);
		
	}
	printf("%lf   %lf\n",a[j],b[j]);
}


return 0;
}
0<x<πのときfx=sin(x/2)
π<x<2πのときfx=-sin(x/2)
この時のフーリエ係数an,bnを求めたいのですが、厳密解と比べると、どうもbnが厳密解に近づいてくれません。
どこが間違っているか教えてもらえませんか?

“C言語何でも質問掲示板” へ戻る