2024年五一杯高校数学建模竞赛(C题) 建模解析| 冲击地压危险预测 |小鹿学长带队指引全代码文章与思路

我是鹿鹿学长,就读于上海交通大学,截至目前已经帮200+人完成了建模与思路的构建的处理了~
本篇文章是鹿鹿学长经过深度思考,独辟蹊径,通过滑动平均法解决冲击地压危险预测问题。实现综合建模。独创复杂系统视角,帮助你解决五一杯的难关呀。
完整内容可以在文章末尾领取!
在这里插入图片描述

问题1:如图1,已知现场工作面的部分电磁辐射和声发射信号中存在大量干扰信号,有可能是工作面的其他作业或设备干扰等因素引起,这对后期的电磁辐射和声发射信号处理造成了一定的影响。应用附件1和2中的数据,完成以下问题。
图1 以电磁辐射为例的干扰信号数据示意图
(1.1) 建立数学模型,对存在干扰的电磁辐射和声发射信号进行分析,分别给出电磁辐射和声发射中的干扰信号数据的特征(不少于3个)。
解:
根据附件1和2中的数据,我们可以将电磁辐射和声发射数据分为5类,(A)正常工作数据;(B)前兆特征数据;©干扰信号数据;(D)传感器断线数据;(E)工作面休息数据,其中,A、B、C类为工作面正常生产时的数据,D类为监测系统不正常时的数据,E类为停产期间的数据。

  1. 频率分布特征:
    根据附件1和2中的数据,我们可以发现,干扰信号的频率分布通常会呈现出一定的规律性,与正常工作数据和前兆特征数据有明显的区别。对于电磁辐射数据,干扰信号的频率分布通常会呈现出多峰分布,而正常工作数据和前兆特征数据的频率分布则相对较为平滑。对于声发射数据,干扰信号的频率分布通常会呈现出高频峰和低频峰同时存在,而正常工作数据和前兆特征数据的频率分布则通常只会出现一个峰值。因此,通过观察频率分布特征可以较为准确地识别出干扰信号。

  2. 时序特征:
    干扰信号通常会出现在一个较短的时间段内,与正常工作数据和前兆特征数据有明显的区别。对于电磁辐射数据,干扰信号的时序通常会出现在一个较窄的时间段内,而正常工作数据和前兆特征数据的时序则相对较为平缓。对于声发射数据,干扰信号的时序通常会呈现出突然增大的情况,而正常工作数据和前兆特征数据的时序则相对较为平稳。因此,通过观察时序特征可以较为准确地识别出干扰信号。

  3. 形状特征:
    干扰信号通常会呈现出明显的不规则形状,与正常工作数据和前兆特征数据有明显的区别。对于电磁辐射数据,干扰信号的形状通常会出现较多的波峰和波谷,而正常工作数据和前兆特征数据的形状则相对较为平滑。对于声发射数据,干扰信号的形状通常会呈现出较多的尖峰和波谷,而正常工作数据和前兆特征数据的形状则相对较为平滑。因此,通过观察形状特征可以较为准确地识别出干扰信号。

综上所述,我们可以通过分析频率分布特征、时序特征和形状特征来识别电磁辐射和声发射数据中的干扰信号。具体的数学模型可以通过建立干扰信号的频率、时序和形状的数学模型来实现。通过比对模型得到的特征和实际数据,就可以准确地识别出干扰信号。

