当前位置: 首页 > news >正文

(A题|支路车流量推测问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合

我是Tina表姐,毕业于中国人民大学,对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在,我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合,专为本次赛题设计,旨在帮助您深入理解数学建模的每一个环节。

本次五一数学建模竞赛A题可以做如下考虑 (部分公式和代码因为排版问题显示不完整,文中代码仅有部分,完整论文格式标准,包含全部代码)
(部分代码在本帖子里格式混乱,下载后格式正常)
在这里插入图片描述

本次赛题的第一个问题是:

问题1. 考虑图1所示的Y型道路,支路1和支路2的车流同时汇入主路3。假设仅在主路3上安装了车流量监测设备A1,每2分钟记录一次主路的车流量信息,车辆从支路汇入主路后行驶到A1处的时间忽略不计。附件表1中提供了某天早上[6:58,8:58]主路3上的车流量数据(7:00为第一个数据记录时刻,8:58是最后一个数据记录时刻,下同)。

由历史车流量观测记录可知,在[6:58,8:58]时间段内,支路1的车流量呈现线性增长趋势,支路2的车流量呈现先线性增长后线性减少的趋势。

请建立数学模型,根据附件表1的数据推测在[6:58,8:58]时间段内支路1和支路2上的车流量,并使用合适的函数关系来描述支路1、支路2的车流量随时间的变化(为方便起见,函数关系中令7:00为 , ,下同),在表1.1中填入具体的函数表达式。

问题1的数学建模

1. 问题分析

问题1涉及一个Y型道路,支路1和支路2的车流汇入主路3。主路3上安装了车流量监测设备A1,每2分钟记录一次车流量数据。已知支路1的车流量呈现线性增长趋势,支路2的车流量呈现先线性增长后线性减少的趋势。需要根据主路3的车流量数据,推测支路1和支路2的车流量随时间的变化,并用函数表达式描述。在这里插入图片描述

2. 模型假设
  1. 主路3的车流量是支路1和支路2车流量的总和。

  2. 支路1的车流量随时间线性增长,即 $ Q_1(t) = a_1 t + b_1 $。

  3. 支路2的车流量在某个时间点 $ t_0 $ 之前线性增长,之后线性减少,即:
    Q 2 ( t ) = { a 2 t + b 2 当  t ≤ t 0 c 2 t + d 2 当  t > t 0 Q_2(t) = \begin{cases} a_2 t + b_2 & \text{当 } t \leq t_0 \\ c_2 t + d_2 & \text{当 } t > t_0 \end{cases} Q2(t)={a2t+b2c2t+d2 tt0 t>t0

  4. 车辆从支路汇入主路后行驶到A1处的时间忽略不计。

3. 模型建立

主路3的车流量 $ Q_3(t) $ 可以表示为:
Q 3 ( t ) = Q 1 ( t ) + Q 2 ( t ) Q_3(t) = Q_1(t) + Q_2(t) Q3(t)=Q1(t)+Q2(t)
根据已知条件,支路1和支路2的车流量函数分别为:
Q 1 ( t ) = a 1 t + b 1 Q_1(t) = a_1 t + b_1 Q1(t)=a1t+b1

Q 2 ( t ) = { a 2 t + b 2 当  t ≤ t 0 c 2 t + d 2 当  t > t 0 Q_2(t) = \begin{cases} a_2 t + b_2 & \text{当 } t \leq t_0 \\ c_2 t + d_2 & \text{当 } t > t_0 \end{cases} Q2(t)={a2t+b2c2t+d2 tt0 t>t0

因此,主路3的车流量可以表示为:
Q 3 ( t ) = { ( a 1 + a 2 ) t + ( b 1 + b 2 ) 当  t ≤ t 0 ( a 1 + c 2 ) t + ( b 1 + d 2 ) 当  t > t 0 Q_3(t) = \begin{cases} (a_1 + a_2) t + (b_1 + b_2) & \text{当 } t \leq t_0 \\ (a_1 + c_2) t + (b_1 + d_2) & \text{当 } t > t_0 \end{cases} Q3(t)={(a1+a2)t+(b1+b2)(a1+c2)t+(b1+d2) tt0 t>t0

4. 参数估计

利用附件表1中主路3的车流量数据,可以通过最小二乘法拟合 $ Q_3(t) $ 的表达式,从而估计出 $ a_1, b_1, a_2, b_2, c_2, d_2 $ 和 $ t_0 $。

5. 结果表达

根据拟合结果,填写表1.1中的函数表达式:

支路1支路2
$ Q_1(t) = a_1 t + b_1 $$ Q_2(t) = \begin{cases} a_2 t + b_2 & \text{当 } t \leq t_0 \ c_2 t + d_2 & \text{当 } t > t_0 \end{cases} $
6. 模型验证

通过比较模型预测的主路3车流量与实际观测数据,验证模型的准确性。如果误差较大,可以调整模型假设或参数估计方法。

总结

通过建立数学模型,利用主路3的车流量数据和已知的支路车流量变化趋势,可以推测出支路1和支路2的车流量随时间的变化,并用函数表达式描述。
对于问题1,我们需要根据主路3的车流量数据推测支路1和支路2的车流量,并使用函数关系来描述它们的车流量随时间的变化。假设主路3的车流量为 $ Q_3(t) $,支路1的车流量为 $ Q_1(t) $,支路2的车流量为 $ Q_2(t) $。根据题意,主路3的车流量是支路1和支路2的车流量之和,即:

Q 3 ( t ) = Q 1 ( t ) + Q 2 ( t ) Q_3(t) = Q_1(t) + Q_2(t) Q3(t)=Q1(t)+Q2(t)

支路1的车流量
根据题意,支路1的车流量呈现线性增长趋势,因此可以表示为:

Q 1 ( t ) = a 1 t + b 1 Q_1(t) = a_1 t + b_1 Q1(t)=a1t+b1

其中,$ a_1 $ 是线性增长的斜率,$ b_1 $ 是截距。

支路2的车流量
支路2的车流量呈现先线性增长后线性减少的趋势。假设在时间 $ t = t_0 $ 时,支路2的车流量达到最大值,那么在 $ t \leq t_0 $ 时,支路2的车流量为线性增长;在 $ t > t_0 $ 时,支路2的车流量为线性减少。因此,支路2的车流量可以分段表示为:

Q 2 ( t ) = { a 2 t + b 2 当  t ≤ t 0 − c 2 t + d 2 当  t > t 0 Q_2(t) = \begin{cases} a_2 t + b_2 & \text{当 } t \leq t_0 \\ -c_2 t + d_2 & \text{当 } t > t_0 \end{cases} Q2(t)={a2t+b2c2t+d2 tt0 t>t0

其中,$ a_2 $ 和 $ c_2 $ 分别是增长和减少的斜率,$ b_2 $ 和 $ d_2 $ 是截距。

求解参数
根据主路3的车流量数据 $ Q_3(t) $,我们可以通过最小二乘法或其他拟合方法求解 $ a_1, b_1, a_2, b_2, c_2, d_2 $ 和 $ t_0 $ 的值。

函数表达式
最终,支路1和支路2的车流量函数表达式可以表示为:

Q 1 ( t ) = a 1 t + b 1 Q_1(t) = a_1 t + b_1 Q1(t)=a1t+b1

Q 2 ( t ) = { a 2 t + b 2 当  t ≤ t 0 − c 2 t + d 2 当  t > t 0 Q_2(t) = \begin{cases} a_2 t + b_2 & \text{当 } t \leq t_0 \\ -c_2 t + d_2 & \text{当 } t > t_0 \end{cases} Q2(t)={a2t+b2c2t+d2 tt0 t>t0

将具体的参数值填入表1.1中即可。
要解决第一个问题,我们需要根据主路3的车流量数据,结合支路1和支路2的车流量变化趋势,推测出支路1和支路2的车流量函数表达式。以下是解决问题的步骤和相应的Python代码。

步骤1:导入数据

首先,我们需要从附件表1中导入主路3的车流量数据。假设数据已经存储在一个CSV文件中,包含两列:时间戳和车流量。

步骤2:定义时间变量

为了方便计算,我们将时间从7:00开始,以分钟为单位进行标准化。例如,7:00对应时间变量t=0,7:02对应t=2,依此类推。

步骤3:定义支路1和支路2的车流量函数

根据问题描述,支路1的车流量呈现线性增长趋势,支路2的车流量呈现先线性增长后线性减少的趋势。我们可以用分段线性函数来描述支路2的车流量。

步骤4:建立数学模型

主路3的车流量是支路1和支路2车流量的总和。我们可以通过最小化主路3的车流量数据与支路1和支路2车流量之和的误差来求解支路1和支路2的车流量函数。

步骤5:求解并输出结果

使用Python的scipy.optimize库中的curve_fit函数来拟合支路1和支路2的车流量函数。

Python代码实现

import numpy as np
import pandas as pd
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt# 步骤1:导入数据
data = pd.read_csv('table1.csv')  # 假设数据存储在table1.csv文件中
times = pd.to_datetime(data['时间戳']).apply(lambda x: (x - pd.Timestamp('2023-07-01 07:00:00')).total_seconds() / 60)
flow_main = data['车流量'].values# 步骤2:定义时间变量
t = times.values# 步骤3:定义支路1和支路2的车流量函数
def flow_branch1(t, a, b):return a * t + bdef flow_branch2(t, a1, b1, a2, b2, t_break):return np.piecewise(t, [t < t_break, t >= t_break], [lambda t: a1 * t + b1, lambda t: a2 * t + b2])# 步骤4:建立数学模型
def total_flow(t, a1, b1, a2, b2, a3, b3, t_break):return flow_branch1(t, a1, b1) + flow_branch2(t, a2, b2, a3, b3, t_break)# 步骤5:求解并输出结果
popt, pcov = curve_fit(total_flow, t, flow_main, p0=[1, 1, 1, 1, 1, 1, 60])# 输出支路1和支路2的函数表达式
a1, b1, a2, b2, a3, b3, t_break = popt
print("支路1的车流量函数表达式: f(t) =", a1, "* t +", b1)
print("支路2的车流量函数表达式: f(t) =", a2, "* t +", b2, "for t <", t_break, "and", a3, "* t +", b3, "for t >=", t_break)# 可视化结果
plt.scatter(t, flow_main, label='主路3车流量数据')
plt.plot(t, total_flow(t, *popt), label='拟合的总车流量', color='red')
plt.xlabel('时间 (分钟)')
plt.ylabel('车流量')
plt.legend()
plt.show()

结果解释

  • 支路1的车流量函数表达式:线性函数,形式为f(t) = a1 * t + b1
  • 支路2的车流量函数表达式:分段线性函数,形式为f(t) = a2 * t + b2t < t_breakf(t) = a3 * t + b3t >= t_break

表1.1 问题1支路车流量函数表达式

支路1支路2
f(t) = a1 * t + b1f(t) = a2 * t + b2 for t < t_break and f(t) = a3 * t + b3 for t >=

问题2. 考虑图2所示的道路,支路1和支路2的车流同时汇入主路5,支路3和支路4的车流同时汇入主路5,仅在主路5上安装了车流量监测设备A2,每2分钟记录一次主路的车流量信息,附件表2中提供了某天早上[6:58,8:58]时间段内主路5上的车流量数据。假设车辆从支路1和支路2的路口行驶到设备A2处的时间为2分钟,车辆从支路3和支路4的路口到达设备A2处的行驶时间忽略不计。

由历史车流量观测记录可知,在[6:58,8:58]时间段内,支路1的车流量稳定;支路2的车流量在[6:58,7:48]和[8:14,8:58]时间段内线性增长,在(7:48,8:14)时间段内稳定;支路3的车流量呈现先线性增长后稳定的趋势;支路4的车流量呈现周期性规律。

请建立数学模型,根据附件表2的数据推测支路1、支路2、支路3、支路4上的车流量,使用合适的函数关系来描述各支路上的车流量随时间 的变化,并分析结果的误差。在表2.1中填入具体的函数表达式,在表2.2中分别填入7:30和8:30这两个时刻各支路上的车流量数值。

问题2的数学建模

1. 问题分析

在问题2中,我们需要根据主路5的车流量数据,推测支路1、支路2、支路3和支路4的车流量。已知各支路的车流量变化趋势如下:

  • 支路1:车流量稳定(常数)。
  • 支路2:在[6:58,7:48]和[8:14,8:58]时间段内线性增长,在(7:48,8:14)时间段内稳定。
  • 支路3:车流量先线性增长后稳定。
  • 支路4:车流量呈现周期性规律。

此外,车辆从支路1和支路2的路口行驶到设备A2处的时间为2分钟,车辆从支路3和支路4的路口到达设备A2处的行驶时间忽略不计。

2. 模型假设
  1. 主路5的车流量是支路1、支路2、支路3和支路4车流量的总和。
  2. 支路1的车流量为常数,记为 $ q_1(t) = c_1 $。
  3. 支路2的车流量在[6:58,7:48]和[8:14,8:58]时间段内线性增长,在(7:48,8:14)时间段内稳定。设其车流量为 $ q_2(t) $。
  4. 支路3的车流量先线性增长后稳定,设其车流量为 $ q_3(t) $。
  5. 支路4的车流量呈现周期性规律,设其车流量为 $ q_4(t) $。
  6. 车辆从支路1和支路2的路口行驶到设备A2处的时间为2分钟,因此支路1和支路2的车流量在时间 $ t $ 时对主路5的车流量贡献为 $ q_1(t-2) $ 和 $ q_2(t-2) $。
  7. 支路3和支路4的车流量在时间 $ t $ 时对主路5的车流量贡献为 $ q_3(t) $ 和 $ q_4(t) $。
    在这里插入图片描述
3. 模型建立

主路5的车流量 $ Q(t) $ 可以表示为:

Q ( t ) = q 1 ( t − 2 ) + q 2 ( t − 2 ) + q 3 ( t ) + q 4 ( t ) Q(t) = q_1(t-2) + q_2(t-2) + q_3(t) + q_4(t) Q(t)=q1(t2)+q2(t2)+q3(t)+q4(t)

根据已知条件,我们可以分别对 $ q_1(t) 、 、 q_2(t) 、 、 q_3(t) $ 和 $ q_4(t) $ 进行建模。

3.1 支路1的车流量 $ q_1(t) $

支路1的车流量稳定,因此:

q 1 ( t ) = c 1 q_1(t) = c_1 q1(t)=c1

3.2 支路2的车流量 $ q_2(t) $

支路2的车流量在[6:58,7:48]和[8:14,8:58]时间段内线性增长,在(7:48,8:14)时间段内稳定。设:

  • 在[6:58,7:48]时间段内,$ q_2(t) = a_2 t + b_2 $。
  • 在(7:48,8:14)时间段内,$ q_2(t) = c_2 $。
  • 在[8:14,8:58]时间段内,$ q_2(t) = d_2 t + e_2 $。
3.3 支路3的车流量 $ q_3(t) $

支路3的车流量先线性增长后稳定。设:

  • 在[6:58,t_1]时间段内,$ q_3(t) = a_3 t + b_3 $。
  • 在(t_1,8:58]时间段内,$ q_3(t) = c_3 $。
3.4 支路4的车流量 $ q_4(t) $

支路4的车流量呈现周期性规律。设:

q 4 ( t ) = A sin ⁡ ( ω t + ϕ ) + B q_4(t) = A \sin(\omega t + \phi) + B q4(t)=Asin(ωt+ϕ)+B

其中,$ A 、 、 \omega 、 、 \phi $ 和 $ B $ 为待定参数。

4. 模型求解

根据附件表2中的数据,我们可以通过最小二乘法或其他优化方法拟合出 $ q_1(t) 、 、 q_2(t) 、 、 q_3(t) $ 和 $ q_4(t) $ 的具体表达式。

5. 结果分析

通过求解模型,我们可以得到各支路的车流量函数表达式,

问题2的数学模型与求解

1. 模型假设与定义
  • 支路1:车流量稳定,设为常数 $ q_1(t) = C_1 $。

  • 支路2:车流量在 [ 6 : 58 , 7 : 48 ] [6:58,7:48] [6:58,7:48] [ 8 : 14 , 8 : 58 ] [8:14,8:58] [8:14,8:58] 时间段内线性增长,在 ( 7 : 48 , 8 : 14 ) (7:48,8:14) (7:48,8:14) 时间段内稳定。设其车流量为分段函数:
    q 2 ( t ) = { k 21 t + b 21 , t ∈ [ 6 : 58 , 7 : 48 ] C 2 , t ∈ ( 7 : 48 , 8 : 14 ) k 22 t + b 22 , t ∈ [ 8 : 14 , 8 : 58 ] q_2(t) = \begin{cases} k_{21} t + b_{21}, & t \in [6:58,7:48] \\ C_2, & t \in (7:48,8:14) \\ k_{22} t + b_{22}, & t \in [8:14,8:58] \end{cases} q2(t)= k21t+b21,C2,k22t+b22,t[6:58,7:48]t(7:48,8:14)t[8:14,8:58]

  • 支路3:车流量先线性增长后稳定。设其车流量为分段函数:
    q 3 ( t ) = { k 3 t + b 3 , t ∈ [ 6 : 58 , t 0 ] C 3 , t ∈ ( t 0 , 8 : 58 ] q_3(t) = \begin{cases} k_3 t + b_3, & t \in [6:58,t_0] \\ C_3, & t \in (t_0,8:58] \end{cases} q3(t)={k3t+b3,C3,t[6:58,t0]t(t0,8:58]

  • 支路4:车流量呈现周期性规律。设其车流量为周期函数:
    q 4 ( t ) = A sin ⁡ ( ω t + ϕ ) + B q_4(t) = A \sin(\omega t + \phi) + B q4(t)=Asin(ωt+ϕ)+B
    其中 $ \omega = \frac{2\pi}{T} , , T $ 为周期。

2. 模型建立

主路5的车流量 $ Q(t) $ 为各支路车流量的总和:
Q ( t ) = q 1 ( t ) + q 2 ( t ) + q 3 ( t ) + q 4 ( t ) Q(t) = q_1(t) + q_2(t) + q_3(t) + q_4(t) Q(t)=q1(t)+q2(t)+q3(t)+q4(t)

由于支路1和支路2的车流到达A2的时间为2分钟,因此主路5的车流量 $ Q(t) $ 与支路1和支路2的车流量 $ q_1(t-2) $ 和 $ q_2(t-2) $ 相关:
Q ( t ) = q 1 ( t − 2 ) + q 2 ( t − 2 ) + q 3 ( t ) + q 4 ( t ) Q(t) = q_1(t-2) + q_2(t-2) + q_3(t) + q_4(t) Q(t)=q1(t2)+q2(t2)+q3(t)+q4(t)

3. 参数求解

利用附件表2中的数据,通过最小二乘法或分段拟合方法求解各支路车流量的参数。

4. 误差分析

通过比较模型预测值与实际观测值的差异,计算均方误差(MSE)或平均绝对误差(MAE)来评估模型的准确性。

5. 结果表达在这里插入图片描述

根据上述模型,填写表2.1和表2.2。

表2.1 问题2支路车流量函数表达式

支路1支路2
$ q_1(t) = C_1 $$ q_2(t) = \begin{cases} k_{21} t + b_{21}, & t \in [6:58,7:48] \ C_2, & t \in (7:48,8:14) \ k_{22} t + b_{22}, & t \in [8:14,8:58] \end{cases} $
支路3支路4
$ q_3(t) = \begin{cases} k_3 t + b_3, & t \in [6:58,t_0] \ C_3, & t \in (t_0,8:58] \end{cases} $$ q_4(t) = A \sin(\omega t + \phi) + B $

表2.2 问题2支路车流量数值

时刻支路1支路2支路3支路4
7:30$ C_1 $$ k_{21} \cdot 7:30 + b_{21} $$ k_3 \cdot 7:30 + b_3 $$ A \sin(\omega \cdot 7:30 + \phi) + B $
8:30$ C_1 $$ k_{22} \cdot 8:30 + b_{22} $$ C_3 $$ A \sin(\omega \cdot 8:30 + \phi) + B $
6. 关键观测时刻

为了得到各支路的函数表达式,主路上的监测设备至少需要在以下时刻记录车流量数据:

  • 支路1:任意时刻(因车流量稳定)。

    要解决第二个问题,我们需要根据附件表2中的数据,推测支路1、支路2、支路3、支路4上的车流量,并使用合适的函数关系来描述各支路上的车流量随时间的变化。以下是Python代码的实现步骤:

1. 导入必要的库

import pandas as pd
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt

2. 定义函数模型

根据题目描述,我们可以定义以下函数模型:

  • 支路1:稳定,即常数函数。
  • 支路2:分段线性函数,包含线性增长和稳定阶段。
  • 支路3:先线性增长后稳定。
  • 支路4:周期性函数。
# 支路1:常数函数
def func1(t, a):return a# 支路2:分段线性函数
def func2(t, a1, b1, a2, b2, a3, b3):if t < 7.8:  # 6:58 - 7:48return a1 * t + b1elif t < 8.233:  # 7:48 - 8:14return a2 * t + b2else:  # 8:14 - 8:58return a3 * t + b3# 支路3:先线性增长后稳定
def func3(t, a, b, c):if t < 7.8:  # 6:58 - 7:48return a * t + belse:  # 7:48 - 8:58return c# 支路4:周期性函数
def func4(t, a, b, c):return a * np.sin(b * t + c)

3. 读取数据

假设附件表2的数据已经保存为CSV文件table2.csv,我们可以使用Pandas读取数据。

data = pd.read_csv('table2.csv')
times = data['Time'].values
main_flow = data['Flow'].values

4. 拟合函数

使用curve_fit函数拟合各支路的函数模型。

# 支路1
popt1, _ = curve_fit(func1, times, main_flow)# 支路2
popt2, _ = curve_fit(func2, times, main_flow)# 支路3
popt3, _ = curve_fit(func3, times, main_flow)# 支路4
popt4, _ = curve_fit(func4, times, main_flow)

5. 计算各支路的车流量

根据拟合的函数模型,计算各支路的车流量。

# 支路1
flow1 = func1(times, *popt1)# 支路2
flow2 = func2(times, *popt2)# 支路3
flow3 = func3(times, *popt3)# 支路4
flow4 = func4(times, *popt4)

6. 分析误差

计算各支路车流量与主路车流量的误差。

error1 = np.abs(main_flow - flow1)
error2 = np.abs(main_flow - flow2)
error3 = np.abs(main_flow - flow3)
error4 = np.abs(main_flow - flow4)

7. 输出结果

将结果填入表2.1和表2.2。

# 表2.1 问题2支路车流量函数表达式
print("表2.1 问题2支路车流量函数表达式")
print(f"支路1: {popt1[0]}")
print(f"支路2: a1={popt2[0]}, b1={popt2[1]}, a2={popt2[2]}, b2={popt2[3]}, a3={popt2[4]}, b3={popt2[5]}")
print(f"支路3: a={popt3[0]}, b={popt3[1]}, c={popt3[2]}")
print(f"支路4: a={popt4[0]}, b={popt4[1]}, c={popt4[2]}")# 表2.2 问题2支路车流量数值
t1 = 7.5  # 7:30
t2 = 8.5  # 8:30

问题3的详细描述如下:

考虑图3所示的道路,支路1、支路2的车流同时汇入主路4,支路3为特殊交通管制路段,支路3上的车辆通过路口时受到交通信号灯C的控制。C的红灯时间设置为8分钟,绿灯时间设置为10分钟,黄灯时间忽略不计。仅在主路4上安装了车流量监测设备A3,每2分钟记录一次主路的车流量信息,附件表3中提供了某天早上[6:58,8:58]主路4上的车流量数据。假设车辆从支路1和支路2的路口处到达A3处的行驶时间为2分钟,车辆从支路3汇入主路后到达设备A3处的行驶时间忽略不计。

由历史车流量观测记录可知,在[6:58,8:58]时间段内,支路1的车流量呈现“无车流量→增长→减少→稳定→减少至无车流量”的趋势;支路2的车流量分别在[6:58,8:10]和[8:34,8:58]时间段内线性增长和线性减少,在(8:10,8:34)时间段内稳定。当C显示绿灯时,支路3的车流量或稳定或呈现线性变化趋势,且第一个绿灯于7:06时开始亮起;当C显示红灯时,支路3的车流量视为0。

请建立数学模型,根据附件表3的数据推测支路1、支路2、支路3上的车流量,使用合适的函数关系来描述各支路上的车流量随时间 的变化,并分析结果的误差。在表3.1中填入具体的函数表达式,在表3.2中分别填入7:30和8:30这两个时刻各支路上的车流量数值。

图3 问题3道路示意图

表3.1 问题3支路车流量函数表达式

支路1支路2
支路3

表3.2 问题3支路车流量数值

时刻支路1支路2支路3
7:30
8:30

问题3的数学建模与求解

1. 问题描述与假设

在问题3中,我们需要根据主路4上的车流量数据推测支路1、支路2和支路3的车流量。已知以下信息:

  • 支路1:车流量呈现“无车流量→增长→减少→稳定→减少至无车流量”的趋势。
  • 支路2:车流量分别在[6:58,8:10]和[8:34,8:58]时间段内线性增长和线性减少,在(8:10,8:34)时间段内稳定。
  • 支路3:受交通信号灯C控制,红灯时间为8分钟,绿灯时间为10分钟。当C显示绿灯时,支路3的车流量或稳定或呈现线性变化趋势;当C显示红灯时,支路3的车流量为0。第一个绿灯于7:06开始。
2. 模型建立
2.1 支路1的车流量模型

支路1的车流量趋势可以分为以下几个阶段:

  1. 无车流量阶段:假设在6:58之前,支路1的车流量为0。
  2. 增长阶段:从某一时刻开始,车流量线性增长。
  3. 减少阶段:车流量达到峰值后,开始线性减少。
  4. 稳定阶段:车流量保持稳定。
  5. 减少至无车流量阶段:车流量最终减少至0。

设支路1的车流量函数为 $ f_1(t) $,可以分段表示为:

f 1 ( t ) = { 0 t < t 1 k 1 ( t − t 1 ) t 1 ≤ t < t 2 k 1 ( t 2 − t 1 ) − k 2 ( t − t 2 ) t 2 ≤ t < t 3 c t 3 ≤ t < t 4 c − k 3 ( t − t 4 ) t 4 ≤ t < t 5 0 t ≥ t 5 f_1(t) = \begin{cases} 0 & t < t_1 \\ k_1(t - t_1) & t_1 \leq t < t_2 \\ k_1(t_2 - t_1) - k_2(t - t_2) & t_2 \leq t < t_3 \\ c & t_3 \leq t < t_4 \\ c - k_3(t - t_4) & t_4 \leq t < t_5 \\ 0 & t \geq t_5 \end{cases} f1(t)= 0k1(tt1)k1(t2t1)k2(tt2)cck3(tt4)0t<t1t1t<t2t2t<t3t3t<t4t4t<t5tt5

其中,$ t_1, t_2, t_3, t_4, t_5 $ 分别为各阶段的起始时刻,$ k_1, k_2, k_3 $ 为各阶段的斜率,$ c $ 为稳定阶段的车流量。

2.2 支路2的车流量模型

支路2的车流量趋势可以分为以下几个阶段:

  1. 线性增长阶段:从6:58到8:10,车流量线性增长。
  2. 稳定阶段:从8:10到8:34,车流量保持稳定。
  3. 线性减少阶段:从8:34到8:58,车流量线性减少。

设支路2的车流量函数为 $ f_2(t) $,可以分段表示为:

f 2 ( t ) = { k 4 ( t − t 6 ) t 6 ≤ t < t 7 c 2 t 7 ≤ t < t 8 c 2 − k 5 ( t − t 8 ) t 8 ≤ t < t 9 f_2(t) = \begin{cases} k_4(t - t_6) & t_6 \leq t < t_7 \\ c_2 & t_7 \leq t < t_8 \\ c_2 - k_5(t - t_8) & t_8 \leq t < t_9 \end{cases} f2(t)= k4(tt6)c2c2k5(tt8)t6t<t7t7t<t8t8t<t9

其中,$ t_6, t_7, t_8, t_9 $ 分别为各阶段的起始时刻,$ k_4, k_5 $ 为各阶段的斜率,$ c_2 $ 为稳定阶段的车流量。

2.3 支路3的车流量模型

支路3的车流量受交通信号灯C控制,绿灯时间为10分钟,红灯时间为8分钟。假设绿灯开始于7:06,此后每隔18分钟(10分钟绿灯 + 8分钟红灯)循环一次。

设支路3的车流量函数为 $ f_3(t) $,可以表示为:

f 3 ( t ) = { f green ( t ) 绿灯期间 0 红灯期间 f_3(t) = \begin{cases} f_{\text{green}}(t) & \text{绿灯期间} \\ 0 & \text{红灯期间} \end{cases} f3(t)={fgreen(t)0绿灯期间红灯期间

其中,$ f_{\text{green}}(t) $ 为绿灯期间的车流量函数,可以是线性增长、线性减少或稳定。

3. 参数估计与求解
3.1 支路1的参数估计

根据主路4的车流量数据和支路1的趋势,可以通过拟合方法估计各阶段的起始时刻和斜率。

3.2 支路2的参数估计

同样,根据主路4的车流量数据和支路2的趋势,可以通过拟合方法估计各阶段的起始时刻和斜率。

3.3 支路3的参数估计

根据交通信号灯C的周期和绿灯期间的车流量趋势,可以估计绿灯期间的车流量函数。

4

问题3的数学模型与公式推导

1. 支路1的车流量函数

支路1的车流量呈现“无车流量→增长→减少→稳定→减少至无车流量”的趋势。假设支路1的车流量函数为分段函数:

Q 1 ( t ) = { 0 , t ∈ [ 6 : 58 , t 1 ) k 1 ( t − t 1 ) , t ∈ [ t 1 , t 2 ) k 1 ( t 2 − t 1 ) − k 2 ( t − t 2 ) , t ∈ [ t 2 , t 3 ) Q stable , t ∈ [ t 3 , t 4 ) Q stable − k 3 ( t − t 4 ) , t ∈ [ t 4 , 8 : 58 ] Q_1(t) = \begin{cases} 0, & t \in [6:58, t_1) \\ k_1 (t - t_1), & t \in [t_1, t_2) \\ k_1 (t_2 - t_1) - k_2 (t - t_2), & t \in [t_2, t_3) \\ Q_{\text{stable}}, & t \in [t_3, t_4) \\ Q_{\text{stable}} - k_3 (t - t_4), & t \in [t_4, 8:58] \end{cases} Q1(t)= 0,k1(tt1),k1(t2t1)k2(tt2),Qstable,Qstablek3(tt4),t[6:58,t1)t[t1,t2)t[t2,t3)t[t3,t4)t[t4,8:58]

其中:

  • $ t_1 $ 是车流量开始增长的时刻;
  • $ t_2 $ 是车流量开始减少的时刻;
  • $ t_3 $ 是车流量开始稳定的时刻;
  • $ t_4 $ 是车流量开始减少至无车流量的时刻;
  • $ k_1, k_2, k_3 $ 分别为各阶段的斜率;
  • $ Q_{\text{stable}} $ 是稳定阶段的车流量。
2. 支路2的车流量函数

支路2的车流量分别在 [ 6 : 58 , 8 : 10 ] [6:58,8:10] [6:58,8:10] [ 8 : 34 , 8 : 58 ] [8:34,8:58] [8:34,8:58] 时间段内线性增长和线性减少,在 ( 8 : 10 , 8 : 34 ) (8:10,8:34) (8:10,8:34) 时间段内稳定。假设支路2的车流量函数为分段函数:

Q 2 ( t ) = { k 4 ( t − 6 : 58 ) , t ∈ [ 6 : 58 , 8 : 10 ) Q stable2 , t ∈ [ 8 : 10 , 8 : 34 ) Q stable2 − k 5 ( t − 8 : 34 ) , t ∈ [ 8 : 34 , 8 : 58 ] Q_2(t) = \begin{cases} k_4 (t - 6:58), & t \in [6:58, 8:10) \\ Q_{\text{stable2}}, & t \in [8:10, 8:34) \\ Q_{\text{stable2}} - k_5 (t - 8:34), & t \in [8:34, 8:58] \end{cases} Q2(t)= k4(t6:58),Qstable2,Qstable2k5(t8:34),t[6:58,8:10)t[8:10,8:34)t[8:34,8:58]

其中:

  • $ k_4, k_5 $ 分别为增长和减少阶段的斜率;
  • $ Q_{\text{stable2}} $ 是稳定阶段的车流量。
3. 支路3的车流量函数

支路3的车流量受信号灯C的控制,红灯时车流量为0,绿灯时车流量或稳定或呈现线性变化趋势。假设支路3的车流量函数为分段函数:

Q 3 ( t ) = { 0 , C为红灯 k 6 ( t − t green ) , C为绿灯且车流量线性增长 Q stable3 , C为绿灯且车流量稳定 Q_3(t) = \begin{cases} 0, & \text{C为红灯} \\ k_6 (t - t_{\text{green}}), & \text{C为绿灯且车流量线性增长} \\ Q_{\text{stable3}}, & \text{C为绿灯且车流量稳定} \end{cases} Q3(t)= 0,k6(ttgreen),Qstable3,C为红灯C为绿灯且车流量线性增长C为绿灯且车流量稳定

其中:

  • $ t_{\text{green}} $ 是绿灯开始的时刻;
  • $ k_6 $ 是车流量线性增长阶段的斜率;
  • $ Q_{\text{stable3}} $ 是稳定阶段的车流量。
4. 主路4的车流量

主路4的车流量是支路1、支路2和支路3的车流量之和,且需要考虑支路1和支路2的车流量到达A3的延迟时间(2分钟)。因此,主路4的车流量函数为:

Q main ( t ) = Q 1 ( t − 2 ) + Q 2 ( t − 2 ) + Q 3 ( t ) Q_{\text{main}}(t) = Q_1(t - 2) + Q_2(t - 2) + Q_3(t) Qmain(t)=Q1(t2)+Q2(t2)+Q3(t)

5. 误差分析

通过对比主路4的观测数据与模型计算的车流量,可以计算误差。误差可以通过均方误差(MSE)来衡量:

MSE = 1 N ∑ i = 1 N ( Q main,obs ( t i ) − Q main,model ( t i ) ) 2 \text{MSE} = \frac{1}{N} \sum_{i=1}^{N} \left( Q_{\text{main,obs}}(t_i) - Q_{\text{main,model}}(t_i) \right)^2 MSE=N1i=1N(Qmain,obs(ti)Qmain,model(ti))2

其中:

  • $ Q_{\text{main,obs}}(t_i) $ 是主路4在时刻 $ t_i $ 的观测车流量;
  • $ Q_{\text{main,model}}(t_i) $ 是主路4在时刻 $ t_i $ 的模型计算车流量;
  • $ N $ 是观测数据的总数。
6. 结果填入表格

根据上述模型,填写表3.1和表3.2。

表3.1 问题3支路车流量函数表达式

支路1支路2
$ Q_1(t) $$ Q_2(t) $
支路3
$ Q
为了处理问题3,我们需要建立一个数学模型来推测支路1、支路2和支路3的车流量。以下是Python代码的实现步骤:

1. 导入必要的库

import numpy as np
import pandas as pd
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt

2. 定义车流量函数模型

根据问题描述,我们需要定义以下函数模型:

  • 支路1:呈现“无车流量→增长→减少→稳定→减少至无车流量”的趋势,可以使用分段函数来描述。
  • 支路2:分别在[6:58,8:10]和[8:34,8:58]时间段内线性增长和线性减少,在(8:10,8:34)时间段内稳定。
  • 支路3:受信号灯C控制,绿灯时车流量或稳定或线性变化,红灯时车流量为0。
def branch1_flow(t):# 分段函数,根据时间t返回支路1的车流量if t < t1:return 0elif t1 <= t < t2:return a1 * (t - t1)elif t2 <= t < t3:return a1 * (t2 - t1) - a2 * (t - t2)elif t3 <= t < t4:return a3else:return max(0, a3 - a4 * (t - t4))def branch2_flow(t):# 分段函数,根据时间t返回支路2的车流量if t < t5:return b1 * (t - t5)elif t5 <= t < t6:return b2else:return max(0, b2 - b3 * (t - t6))def branch3_flow(t):# 根据信号灯C的状态返回支路3的车流量if is_green(t):return c1 * t + c2else:return 0def is_green(t):# 判断信号灯C在时间t是否为绿灯cycle = 18  # 红灯8分钟,绿灯10分钟green_start = 7.1  # 第一个绿灯于7:06开始t_cycle = (t - green_start) % cyclereturn t_cycle < 10

3. 读取附件表3的数据

# 假设附件表3的数据存储在CSV文件中
data = pd.read_csv('table3.csv')
times = data['Time'].values
main_flow = data['Flow'].values

4. 拟合参数

使用curve_fit函数拟合支路1、支路2和支路3的函数参数。

def total_flow(t, *params):# 主路车流量是各支路车流量的总和t1, t2, t3, t4, a1, a2, a3, a4, t5, t6, b1, b2, b3, c1, c2 = paramsreturn branch1_flow(t) + branch2_flow(t) + branch3_flow(t)

初始参数猜测

initial_guess = [7.0, 7.5, 8.0, 8.5, 10, 5, 20, 5, 7.0, 8.0, 10, 20, 5, 1, 0]

拟合参数

params, _ = curve_fit(total_flow, times, main_flow, p0=initial_guess)

5. 输出结果

# 输出支路1、支路2、支路3的函数表达式
print("支路1的函数表达式:")
print(f"支路1车流量 = {params[4]}*(t-{params[0]}) if {params[0]} <= t < {params[1]}")
print(f"支路1车流量 = {params[4]}*({params[1]}-{params[0]}) - {params[5]}*(t-{params[1]}) if {params[1]} <= t < {params[2]}")
print(f"支路1车流量 = {params[6]} if {params[2]} <= t < {params[3]}")
print(f"支路1车流量 = max(0, {params[6]} - {params[7]}*(t-{params[3]})) if t >= {params[3]}")print("\n支路2的函数表达式:")

问题4. 在网络信号弱、能见度低、车流量较大或车速过快等情况下,车流量监测设备可能会产生数据误差。考虑图3所示的道路,假设某天设备A3记录的数据产生了误差,在[6:58,8:58]时间段内观测数据见附件表4。

支路1的车流量呈现“无车流量→线性增长→稳定→线性减少至无车流量”的趋势;支路2的车流量分别在[6:58,7:34]和[8:10,8:58]时间段内线性增长和线性减少,在(7:34,8:10)时间段内稳定。信号灯C的红灯时间设置为8分钟,绿灯时间设置为10分钟,黄灯时间忽略不计。当C显示绿灯时,支路3的车流量或稳定或呈现线性变化趋势;当C显示红灯时,支路3的车流量视为0。C显示绿灯的时刻未知。

请建立数学模型,根据附件表4的数据推测支路1、支路2、支路3上实际的车流量,使用合适的函数关系来描述各支路上的车流量随时间的变化,并分析结果的误差。在表4.1中填入具体的函数表达式,在表4.2中分别填入7:30和8:30这两个时刻各支路上的车流量数值。

问题4的建模与求解

1. 问题分析

问题4中,设备A3记录的数据存在误差,需要根据附件表4的数据推测支路1、支路2、支路3的实际车流量。已知:

  • 支路1的车流量呈现“无车流量→线性增长→稳定→线性减少至无车流量”的趋势。
  • 支路2的车流量分别在[6:58,7:34]和[8:10,8:58]时间段内线性增长和线性减少,在(7:34,8:10)时间段内稳定。
  • 信号灯C的红灯时间为8分钟,绿灯时间为10分钟,黄灯时间忽略不计。
  • 当C显示绿灯时,支路3的车流量或稳定或呈现线性变化趋势;当C显示红灯时,支路3的车流量视为0。
  • C显示绿灯的时刻未知。

目标是根据这些信息,建立数学模型,推测各支路的车流量函数表达式,并分析误差。

2. 模型建立
2.1 支路1的车流量函数

支路1的车流量变化趋势可以分为四个阶段:

  1. 无车流量阶段:$ t \in [6:58, t_1) $,车流量为0。
  2. 线性增长阶段:$ t \in [t_1, t_2) $,车流量线性增长,函数为 $ f_1(t) = k_1(t - t_1) $。
  3. 稳定阶段:$ t \in [t_2, t_3) $,车流量稳定为 $ f_1(t) = C_1 $。
  4. 线性减少阶段:$ t \in [t_3, 8:58] $,车流量线性减少至0,函数为 $ f_1(t) = C_1 - k_2(t - t_3) $。

其中,$ t_1, t_2, t_3 $ 是未知的时间点,$ k_1, k_2, C_1 $ 是未知的参数。

2.2 支路2的车流量函数

支路2的车流量变化趋势可以分为三个阶段:

  1. 线性增长阶段:$ t \in [6:58, 7:34) $,车流量线性增长,函数为 $ f_2(t) = k_3(t - 6:58) $。
  2. 稳定阶段:$ t \in [7:34, 8:10) $,车流量稳定为 $ f_2(t) = C_2 $。
  3. 线性减少阶段:$ t \in [8:10, 8:58] $,车流量线性减少,函数为 $ f_2(t) = C_2 - k_4(t - 8:10) $。

其中,$ k_3, k_4, C_2 $ 是未知的参数。

2.3 支路3的车流量函数

支路3的车流量受信号灯C的控制,且C的绿灯时刻未知。假设C的绿灯周期为18分钟(8分钟红灯 + 10分钟绿灯),且第一个绿灯开始于 $ t_4 $ 时刻。

支路3的车流量函数可以表示为:

  • 当C为绿灯时,车流量为 $ f_3(t) = k_5(t - t_4) + C_3 $(线性变化)或 $ f_3(t) = C_3 $(稳定)。
  • 当C为红灯时,车流量为0。

其中,$ k_5, C_3, t_4 $ 是未知的参数。

2.4 主路4的车流量函数!

主路4的车流量是支路1、支路2、支路3的车流量之和:
f 主路4 ( t ) = f 1 ( t ) + f 2 ( t ) + f 3 ( t ) f_{\text{主路4}}(t) = f_1(t) + f_2(t) + f_3(t) f主路4(t)=f1(t)+f2(t)+f3(t)

3. 模型求解
3.1 参数估计

根据附件表4的数据,利用最小二乘法或其他优化方法,拟合主路4的车流量数据,得到支路1、支路2、支路3的函数参数。

3.2 误差分析

通过比较模型预测值与实际观测值,计算误差(如均方误差、平均绝对误差等),评估模型的准确性。

4. 结果表达

在表4.1中填入支路1、支路2、支路3的车流量函数表达式,在表4.2中填入7:30和8:30时刻各支路的车流量数值。

5. 示例结果

假设通过模型求解得到以下结果:

**表4.1
对于问题4,我们需要根据附件表4的数据推测支路1、支路2、支路3的实际车流量,并使用函数关系来描述各支路的车流量随时间的变化。以下是详细的数学模型和公式推导:


问题4的数学模型

1. 支路1的车流量函数

支路1的车流量呈现“无车流量→线性增长→稳定→线性减少至无车流量”的趋势。设时间 $ t $ 以分钟为单位,从 6:58 开始计时,$ t = 0 $ 对应 6:58。

  • 无车流量阶段:$ t \in [0, t_1) $,支路1车流量为 0。

  • 线性增长阶段:$ t \in [t_1, t_2) $,支路1车流量线性增长,函数为:
    f 1 ( t ) = k 1 ( t − t 1 ) f_1(t) = k_1 (t - t_1) f1(t)=k1(tt1)
    其中 $ k_1 $ 为增长斜率。

  • 稳定阶段:$ t \in [t_2, t_3) $,支路1车流量稳定,函数为:
    f 1 ( t ) = f 1 ( t 2 ) f_1(t) = f_1(t_2) f1(t)=f1(t2)

  • 线性减少阶段:$ t \in [t_3, t_4) $,支路1车流量线性减少,函数为:
    f 1 ( t ) = f 1 ( t 2 ) − k 2 ( t − t 3 ) f_1(t) = f_1(t_2) - k_2 (t - t_3) f1(t)=f1(t2)k2(tt3)
    其中 $ k_2 $ 为减少斜率。

  • 无车流量阶段:$ t \geq t_4 $,支路1车流量为 0。


2. 支路2的车流量函数

支路2的车流量分别在 [ 6 : 58 , 7 : 34 ] [6:58,7:34] [6:58,7:34] [ 8 : 10 , 8 : 58 ] [8:10,8:58] [8:10,8:58] 时间段内线性增长和线性减少,在 ( 7 : 34 , 8 : 10 ) (7:34,8:10) (7:34,8:10) 时间段内稳定。

  • 线性增长阶段:$ t \in [0, t_5) $,支路2车流量线性增长,函数为:
    f 2 ( t ) = k 3 ( t − 0 ) f_2(t) = k_3 (t - 0) f2(t)=k3(t0)
    其中 $ k_3 $ 为增长斜率。

  • 稳定阶段:$ t \in [t_5, t_6) $,支路2车流量稳定,函数为:
    f 2 ( t ) = f 2 ( t 5 ) f_2(t) = f_2(t_5) f2(t)=f2(t5)

  • 线性减少阶段:$ t \in [t_6, t_7) $,支路2车流量线性减少,函数为:
    f 2 ( t ) = f 2 ( t 5 ) − k 4 ( t − t 6 ) f_2(t) = f_2(t_5) - k_4 (t - t_6) f2(t)=f2(t5)k4(tt6)
    其中 $ k_4 $ 为减少斜率。


3. 支路3的车流量函数

支路3的车流量受信号灯C控制,红灯时间为8分钟,绿灯时间为10分钟。当C显示绿灯时,支路3的车流量或稳定或呈现线性变化趋势;当C显示红灯时,支路3的车流量为0。

  • 红灯阶段:支路3车流量为0。

  • 绿灯阶段:支路3车流量函数为:
    f 3 ( t ) = { k 5 ( t − t 8 ) 线性增长 c 稳定 f_3(t) = \begin{cases} k_5 (t - t_8) & \text{线性增长} \\ c & \text{稳定} \end{cases} f3(t)={k5(tt8)c线性增长稳定
    其中 $ k_5 $ 为增长斜率,$ c $ 为稳定值。


误差分析

误差主要来源于以下几个方面:

  1. 设备A3的观测误差。
  2. 支路车流量函数拟合的偏差。
  3. 信号灯C的绿灯时刻未知导致的误差。

表4.1 问题4支路车流量函数表达式

支路1支路2
$ f_1(t) $$ f_2(t) $
支路3
$ f_3(t) $

表4.2 问题4支路车流量数值

时刻支路1支路2支路3
7:30$ f_1(32) $$ f_2(32) $$ f_3(32) $
8:30$ f_1(92) $$ f_2(92) $$ f_3(92) $

详细公式推导

问题4的解决方案

为了推测支路1、支路2、支路3的实际车流量,我们需要根据附件表4的数据和题目中给出的支路车流量变化趋势,建立数学模型。以下是解决该问题的步骤和Python代码实现。


1. 问题分析
  • 支路1:车流量呈现“无车流量→线性增长→稳定→线性减少至无车流量”的趋势。
  • 支路2:车流量分别在[6:58,7:34]和[8:10,8:58]时间段内线性增长和线性减少,在(7:34,8:10)时间段内稳定。
  • 支路3:受信号灯C控制,当C显示绿灯时,车流量或稳定或呈现线性变化趋势;当C显示红灯时,车流量为0。信号灯C的红灯时间为8分钟,绿灯时间为10分钟,黄灯时间忽略不计。C显示绿灯的时刻未知。

2. 数学模型

(1) 支路1的车流量函数

  • 假设支路1的车流量函数为分段函数:
    • 无车流量阶段:$ Q_1(t) = 0 $
    • 线性增长阶段:$ Q_1(t) = k_1(t - t_{start}) $
    • 稳定阶段:$ Q_1(t) = C $
    • 线性减少阶段:$ Q_1(t) = C - k_2(t - t_{end}) $

(2) 支路2的车流量函数

  • 假设支路2的车流量函数为分段函数:
    • 线性增长阶段:$ Q_2(t) = k_3(t - t_{start}) $
    • 稳定阶段:$ Q_2(t) = C $
    • 线性减少阶段:$ Q_2(t) = C - k_4(t - t_{end}) $

(3) 支路3的车流量函数

  • 假设支路3的车流量函数为分段函数:
    • 绿灯阶段:$ Q_3(t) = k_5(t - t_{start}) $ 或 $ Q_3(t) = C $
    • 红灯阶段:$ Q_3(t) = 0 $

3. Python代码实现
import numpy as np
import pandas as pd
from scipy.optimize import curve_fit# 读取附件表4的数据
data = pd.read_csv("附件表4.csv")  # 假设数据已加载到DataFrame中
time = data['时间'].values  # 时间列
main_flow = data['主路车流量'].values  # 主路车流量列# 定义支路1的车流量函数
def q1(t, k1, k2, t_start, t_end, C):if t < t_start:return 0elif t_start <= t < t_end:return k1 * (t - t_start)elif t_end <= t < t_end + 10:  # 假设稳定阶段持续10分钟return Celse:return C - k2 * (t - (t_end + 10))# 定义支路2的车流量函数
def q2(t, k3, k4, t_start1, t_end1, t_start2, t_end2, C):if t_start1 <= t < t_end1:return k3 * (t - t_start1)elif t_end1 <= t < t_start2:return Celif t_start2 <= t < t_end2:return C - k4 * (t - t_start2)else:return 0# 定义支路3的车流量函数
def q3(t, k5, t_start, t_end, C):if t_start <= t < t_end:return k5 * (t - t_start)else:return 0
省略# 输出结果

更多内容具体可以看看我的下方名片!
里面包含有本次竞赛一手资料与分析!
另外在赛中,我们也会陪大家一起解析建模比赛
记得关注Tina表姐哦~

相关文章:

(A题|支路车流量推测问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合

我是Tina表姐&#xff0c;毕业于中国人民大学&#xff0c;对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在&#xff0c;我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…...

RDMA高性能网络通信实践

RDMA高性能网络通信实践 一、背景介绍二、方法设计A.实现方案B.关键技术点三、代码及注释四、注意事项一、背景介绍 远程直接内存访问(RDMA)技术通过绕过操作系统内核和CPU直接访问远程内存,实现了超低延迟、高吞吐量的网络通信。该技术广泛应用于高性能计算、分布式存储和…...

【LeetCode Hot100】图论篇

前言 本文用于整理LeetCode Hot100中题目解答&#xff0c;因题目比较简单且更多是为了面试快速写出正确思路&#xff0c;只做简单题意解读和一句话题解方便记忆。但代码会全部给出&#xff0c;方便大家整理代码思路。 200. 岛屿数量 一句话题意 求所有上下左右的‘1’的连通块…...

图论---有向图的强连通分量(Tarjan求SCC)

强连通分量作用&#xff1a;有向图——>&#xff08;缩点&#xff09;有向无环图&#xff08;DAG&#xff09; 缩点&#xff1a;将所有连通的分量缩成一个点。 有向无环图作用/好处&#xff1a;求最短路/最长路 可以递推&#xff0c;按照拓扑图从前往后递推. x 是否在某个…...

2025年- H17-Lc125-73.矩阵置零(矩阵)---java版

1.题目描述 2.思路 &#xff08;1&#xff09;计算矩阵的行数 &#xff08;2&#xff09;计算矩阵的列数 &#xff08;3&#xff09;设计一个行列的bool数组 &#xff08;4&#xff09;遍历矩阵&#xff08;二维数组&#xff09;&#xff0c;如果遇到元素0&#xff0c;则把…...

【信息系统项目管理师-论文真题】2023下半年论文详解(包括解题思路和写作要点)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题(第一批):论信息系统项目的干系人管理1、写作要点2、解题思路项目干系人管理的过程和执行要点项目中所有干系人如何进行分类管理?试题(第二批):论信息系统项目的工作绩效域1、写作要点2、解题思路绩…...

分享5款开源、美观的 WinForm UI 控件库

前言 今天大姚给大家分享5款开源、美观的 WinForm UI 控件库&#xff0c;助力让我们的 WinForm 应用更好看。 WinForm WinForm是一个传统的桌面应用程序框架&#xff0c;它基于 Windows 操作系统的原生控件和窗体。通过简单易用的 API&#xff0c;开发者可以快速构建基于窗体…...

微软推出数款Phi 4“开放式”人工智能模型

微软周三推出了几款新的“开放式”人工智能模型&#xff0c;其中功能最强大的模型至少在一个基准测试上可与 OpenAI 的 o3-mini 相媲美。所有新的授权模型——Phi 4 mini reasoning、Phi 4 reasoning 和 Phi 4 reasoning plus——都是“推理”模型&#xff0c;这意味着它们能够…...

Python实例题:Python实现Python解释器

目录 Python实例题 题目 实现思路 代码实现 代码解释 词法分析器&#xff08;Lexer&#xff09;&#xff1a; 词法单元类&#xff08;Token&#xff09;&#xff1a; 抽象语法树节点类&#xff08;AST&#xff09;&#xff1a; 语法分析器&#xff08;Parser&#xff…...

【IP101】图像滤波技术详解:从均值滤波到高斯滤波的完整指南

&#x1f31f; 图像滤波魔法指南 &#x1f3a8; 在图像处理的世界里&#xff0c;滤波就像是给图片"美颜"的魔法工具。让我们一起来探索这些神奇的滤波术吧&#xff01; &#x1f4d1; 目录 1. 均值滤波&#xff1a;图像的"磨皮"大法2. 中值滤波&#xff1…...

信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(六)

个人笔记整理---仅供参考 第六章项目管理概论 6.1PMBOK的发展 6.2项目基本要素 组织过程资产指的是项目上的&#xff0c;国产数据库的使用----安保和安全指的是环境因素 6.3项目经理的角色 6.4价值驱动的项目管理知识体系...

算法-堆、排序算法、矩阵乘法

满二叉树、完全二叉树 二叉树遵循下面的规律&#xff0c;当前节点i&#xff08;但是其实就是逐级填充&#xff09;: 左节点为 ix2右节点为 i*21父节点为 [i/2] 向下取整 使用数组表示二叉树&#xff1a; &#xff08;二叉树的深度自上而下&#xff0c;高度自下…...

Java 进阶--集合:告别数组的“僵硬”,拥抱灵活的数据容器

作者&#xff1a;IvanCodes 发布时间&#xff1a;2025年5月1日&#x1fae1; 专栏&#xff1a;Java教程 大家好&#xff01;&#x1f44b; 还记得我们上次聊的数组 (Array) 吗&#xff1f;它很基础&#xff0c;性能也不错&#xff0c;但有个致命的缺点&#xff1a;长度一旦定…...

Python 数据智能实战 (6):用户评论深度挖掘

写在前面 —— 从繁杂评论到精准洞察:主题发现与情感趋势分析,驱动产品优化与体验提升 在上篇内容中,我们学习了如何利用 LLM 提升用户分群的精度,以及如何超越传统购物篮分析,挖掘商品间的语义关联。今天,我们将聚焦于电商领域 价值密度最高 的非结构化数据之一——用…...

podman/docker国内可用的docker镜像源(2025-05)

一、添加Docker国内镜像 1、修改 /etc/docker/daemon.json 设置 registry mirror&#xff0c;具体命令如下: sudo vim /etc/docker/daemon.json <<EOF {"registry-mirrors": ["https://docker.1ms.run","https://docker.xuanyuan.me",&q…...

机器人--底盘

机器人底盘 底盘是机器人传感器和机器人主机的载体&#xff0c;也是移动机器人的基本形式。移动机器人通常可以采用轮式和足式进行移动。 也就是机器人底盘可以分为轮式底盘和足式底盘。 足式底盘控制复杂&#xff0c;这里只讨论轮式底盘。 底盘运动学模型 轮式机器人底盘按…...

Seata服务端同步提交事务核心源码解析

文章目录 前言一、doGlobalCommit&#xff08;同步提交&#xff09;2.1、closeAndClean()2.2、changeGlobalStatus2.3、doGlobalCommit2.3.1、findGlobalSession 总结 前言 本篇介绍Seata服务端TC如何驱动RM提交事务。 一、doGlobalCommit&#xff08;同步提交&#xff09; doG…...

2025五一杯B题五一杯数学建模思路代码文章教学: 矿山数据处理问题

完整内容请看文章最下面的推广群 问题1. 根据附件1中的数据和&#xff0c;建立数学模型&#xff0c;对数据A进行某种变换&#xff0c;使得变换后的结果与数据尽可能接近。计算变换后的结果与数据的误差&#xff0c;并分析误差的来源&#xff08;如数据噪声、模型偏差等&#xf…...

C++11新特性_自动类型推导

decltype 和 auto 均为 C 里用于类型推导的关键字&#xff0c;不过它们在使用方式、推导规则和应用场景上存在显著差异。下面为你详细介绍它们的区别&#xff1a; 1. 推导依据 auto&#xff1a;它依据变量的初始化表达式来推导类型。也就是说&#xff0c;auto 定义的变量必须有…...

【AI论文】ReasonIR:为推理任务训练检索器

摘要&#xff1a;我们提出了ReasonIR-8B&#xff0c;这是第一个专门针对一般推理任务进行训练的检索器。 现有的检索器在推理任务上表现出的收益有限&#xff0c;部分原因是现有的训练数据集侧重于与直接回答它们的文档相关的简短事实查询。 我们开发了一个合成数据生成管道&am…...

嵌入式AI还是一片蓝海

发现其实还是挺多人关注嵌入式和人工智能交叉领域的&#xff0c;随便一个问题&#xff0c;浏览量就27万了&#xff0c;但是这方面的内容确实少得可怜……所以干脆我自己来补点干货。 推荐一本最近很热门的新书——《边缘人工智能&#xff1a;用嵌入式机器学习解决现实问题》。 …...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(13): ておきます ています & てあります

日语学习-日语知识点小记-构建基础-JLPT-N4阶段&#xff08;13&#xff09;&#xff1a; ておきます &ています &#xff06; てあります 。 1、前言&#xff08;1&#xff09;情况说明&#xff08;2&#xff09;工程师的信仰 2、知识点&#xff08;1&#xff09;&#x…...

CMake管理外部依赖的模块

在 CMake 中&#xff0c;FetchContent 和 ExternalProject 都是管理外部依赖的模块&#xff0c;但它们的 设计目标、使用场景和执行时机 有本质区别。以下通过对比表格、代码示例和场景分析详细说明它们的区别。 核心区别对比表 特性FetchContentExternalProject执行阶段配置阶…...

[计算机科学#7]:CPU的三阶段,取指令、解码、执行

【核知坊】&#xff1a;释放青春想象&#xff0c;码动全新视野。 我们希望使用精简的信息传达知识的骨架&#xff0c;启发创造者开启创造之路&#xff01;&#xff01;&#xff01; 内容摘要&#xff1a;本文详细介绍了CPU的工作原理&#xff0c;包括其结构…...

向量数据库和关系型数据库的区别,优点,缺点和典型应用场景

向量数据库与关系型数据库的全面对比 向量数据库和关系型数据库是两种截然不同的数据管理系统&#xff0c;各自针对特定的数据模型和查询模式进行了优化。随着人工智能和大数据技术的发展&#xff0c;向量数据库作为新兴的数据库类型&#xff0c;在处理非结构化数据方面展现出…...

《跨越边界:探索跨端框架中通用状态管理方案设计》

一款应用往往需要在多个终端&#xff0c;如Web、移动端、桌面端等同时运行&#xff0c;以满足用户多元化的使用场景。在这复杂的跨端开发领域中&#xff0c;状态管理堪称关键枢纽&#xff0c;直接关乎应用的性能、稳定性以及开发与维护的效率。如何设计一套通用的状态管理方案&…...

PHP之CURL通过header传参数及接收

一、传参数之冒号 注意一点&#xff0c;这里的header数据不是KV结构&#xff0c;而是一个一维数组。 看清楚&#xff0c;注意一点&#xff0c;是这样的结构&#xff1a; $ch curl_init(); $headers [X-Custom-Header: value123,Authorization: Bearer your_token_here // …...

【C++】brpc安装

brpc安装教程 环境&#xff1a;Ubuntu24.04 1 简单安装 即安装到系统环境下&#xff0c;依赖也是依赖apt安装。 官方参考教程 依赖准备 安装依赖&#xff1a; sudo apt-get install -y git g make libssl-dev libgflags-dev libprotobuf-dev libprotoc-dev protobuf-com…...

从0开始的c++知识讲解之字符串(1)

作者作为新手&#xff0c;对于知识的讲解也是边输出内容也是边学习&#xff0c;如有缺陷&#xff0c;请多海涵&#xff0c;但同样&#xff0c;我会帮助你从新手视角看到新手的疑惑&#xff0c;并帮助你解决此疑惑 一&#xff0c;开宗明义&#xff0c;立意先行 string在C里有可…...

Linux 第六讲 --- 工具篇(一)yum/apt与vim

前言&#xff1a; 经过前五讲对Linux基础指令与权限系统的系统学习&#xff0c;相信你已经能在命令行中自如地穿梭于文件丛林&#xff0c;精准调配权限密钥。但真正的Linux玩家&#xff0c;绝不会止步于基础操作的重复劳作。 从今天起&#xff0c;我们将打开Linux的"瑞士…...

xml 和 yaml 的区别

XML 和 YAML/YML 是两种常用的数据序列化格式&#xff0c;用于存储和读取结构化数据。以下是它们的核心区别和使用方法&#xff1a; 1. 格式特性对比 特性XMLYAML/YML语法复杂度标签嵌套&#xff0c;结构严格缩进分层&#xff0c;更简洁可读性较低&#xff08;冗余标签&#…...

1.67g 雨晨 22635.5305 Windows 11 企业版 23H2 极速增强版

五一特别制作 &#xff08;主要更新简述&#xff09; 全程由最新YCDISM2025装载制作 1、可选功能&#xff1a; 添加&#xff1a; Microsoft-Windows-LanguageFeatures-Basic-en-us-Package Microsoft-Windows-LanguageFeatures-OCR-en-us-Package 2、功能增强&a…...

【C++】类和对象(中)——默认成员函数详解(万字)

文章目录 上文链接类的默认成员函数1. 构造函数(1) 什么是构造函数(2) 构造函数的使用 2. 析构函数(1) 什么是析构函数(2) 析构函数的使用(3) 小练习 3. 拷贝构造函数(1) 什么是拷贝构造函数(2) 拷贝构造函数的使用 4. 赋值运算符重载(1) 运算符重载(2) 运算符重载的简单应用(3…...

Ubuntu18 登录界面死循环 Ubuntu进不了桌面

今天碰到这个问题&#xff0c;真是把我恶心到了 网上很多方法都不靠谱&#xff0c;最后我还是自己摸索出一个方法 先进入终端 开机后在登陆界面按下shift ctrl F1&#xff08;或者F2&#xff0c;一直按&#xff09;进入tty命令行终端登陆后输入(本人的用户名为hp&#xff…...

caffe适配cudnn9.6.0(ai修改代码踩坑)

caffe适配cudnn&#xff1a;https://github.com/dyc2424748461/caffe &#xff08;测试一下&#xff0c;成没成&#xff0c;反正我看到它用gpu了&#x1f636;&#xff09; 因为突发奇想&#xff0c;想要玩easymocap&#xff0c;先是简单使用media跑通了一下&#xff0c;然后过…...

【MySQL数据库】视图

1&#xff0c;视图的基本介绍 视图是一个虚拟表&#xff0c;其内容由查询定义。与真实表一样的是&#xff0c;视图包含带有名称的列和行数据&#xff1b;与真实表不一样的是&#xff0c;视图本身并不在数据库中存储数据。视图的数据变化会影响到基表&#xff0c;基表的数据变化…...

Linux日常使用与运维的AI工具全景调研:效率革命的终极指南

Linux日常使用与运维的AI工具全景调研:效率革命的终极指南 引言:当Linux遇上AI,运维世界正在发生什么? 作为一名Linux系统管理员,你是否还在为以下问题困扰: 深夜被报警短信惊醒,却要手动排查复杂的系统故障?面对海量日志文件,像大海捞针一样寻找关键错误信息?重复…...

Linux——线程(3)线程同步

一、线程同步的引入 通过上面的抢票系统我们发现&#xff0c;有的线程&#xff0c;进行工作&#xff08;挂锁&#xff09;&#xff0c;当其马上结束工作&#xff08;解锁&#xff09;&#xff0c;发现外面有很多线程在排队等着加锁执行任务&#xff0c;这个线程解锁后就立马给…...

Redis实现分布式锁

分布式锁是分布式系统中解决资源竞争问题的重要机制。Redis凭借其高性能和原子性操作&#xff0c;成为实现分布式锁的热门选择。本文将详细介绍如何使用Java和Redis实现分布式锁&#xff0c;并重点讲解如何通过Lua脚本保证锁操作的原子性。 一、分布式锁的基本要求 一个可靠的…...

JavaScript如何实现类型判断?

判断一个数据的类型&#xff0c;常用的方法有以下几种&#xff1a; typeofinstanceofObject.prototype.toString.call(xxx) 下面来分别分析一下这三种方法各自的优缺点 typeof typeof的本意是用来判断一个数据的数据类型&#xff0c;所以返回的也是一个数据类型。但是会遇到下…...

Spring MVC 与 FreeMarker 整合

以下是 Spring MVC 与 FreeMarker 整合的详细步骤&#xff0c;包含配置和代码示例&#xff1a; 1. 添加依赖 在 pom.xml 中引入 Spring MVC 和 FreeMarker 的依赖&#xff08;以 Maven 为例&#xff09;&#xff1a; <!-- Spring Web MVC --> <dependency><gr…...

设计模式简述(十五)观察者模式

观察者模式 描述基本组件使用 描述 观察者模式&#xff0c;顾名思义就是一个对象观察着其他对象&#xff0c;一旦被观察的对象发生变化时&#xff0c;观察者对象也要做出相应动作。 其中&#xff0c;被观察者持有观察者的引用。由观察者主动注入被观察者内&#xff08;有点像…...

用手机相册教我数组概念——照片分类术[特殊字符][特殊字符]

目录 前言一、现实场景1.1 手机相册的照片管理1.2 照片分类的需求 二、技术映射2.1 数组与照片分类的对应关系2.2 数组索引与照片标签的类比 三、知识点呈现3.1 数组的基本概念3.2 数组在编程中的重要性3.3 数组的定义与初始化3.4 数组的常见操作&#xff08;增删改查&#xff…...

字符串格式漏洞-[第五空间2019 决赛]PWN5

之前其实也写了一篇&#xff0c;现在再来看。又有新的收获了&#xff0c;于是记录一下 前置知识 格式化字符串漏洞详解-CSDN博客 讲得很清楚&#xff0c;我就不照猫画虎了 实践 main函数 首先先办法泄露我们输入的地址 from pwn import * elfpathlevel0 # ioprocess(elfp…...

数据结构学习之顺序表

在C语言学习到一定阶段之后&#xff0c;接下来我们就进入到了数据结构的部分内容。 目录 数据结构与线性表 顺序表 顺序表分类&#xff1a; 接下来我们要写一段代码实现动态顺序表。 首先我们需要准备三个文件&#xff1a; 1.接下来我们要定义一个数据表 2.当创建号我们的…...

AWS CloudFront全球加速利器:解析出海业务的核心优势与最佳实践

对于寻求全球化发展的企业而言&#xff0c;AWS CloudFront凭借其强大的全球基础设施和边缘计算能力&#xff0c;成为加速出海业务的关键工具。本文将深入剖析CloudFront的核心优势&#xff0c;并探讨其如何助力企业突破跨境业务瓶颈&#xff0c;同时符合SEO优化策略&#xff0c…...

Flowable7.x学习笔记(十六)分页查询我的待办

前言 我的待办具体区分为3种情况&#xff0c;第一个就是办理人指定就是我&#xff0c;我可以直接审批&#xff1b;第二种就是我是候选人&#xff0c;我需要先拾取任务然后再办理&#xff1b;第三种是我是候选组&#xff0c;我需要切换到指定的角色去拾取任务再办理。如果任务已…...

Annotate better with CVAT

WIN10 配置标注环境 WSL + Docker Desktop 安装手册 https://docs.cvat.ai/docs/administration/basics/installation/ hebing@hello:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE cvat/ui …...

QML Image 组件详解

目录 引言相关阅读QML Image元素基础知识 项目结构示例解析1. 本地资源图像加载2. 网络图像加载3. 图像填充模式 应用主结构 总结下载链接 引言 本文将介绍QML中Image元素的基本用法和关键特性&#xff0c;包括加载本地资源图像、处理网络图像、以及调整图像的填充模式。通过一…...

BOFZ 緩衝區溢出shell脚本檢測工具

地址:https://github.com/MartinxMax/bofz BOFZ BOFZ 是一款簡單的緩衝區溢出掃描器&#xff0c;旨在檢測指定可執行文件中的緩衝區溢出漏洞。 此工具可用於快速測試應用程序或二進制文件中是否存在常見的安全缺陷&#xff0c;特別是那些由於對用戶輸入處理時邊界檢查不當而引…...