0

私はmatlabでいくつかのより複雑な行列を宣言するのに苦労しています、おそらくあなたは私を助けることができます、私は$T$値の配列を持っています/それを$y= [y_0、\ hdots、y_T] $と呼びましょう(それはデジタル信号を表します音)。

私は式を使用しています:

\begin{equation}
    y_t= a_0 + \sum_{i=1}^p  (a_i y_{t-i} + \epsilon_t), t \geq p,
\end{equation}

$y_t$の以前の$p$値のみを使用して与えられたものに基づいて合成信号を作成するため。ここで、$p$はyよりも大幅に小さいです。私がしなければならないのは、LSEメソッドを使用するためにそれらの$ a_0、\ vdots、a_p$パラメーターを見つけることです。

これが私があなたたちに助けてくれる必要があるものです:次のようなマトリックスを作成するにはどうすればよいですか?

\begin{equation}
    M =
    \begin{bmatrix}
        1 & 0 & 0 & 0 & 0 & \hdots & 0 \\
        1 & y_0 & 0 & 0 & 0 & \hdots & 0 \\
        1 & y_1 & y_0 & 0 & 0 & \hdots & 0 \\
        1 & y_2 & y_1 & y_0 & 0 & \hdots & 0 \\ 
        \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\
        1 & y_{T-1} & y_{T-2} & \hdots & \hdots & \hdots & y_{T-p} \\
    \end{bmatrix}
    \in R^{T+1xp+1}
\end{equation}

助けてくれてありがとう

編集:ここでLaTeXをフォーマットする方法は?

4

2 に答える 2

2

ある種の畳み込みを表す行列が必要なようです。Matlabでは、テプリッツ関数がここに関連しています。

次の例を参照してください

>> y=[1 2 3 4 5 6 7];
>> toeplitz(y,[y(1) zeros(1,length(y)-1)])

ans =

 1     0     0     0     0     0     0
 2     1     0     0     0     0     0
 3     2     1     0     0     0     0
 4     3     2     1     0     0     0
 5     4     3     2     1     0     0
 6     5     4     3     2     1     0
 7     6     5     4     3     2     1

したがって、コードは次のようになります。

 M = [ones(length(y),1)  toeplitz(y,[y(1) zeros(1,length(y)-1)]) ];
 M = M(:,1:p+1);  
于 2012-10-17T13:46:30.703 に答える
0

質問のフォーマットのために何が起こっているのかを知るのは本当に難しいですが、これはどうですか?

M = zeros(length(y) + 1);

M(1) = 1;

for row = 2:length(y)+1
    M(1:row) = [1 y(row-1:-1:1)];
end
于 2012-10-17T10:47:16.310 に答える