首先,根据题目所给的数据,我们可以发现干扰信号数据的特点是在正常工作数据中出现突变,且幅度较大。因此,我们可以建立如下数学模型来分析干扰信号数据的特征:
假设电磁辐射和声发射信号分别为 E ( t ) E(t) E(t) S ( t ) S(t) S(t),其中 t t t为时间变量。我们可以将信号数据分解为两部分:基准信号 B ( t ) B(t) B(t)和干扰信号 I ( t ) I(t) I(t),即 E ( t ) = B ( t ) + I ( t ) E(t)=B(t)+I(t) E(t)=B(t)+I(t) S ( t ) = B ( t ) + I ( t ) S(t)=B(t)+I(t) S(t)=B(t)+I(t)。基准信号 B ( t ) B(t) B(t)表示正常工作数据,干扰信号 I ( t ) I(t) I(t)表示干扰数据。
假设 E ( t ) E(t) E(t) S ( t ) S(t) S(t)的采样频率为 f s f_s fs,则信号的频率域表示为 E ( f ) E(f) E(f) S ( f ) S(f) S(f),其中 f f f为频率变量。
根据采样定理,信号的最高频率分量为 f m a x = f s / 2 f_{max}=f_s/2 fmax=fs/2,因此我们可以将信号的频率域表示为低频分量 E l ( f ) E_l(f) El(f)和高频分量 E h ( f ) E_h(f) Eh(f),即 E ( f ) = E l ( f ) + E h ( f ) E(f)=E_l(f)+E_h(f) E(f)=El(f)+Eh(f)。同理, S ( f ) = S l ( f ) + S h ( f ) S(f)=S_l(f)+S_h(f) S(f)=Sl(f)+Sh(f)
由于干扰信号数据的特征是在正常工作数据中出现突变,因此可以认为干扰信号 I ( t ) I(t) I(t)是高频分量 E h ( t ) E_h(t) Eh(t) S h ( t ) S_h(t) Sh(t)的叠加,即 I ( t ) = α E h ( t ) + β S h ( t ) I(t)=\alpha E_h(t)+\beta S_h(t) I(t)=αEh(t)+βSh(t),其中 α \alpha α β \beta β为干扰信号的系数。
根据傅里叶变换的性质,我们可以得到干扰信号的频率域表示为 I ( f ) = α E h ( f ) + β S h ( f ) I(f)=\alpha E_h(f)+\beta S_h(f) I(f)=αEh(f)+βSh(f)
综上所述,干扰信号数据的特征为在正常工作数据中出现突变,且幅度较大,其频率域表示为叠加了高频分量 E h ( f ) E_h(f) Eh(f) S h ( f ) S_h(f) Sh(f)的信号,系数为干扰信号的系数 α \alpha α β \beta β
在这里插入图片描述

问题1:对于存在干扰的电磁辐射和声发射信号,我们可以通过以下特征进行分析:

(1) 幅值变化特征:干扰信号在幅值上会表现出明显的变化,通常幅值会比正常信号大或小,且变化幅度较大。

(2) 频谱分布特征:干扰信号的频谱分布与正常信号不同,通常会表现出更高或更低的频率分量。

(3) 时域特征:干扰信号的时域波形通常会出现突然的起伏或跳变现象,与正常信号的平稳波形不同。

具体的数学模型可以采用频谱分析和时域分析的方法,对信号进行幅值、频谱和波形等特征提取,建立特征向量,通过对比干扰信号与正常信号的特征向量差异来判断是否存在干扰信号。

频谱分析方法可以采用傅里叶变换来提取信号的频谱信息,时域分析方法可以采用小波变换来提取信号的时域波形信息。具体的数学模型可以表示为:

(1) 幅值变化特征:

设干扰信号为x(t),正常信号为y(t),采样时刻为t,幅值变化特征可用幅值比值来表示:

∣ max ⁡ ( x ( t ) ) − min ⁡ ( x ( t ) ) ∣ ∣ max ⁡ ( y ( t ) ) − min ⁡ ( y ( t ) ) ∣ \frac{|\max(x(t))-\min(x(t))|}{|\max(y(t))-\min(y(t))|} max(y(t))min(y(t))max(x(t))min(x(t))

(2) 频谱分布特征:

设干扰信号的频谱为X(f),正常信号的频谱为Y(f),采样频率为f,频谱分布特征可用频谱差值来表示:

∑ i = 1 n ∣ X ( f i ) − Y ( f i ) ∣ \sum_{i=1}^{n}|X(f_i)-Y(f_i)| i=1nX(fi)Y(fi)

(3) 时域特征:

设干扰信号的时域波形为x(t),正常信号的时域波形为y(t),采样时刻为t,时域特征可用波形差值来表示:

∑ i = 1 n ∣ x ( t i ) − y ( t i ) ∣ \sum_{i=1}^{n}|x(t_i)-y(t_i)| i=1nx(ti)y(ti)

其中,n为采样点数。

综上所述,我们可以通过提取幅值、频谱和时域特征来判断是否存在干扰信号,并可通过比较特征向量差异来进行识别。

答:根据给出的附件1和附件2中的电磁辐射和声发射数据,首先需要对数据进行预处理,即将数据分类为A、B、C、D/E类。其中,A、B、C类为工作面正常生产时的数据,D类为监测系统不正常时的数据,E类为停产期间的数据。预处理过程如下:

  1. 读取附件1和附件2中的数据,存储为列表。

  2. 根据数据中的标记,将数据分类为A、B、C、D/E类。

  3. 建立数学模型,对A、B、C类数据进行特征分析,得出电磁辐射和声发射中的干扰信号数据的特征。

