python求微分方程组的数值解曲线01

本人最近在写一篇关于神经网络同步的文章,其一部分模型为:

x_i^{\Delta}(t)= -a_i*x_i(t)+ b_i* f(x_i(t))+ \sum\limits_{j \in\{i-1, i+1\}}c_{ij}f(x_j(t-\tau_{ij})), t\in\mathbb{R}    (1.1)

y_i^{\Delta}(t)= -a_i*y_i(t)+ b_i* f(y_i(t))+ \sum\limits_{j \in\{i-1, i+1\}}c_{ij}f(y_j(t-\tau_{ij})), t\in\mathbb{R}    (1.2)

下面利用python求(1.1)-(1.2)的数值解并作出图形:

# Numerical simulation for 3-rd paper
# Author: Qiang Xiao
# Time: 2015-06-22

import matplotlib.pyplot as plt
import numpy as np

a= 0.5
b= -0.5
c= 0.5
tau= 1
k= 2
delta= 0.1
T= 200
row= 6
col= int(T/delta)
N= 6

x= np.zeros((row, col))
dx= np.zeros((row, col))
y= np.zeros((row, col))
dy= np.zeros((row, col))

x0= [5,2,1,0,1,4]
y0= [-5,2,-3,-2,0,-3]
for i in range(N):
    x[i,0:int(tau/delta)+ 1]= x0[i]
    y[i,0:int(tau/delta)+ 1]= y0[i]

print np.e

def f(t):
    return np.cos(t)

def j(i):
    if i== 0:
      return 1, 5
    elif i== 5:
      return 4, 0
    else:
      return i-1, i+1

for time in range(int(tau/delta),int(T/delta)-1):
    for i in range(6):
    dx[i, time]= -a* x[i, time]+ b*f(x[i, time])+ c*f(x[int(j(i)[0]), time- 10])+ c*f(x[int(j(i)[1]), time- 10])
    dy[i, time]= -a* y[i, time]+ b*f(y[i, time])+ c*f(y[int(j(i)[0]), time- 10])+ c*f(y[int(j(i)[1]), time- 10])+ k*(x[i, time]- y[i, time])
        x[i, time+1]= x[i, time]+ delta*dx[i, time]
        y[i, time+1]= y[i, time]+ delta*dy[i, time]

tt= np.arange(tau,T,delta)
print len(tt)

plt.plot(tt,x[0,10:int(T/delta)],‘c‘)
plt.plot(tt,y[0,10:int(T/delta)],‘c.‘)
plt.plot(tt,x[1,10:int(T/delta)],‘r.‘)
plt.plot(tt,y[1,10:int(T/delta)],‘r‘)
plt.plot(tt,x[2,10:int(T/delta)],‘b‘)
plt.plot(tt,y[2,10:int(T/delta)],‘b.‘)
plt.plot(tt,x[3,10:int(T/delta)],‘k‘)
plt.plot(tt,y[3,10:int(T/delta)],‘k.‘)
plt.plot(tt,x[4,10:int(T/delta)],‘m‘)
plt.plot(tt,y[4,10:int(T/delta)],‘m.‘)
plt.plot(tt,x[5,10:int(T/delta)],‘y‘)
plt.plot(tt,y[5,10:int(T/delta)],‘y.‘)

plt.xlabel(‘Time t‘)
plt.ylabel(‘xi(t) and yi(t)‘)
plt.legend((‘x1‘,‘y1‘,‘x2‘,‘y2‘,‘x3‘,‘y3‘,‘x4‘,‘y4‘,‘x5‘,‘y5‘,‘x6‘,‘y6‘))
plt.show()

由上图可以看出,网络单元x_i(t) 与 y_i(t) 分别达成了同步。

欢迎交流!

时间: 2024-10-13 21:58:27

python求微分方程组的数值解曲线01的相关文章

python求crc32值的方法

