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

数学建模初等模型应用

一、目的

掌握初等模型的建模方法,对简单的初等模型能借助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、在选择插值方法时,初步使用线性插值,发现拟合曲线不够光滑,存在明显的跳变。
解决过程:更改为样条插值方法,得到更平滑的拟合结果。

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

相关文章:

  • 影刀RPA网页自动化总结
  • TCP 三次握手建立连接详解
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-B. 错误代码与解决方案
  • AWS技术助力企业满足GDPR合规要求
  • MATLAB 中常用的微分函数介绍
  • 武汉科技大学人工智能与演化计算实验室许志伟课题组参加2025中国膜计算论坛
  • 网络运维过程中的常用命令
  • 安装npm:npm未随Node.js一起安装
  • 深度学习基础知识
  • 5月13日日记
  • 【行为型之策略模式】游戏开发实战——Unity灵活算法架构的核心实现策略
  • python三方库sqlalchemy
  • 【IDEA】注释配置
  • 【SSL部署与优化​】​​如何为网站启用HTTPS:从Let‘s Encrypt免费证书到Nginx配置​​
  • 服务器数据恢复—XFS文件系统分区消失的数据恢复案例
  • 网络互联技术深度解析:理论、实践与进阶指南
  • PYTHON训练营DAY25
  • vs_code 调试python文件
  • URP相机如何将场景渲染定帧模糊绘制
  • 最优化方法Python计算:有约束优化应用——近似线性可分问题支持向量机
  • 创同期历史新高!1至4月全国铁路发送旅客14.6亿人次
  • 南方降水频繁暴雨连连,北方高温再起或现40°C酷热天气
  • 从能源装备向应急装备蓝海拓展,川润股份发布智能综合防灾应急仓
  • 媒体:“西北大学副校长范代娣成陕西首富”系乌龙,但她的人生如同开挂
  • 山东鄄城发生一起交通事故,造成4人死亡、2人受伤
  • 欧阳娜娜担任江西吉安文化旅游大使