特征分析过程如下:

a. 对A、B、C类数据进行可视化,观察数据的波动情况。

b. 统计数据的均值、方差、最大值、最小值等基本统计量。

c. 分析数据的周期性,即数据在一定时间范围内是否出现重复的波动。

d. 观察数据的变化趋势,判断是否存在递增或递减的趋势。

e. 分析数据的峰值和谷值,判断是否存在突变的情况。

f. 对比不同类别数据的特征,寻找出存在干扰的特征。

  1. 根据所得到的特征,建立数学模型,对2022年5月1日-2022年5月30日的电磁辐射和2022年4月1日-2022年5月30日及2022年10月10日-2022年11月10日声发射信号中的干扰信号所在的时间区间进行识别。

识别过程如下:

a. 对2022年5月1日-2022年5月30日的电磁辐射和2022年4月1日-2022年5月30日及2022年10月10日-2022年11月10日声发射信号数据进行预处理,得到A、B、C、D/E类数据。

b. 对A、B、C类数据进行特征分析,寻找出存在干扰的特征。

c. 对D/E类数据进行异常检测,将异常数据剔除。

d. 利用前面得到的特征进行干扰信号识别,将出现干扰的时间区间记录下来。

e. 根据记录的时间区间,得到电磁辐射和声发射最早发生的5个干扰信号所在的区间,将其记录在表1和表2中。

  1. 对问题2中的前兆特征信号进行分析和识别的过程与干扰信号类似,只是在特征分析和识别的过程中,需要重点关注数据的变化趋势,并将最早发生的5个前兆特征信号所在的时间区间记录在表3和表4中。

  2. 对问题3中的数据,需要建立概率模型来判断在每个时间段最后时刻出现前兆特征数据的概率。具体过程如下:

a. 读取附件3中的数据,将数据存储为列表。

b. 对每个时间段的数据进行预处理,得到A、B、C、D/E类数据。

c. 对每个时间段的数据进行特征分析,得到数据的变化趋势。

d. 对比不同时间段的数据特征,寻找出前兆特征数据的特征。

e. 根据所得到的特征,建立概率模型,计算每个时间段最后时刻出现前兆特征数据的概率。

f. 将计算得到的概率记录在表5中。

第二个问题是建立数学模型,对电磁辐射和声发射信号中的前兆特征信号进行分析,并识别出2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日声发射信号中最早出现的5个前兆特征信号所在的时间区间。

建立数学模型如下:

  1. 对电磁辐射数据进行预处理,去除干扰信号的影响。首先,将所有的电磁辐射数据按照时间顺序排列,然后使用移动平均滤波器对数据进行平滑处理,降低数据的噪声干扰。

  2. 对处理后的电磁辐射数据进行趋势分析。首先,将数据按照每7天的时间段进行分割,然后对每个时间段内的数据进行回归分析,得到数据的线性趋势。最后,根据回归分析的结果,判断数据的变化趋势,若数据呈现出上升趋势,则判定为前兆特征信号。

  3. 对声发射数据进行预处理,去除干扰信号的影响。首先,将所有的声发射数据按照时间顺序排列,然后使用移动平均滤波器对数据进行平滑处理,降低数据的噪声干扰。

  4. 对处理后的声发射数据进行趋势分析。首先,将数据按照每7天的时间段进行分割,然后对每个时间段内的数据进行回归分析,得到数据的线性趋势。最后,根据回归分析的结果,判断数据的变化趋势,若数据呈现出上升趋势,则判定为前兆特征信号。

  5. 对识别出的前兆特征信号进行时间区间的确定。根据数据分析的结果,可以得到前兆特征信号出现的时间点,然后根据前后时间段内数据的变化趋势,确定前兆特征信号所在的时间区间。

  6. 对2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日声发射信号中的前兆特征所在的时间区间进行识别。根据以上方法可以得到最早出现的5个前兆特征信号所在的时间区间。

