import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt # function that returns dz/dt
def model(z,t,u):
x = z[0]
y = z[1]
dxdt = (-x + u)/2.0
dydt = (-y + x)/5.0
dzdt = [dxdt,dydt]
return dzdt # initial condition
z0 = [0,0] # number of time points
n = 401 # time points
t = np.linspace(0,40,n) # step input
u = np.zeros(n)
# change to 2.0 at time = 5.0
u[51:] = 2.0 # store solution
x = np.empty_like(t)
y = np.empty_like(t)
# record initial conditions
x[0] = z0[0]
y[0] = z0[1] # solve ODE
for i in range(1,n):
# span for next time step
tspan = [t[i-1],t[i]]
# solve for next step
z = odeint(model,z0,tspan,args=(u[i],))
# store solution for plotting
x[i] = z[1][0]
y[i] = z[1][1]
# next initial condition
z0 = z[1] # plot results
plt.plot(t,u,'g:',label='u(t)')
plt.plot(t,x,'b-',label='x(t)')
plt.plot(t,y,'r--',label='y(t)')
plt.ylabel('values')
plt.xlabel('time')
plt.legend(loc='best')
plt.show()

最新文章

  1. [译]ZOOKEEPER RECIPES-Locks
  2. 第二天ci项目规划 前后台分离
  3. Execute Sql Task 的Result DataSet如何返回
  4. SQL语句学习手册实例版
  5. Android消息机制
  6. Eclipse功能集合
  7. Android App截包工具
  8. window.location.search
  9. 利用ApnsPHP包向IOS推送消息
  10. EL表达式 JSTL中的常用EL函数 动态数据的国际化
  11. nodejs学习[持续更新]
  12. SPBF(队列优化的Bellman-Foord)
  13. ParseChat应用源码ios版
  14. 【转】Visual Stdio VS 错误 error : 0xC00000FD: Stack overflow. 更改堆栈空间解决栈溢出问题
  15. EasyUI - DateBox组件
  16. .Neter玩转Linux系列之六:Linux下MySQL的安装、配置、使用
  17. 10_set集合
  18. lombok踩坑与思考
  19. Java 8 特性
  20. JavaScript的对象详解

热门文章

  1. 使用Xtrabackup进行MySQL备份 zz
  2. JSONObject转换为map
  3. ORM多表增删改查
  4. 处理TableVIew SectionHeader悬停问题
  5. 28-2 类型转换函数Cast-Convet
  6. arch 系列manjaro更新deepin-screenshot没有图标
  7. Channels集成到Django消息实时推送
  8. 百度地图结合ECharts实现复杂覆盖物(Overlay)
  9. Spring_管理bean的生命周期
  10. 05 . Python入门值循环语句