数学建模初等模型应用

一、目的

掌握初等模型的建模方法,对简单的初等模型能借助Matlab工具软件进行辅助建模、求解和检验。

二、实验内容与设计思想(设计思路、主要代码分析)

1、预测鱼的质量

(1)设计思路:使用线性回归模型预测鱼的质量,基于其身长和胸围作为输入特征。通过最小二乘法拟合模型,推导出一个线性方程,用于对未知样本的质量进行预测。

(2)代码实现数据准备:将鱼的身长、胸围和质量数据这些数据以向量的形式存储,以便后续的计算。

设计矩阵构建:构建设计矩阵,包含输入特征(身长和胸围)及一个常数项,用于线性回归分析。

N = numel(length); X = ones(N, 1), length, girth;

这里,N表示样本数量,通过numel函数获取。X是设计矩阵,它的第一列为常数1(表示截距项),第二列为身长,第三列为胸围。这种构建方式是线性回归中常见的形式,使得模型可以通过线性组合来表示。

线性回归模型拟合:利用最小二乘法公式b = (X' * X)(X' * weight);进行参数估计,以得到最佳的线性回归系数。这些系数能够帮助我们构建预测模型。

模型预测:使用拟合得到的模型对新的身长和胸围数据进行质量预测。

2、录像机

(1)设计思路:

数据收集与处理:收集录像机在不同时间点的计数器读数,形成一组时间与读数的数据对。这些数据将用作分析录像带的使用情况。

插值法:由于原始数据点有限,为了获得更平滑的曲线,使用插值法(在这里使用的是样条插值'spline'),可以在给定时间点估算出相应的计数器读数。

时间计算:基于当前计数器读数计算已经用掉的时间,然后与录像带的总时间进行对比,得到剩余时间。利用插值的结果进一步估算在剩余时间内计数器的读数。

最后,通过比较剩余读数和当前读数,判断剩余时间是否足够录制一小时的节目。

(2)原始数据表示:使用两个数组t和n分别表示时间(分钟)和对应的计数器读数。

插值计算:使用linspace生成细分时间点tt,并通过spline插值方法获取对应的计数器读数nn。

绘图:使用MATLAB的绘图功能,将原始数据点和插值结果绘制在同一图形中,以便直观展示读数变化。

剩余时间计算:通过当前计数器读数计算已经用掉的时间,并求出录像带的剩余时间。

通过插值法获取在剩余时间内的读数,并与当前读数进行比较,给出是否足够录制一小时节目的结论。

三、实验使用环境(本次实验所使用的平台和相关软件)

Matlab

四、实验步骤和调试过程

1、预测鱼的质量

N = numel(length);:计算数据点的数量,这里为8。

X = ones(N, 1), length, girth:构造设计矩阵 X。在这个矩阵中,第一列全为1(用于线性回归中的截距项),第二列是鱼的身长,第三列是鱼的胸围。最终的矩阵 X 的维度为 8x3,每一行代表一个样本,每一列代表一个变量。

b = (X' * X)(X' * weight);:这是最小二乘法的标准计算方式。首先计算 X 的转置 X',然后计算 X' * X 和 X' * weight。接着使用' \' 进行矩阵左除,从而解得参数 b。b 是一个包含线性回归系数的向量,具体包括截距和斜率。

a0:截距项,即当身长和胸围为0时的预测质量。

a1:身长的回归系数,表示身长每增加一单位cm,预测质量的增加量g。

a2:胸围的回归系数,表示胸围每增加一单位cm,预测质量的增加量g。

y = a0+a1mlength+a2mgirth;根据建立的回归模型,用 mlength 和 mgirth 计算预测的质量 y。

更改几个身长和胸围的数据,不难看出与表格质量数据近似。

2、录像机

tt:使用 linspace 创建了一个从0到184分钟的等间距的1000个点的数组,方便绘图和插值。

nn:使用 interp1 进行样条插值('spline'),生成在 tt 这些时间点对应的计数器读数。这一步使得拟合曲线更加平滑。

plot(tt, nn, 'r-', 'DisplayName', '拟合曲线'):用红色线绘制拟合的插值曲线。

current_reading = 4450:假设当前计数器的读数为4450。

elapsed_time = 184 * (current_reading / 6061):计算已经用掉的时间。根据比例关系,将当前读数与最大读数6061进行比较,得出已用掉的时间。

remaining_time = 180 - elapsed_time;:计算录像带的剩余时间。

if remaining_time < 0:检查剩余时间是否小于0,如果是,输出"录像带已用完!"。

remaining_reading = interp1(t, n, elapsed_time + remaining_time, 'linear');:如果还有剩余时间,使用线性插值计算在已用时间加剩余时间的情况下,计数器的读数。

if (remaining_reading - current_reading) >= 1000:检查剩余的读数是否能支持录制1小时的节目(即至少增加1000的计数器读数),如果条件成立,输出"剩余时间足够录制1小时节目。否则,输出"剩余时间不足以录制1小时节目。"。

结合图像和计算结果可得出结论。

五、小结

实验中遇到的问题及解决过程:

1、在进行线性回归时,发现部分身长和胸围值超出了原数据范围,导致预测结果不合理。

解决过程:添加数据有效性检查,确保输入值在合理范围内,并使用数据过滤技术剔除异常值。

2、在选择插值方法时,初步使用线性插值,发现拟合曲线不够光滑,存在明显的跳变。

解决过程:更改为样条插值方法,得到更平滑的拟合结果。

实验体会和收获:

通过本次实验,我认识到数据预处理在分析中的重要性,尤其是格式和范围的有效性直接影响模型的预测结果。同时,实验让我深刻体会到理论知识与实际操作的结合,实际操作中遇到的各种问题促使我不断调整和完善分析方法。此外,我在问题解决过程中锻炼了逻辑思维能力,学会了如何系统地分析问题并提出解决方案。这些经验为我今后的数据分析和模型建立奠定了良好的基础。

相关推荐
AI Dog2 小时前
MathHub:数学建模学习社区,内置数学建模智能体Modulus
学习·数学建模·智能体·modulus·数学建模智能体
统计学小王子5 小时前
分类模型评价指标——R语言(数学建模常用)
数学建模·分类·r语言
数模竞赛Paid answer14 小时前
2026年华东杯数学建模B题医药物流安排问题解题全过程文档及程序
算法·数学建模·数据分析·华东杯
数模竞赛Paid answer1 天前
2021年深圳杯数学建模C题配电网可靠性和故障软自愈研究解题全过程论文及程序
算法·数学建模·数据分析·深圳杯
数模竞赛Paid answer2 天前
2026年华数杯数学建模A题微构体中填充导电介质的仿真优化解题全过程及程序
数学建模·数据分析·华数杯
数模竞赛Paid answer2 天前
2021年深圳杯数学建模B题背向瑞利散射光纤激光传感器设计解题全过程论文及程序
数学建模·数据分析·深圳杯
数模竞赛Paid answer2 天前
2026年五一杯数学建模B题多工序协同作业问题求解全过程文档及程序
数学建模·数据分析·五一杯
数模竞赛Paid answer3 天前
2026年五一杯数学建模A题煤矿巷道支护问题求解全过程文档及程序
数学建模·数据分析·五一杯
数模竞赛Paid answer3 天前
2026年五一杯数学建模C题边坡预警问题求解全过程文档及程序
算法·数学建模·五一杯
数模竞赛Paid answer3 天前
2021年深圳杯数学建模A题火星探测器着陆控制方案解题全过程论文及程序
算法·数学建模·深圳杯