2024 電工杯高校數學建模競賽(B題)數學建模完整思路+完整代碼全解全析

你是否在尋找數學建模比賽的突破點?數學建模進階思路!

作為經驗豐富的數學建模團隊,我們將為你帶來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的日平衡膳食食譜的優化設計。

假設一名大學生在一天內需要攝入的能量為E,蛋白質攝入量為P,脂肪攝入量為F,碳水化合物攝入量為C,纖維素攝入量為D,維生素A攝入量為V_A,維生素C攝入量為V_C,鈣攝入量為Ca,鐵攝入量為Fe,鋅攝入量為Zn,銅攝入量為Cu,鎂攝入量為Mg,鈉攝入量為Na,鉀攝入量為K,磷攝入量為P,鈣磷比為Ca/P,脂肪酸攝入量為F_A,不飽和脂肪酸攝入量為UFA,飽和脂肪酸攝入量為SFA,反式脂肪酸攝入量為TFA。

假設每種食物提供的營養成分可以用一個向量來表示,向量元素為該食物所含的每種營養成分的含量。例如,一種食物A可能提供的營養成分向量為[10,5,30,20,0,8,20,10,15,5,2,10,20,3,1,0,0,0],表示每100克食物A含有10克蛋白質,5克脂肪,30克碳水化合物,20克纖維素,8毫克維生素A,20毫克維生素C,10毫克鈣,15毫克鐵,5毫克鋅,2毫克銅,10毫克鎂,20毫克鈉,3毫克鉀,1毫克磷,0克脂肪酸,0克不飽和脂肪酸,0克飽和脂肪酸,0克反式脂肪酸。

根據附件3中提供的食物信息,可以得到每種食物提供的營養成分向量。假設一日的三餐分別是早餐、午餐、晚餐,每頓餐的食物攝入量可以用一個向量來表示,向量元素為每種食物所攝入的克數。

假設一名大學生一日的食物攝入量分別為早餐向量x,午餐向量y,晚餐向量z,則總攝入量向量為x+y+z。

根據平衡膳食食譜的優化設計原則,可以通過優化目標函數來得到最科學合理的膳食食譜。假設目標函數為:

max P_A * F_A + P_UFA * F_UFA - P_TFA * F_TFA

其中,P_A、P_UFA、P_TFA分別為不同類型脂肪酸的評分系數,F_A、F_UFA、F_TFA分別為不同類型脂肪酸的攝入量。

根據膳食食譜營養評價過程中提供的膳食營養評價指標,可以得到各種營養素的參考攝入量。假設一日食物攝入量向量的每個元素和該營養素的參考攝入量向量的每個元素的差的絕對值之和作為目標函數的第二項,即:

min ||x-RI_x||_1 + ||y-RI_y||_1 + ||z-RI_z||_1

其中,RI_x、RI_y、RI_z分別為早餐、午餐、晚餐的食物攝入量向量與相應的營養素參考攝入量向量的差值。

綜上所述,可以得到如下優化模型:

max P_A * F_A + P_UFA * F_UFA - P_TFA * F_TFA + ||x-RI_x||_1 + ||y-RI_y||_1 + ||z-RI_z||_1

s.t. x+y+z=E

Px + Fx + Cx + Dx + V_Ax + V_Cx + Cax + Fex + Znx + Cux + Mgx + Nax + Kx + Px + Ca/P*x = P

Py + Fy + Cy + Dy + V_Ay + V_Cy + Cay + Fey + Zny + Cuy + Mgy + Nay + Ky + Py + Ca/P*y = P

Pz + Fz + Cz + Dz + V_Az + V_Cz + Caz + Fez + Znz + Cuz + Mgz + Naz + Kz + Pz + Ca/P*z = P

其中,x、y、z為早餐、午餐、晚餐的食物攝入量向量,P、F、C、D、V_A、V_C、Ca、Fe、Zn、Cu、Mg、Na、K、P、Ca/P分別為蛋白質、脂肪、碳水化合物、纖維素、維生素A、維生素C、鈣、鐵、鋅、銅、鎂、鈉、鉀、磷、鈣磷比的參考攝入量向量,E為一日所需能量。

通過求解該優化模型,可以得到最佳的早餐、午餐、晚餐食物攝入量向量,從而得到一日的平衡膳食食譜,并進行膳食營養評價。

問題2:基于附件3的日平衡膳食食譜的優化設計 1)以蛋白質氨基酸評分最大為目標建立優化模型,分別設計男生和女生的日食譜,并對該日食譜進行膳食營養評價;

第三個問題是基于附件3的周平衡膳食食譜的優化設計。

問題 3.基于附件 3 的周平衡膳食食譜的優化設計 在問題 2 的基礎上,分別以蛋白質氨基酸評分最大、用餐費用最經濟、兼顧蛋白質氨基酸評分及經濟性為目標,建立優化模型,設計男生和女生的周食譜(周一—周日),并進行評價及比較分析。

