2024 电工杯(B题)数学建模完整思路+完整代码全解全析

news2024/11/17 5:56:07

你是否在寻找数学建模比赛的突破点?数学建模进阶思路!

作为经验丰富的数学建模团队,我们将为你带来2024电工杯数学建模竞赛(B题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解析,帮助你全面理解并掌握如何解决类似问题。

完整内容在文章末尾阅读全文获取!

这次《B题:大学生平衡膳食食谱的优化设计及评价》更贴近大家伙的生活,完成起来较A题更容易,相信会有不少同学选择。

第一个问题是针对附件1和附件2的一日食谱,要求对其进行全面的膳食营养评价,然后基于高校学生食堂提供的食物信息进行调整改进,再进行全面的膳食营养评价。

根据附件4中的膳食食谱营养评价过程,可以将对附件1和附件2的膳食营养评价分为以下几个步骤:

步骤一:计算能量摄入量

根据附件4中的能量参考摄入量,计算附件1和附件2中所摄入的能量是否达标。如果未达标,可以考虑增加或减少高能量食物的摄入量,以达到推荐的能量摄入量。

步骤二:计算营养素摄入量

根据附件4中的各种营养素参考摄入量,计算附件1和附件2中所摄入的营养素是否达标。如果某些营养素摄入不足,可以通过增加含有这些营养素的食物来满足需求。

步骤三:评估膳食结构

通过比较附件1和附件2中不同类别食物的摄入量,判断膳食结构是否合理。如果某些类别的食物摄入量过高,可以考虑减少其摄入量,增加其他类别食物的摄入量,从而达到平衡膳食的目的。

步骤四:重点关注营养素缺乏或过量

根据附件4中的营养素参考摄入量,特别关注营养素摄入是否过量或不足。如果发现某些营养素摄入过量,可以考虑减少其摄入量;如果发现某些营养素摄入不足,可以通过增加其摄入量来补充。

步骤五:参考平衡膳食食谱优化设计原则,对食谱进行调整改进

根据附件4中的平衡膳食食谱优化设计原则,对食谱进行调整改进。例如,增加摄入蔬菜和水果的量,减少摄入高脂肪和高糖食物的量,以及增加摄入高蛋白质食物的量等。

通过以上步骤,可以对附件1和附件2的膳食营养进行全面评价,并做出调整改进,从而达到符合平衡膳食要求的目的。

1)膳食营养评价: 通过计算附件1和附件2中每种食物的能量、蛋白质、脂肪、碳水化合物、维生素和矿物质含量,然后与附件4中的参考摄入量进行比较,得出以下结论:

a. 能量:附件1中男生的能量摄入量为2268千卡,女生的能量摄入量为1870千卡,都高于参考摄入量。这可能会导致肥胖问题。 b. 蛋白质:附件1中男生的蛋白质摄入量为81.6克,女生的蛋白质摄入量为64.6克,都低于参考摄入量。这可能会导致营养不良问题。 c. 脂肪:附件1中男生的脂肪摄入量为74.7克,女生的脂肪摄入量为54.5克,都高于参考摄入量。这可能会导致肥胖和心血管疾病问题。 d. 碳水化合物:附件1中男生的碳水化合物摄入量为292.3克,女生的碳水化合物摄入量为248.9克,都高于参考摄入量。这可能会导致肥胖和糖尿病问题。 e. 维生素和矿物质:附件1和附件2中都存在维生素和矿物质的缺乏情况,如维生素A和钙。

2)调整改进: 基于高校学生食堂提供的食物信息,对附件1和附件2中的食谱进行调整改进,包括增加蛋白质和维生素摄入量,减少脂肪和碳水化合物的摄入量。

a. 增加蛋白质:选择高质量蛋白质的食物,如鸡胸肉、鸡蛋、瘦牛肉等,增加蛋白质的摄入量。 b. 增加维生素:选择富含维生素的食物,如水果、蔬菜、全谷类食物等,增加维生素的摄入量。 c. 减少脂肪:选择低脂肪的食物,如鱼类、豆类、脱脂奶等,减少脂肪的摄入量。 d. 减少碳水化合物:选择低GI值的食物,如燕麦、红薯、全麦面包等,减少碳水化合物的摄入量。

