0

直接型 II から伝達関数を実装する必要があります。ここでは、直接形 II とは何かについて説明します。どの係数を含めるかを選択できます。

これまでのところ、私のコードは次のようになります。

int main(void)
{
    int l, m;
    l = dirii2(2); // l = -82;
    //m = directii(2);

    return l;
}

int dirii2(int x)
{
    int y = 0; // output    // 3 is constant of array size.
    static int  v[3] = {6,4,0};
    int b[3] = {3,5,2}, a[2] = {3,6};
    int q0, q1, q2;

    for (int i = 0; i < 3 ; i++) {
        q0 = x; // q0 = x = 2
        q1 = a[2-2]*v[2-1]; // q1 = 3 * 6 = 18
        q2 = a[2-1]*v[2-2]; // q2 = 6 * 4 = 24
        v[2] = q0 - q1 - q2;//  v(n) = x(n) - a1*v(n-1) - a2v(n-2);  // v = 2 - 18 - 24 = -40
        y =+ b[i]*v[2-i];// + b[1]*v[2-1]+b[2]*v[2-2];
        v[0] = v[1];
        v[1] = v[2];
    }
    return y;
}

コードを実行すると、y不安定になっているように、結果の値が急速に増減します。

  1. 最初の反復yは になり-138ます。
  2. 2回目の反復yは になり230ます。
  3. 3回目の繰り返しyになり-92ます。

コードを正しく書きましたか?

4

0 に答える 0