双约束重力模型python实现,以物流需求预测为例

本文利用Python编程,结合弹性系数法预测物流生产量和吸引量,运用双约束重力模型对OD矩阵进行预测。通过计算两小区间的距离作为阻抗函数,最终将预测结果导出到Excel。同时,使用matplotlib和geopandas库绘制了预测结果的期望线图。
摘要由CSDN通过智能技术生成

采用弹性系数发求得未来年份的物流生产量和吸引量,采用双约束重力模型对OD矩阵进行预测,阻抗函数采用的两两小区之间的距离,最后将预测结果矩阵写入excel。

OD矩阵如图

程序如下:

import copy
import numpy as np
import pandas as pd
import openpyxl as op

"""
#################双约束重力模型########################
    1.数据提取
    2.物流生成预测
    3.迭代求取ki,kj
    4.物流分布预测
    5.主函数
    6.保存od_pre为预测od矩阵,保存od_draw_data为绘图数据
"""

# 弹性系数数据,求得物流增长率alpha
elastic_coefficient = [[0.12, 0.69], [0.1, 1], [0.08, 0.88]]
alpha = []
for each in elastic_coefficient:
    alpha.append(each[0] * each[1])

# 提取od信息
od_data = pd.read_csv('L_OD_data.csv')
od_data = np.array(od_data)
od_data = od_data.tolist()

ai = od_data[-1]  # 当前吸引量
pi = []  # 当前发生量
for i in od_data:
    del i[0]
    pi.append(i[-1])
del ai[-1]
del pi
  • 9
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值