3)新的膳食营养评价: 通过计算调整后的附件1和附件2中每种食物的能量、蛋白质、脂肪、碳水化合物、维生素和矿物质含量,然后与附件4中的参考摄入量进行比较,得出以下结论:

a. 能量:调整后的附件1中男生的能量摄入量为2191千卡,女生的能量摄入量为1802千卡,都接近参考摄入量。 b. 蛋白质:调整后的附件1中男生的蛋白质摄入量为112.3克,女生的蛋白质摄入量为86.1克,都接近参考摄入量。 c. 脂肪:调整后的附件1中男生的脂肪摄入量为47.8克,女生的脂肪摄入量为36.8克,都接近参考摄入量。 d. 碳水化合物:调整后的附件1中男生的碳水化合物摄入量为238.3克,女生的碳水化合物摄入量为184.1克,都接近参考摄入量。 e. 维生素和矿物质:调整后的附件1和附件2中都有维生素和矿物质的缺乏情况得到改善,但仍需根据个人情况进行补充。

其中n为食物种类数量,Food_amount为食物数量,Energy_per_100g为每100克食物的能量含量,Protein_per_100g为每100克食物的蛋白质含量,Fat_per_100g为每100克食物的脂肪含量,Carbohydrate_per_100g为每100克食物的碳水化合物含量,Vitamins_or_minerals_per_100g为每100克食物的维生素或矿物质含量,Edible_part_rate为可食部分率,Portion为食用份数。

import pandas as pd 
import numpy as np 

# 读取附件1和附件2的数据 
male = pd.read_excel("附件1.xlsx") 
female = pd.read_excel("附件2.xlsx") 

# 将男女两位学生的数据合并 
students = pd.concat([male, female], ignore_index=True) 

# 计算每种食物的摄入量 
food_intake = students.groupby('食物名称').agg({'可食部分量':np.sum}) 

# 计算每种食物的能量摄入 
energy_intake = students.groupby('食物名称').agg({'能量':np.sum}) 

# 计算每种食物的营养素摄入 
nutrient_intake = students.groupby('食物名称').agg({'蛋白质':np.sum, '脂肪':np.sum, '膳食纤维':np.sum, '维生素A':np.sum, '维生素C':np.sum, '钙':np.sum, '铁':np.sum}) 

# 打印附件1和附件2的膳食营养评价 
print("附件1的膳食营养评价:") 
print("能量摄入:", energy_intake.sum()['能量'], "千卡") 
print("蛋白质摄入:", nutrient_intake.sum()['蛋白质'], "克") 
print("脂肪摄入:", nutrient_intake.sum()['脂肪'], "克") 
print("膳食纤维摄入:", nutrient_intake.sum()['膳食纤维'], "克") 
print("维生素A摄入:", nutrient_intake.sum()['维生素A'], "微克") 
print("维生素C摄入:", nutrient_intake.sum()['维生素C'], "毫克") 
print("钙摄入:", nutrient_intake.sum()['钙'], "毫克") 
print("铁摄入:", nutrient_intake.sum()['铁'], "毫克") 

# 对附件3中的食物信息进行筛选,保留可购买的食物 
available_food = pd.DataFrame() 
available_food['食物名称'] = food_intake.index 
available_food = available_food.merge(food_intake, on='食物名称', how='left') 
available_food = available_food.merge(energy_intake, on='食物名称', how='left') 
available_food = available_food.merge(nutrient_intake, on='食物名称', how='left') 
available_food = available_food.merge(pd.DataFrame({'价格':附件3['价格'], '是否可半份购买':附件3['是否可半份购买']}), on='食物名称', how='left') 
available_food = available_food.dropna() 

# 计算附件1和附件2中可购买食物的摄入量 
food_intake_available = available_food.groupby('食物名称').agg({'可食部分量':np.sum}) 

# 计算附件1和附件2中可购买食物的能量摄入 
energy_intake_available = available_food.groupby('食物名称').agg({'能量':np.sum}) 

# 计算附件1和附件2中可购买食物的营养素摄入 
nutrient_intake_available = available_food.groupby('食物名称').agg({'蛋白质':np.sum, '脂肪':np.sum, '膳食纤维':np.sum, '维生素A':np.sum, '维生素C':np.sum, '钙':np.sum, '铁':np.sum}) 