数学建模的方法如下:

  1. 设定一组时间序列数据为 X = x 1 , x 2 , . . . , x n X={x_1, x_2, ..., x_n} X=x1,x2,...,xn,其中 n n n为数据的总个数。

  2. 对数据进行预处理。首先,将数据按照时间顺序排列,然后使用移动平均滤波器对数据进行平滑处理,降低数据的噪声干扰。

  3. 对处理后的数据进行趋势分析。首先,将数据按照每7天的时间段进行分割,然后对每个时间段内的数据进行回归分析,得到数据的线性趋势。最后,根据回归分析的结果,判断数据的变化趋势。

  4. 根据数据的变化趋势,判断数据是否为前兆特征信号。若数据呈现出上升趋势,则判定为前兆特征信号。

  5. 确定前兆特征信号所在的时间区间。根据数据分析的结果,可以得到前兆特征信号出现的时间点,然后根据前后时间段内数据的变化趋势,确定前兆特征信号所在的时间区间。

  6. 对2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日声发射信号中的前兆特征所在的时间区间进行识别。根据以上方法可以得到最早出现的5个前兆特征信号所在的时间区间。

针对第二个问题,首先需要建立一个数学模型来分析电磁辐射和声发射信号中的前兆特征信号。根据题目中提供的数据,可以发现前兆特征信号的特点是在冲击地压发生前约7天内出现,且信号会随时间循环增大。因此,可以使用时间序列分析的方法来建立数学模型,从而识别出前兆特征信号所在的时间区间。

首先,我们需要对电磁辐射和声发射信号的数据进行预处理,包括数据的平滑处理和异常值的检测与处理。接着,我们可以使用移动平均法来分析信号的趋势性变化。移动平均法是一种常用的时间序列分析方法,它可以消除信号中的随机波动,从而更容易观察信号的长期趋势。具体来说,我们可以使用加权移动平均法来计算信号的移动平均值,然后观察平均值的变化趋势。

在计算移动平均值时,需要确定合适的权重系数。根据题目中提供的数据,我们可以将时间序列分为三段,分别是2020年4月8日-2020年6月8日、2021年11月20日-2021年12月20日、2021年11月1日-2022年1月15日。在每段时间内,我们可以计算出信号的移动平均值,并观察其变化趋势。根据题目中给出的数据,可以发现电磁辐射和声发射信号的移动平均值都呈现出随时间循环增大的趋势,这也符合冲击地压发生前的特征。

因此,我们可以将移动平均值的变化趋势作为前兆特征信号的识别标准。具体来说,当信号的移动平均值开始增大,并且持续增大一段时间后,就可以判断该信号出现了前兆特征,而且冲击地压的发生也可能在近期内发生。根据题目中给出的时间数据,我们可以使用类似的方法来识别出最早出现的5个前兆特征信号所在的时间区间。

综上所述,我们可以通过建立数学模型,利用移动平均法来分析信号的变化趋势,从而识别出电磁辐射和声发射信号中的前兆特征信号,并给出最早出现的5个前兆特征信号所在的时间区间。这样的方法可以有效地提前预警冲击地压事故的发生,帮助煤矿采取措施来防止事故的发生,从而提高煤矿的安全生产水平。
在这里插入图片描述

解题思路:

1.首先,根据已知条件,可以得知在发生冲击地压危险前约7天内,电磁辐射和声发射信号存在随时间循环增大的趋势,这类信号我们称为前兆特征信号。

2.其次,根据附件1和2中的数据,我们可以建立数学模型,对电磁辐射和声发射信号中的前兆特征信号进行分析。

3.对于电磁辐射信号,我们可以将其分为5类,分别为A、B、C、D、E类,其中A、B、C类为工作面正常生产时的数据,D类为监测系统不正常时的数据,E类为停产期间的数据。

4.根据前兆特征信号的定义,我们可以发现,在出现前兆特征信号之后的约7天内,有可能发生冲击地压,所以一般情况下出现前兆特征信号之后,会采取一定措施尽可能的防止冲击地压发生。

5.因此,我们可以重点分析信号的变化趋势,分别给出电磁辐射和声发射信号危险发生前(前兆特征)数据的趋势特征。

6.根据附件1和2中的数据,我们可以利用数学模型,对2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日声发射信号中的前兆特征所在的时间区间进行识别,并给出最早发生的5个前兆特征信号所在的时间区间。

7.最后,根据识别出的时间区间,我们可以建立预警模型,提前发出预警,以尽早防止冲击地压事故的发生。

数学模型:

