2024年认证杯SPSSPRO杯数学建模A题(第一阶段)保暖纤维的保暖能力全过程文档及程序
2024年认证杯SPSSPRO杯数学建模
A题 保暖纤维的保暖能力
原题再现:
冬装最重要的作用是保暖,也就是阻挡温暖的人体与寒冷环境之间的热量传递。人们在不同款式的棉衣中会填充保暖材料,从古已有之的棉花、羽绒到近年来各种各样的人造纤维。不同的保暖纤维具有不同的保暖性能,比如人们以往的经验表明,高品质的羽绒具有非常优秀的保暖性能,所以在极寒地区生活的人们可以穿着不算特别厚重的羽绒服,也能够起到足够的御寒效果。但是羽绒作为保暖填充材料也有缺点:成本高,无法耐湿,以及获取手段可能对动物造成不人道的伤害。所以现在普遍认为人造的保暖纤维可能在今后取得更大的市场前景。
我们专注于对人造保暖纤维的保暖能力进行建模。请你和你的团队建立合理的数学模型以回答下列问题。
第一阶段问题:
1. 人们研究过一些指标来描述某种保暖材料的保暖能力。例如热导率、热阻值、热导系数、CLO 值(克罗值)等。在其中,有些指标主要依据基本的传热学物理量来进行定义和推算,忽略了实际使用的环境因素。常用的 CLO 值从定义上需要在穿着环境中对衣物进行实测,是一个比较完善的指标。但也有两个问题:首先,对某种填充材料而言,不同的填充方式、重量、厚度和压缩程度等因素都会影响实际成衣的保暖性能,所以原本定义于成衣的 CLO 值并不能完整地反映某种填充材料的完整性能;其次,在 CLO 值的定义中只考虑了某些特定的穿着环境,在运动、潮湿、大风等特殊条件下,CLO 值与体感可能会有可观的偏差。请针对衣物内填充的保暖纤维建立一个合理的指标体系,较为全面地衡量某种保暖纤维的保暖能力。
2. 考虑到成本低廉,加工方便,我们假设只使用涤纶作为保暖纤维的材料。假设纤维的横截面都是圆形,每根纤维的平均长度和纤维的直径都是已知的常数。请建立合理的数学模型,来研究这种保暖纤维的保暖能力与纤维平均长度以及纤维直径的关系。
3. 在第 2 问的基础上,请根据你定义的指标,根据典型的棉花和羽绒的微观结构(请自行寻找所需数据),来估测其保暖能力。
整体求解过程概述(摘要)
当冬季来临时,冬装成为了我国北部地区的首选衣服种类。在我国东北地区,由于天气寒冷甚至到零下几十度,因此保暖的衣服显得尤为重要,一件好的冬装需要有一定的抗风能力,不让外界的寒风穿透同时也能够将身体的热量进行一个保持,尽可能保证热量不散发到外界寒冷环境中。通过构建一个包含物理特性、环境适应性和用户体验的综合评价体系,本研究深入分析了各种纤维的保暖效率及其在不同环境条件下的表现。
对于问题一,本文利用服装专业相关的文献了解到评估一个材料是否保暖所需的主要指标。并从较多的指标中按照结构与物理特性、物理与热学性能、环境适应性与人体感知四个方面共15个细化指标进行建模,保证了评价指标体系的可靠性与客观性。利用收集到的数据,使用K-S检验与q-q图进行分析处理了解到指标均为非正态分布,因此使用箱形图进行异常值的判定,避免了异常值影响建模的准确。最终将处理后的无异常值数据进行熵权法处理,对不同的种类进行排序以获得指标的权重信息并方面后续相关研究。
对于问题二,针对涤纶这一具有成本优势和处理便利性的材料,本研究建立了数学模型来探讨其保温能力与纤维的平均长度及直径的关系。将收集到的数据按照一定规则进行数据清洗保证数据的可靠性,将清洗后的结果引入person相关性分析,建立关联程度分析模型,分析出不同指标之间的关系,根据相关性的结果不难看出不同指标之间均存在着较好的线性关系而同时受可以进行接下来的分析。因此在该问中,本文构建以导热率为目的因变量,其他相关指标作为自变量做多元线性回归模型进一步探究涤纶保暖能力与长度、直径及表面积的关系。
对于问题三,我们综合了前两个问题的研究成果,进一步比较了传统的棉花、羽绒与涤纶等保暖材料的性能,并为了模型的完整性和严谨性,在原有的数据中补充了CLO值这一衡量衣物保温性的一个单位,并构建了添加CLO值后的多元线性回归模型。利用CLO值和导热率进行加权作为数据构建了更加完整的模型,完成了这一问题并给出完整解释,至此完成了该建模第一阶段的所有问题。
问题重述:
冬季服装的主要功能是保暖,即阻止人体散发的热量与寒冷环境之间的热传导。在不同款式的冬季服装中,填充材料起着关键作用,而这些填充材料可以包括传统的棉花和羽绒,以及近年来各种各样的人造纤维。不同类型的填充材料具有不同的保暖性能。比如高品质的羽绒以其出色的保暖效果而闻名,因此在极寒地区,人们可以穿着相对轻便的羽绒服,依然享有良好的保暖效果。然而,羽绒作为填充材料也存在一些缺点,如成本较高、不耐湿、以及可能对动物造成伤害等。所以,人造保暖纤维在未来可能会成为市场的主流选择。
本文关注于人造保暖纤维的保暖性能,旨在建立合理的数学模型解决以下问题:
问题一:综合考虑某种填充的保暖纤维材料属性与实际穿着环境,建立全面的保暖能力评估指标体系。思路分析:针对问题一,首先从PubMed、GoogleScholar、知网及知乎等网站中搜索与保暖纤维相关的文献,以确定最常见的15个评估指标。这一步确保了我们构建的指标评价体系具有科学客观、全面准确的特性。随后,根据这些指标的评价体系开始收集所需的数据。针对收集到的数据,首先对其分布方式进行K-S检验和q-q图判定。结果显示,所有指标均呈现非正态分布,因此利用箱型图进行异常值检测,通过综合实际情况对异常值进行人为判定。接下来,使用处理后的数据构建了基于熵权法的理想解法,对不同种类的数据进行排序,并建立了评价模型。
问题二:探讨涤纶作为保暖纤维材料的保暖能力与纤维平均长度以及纤维横截面直径的关系。思路分析:针对问题二,采用与问题一相同的方法对收集的涤纶保暖纤维数据进行了数据清洗。清洗后,引入了Person相关性分析,建立了相关性模型,分析了不同指标之间的关系。根据相关性结果,发现各指标之间存在较好的线性关系。因此,构建了以导热率为自变量,其他指标为因变量的多元线性回归模型。
问题三:在第二问的基础上,基于所定义的指标及其微观结构特征,评估典型棉花和羽绒的保暖性能。思路分析:对于问题三,我们进行了不同保暖材料性能的比较。为了更合理地进行比较,于是收集了相关指标数据,并构建了优化模型。为了提高模型的完整性,因此补充了问题二数据样本的CLO值,并建立了CLO值的多元线性回归模型。最后利用CLO值与导热率的加权结果作为目标函数,并将材料的物理或化学属性设定的取值范围作为约束条件进行求解。
模型假设:
• 假设题目所给的数据真实可靠。
• 假设数据具有普遍性和适用性。
• 假设保暖衣实际使用的环境因素的细微差别忽略不计。
• 假设纤维间的热交换可以忽略,即每根纤维独立传导热量。
• 假设所有纤维的形状和大小都相同,且横截面为圆形。
• 假设纤维的排列是均匀的,没有大的空隙。
完整论文缩略图
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
部分程序代码:
import numpy as np
import pandas as pd
# 创建数据矩阵
data = np.array([
[129.1120758, 773.6479492, 825.1612549],
[168.480957, 481.8232422, -2.038263798],
[79.30264282, -85.80281067, -536.1644897],
[95.75248718, -689.5393677, 1165.208374],
[147.3497009, 1456.69043, -265.2684021],
[62.37760925, 1090.017578, -1163.998169],
[112.1847687, -1054.654053, -825.2636108],
[44.32613754, -377.8758545, 531.7950439],
[23.33691406, 198.0267639, 261.1568909]
])
# 转换为 DataFrame
df = pd.DataFrame(data, columns=["使用体验", "环境适应性", "物理特性"])
# 标准化处理,这里使用min-max标准化,同时考虑正负属性(物理特性为负属性)
df_normalized = (df - df.min()) / (df.max() - df.min())
df_normalized['物理特性'] = 1 - df_normalized['物理特性'] # 反转负属性的标准化
df_normalized
# 计算熵值
def calculate_entropy(df):
# 常数,防止对数为负无穷
epsilon = 1e-9
proportions = df / df.sum()
entropy = -np.sum(proportions * np.log(proportions + epsilon), axis=0) / np.log(len(df))
return entropy
# 计算权重
def calculate_weights(entropy):
# 权重是熵值的补数分布的归一化
weight = 1 - entropy
weight_normalized = weight / weight.sum()
return weight_normalized
# 计算
entropy = calculate_entropy(df_normalized)
weights = calculate_weights(entropy)
# 输出熵值和权重
entropy, weights
import matplotlib.pyplot as plt
import seaborn as sns
# 计算加权标准化值
df_weighted = df_normalized * weights
# 计算理想解和负理想解
ideal_solution = df_weighted.max()
nadir_solution = df_weighted.min()
plt.rcParams['font.sans-serif'] = ['SimHei'] # 使用SimHei字体
plt.rcParams['axes.unicode_minus'] = False # 正确显示负号
# 可视化
plt.figure(figsize=(16, 6))
plt.subplot(1, 2, 1)
sns.heatmap(df_normalized, annot=True, cmap='coolwarm', fmt=".2f", cbar_kws={'label': 'Normalized Scores'})
plt.title('Normalized Data')
plt.subplot(1, 2, 2)
weights.plot(kind='bar', color='teal')
plt.title('Weights of Criteria')
plt.ylabel('Weight')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
ideal_solution, nadir_solution