解題思路: 1. 首先,根據附件3中提供的一日三餐的食物信息統計表,計算出每種食物每份的價格和每份所含的營養成分。 2. 基于附件4中的平衡膳食基本準則和能量及各種營養素參考攝入量,以及附件1和附件2中記錄的男女大學生的一日食譜,計算出每種食物的攝入量,從而得到每日所攝入的能量及各種營養素的總量。 3. 建立數學模型,設定目標函數和約束條件。 4. 以蛋白質氨基酸評分最大為目標建立優化模型,設定目標函數為每日所攝入的氨基酸評分最大化,約束條件為每日所攝入的能量和營養素滿足附件4中的參考攝入量。 5. 以用餐費用最經濟為目標建立優化模型,設定目標函數為每日所消費的費用最小化,約束條件同上。 6. 兼顧蛋白質氨基酸評分及經濟性,建立優化模型,設定目標函數為每日所攝入的氨基酸評分最大化,同時每日所消費的費用最小化,約束條件同上。 7. 對優化模型進行求解,得到男女大學生每周一至周日的周食譜,同時計算出每周所攝入的能量及各種營養素的總量。 8. 對比分析三種不同目標函數下得到的周食譜,分析每種食譜的優點和缺點,給出合理建議。

問題 3.基于附件 3 的周平衡膳食食譜的優化設計 在問題 2 的基礎上,分別以蛋白質氨基酸評分最大、用餐費用最經濟、兼顧蛋白質氨基酸評分及經濟性為目標,建立優化模型,設計男生和女生的周食譜(周一—周日),并進行評價及比較分析。

解:假設一周有7天,每天各有3餐,對于男生和女生來說,總共需要設計14個食譜,分別記為P11、P12、…、P17、P21、P22、…、P27。

1)以蛋白質氨基酸評分最大為目標,建立優化模型。設男生一周食譜P11、P12、…、P17對應的蛋白質氨基酸評分分別為x11、x12、…、x17,女生一周食譜P21、P22、…、P27對應的蛋白質氨基酸評分分別為x21、x22、…、x27。則優化目標為:

更多內容具體可以看看我的主頁!
和 《小天數模》 團隊,同名公眾號?一起拿獎!里面包含本次競賽全部思路與分析!

包含本次比賽全部題目和單題思路與代碼,代碼和文章會不斷更新

關注小天數模,你們的支持是我更新的動力!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14114.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14114.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14114.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Aware接口作用

介紹 Aware(感知)接口是一個標記,里面沒有任何方法,實際方法定義都是子接口確定(相當于定義了一套規則,并建議子接口中應該只有一個無返回值的方法)。 我們知道spring已經定義好了很多對象,如…

2024 電工杯高校數學建模競賽(A題)| 儲能配置 |建模秘籍文章代碼思路大全

鐺鐺!小秘籍來咯! 小秘籍團隊獨辟蹊徑,運用負載均衡,多目標規劃等強大工具,構建了這一題的詳細解答哦! 為大家量身打造創新解決方案。小秘籍團隊,始終引領著建模問題求解的風潮。 抓緊小秘籍&am…

C 語言設計模式(結構型)

文章目錄 代理模式場景示例 門面模式場景示例 橋接模式場景示例 適配器模式場景示例 外觀模式場景示例 享元模式場景示例 裝飾器模式場景示例 組合模式場景示例 代理模式 C語言中,代理模式通常用于實現對象的間接訪問。代理模式是一種結構型設計模式,它…

微信小程序uniapp+django洗腳按摩足浴城消費系統springboot

原生wxml開發對Node、預編譯器、webpack支持不好,影響開發效率和工程構建。所以都會用uniapp框架開發 前后端分離,后端給接口和API文檔,注重前端,接近原生系統 使用Navicat或者其它工具,在mysql中創建對應名稱的數據庫&#xff0…

Java中字符串拼接方式

在Java編程中,字符串是非常基礎且重要的數據類型。無論是處理用戶輸入、生成日志信息還是構建復雜的文本輸出,字符串拼接都是一個不可避免的操作。本文將詳細探討幾種常見的字符串拼接方式,并分析它們的優缺點,以幫助開發者選擇最…

GO實名認證接口開發示例、接口集成、身份認證

翔云身份證實名認證接口,通過核驗身份證二要素、三要素、三要素現場人像的方式,實時聯網核驗身份信息的真偽。想象一下,無需耗費大量的人力物力,只需簡單幾步,即可將翔云身份證實名認證接口集成到您的應用中。 無論是…

集成框架 -- 項目啟動時創建mysql數據庫結構

使用 Spring JDBC DataSource 初始化 前言正文配置Spring JDBC的DataSource初始化application.propertiesapplication.yml 使用 data.sql 進行數據庫初始化application.propertiesapplication.ymlapplication.propertiesapplication.yml 前言 項目中要使用一些數據庫&#xff…

xjoi題庫一級二段題解(c語言版)

