C/C++の宿題を片付けます 91代目
■ このスレッドは過去ログ倉庫に格納されています
0571デフォルトの名無しさん
2007/06/29(金) 20:43:39上の方の計算箇所いくつか間違ってるが、とりあえず治したのはこれ。
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323826
#define N 256
int main(void)
{
int i, n, f=10;
double w, c, b0, b1, b2, a1, a2, t=0.01;
double x[N], y[N];
for(i=0; i<N; i++)
x[i] = sin(2*PI*5*i*t)+sin(2*PI*20*i*t);
w = 2*PI*f*t;
c = w/(2.0);
b0 = b2 = (c*c/c*c) + sqrt(2*c) + 1.0;
b1 = 2.0 * b0;
a1 = (2.0*((c*(c-1))/c*c)) + sqrt(2*c) + 1.0;
a2 = (c*c) - sqrt(2*c) + (1.0/c*c) - sqrt(2*c) + 1.0;
for(n=0; n<N; n++){
y[n] = b0*x[n] + b1*x[n-1] + b2*x[n-2] - a1*y[n-1] - a2*y[n-2]; // ←n=0の場合を考えてみるとわかるが、ここでy[n-1]とy[n-2]は指定できない
printf("y[%d]: %lf\n", n, y[n]);
}
return(0);
}
コンパイル通らないのは最後のが悪いな。
問題文が不足してるというか、最後の計算が俺には理解できなかった。スマン
■ このスレッドは過去ログ倉庫に格納されています