求解车流量之线性方程组

目录

【问题描述】

【问题要求】

【背景补充】

【问题解答】

【衍生问题】

【python代码展示】

【模型总结】


【问题描述】

图1 中的网络是,某市区一些单行道在一个下午,早些时候(以每小时车辆数目计算)的交通流量.

                                

                                                                        图1

【问题要求】

计算该网络的车流量

【背景补充】

什么是网络?

        答:一个网络包含一组称为结合点节点的点集,并由称为分支的线或弧连接部分或全部节点,留的方向在每个分支上有标示,流量(或速度)也有显示或用变量标记。

网络流的基本假设是什么?

        答:网格总流入量等于总流出量,且流经一个节点的总输入等于总输出。

        【例】

        如图2示,x1和x2标记该节点经过其他分支的流出,因为流量在每个节点中是守恒的,我们有

x1 + x2 = 30 ,类似地,每个节点的流量可以用一个方程描述,网络分析的问题就是确定当局部信息(如网络的输入和输出) 已知时,每一分支的流量。

                ​​​​​​​        ​​​​​​​        ​​​​​​​        

                                                                    图2

【问题解答】

写出该流量的方程组,并求其通解。

如图3所示,标记道路交叉口(节点)和末知的分支流量。在每个交叉口,令其车辆驶入数目等于车辆驶出数目。

        ​​​​​​​        ​​​​​​​        

                                                                图3

并且,网络中的总流入量(500+300+100+400)等于总流出量(300+x,+600),经简化得

x3 = 400
该方程与上面四个方程联立并重排后得到下面的方程组:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

                                                                图4

行化简相应的增广矩阵得到:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

                                                                图5

该网络的车流量为:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

                                                                图6

【衍生问题】

负流量代表什么?

答:网络分支中的一个负流量,对应于模型中显示方向相反的流量。

问什么不用编程求解方程组?

答:此方程系数矩阵是奇异矩阵,运行代码会报错。

【python代码展示】

# 导入所需包
from scipy import linalg
import numpy as np

# 线性方程组求解

# x1 + x2 + x3 + x4 + x5 = 800
# x1 + x2 + x3 + x4 + x5 = 300
# x1 + x2 + x3 + x4 + x5 = 500
# x1 + x2 + x3 + x4 + x5 = 600
# x1 + x2 + x3 + x4 + x5 = 400

# A表示系数矩阵

A = np.array([[1, 1, 0, 0, 0],
              [0, 1, -1, 1, 0],
              [0, 0, 0, 1, 1, ],
              [1, 0, 0, 0, 1],
              [0, 0, 1, 0, 0]])

# b表示常数列

b = np.array([800, 300, 500, 600, 400])
x = linalg.solve(A, b)
print(x)

【模型总结】

由于本问题中的道路的单行线,因此这里不允许有负值变量。

该模型仅用于解决单行线问题,在实际中应用范围窄。

        

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值