1.对于电磁辐射信号,我们可以根据附件1中的数据,利用移动平均法来分析信号的变化趋势,得到每个时间段的平均值,然后计算每个时间段内数据的标准差,从而判断是否出现前兆特征信号。具体公式如下:
X i = ∑ n = i i + m X n m for  i = 1 , 2 , … , n − m + 1 X_{i}=\frac{\sum_{n=i}^{i+m} X_{n}}{m} \quad \text { for } i=1,2, \ldots, n-m+1 Xi=mn=ii+mXn for i=1,2,,nm+1

其中, X i X_i Xi表示每个时间段的平均值, m m m表示时间段的长度, n n n表示总的数据量。

2.对于声发射信号,我们可以根据附件2中的数据,利用指数加权移动平均法来分析信号的变化趋势,得到每个时间段的加权平均值,然后计算每个时间段内数据的标准差,从而判断是否出现前兆特征信号。具体公式如下:
X i = ∑ n = i i + m w n X n ∑ n = i i + m w n for  i = 1 , 2 , … , n − m + 1 X_{i}=\frac{\sum_{n=i}^{i+m} w_{n} X_{n}}{\sum_{n=i}^{i+m} w_{n}} \quad \text { for } i=1,2, \ldots, n-m+1 Xi=n=ii+mwnn=ii+mwnXn for i=1,2,,nm+1

其中, X i X_i Xi表示每个时间段的加权平均值, m m m表示时间段的长度, n n n表示总的数据量, w n w_n wn表示第 n n n个数据的权重。

3.根据以上分析,我们可以得到电磁辐射和声发射信号危险发生前(前兆特征)数据的趋势特征,如下:

(1)平均值从小到大递增;

(2)标准差从小到大递增;

(3)趋势线具有明显的上升趋势。

4.根据以上特征,我们可以建立数学模型,对附件1和2中的数据进行分析,识别出2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的电磁辐射和2021年11月1日-2022年1月15日声发射信号中最早出现的5个前兆特征信号所在的时间区间。

5.最后,根据识别出的时间区间,我们可以建立预警模型,利用监测系统每30秒采集的数据,对危险进行预判,提前发出预警,以尽早防止冲击地压事故的发生。

import pandas as pd
import numpy as np# 读取数据
df_emr = pd.read_excel('附件1:电磁辐射数据.xlsx')
df_ae = pd.read_excel('附件1:声发射数据.xlsx')# 选取前兆特征数据
df_emr_pre = df_emr[df_emr['分类'] == 'B']
df_ae_pre = df_ae[df_ae['分类'] == 'B']# 定义函数,判断前兆特征信号的变化趋势
def trend_detect(data):'''输入:数据,为一维的Series类型输出:数据的变化趋势,为字符串类型,分别为上升、下降、平稳'''diff_list = []for i in range(len(data)-1):diff = data.iloc[i+1] - data.iloc[i]diff_list.append(diff)diff_array = np.array(diff_list)if np.all(diff_array > 0):return '上升'elif np.all(diff_array < 0):return '下降'else:return '平稳'# 选取2020年4月8日-2020年6月8日及2021年11月20日-2021年12月20日的数据
df_emr_pre_selected = df_emr_pre[(df_emr_pre['日期'] >= '2020-04-08') & (df_emr_pre['日期'] <= '2020-06-08') | (df_emr_pre['日期'] >= '2021-11-20') & (df_emr_pre['日期'] <= '2021-12-20')]
df_ae_pre_selected = df_ae_pre[(df_ae_pre['日期'] >= '2020-04-08') & (df_ae_pre['日期'] <= '2020-06-08') | (df_ae_pre['日期'] >= '2021-11-20') & (df_ae_pre['日期'] <= '2021-12-20')]# 对电磁辐射和声发射信号分别进行分析,并输出前兆特征数据的时间区间
print('电磁辐射前兆特征时间区间:')
for column in df_emr_pre_selected.columns[3:]:print(column, ':', df_emr_pre_selected[column].iloc[0], '到', df_emr_pre_selected[column].iloc[-1])
print('声发射前兆特征时间区间:')
for column in df_ae_pre_selected.columns[3:]:print(column, ':', df_ae_pre_selected[column].iloc[0], '到', df_ae_pre_selected[column].iloc[-1])

#输出结果:
见完整版

问题3:为了尽早的识别前兆特征信号,在前兆特征信号出现的第一时间发出预警,需要在每次数据采集的时刻对危险进行预判。附件3给出了一些非连续时间段采集的电磁辐射和声发射信号数据。请建立数学模型,给出附件3中的每个时间段最后时刻出现前兆特征数据的概率,完成表5。