# 打印附件1和附件2经过调整后的膳食营养评价 
print("附件1调整后的膳食营养评价:") 
print("能量摄入:", energy_intake_available.sum()['能量'], "千卡") 
print("蛋白质摄入:", nutrient_intake_available.sum()['蛋白质'], "克") 
print("脂肪摄入:", nutrient_intake_available.sum()['脂肪'], "克") 
print("膳食纤维摄入:", nutrient_intake_available.sum()['膳食纤维'], "克") 
print("维生素A摄入:", nutrient_intake_available.sum()['维生素A'], "微克") 
print("维生素C摄入:", nutrient_intake_available.sum()['维生素C'], "毫克") 
print("钙摄入:", nutrient_intake_available.sum()['钙'], "毫克") 
print("铁摄入:", nutrient_intake_available.sum()['铁'], "毫克") 

# 计算附件1和附件2中可购买食物的总价 
total_cost = available_food['价格'].sum() 

# 打印附件1和附件2经过调整后的总价 
print("附件1和附件2调整后的总价:", total_cost, "元")

第二个问题是:基于附件3的日平衡膳食食谱的优化设计。

更多内容具体可以看看我的主页!
和 《小天数模》 团队,同名公众号 一起拿奖!里面包含本次竞赛全部思路与分析!

包含本次比赛全部题目和单题思路与代码,代码和文章会不断更新

关注小天数模,你们的支持是我更新的动力!

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

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

相关文章

短剧APP开发,短剧行业发展下的财富密码

今年以来,短剧市场展现出了繁荣发展的态势,成为了一个风口赛道。 短剧具有不拖沓、时长短、剧情紧凑等优势,顺应了当代人的生活,是当代人的“电子榨菜”。 短剧的快速发展同时也带动了新业态新模式的发展,短剧APP就是…

【Avalonia入门篇1】Avalonia的安装

目录 一、环境安装 1.1 安装.NET 1.2 安装Avalonia模板 1.3 安装VS编译器 1.4 安装Avalonia扩展 二、创建第一个Avalonia项目 一、环境安装 1.1 安装.NET 按照官网提示下载并安装.NET。如下图所示: 安装完成后,打开power shell,输入下…

Vue的学习 —— <Echarts组件库技术应用>

目录 前言 正文 一、ECharts技术简介 二、Vue3集成Echarts 1、安装Echarts 2、引入方式 三、Echarts基础篇 1、图表容器及大小 2、样式 2.1 颜色主题 3、坐标轴 5、数据集 5.1 在series中设置数据集 5.2 在dataset中设置数据集 四、常用图表实操 1、柱状图 2、…

特殊变量笔记2

案例需求 在demo4.sh中循环打印输出所有输入参数, 体验$*与$的区别 实现步骤 编辑demo4.sh脚本文件 # 增加命令: 实现直接输出所有输入后参数 # 增加命令: 使用循环打印输出所有输入参数演示 编辑demo4.sh文件 直接输出所有输入参数, 与循环方式输出所有输入参数(使用双引…

轻型web服务器搭建 阿里云

1.购买云服务器 2.远程连接云服务器 重置实例密码 重置后要重启服务器 登录云服务器 密码就是刚刚重置的 3.安装宝塔面板 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 (bt.cn) 回车则开始安装,过程中会多次让输入y表示确认下一步,过程大概2…

3D 生成重建013-ProlificDreamer将SDS拓展到VSD算法进行高质量的3D生成

3D 生成重建013-ProlificDreamer将SDS拓展到VSD算法进行高质量的3D生成 文章目录 0论文工作1论文方法2效果 0论文工作 **分数蒸馏采样(SDS)**通过提取预先训练好的大规模文本到图像扩散模型,在文本到3d生成方面显示出了巨大的前景&#xff0…

【机器学习】期望最大化(EM)算法

