首页 > 编程语言 > 详细

利用python、scipy求解差分方程的解

时间:2021-04-03 20:50:25      阅读:76      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

 文档:https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.lfilter.html#scipy.signal.lfilter

import matplotlib.pyplot as plt
import numpy as np
from scipy import signal

nmin = 0
nmax = 8
n = np.arange(nmin,nmax+1,1)
nl = len(n)

den = np.array([1,0.6])
num = np.array([1,2])

xn = (0.1*7)**n

y0 = np.array([4,2])

#0状态
x01 = np.array([0]);
zi1 = signal.lfilter_zi(num,den)
y1,_ = signal.lfilter(num,den,xn,zi=zi1*x01)

#0输入
x02 = np.zeros(nl)
zi2 = signal.lfiltic(num,den,y0)
y2,_ = signal.lfilter(num,den,x02,zi = zi2)

#全响应
y3,_ = signal.lfilter(num,den,xn,zi=zi1)

#计算单位冲激响应
t4,y4 = signal.dimpulse((num,den,1),n=nl)

plt.subplot(411)
plt.stem(n,y1)
plt.ylim(-5,5)
plt.subplot(412)
plt.stem(n,y2)
plt.ylim(-5,5)
plt.subplot(413)
plt.stem(n,y3)
plt.ylim(-3,3)
plt.subplot(414)
plt.stem(t4,np.squeeze(y4))
plt.ylim(-5,5)
plt.show()

 

利用python、scipy求解差分方程的解

原文:https://www.cnblogs.com/bigtwetwet/p/14614287.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!