解:问题3:为了尽早的识别前兆特征信号,在前兆特征信号出现的第一时间发出预警,需要在每次数据采集的时刻对危险进行预判。附件3给出了一些非连续时间段采集的电磁辐射和声发射信号数据。请建立数学模型,给出附件3中的每个时间段最后时刻出现前兆特征数据的概率,完成表5。
设每次数据采集的时刻为t,前兆特征信号出现的时刻为t0,根据题目中给出的条件,可以得到每次数据采集的时刻t和前兆特征信号出现的时刻t0之间的时间间隔Δt=t-t0,根据题目中给出的数据,可以得到每次数据采集的时刻t和前兆特征信号出现的时刻t0之间的时间间隔Δt的分布情况。
根据题目中给出的条件,可以得到前兆特征信号出现的概率P(t0)=1-tanh(αΔt),其中α为控制参数,可以根据实际情况确定。
在这里插入图片描述

根据以上条件,可以建立数学模型:
P ( t 0 ) = 1 − t a n h ( α Δ t ) P(t0)=1-tanh(αΔt) P(t0)=1tanh(αΔt)
其中,Δt=t-t0,α为控制参数。
根据题目中给出的数据,可以得到每次数据采集的时刻t和前兆特征信号出现的时刻t0之间的时间间隔Δt的分布情况,从而可以计算出每次数据采集的时刻t和前兆特征信号出现的时刻t0之间的时间间隔Δt的概率密度函数f(Δt)。
根据概率密度函数f(Δt),可以计算出每次数据采集的时刻t和前兆特征信号出现的时刻t0之间的时间间隔Δt的概率分布P(Δt)。
根据以上条件,可以建立数学模型:
P ( t 0 ) = ∫ P ( Δ t ) f ( Δ t ) d ( Δ t ) P(t0)=∫P(Δt)f(Δt)d(Δt) P(t0)=P(Δt)f(Δt)d(Δt)
其中,P(Δt)为每次数据采集的时刻t和前兆特征信号出现的时刻t0之间的时间间隔Δt的概率分布,f(Δt)为每次数据采集的时刻t和前兆特征信号出现的时刻t0之间的时间间隔Δt的概率密度函数。
根据以上模型,可以计算出每个时间段最后时刻出现前兆特征数据的概率,完成表5。

P = n N \begin{equation} P = \frac{n}{N} \end{equation} P=Nn

其中, P P P为前兆特征的概率, n n n为在给定时间段内出现前兆特征的次数, N N N为给定时间段内采集数据的总次数。

根据附件3中的数据,可得到每个时间段内的 n n n值和 N N N值,代入公式(1)可得到每个时间段内出现前兆特征的概率 P P P

根据数据分析,电磁辐射和声发射信号的前兆特征概率并不是固定值,而是随着时间段的变化而变化。因此,可以通过每次数据采集的时刻对前兆特征概率进行实时计算,从而及时预测冲击地压的危险。此方法可以有效地提高预警的准确性和及时性,从而保障煤矿的安全生产。

首先,我们定义事件A为某一时刻电磁辐射或声发射信号出现前兆特征,事件B为某一时刻电磁辐射或声发射信号不出现前兆特征。根据附件1和2的数据,我们可以得到事件A和事件B发生的概率分别为:
P ( A ) = n A n P(A)=\frac{n_A}{n} P(A)=nnA
P ( B ) = n B n P(B)=\frac{n_B}{n} P(B)=nnB
其中,n为总的数据量,n_A为出现前兆特征的数据量,n_B为不出现前兆特征的数据量。

根据贝叶斯定理,可以得到在事件B发生的条件下,事件A发生的条件概率为:
P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B)=\frac{P(B|A)P(A)}{P(B)} P(AB)=P(B)P(BA)P(A)
其中,P(B|A)为事件A发生的条件下,事件B发生的概率。

我们可以利用附件3中的数据,根据上述公式计算出每个时间段电磁辐射和声发射信号出现前兆特征的概率,即为表5中的“前兆特征概率”。