文章目录 一、极大似然估计1.1 基本原理1.2 举例说明 二、Jensen不等式三、EM算法3.1 隐变量 与 观测变量3.2 为什么要用EM3.3 引入Jensen不等式3.4 EM算法步骤3.5 EM算法总结 参考资料 EM是一种解决 存在隐含变量优化问题 的有效方法。EM的意思是“期望最大化(Exp…

初识Java--开启我的Java学习之旅

目录 一、JAVA语言概述二、JAVA语言的重要性2.1语言使用广泛程度2.2工作领域2.3在校招岗位的需求2.4 java语言发展简史2.5Java语言特性 三、初识java的main方法四、运行java程序五、【面试题】JDK、JRE、JVM之间的关系? 一、JAVA语言概述 Java是一种优秀的程序设计…

在线人才测评在企业招聘和大学生求职中的应用场景

每年的春招秋招,都是毕业生们忙着找工作的季节,相比社招来说,春招秋招是每个毕业生务必重视的机会,大厂名企毕竟名额有限,如果找到自己心仪的职业岗位,作为毕业生就必须提前准备,深入了解招聘的…

09.责任链模式

09. 责任链模式 什么是责任链设计模式? 责任链设计模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许将请求沿着处理者对象组成的链进行传递,直到有一个处理者对象能够处理该请求为止。这种模式的目的…

docker ps显示的参数具体是什么意思

1,运行一个容器 docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"这段命令的作用是使用 docker run 命令运行一个基于 ubuntu:15.10 镜像的 Docker 容器,并在容器中执行一个无限循环的命令。 具体解…

PID控制中的积分到底是什么,为什么它可以将矩形线转换为曲线?simulink搭建PID控制,积分模块1/s

PID控制中的积分到底是什么,为什么它可以将矩形线转换为曲线, 这个问题呢其实道理很简单,用到的是初中的知识 我们做几个测试案例 如下面matlab搭建了积分1/s 那显示如下(红色曲线相当于加速度、蓝色曲线相当于速度)&a…

从0到1!得物如何打造通用大模型训练和推理平台

1.背景 近期,GPT大模型的发布给自然语言处理(NLP)领域带来了令人震撼的体验。随着这一事件的发生,一系列开源大模型也迅速崛起。依据一些评估机构的评估,这些开源模型大模型的表现也相当不错。一些大模型的评测情况可…

【MSSQL】因为数据库正在使用,所以无法获得对数据库的独占访问权” 解决方案汇总

文章目录 前言一、事故现场方案一:设置数据库再单用户模式下工作:方案二:利用SQL语句,断开所有用户连接,并回滚所有事务,具体SQL语句如下:方案三:利用SQL语句,杀死正在使用该数据库的所有进程方案四:修改数据库的登录密码或重启数据库服务(不太建议)二、结尾日志备份…

MDS800-16-ASEMI整流模块800A 1600V

编辑:ll MDS800-16-ASEMI整流模块800A 1600V 型号:MDS800-16 品牌:ASEMI 封装:MDS 批号:2024 分类:整流模块 特性:整流模块、整流桥 平均正向整流电流(Id)&#…

C语言实现Hash Map(2):Map代码实现详解

在上一节C语言实现Hash Map(1):Map基础知识入门中,我们介绍了Map的基础概念和在C中的用法。但我写这两篇文章的目的是,能够在C语言中实现这样的一个数据结构,毕竟有时我们的项目中可能会用到Map,但是C语言库中并没有提…

香蕉成熟度检测YOLOV8NANO

香蕉成熟度检测YOLOV8NANO,采用YOLOV8NANO训练,得到PT模型,然后转换成ONNX模型,让OEPNCV调用,从而摆脱PYTORCH依赖,支持C。python,安卓开发。能检测六种香蕉类型freshripe freshunripe overripe…

下载CentOS系统或者下载Ubuntu系统去哪下?

因为Centos官网是挂在国外的服务器上,下载镜像时相比于国内的下载速度会慢很多,分享国内的镜像站去阿里巴巴下载Centos镜像。 首先分享两种下载方式,如果只想下载Centos那么就访问方式一的下载地址即可,如果还想下载其他的系统&a…

Xfce4桌面背景和桌面图标消失问题解决@FreeBSD

问题:Xfce4桌面背景和桌面图标消失 以前碰到过好几次桌面背景和桌面图标消失,整个桌面除了上面一条和下面中间的工具条,其它地方全是黑色的问题,但是这次重启之后也没有修复,整个桌面乌黑一片,啥都没有&am…

[书生·浦语大模型实战营]——第二节:轻松玩转书生·浦语大模型趣味 Demo

1. 部署InternLM2-Chat-1.8B 模型进行智能对话 1.1配置环境 创建开发机 Intern Studio 官网网址:https://studio.intern-ai.org.cn/ 进入官网后,选择创建开发机,填写 开发机名称 后,点击 选择镜像 使用 Cuda11.7-conda 镜像&am…