python数学建模 (5)差分方程问题

递推关系——酵母菌生长模型

import matplotlib.pyplot as plt
time = [i for i in range(0,19)]
number = [9.6,18.3,29,47.2,71.1,119.1,174.6,257.3,\
350.7,441.0,513.3,559.7,594.8,629.4,640.8,\
651.1,655.9,659.6,661.8]
plt.title('Relationship between time and number')#创建标题
plt.xlabel('time')#X轴标签
plt.ylabel('number')#Y轴标签
plt.plot(time,number)#画图
plt.show()#显示

import numpy as np
pn = [9.6, 18.3, 29, 47.2, 71.1, 119.1, 174.6,\
      257.3, 350.7, 441.0, 513.3, 559.7, 594.8, 629.4,\
      640.8, 651.1, 655.9, 659.6]
deltap = [8.7, 10.7, 18.2, 23.9, 48, 55.5,\
          82.7, 93.4, 90.3, 72.3, 46.4, 35.1, \
        34.6, 11.4, 10.3, 4.8, 3.7, 2.2]
pn = np.array(pn)
factor = pn * (665-pn)
f = np.polyfit(factor, deltap, 1)   #拟合函数(1次)
print(f)

预测曲线

import matplotlib.pyplot as plt
p0 = 9.6
p_list = []
for i in range(20):
    p_list.append(p0)
    p0 = 0.00081448*(665-p0)*p0+p0
plt.plot(p_list)
plt.show()

马尔可夫链——选举投票预测


import matplotlib.pyplot as plt
RLIST = [0.33333]
DLIST = [0.33333]
ILIST = [0.33333]
for i in range(40):
    R = RLIST[i]*0.75+DLIST[i]*0.20+ILIST[i]*0.40
    RLIST.append(R)
    D = RLIST[i]*0.05+DLIST[i]*0.60+ILIST[i]*0.20
    DLIST.append(D)
    I = RLIST[i]*0.20+DLIST[i]*0.20+ILIST[i]*0.40
    ILIST.append(I)
plt.plot(RLIST)
plt.plot(DLIST)
plt.plot(ILIST)
plt.xlabel('Time')
plt.ylabel('Voting percent')
plt.annotate('DemocraticParty',xy = (5,0.2))
plt.annotate('RepublicanParty',xy = (5,0.5))
plt.annotate('IndependentCandidate',xy = (5,0.25))
plt.show()
print(RLIST,DLIST,ILIST)
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容