matlab利用递归求解差分方程
2个回答
展开全部
首先,这个不是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等等。。。
然后这个循环:
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等等。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询