import pandas as pd
import numpy as np# 读取附件3的数据
df = pd.read_excel('附件3.xlsx')# 将时间列转换为datetime类型
df['时间'] = pd.to_datetime(df['时间'], format='%Y-%m-%d %H:%M:%S')# 创建空列表用于存储前兆特征数据出现的概率
prob_list = []# 遍历每个时间段
for i in range(len(df['时间'].unique())):# 获取当前时间段的数据data = df[df['时间'] == df['时间'].unique()[i]]# 计算前兆特征数据的数量count = len(data[data['类别'] == '前兆特征'])# 计算前兆特征数据出现的概率prob = count / len(data)# 将概率添加到列表中prob_list.append(prob)# 将概率列表转换为DataFrame
prob_df = pd.DataFrame(prob_list, columns=['前兆特征的概率'])# 将时间列添加到DataFrame中
prob_df['时间'] = df['时间'].unique()# 输出结果
print(prob_df)

更多内容可以点击下方名片详细了解,让小鹿学长带你冲刺五一杯夺奖之路!
敬请期待我们的努力所做出的工作!记得关注 鹿鹿学长呀!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/5567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在做题中学习(48):朴素的二分查找

. - 力扣&#xff08;LeetCode&#xff09; 解法一&#xff1a; 暴力求解 for循环中&#xff0c;从nums[0]枚举到nums[n-1]&#xff0c;依次判断&#xff0c;返回 target的值。 时间复杂度 : O(N) :因为要遍历一遍数组 解法二&#xff1a;二分查找 因为此数组为有序的…

Mybatis进阶(动态SQL)

文章目录 1.动态SQL1.基本介绍1.为什么需要动态SQL2.基本说明3.动态SQL常用标签 2.环境搭建1.新建子模块2.删除不必要的两个文件夹3.创建基本结构4.父模块的pom.xml5.jdbc.properties6.mybatis-config.xml7.MyBatisUtils.java8.MonsterMapper.java9.MonsterMapper.xml10.测试Mo…

如何将安卓手机投屏到Windows 10电脑上

诸神缄默不语-个人CSDN博文目录 我之所以要干这个事是为了用手机直播的时候在电脑上看弹幕…… 文章目录 1. 方法一&#xff1a;直接用Win10内置的投影到此电脑2. 方法二&#xff1a;用AirDroid Cast投屏到电脑上 1. 方法一&#xff1a;直接用Win10内置的投影到此电脑 在设置…

C++ 多态详解

文章目录 1. 多态的概念2. 多态的定义及实现2.1 多态的构成条件2.2 虚函数2.3 虚函数的重写2.3.1 虚函数重写的两个例外 2.4 C11 override 和 final2.5 重载、覆盖(重写)、隐藏(重定义)的对比 3. 多态的原理3.1 虚函数表3.2多态的原理 4. 单继承和多继承关系的虚函数表4.1 单继…

docker安装【zookeeper】【kafka】【provectuslabs/kafka-ui】记录

目录 1.安装zookeeper:3.9.2-jre-172.安装kafka:3.7.03.安装provectuslabs/kafka-ui &#xff08;选做&#xff09;新环境没有jdk&#xff0c;安装jdk-17.0.10备用 mkdir -p /export/{data,apps,logs,conf,downloads}cd /export/downloadscurl -OLk https://download.oracle.…

新品发布!无人机装调检修实训系统

近年&#xff0c;我国密集出台相关产业政策&#xff0c;推动低空经济从探索走向发展&#xff0c;根据新华网数据&#xff0c;2030年低空经济规模有望达2万亿。无人机专业属于跨学科的综合性专业&#xff0c;其中装调检测技术是无人机教培的重要组成部分。 天途推出无人机装调检…

Apache SeaTunnel k8s 集群模式 Zeta 引擎部署指南

SeaTunnel提供了一种运行Zeta引擎(cluster-mode)的方法&#xff0c;可以让Kubernetes在本地运行Zeta引擎&#xff0c;实现更高效的应用程序部署和管理。在本文中&#xff0c;我们将探索SeaTunnel k8s运行zeta引擎(cluster-mode模式)的更多信息&#xff0c;了解如何更好地利用Ze…

HTML:元素分类

HTML&#xff1a;元素分类 概述块级元素&#xff08;Block-level Elements&#xff09;内联元素&#xff08;Inline Elements&#xff09;替换元素&#xff08;Replaced Elements&#xff09;表单元素&#xff08;Form Elements&#xff09; 概述 HTML&#xff08;HyperText M…

Docker容器:网络模式与资源控制

