最近在研究增长系数法的收敛性判断,虽然是很简单的算法,不过对于我这种编程小白而言还是需要一定的时间,终于花了两天成功实现了四种增长系数法,虽然代码还有很多不成熟的地方,不过作为一个阶段的脚印纪念罢了。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def f_Average(ori_base,dest_base,ori_fut,dest_fut):
'''
平均增长系数法-增长函数
Parameters:
ori_fut:规划年产生量
dest_fut:规划年吸引量
ori_base:当前年发生量
dest_base:当前年吸引量
Returns:
matrix:增长率矩阵
'''
#计算增长率
F_ori = ori_fut/ori_base
F_dest = dest_fut/dest_base
F_dest,F_ori = np.meshgrid(F_dest,F_ori) #生成网格点坐标矩阵
ret = (F_dest+F_ori)/2
return ret
def get_fut_q(OD,O_fut,D_fut):
get_fut_q.count +=1
D = OD.sum(axis=0)
O = OD.sum(axis=1)
#根据增长函数计算增长率
f = f_Average(O,D,O_fut,D_