Difference Equation

本文探讨了M阶齐次差分方程的求解方法,通过转换为一阶和二阶差分方程来简化求解过程,并利用特征方程确定通解形式。此外,还提供了一种基于矩阵表示的高效算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

M-order homogenous difference equation:
sigma(m = 0 : M - 1, a[m] * x[n+m]) = 0 (... 1.1)
can be represented by
sigma(m = 0 : M - 2, a(1)[m] * x(1)[n+m]) = 0 (... 1.2),
where x(1)[k] = a"[1]*x[k+1] + a[0]*x[k]
a(1)[k] = a"[k+1]/a"[1], k = 0 : M-1; a(1)[M-2] = a[M-1]/a'[1]
a'[k], k = 1 : M-2, satisfy
a[M-1]/a'[M-2] = a"[1] / a[0] = a"[k+1]/a'[k], k = 1 : M-3
We suppose the solution for equation 1.2 is
x(1)[n] = sigma(m = 0 : M - 2, bmcmn)
say, a"[1]*x[n+1] + a[0]*x[n] = sigma(m = 0 : M - 2, bmcmn)
and cm is the solution set for characteristic equation: sigma(m = 0 : M - 2, a(1)[m]*tm) = 0 (... 1.3)
Let p = -a[0]/a"[1], we have x[n+1] = p * x[n] + sigma(m = 1 : M - 2, bmcmn) (... 1.4).
The solution for the 2-order difference equation is:
x[n] = pn * x[0] + sigma(m = 1 : M-2, bm*sigma(k = 0 : n-1, cmkpnn-1-k)) (... 1.5)
After calculating the geometric series with ratio cm/p, we can see the formula 1.5 is in the form
x[n] = sigma(m = 1 : M-2, b'm*cmn)+b'M-1*pn
The characteristic equation for 1.1 is
sigma(m = 0 : M - 1, a[m] * tm) = 0,
It can be rewritten as
sigma(m = 0 : M - 2, a(1)[m] * tm*(a"[1]*t+a[0])) = 0 (... 1.6)
So, cm, m = 1 : M-2, plus p = -a[0]/a"[1] is the solution set for 1.6.
By this induction, the theorem that states the form of the solution for a homogenous difference equation is the weighted sum of the powers with degree equal to the index of the term, of the roots for the corresponding characteristic equation.

Another proof of this is in signal processing style:
First, we have to restrict the signal to be rational in this proof, say:
sigma(m=0:M-1, a[m]*x[n+m]) = 0, n>=0, and x[n] = 0, n < 0.
So, there exists sigma(n=0:M-1, a[m]*zm*sigma(n=0:Inf, x[n+m]*z-(n+m))) = 0.
sigma(n=0:Inf, x[n+m]*z-(n+m)) = X(z) - sigma(n=0:m-1, x[n]*z-n), where X(z) is the z-transform of sequence x.
From this we have X(z) = x[0] + Y(z) / sigma(m=0:M-1, a[m]*zm) = x0 + K(z)
The signal K(z) has poles: zm, which are the roots of sigma(m=0:M-1, a[m]*zm) = 0. Assured by the definition of the difference equation, it has no pole at origin, and by the fact that the order Y(z) is less than M-1,
we have K(z) in the form of partial fraction: K(z) = sigma(m=1:M-1, Am / (z - zm)).
1/(z-zk) can be expanded as Laurent series around origin, within ROC zm < |z| < Inf, which represents the rational part: X(z) = x[0] + sigma(n=1:Inf, sigma(m=1:M-1, Amzmn-1)z-n)
So the sequence is derived as: x[n] = sigma(m=1:M-1, Amzmn-1), n>0. Proof done.

However, unfortunately, the theorem above is not friendly to computer algorithm design, bringingno benefit tofast and stable implementation, as far as I can see.
To calculate any specifiic stage of output of a linearsystem, another method on the basis of matrix is more feasible:

For anyM-order equation discussed above,it can berewritten as:
x[n+m] = sigma(k =0 : M-2, a[k] * x[n+k]), the matrix representative of whichis:
[O, Eye(M-2);
a[0 : M-2]]
e.g., for the extended Fibonacci sequence x[n+3] = x[n]+x[n+1]+x[n+2] (x[0]=x[1]=1,x[2]=2), the matrix is:
A = [ 0 1 0
0 0 1
1 11]
Any output with index greater than 2 is in the third row of
a = A^(n-2) * T, where T = [1,1,2]'
The temporal complexity of the algorithm is determined by that of the power of matrix, which is O(log(n)).
The algorithm outperforms the simple iterative ones only when n is large enough so that the overall advantagein complexity compensates the disadvantage in individual matrix multiplication.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值