開根號 時間:0.2 空間:32M 題目描述: 輸入一個整數, 求它的平方根,輸出答案向下取整. 比如5√2, 16??√4 輸入格式: 輸入一個整數 輸出格式: 輸出一個整數 樣例輸入1: 5 樣例輸出1: 2 樣例輸…

cn.hutool.poi.excel 實現excel導出效果 首行高度,行樣式,顏色,合并單元格,例子樣式

需求 接了需求,下載excel模版,本來看著還是簡單的,然后實現起來一把淚,首先是使用poi,我查了好久,才實現,然后是我用easyexcel又實現了一遍,用了一個周多才實現。 這是需求&#x…

Python使用virtualenv創建虛擬環境

目錄 第一步:安裝virtualenv 第二步:選擇一個文件夾用來放所創建的虛擬環境 第三步:創建虛擬環境 第四步:激活虛擬環境 第五步:退出虛擬環境 第六步:測試安裝django 前提:你得有個python環…

【STL專題】深入探索C++之std::string:不止于字符串【萬字詳解】

歡迎來到CILMY23的博客 🏆本篇主題為:深入探索C之std::string:不止于字符串 🏆個人主頁:CILMY23-CSDN博客 🏆系列專欄:Python | C | C語言 | 數據結構與算法 | 貪心算法 | Linux &#x1f3…

IOS手機自動化一些工具的簡單有哪些?

iOS手機自動化測試或操作可以通過多種工具來實現,這些工具提供了豐富的功能,可以幫助開發者和測試人員提高效率。以下是一些簡單的iOS自動化工具: 1. Xcode: 蘋果官方提供的開發工具,包含了iOS應用開發、調試和自動化測試的功能。…

aardio - godking.vlistEx虛表點擊表頭全選、排序

新版虛表內置了名稱為 DefaultCheckedImg 和 DefaultUnCheckedImg 的兩張圖片,分別為 【選擇框勾選狀態默認圖片】 和 【選擇框未勾選狀態默認圖片】 以下代碼調用了這兩張圖片,所以請將虛表庫升級為最新版。 如果使用舊版庫,可以自行添加這…

【Python自動化測試】:Unittest單元測試與HTMLTestRunner自動生成測試用例的好幫手

讀者大大們好呀!!!?????? 🔥 歡迎來到我的博客 👀期待大大的關注哦?????? 🚀歡迎收看我的主頁文章??尋至善的主頁 文章目錄 🔥前言🚀unittest編寫測試用例🚀unittest測…

六種常用設計模式

單例設計模式 單例模式指在整個系統生命周期里,保證一個類只能產生一個實例,確保該類的唯一性。 單例模式分類 單例模式可以分為懶漢式和餓漢式,兩者之間的區別在于創建實例的時間不同: 懶漢式:指系統運行中&#…

SpringBootWeb 篇-深入了解 Mybatis 刪除、新增、更新、查詢的基礎操作與 SQL 預編譯解決 SQL 注入問題

🔥博客主頁: 【小扳_-CSDN博客】 ?感謝大家點贊👍收藏?評論? 文章目錄 1.0 Mybatis 的基礎操作 2.0 基礎操作 - 環境準備 3.0 基礎操作 - 刪除操作 3.1 SQL 預編譯 3.2 SQL 預編譯的優勢 3.3 參數占位符 4.0 基礎操作 - 新增 4.1 主鍵返回…

Python圖像處理:從基礎到高級的全方位指南

目錄 第一部分:Python圖像處理基礎 1.1 圖像處理概念 1.2 Python圖像處理常用庫 1.3 實戰案例:圖像顯示與保存 1.4 注意事項 第二部分:Python圖像處理高級技巧 2.1 圖像變換 2.2 圖像增強 2.3 圖像復原 第三部分:Python…

esp32s3中ap與sta模式的wps配對問題

無線路由器中的WPS是Wi-Fi Protected Setup的簡稱,中文翻譯為Wi-Fi安全防護設置,它是由Wi-Fi安全聯盟推出的一種無線加密認證方式。主要是為了簡化無線局域網的安裝及安全性能配置工作,通過這種設置,讓無線連接更加方便和安全。省…

20232802 黃千里 2023-2024-2 《網絡攻防實踐》實踐十一報告

20232802 2023-2024-2 《網絡攻防實踐》實踐十一報告 1.實踐過程 1.1web瀏覽器滲透攻擊 攻擊機:kali172.20.10.10靶機:win2k172.20.10.3 首先在kali中啟動msfconsole 輸入命令search MS06-014,搜索滲透攻擊模塊 輸入use exploit/window…

終于讓我找到了,你也可以學會的人工智能-機器學習教程

給大家分享一套非常棒的python機器學習課程——《AI小天才:讓小學生輕松掌握機器學習》,2024年5月完結新課,提供配套的代碼筆記軟件包下載!學完本課程,可以輕松掌握機器學習的全面應用,復雜特征工程&#x…