目录 一、Docker 网络模式 1、Docker 网络实现原理 2、Docker 网络模式概述 2.1 Host 模式 2.2 Container 模式 2.3 None 模式 2.4 Bridge 模式 2.5 自定义网络&#xff08;user-defined network&#xff09; 3、配置 docker 网络模式 3.1 查看网络基础命令 3.1.1 查…

css利用transform:skew()属性画一个大屏的背景斜面四边形特效

在工作工程中需要写一个如下的大屏背景&#xff0c;是由几个斜面做成的效果 使用css transform function中的skew()方法实现画其中一个斜面&#xff0c;然后调整背景色实现 写一个div <div class"skew_container test-2"><div class"skew_container_it…

【python笔记】datafram的时间动态可视化 pyecharts地图

import pandas as pd# 假设DataFrame是这样的&#xff1a; df pd.DataFrame({ year: [2014, 2015, 2016, 2014, 2015, 2016, 2014, 2015, 2016], province: [广东省, 广东省, 河南省, 湖南省, 北京市, 北京市, 上海市, 新疆维吾尔自治区, 上海市], values: [100, 150, 75…

Servlet文件嵌套<script>来显示提示框而出现乱码的解决方案

主要出现的原因就是编码不统一导致无法解析对话框中的字符串 我的解决方案: 使用 URL 的编码格式&#xff0c;然后再使用js中的decodeURIComponent函数解析URL编码的字符串&#xff0c;并且恢复其原始字符串内容 将你写的传统的编码格式改为 PrintWriter out resp.getWriter(…

多目标应用:MSSA多目标樽海鞘优化算法求解无人机三维路径规划(MATLAB代码)

一、无人机多目标优化模型 无人机三维路径规划是无人机在执行任务过程中的非常关键的环节&#xff0c;无人机三维路径规划的主要目的是在满足任务需求和自主飞行约束的基础上&#xff0c;计算出发点和目标点之间的最佳航路。 1.1路径成本 无人机三维路径规划的首要目标是寻找…

YOLOV8 pycharm

1 下载pycharm 社区版 https://www.jetbrains.com/zh-cn/pycharm/download/?sectionwindows 2 安装 3 新建 4 选择 文件-> setting 配置环境变量 5 添加conda 环境

基本STL使用

一 、关于vector 在STL中有一个称为vector的数据结构&#xff0c;可以用来代替数组。 定义Book特性 private:vector<string> shelf_books;Notic : 类中不能使用类似的定义&#xff1a;vector<sttring> shelf_boos( 10 ); 定义Book方法 public:void setName(str…

5.C++动态内存管理(超全)

目录 1 .C/C 内存分布 2. C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free 3. C内存管理方式 3.1 new/delete操作内置类型 3.2 new和delete操作自定义类型 3.3 operator new函数 3.4 定位new表达式(placement-new) &#xff08;了解&#xff09; 4. 常…

Java 基础重点知识-(Java 语言特性、数据类型、常见类、异常)

文章目录 Java 语言特性形参和实参的区别是什么?值传递和引用传递的区别?Java 是值传递还是引用传递?final 的作用是什么?final finally finalize 有什么不同?static 的作用是什么?static 和 final 的区别是什么? Java 数据类型Java基本数据类型有几种? 各占多少位?基…

【MySQL精炼宝库】数据库的约束 | 表的设计 | 聚合查询 | 联合查询

目录 一、数据库约束 1.1 约束类型&#xff1a; 1.2 案例演示&#xff1a; 二、表的设计 2.1 一对一: 2.2 一对多: 2.3 多对多: 2.4 内容小结&#xff1a; 三、新增 四、查询 4.1 聚合查询&#xff1a; 4.1.1 聚合函数&#xff1a; 4.1.2 GROUP BY子句&#xff1a…

windows驱动开发-中断(一)

中断是windows中最难的一部分&#xff0c;这是因为中断本身属于操作系统的一部分&#xff0c;理解了中断和内存&#xff0c;对整个系统也就了解了。 中断部分会先从中断优先级、中断处理、中断服务例程入手&#xff0c;大概讲述一下中断的概念&#xff1b;接着从中断的一般实现…

C语言:指针详解(3)

目录 一、字符指针 二、数组指针 1.数组指针的定义 2.数组指针的初始化 3. 二维数组传参的本质 三、函数指针 1.函数指针的创建 2.函数指针的使用 3.有趣的代码(1) 4.有趣的代码(2) 四、typedef关键字 1.typedef的使用方法 2.typedef和#define的区别 五、函数指针…