差分方程matlab解法

差分方程matlab解法,第1张

如何用matlab解差方程差分方程是指未知函数差分的方程,其一般形式为

F(t,yt,Δyt,Δy^2t,······,Δy^nt)=0

差分方程的通解是指含有相互独立的任意常数,且任意常数的个数等于方程的价数的解;

差分方程的特解是指不含有任意常数的解;

为了说明如何用matlab解差分方程问题,特举例:

例1:试用matlab求解差分方程,y(t+2)-5y(t+1)+6y(t)=0,其中y(0)=1,型正y(1)=0的解析解。

求解代码:

syms z n

u=(1/5)^n%设置u为输入信号

U=ztrans(u)%z变换

y=diff_eq([1 -5 6],[0],[1 0],U) %解析解。

y=simplify(y)

其卜袭悔运行结果,y(n)=3*2^n - 2*3^n

例2:试用matlab求解差分方程禅粗,y(t+2)+y(t+1)-6y(t)=5*2^t,y(0)=1,其中y(0)=1,y(1)=0的解析值。

求解代码:

syms z n t

u=5*2^n

U=ztrans(u)

y=diff_eq([1 1 -6],[1],[1 0],U)

y=simplify(y)

调用filter函数解差分方程。

1)yn=filter(B,A,xn)是计算输入向量xn的零衫庆扒状态响应输出信号yn,yn与xn长度相等,

其中B=[b0,b1,……bn], A=[a0,a1,……an]。其中a0=1。

2)yn=filter(B,A,xn,xi)是计算全响应的函数。xi是等效初或昌始差派条件的输入序列,xi能由初始条件确定。此时需要调用filtic函数。xi=filtic(B,A,ys,xs)。其中ys,xs是初始条件向量。

其中ys=[y(-1),y(-2)……y(-N)],xs=[x(-1),x(-2),……x(-M)]

另外若xn为因果序列xs=0可缺省。

举个例子若y(n)-0.8y(n-1)=x(n),初始条件y(-1)=1。

a=0.8,ys=1

xn=[1,zeros(1,30)]

B=1, A=[1,-a]

xi=filtic(B,A,ys)

yn=filter(B,A,xn,xi)

%以下是解出来的yn图像

n=0:length(yn)-1

stem(n,yn,'.')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12462295.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存