本文章介绍了如何使用MATLAB软件求解差分方程的方法和步骤,并提供了相应的编程实例。
在MATLAB中求解差分方程的程序如下:
差分方程为:
\[ y(n) - 2y(n-1) + 3y(n-2) = 4u(n) - 5u(n-1) + 6u(n-2) -7u(n-3) \]
初始条件:\( x(-1)=1, x(-2)=-1, y(-1)=-1, y(-2)=1 \)
求解系统输出 \(y(n)\)
```matlab
clear all;
close all;
clc;
b = [4,-5,6,-7]; % 系数向量 b,对应差分方程右侧的系数
a = [1,-2,3]; % 系数向量 a,对应差分方程左侧的系数
x0=[1,-1,0];
y0=[-1,1];
xic=filtic(b,a,y0,x0); % 计算初始条件 xic
bxplus=1; % 输入信号多项式 bxplus
axplus=[1,-1]; % 输出信号多项式 axplus
ayplus = conv(a,axplus); % 多项式的乘积,计算出新的 a 系数向量 ayplus
byplus = conv(b,bxplus) + conv(xic,axplus); % 计算新的 b 系数向量 byplus
[R,P,K] = residuez(byplus,ayplus); % 使用留数法求解 z 变换,R为留数,P为极点,K为直接项系数
Mp=abs(P);
Ap=angle(P)*180/pi;
N = 100;
n = 0:N-1;
xn = ones(1,N); % 输入信号序列 xn
yn = filter(b,a,xn,xic); % 应用filter函数求解差分方程,得到输出序列 yn
plot(n,yn);
```