matlab利用递归求解差分方程

首先,这个不是matlab利用递归求解差分方程,而是递推;差分方程其实就是递推关系式。

然后这个循环:

for

i=N+1:N+length(n),

y(i)

=

-a1*y(i-N:i-1)'

+

b1*x(i-N:i-N+M)';

end

其实是因为:

y[n]

+

a1*y[n-1]

+

a2*y[n-2]...

+

an*y[n-N]

=

b0*x[n]

+

b1*x[n-1]

+

...

+

bm*x[n-M]

所以:

y[n]

=

-(a1*y[n-1]

+

a2*y[n-2]...

+

an*y[n-N]

)+

b0*x[n]

+

b1*x[n-1]

+

...

+

bm*x[n-M]

具体来说,就是:

我们已知了y1、y2、y3。。。yN,然后通过循环依次求得yN+1、yN+2等等。。。