python求crc32值的方法 在python代码中求CRC值,要import binasciibinascii.crc32(v) 求出了v的crc32值,这是一个long型,形如-1456387L,把这个值&0xffffffff得到的值形如48a213L的形式.然后,把这个值用16进制表示出来.www.jbxue.com例子: def _crc32(self, v): """ Generates the crc32 hash of the v. @return:

python 求10亿以内和987654互质正整数的和

加群看见的 但是计算好慢,谁有更优的算法,麻烦说一下. ? 1 2 3 4 5 6 7 8 9 10 factor=[] for x in xrange(1, 987654//2+1):     if 987654%x==0:         factor.append(x) sum=0 for y in xrange(1, 1000000000):     for z in factor:         if y%z == 0:             sum+=y print sum 51

使用python求字符串或文件的MD5

使用python求字符串或文件的MD5 五月 21st, 2008 #以下可在python3000运行. #字符串md5,用你的字符串代替'字符串'中的内容. import hashlib md5=hashlib.md5('字符串'.encode('utf-8′)).hexdigest() print(md5) #求文件md5 import hashlib #文件位置中的路径,请用双反斜杠,如'D:\\abc\\www\\b.msi' file='[文件位置]' md5file=open(fil

Python 求两个文本文件以行为单位的交集 并集 差集

Python 求两个文本文件以行为单位的交集 并集 差集,来代码: s1 = set(open('a.txt','r').readlines()) s2 = set(open('b.txt','r').readlines()) print 'ins: %s'%(s1.intersection(s2)) print 'uni: %s'%(s1.union(s2)) print 'dif: %s'%(s1.difference(s2).union(s2.difference(s1))) 原文地址:h

python求道01日

计算机基础 在这里,学习了CPU,内存,硬盘,应用程序以及操作系统的概念知识. CPU:计算机的“大脑”,负责数据的处理. 内存:计算机里暂时存储数据的一个容器,断电即存储数据消失. 硬盘:永久存储数据的容器,断电也不会消失数据. 应用程序:也就是我们常说的代码,让我们可以使用计算机完成相应的任务. 操作系统:相当于人体的神经,负责从协调CPU和内存硬盘之间数据的调度,相当于一个伪应用程序. python历史 主要为了解python2与python3的区别 Python2: 重复代码太多,结构混

<<Python基础教程>>学习笔记之|第01章|基础知识

本学习笔记主要用要记录下学习<<Python基础教程>>过程中的一些Key Point,或自己没怎么搞明白的内容,可能有点杂乱,但比较实用,查找起来也方便. 第01章:基础知识 ------ Jython:      Python的Java实现,运行在JVM中,相对稳定,但落后于Python,当前版本2.5,在TA(Python+Robot)会用到 IronPython:  Python的C#实现,运行在Common Language Runtime,速度比Python要快 >

python求假设检验

利用python可以很快速的进行统计计算. 下图是求出2个数据的协方差和相关系数 并且求假设检验也很容易,例如下图,针对这组数据判断总体的重量是否为10,H0 = 10, H1 != 10, 求出的pvalue大于0.05,无法拒绝零假设

python 求MD5值

(一)求字符串的MD5值 import hashlib #导入功能模块,此模块有MD5,SHA1,SHA256等方法 m = hashlib.md5() #声明一个对象 m.update(b'hello python') #用对象的update方法指定一个字符串,前面的b是转换为二进制,否则显示不 了. print(m.hexdigest()) #用对象的hexdigest()方法进行十六进制显示 . (二)求一个文件的md5值 import hashlib #导入功能模块,此模块有MD5,SH

读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」

0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之初识.简介.安装.中文 2.PYTHON开发利器之VS Code 主题.界面美化.快捷键.编辑器技巧 3.PYTHON开发利器之VS Code 常用插件介绍 4.PYTHON开发利器之使用VS Code进行python程序开发 5.1.PYTHON开发利器之使用VS Code+Git进行python