2024 电工杯高校数学建模竞赛(B题)| 平衡膳食食谱 |建模秘籍文章代码思路大全

news2024/11/18 13:45:52

铛铛!小秘籍来咯!
小秘籍团队独辟蹊径,运用负载均衡,多目标规划等强大工具,构建了这一题的详细解答哦! 为大家量身打造创新解决方案。小秘籍团队,始终引领着建模问题求解的风潮。
抓紧小秘籍,我们出发吧~
让我们看看电工杯的A题!
完整内容可以在文章末尾领取!
在这里插入图片描述

该段文字的第一个问题是对两份食谱做出全面的膳食营养评价。

设男生每日摄入的能量为 x 1 x_1 x1,女生每日摄入的能量为 x 2 x_2 x2,则根据题目中给出的膳食营养评价要求,可以列出如下的约束条件:

  1. 能量摄入量与目标相差不超过10%,即 ∣ x 1 − 2700 ∣ ≤ 270 |x_1-2700| \le 270 x12700∣270 ∣ x 2 − 2200 ∣ ≤ 220 |x_2-2200| \le 220 x22200∣220

  2. 蛋白质摄入量占总能量的10%-15%,即 540 ≤ 0.1 x 1 ≤ 0.15 x 1 ≤ 810 540 \le 0.1x_1 \le 0.15x_1 \le 810 5400.1x10.15x1810 440 ≤ 0.1 x 2 ≤ 0.15 x 2 ≤ 660 440 \le 0.1x_2 \le 0.15x_2 \le 660 4400.1x20.15x2660

  3. 脂肪摄入量占总能量的20%-30%,即 540 ≤ 0.2 x 1 ≤ 0.3 x 1 ≤ 810 540 \le 0.2x_1 \le 0.3x_1 \le 810 5400.2x10.3x1810 440 ≤ 0.2 x 2 ≤ 0.3 x 2 ≤ 660 440 \le 0.2x_2 \le 0.3x_2 \le 660 4400.2x20.3x2660

  4. 碳水化合物摄入量占总能量的50%-65%,即 1350 ≤ 0.5 x 1 ≤ 0.65 x 1 ≤ 1755 1350 \le 0.5x_1 \le 0.65x_1 \le 1755 13500.5x10.65x11755 1100 ≤ 0.5 x 2 ≤ 0.65 x 2 ≤ 1430 1100 \le 0.5x_2 \le 0.65x_2 \le 1430 11000.5x20.65x21430

  5. 非产能主要营养素的摄入量尽可能接近参考摄入量,即 C A i ≈ R A i CA_i \approx RA_i CAiRAi i = 1 , 2 , . . . , 7 i=1,2,...,7 i=1,2,...,7,其中 C A i CA_i CAi表示实际摄入量, R A i RA_i RAi表示参考摄入量,分别对应钙、铁、锌、维生素A、维生素B1、维生素B2、维生素C。

  6. 餐次比尽可能满足早餐25%-35%,中餐、晚餐各30%-40%,即 0.25 x 1 ≤ 675 0.25x_1 \le 675 0.25x1675 0.3 x 1 ≤ 810 0.3x_1 \le 810 0.3x1810 0.4 x 1 ≤ 1080 0.4x_1 \le 1080 0.4x11080 0.3 x 2 ≤ 660 0.3x_2 \le 660 0.3x2660 0.4 x 2 ≤ 880 0.4x_2 \le 880 0.4x2880 0.4 x 2 ≤ 880 0.4x_2 \le 880 0.4x2880

综上所述,可以得到如下的数学模型:

min ⁡ ( ∣ x 1 − 2700 ∣ + ∣ x 2 − 2200 ∣ ) s . t . 540 ≤ 0.1 x 1 ≤ 0.15 x 1 ≤ 810 1350 ≤ 0.5 x 1 ≤ 0.65 x 1 ≤ 1755 540 ≤ 0.2 x 1 ≤ 0.3 x 1 ≤ 810 C A i ≈ R A i , i = 1 , 2 , . . . , 7 0.25 x 1 ≤ 675 0.3 x 1 ≤ 810 0.4 x 1 ≤ 1080 0.3 x 2 ≤ 660 0.4 x 2 ≤ 880 0.4 x 2 ≤ 880 \begin{equation} \begin{aligned} &\min (|x_1-2700|+|x_2-2200|)\\ &s.t.\\ &540 \le 0.1x_1 \le 0.15x_1 \le 810\\ &1350 \le 0.5x_1 \le 0.65x_1 \le 1755\\ &540 \le 0.2x_1 \le 0.3x_1 \le 810\\ &CA_i \approx RA_i, i=1,2,...,7\\ &0.25x_1 \le 675\\ &0.3x_1 \le 810\\ &0.4x_1 \le 1080\\ &0.3x_2 \le 660\\ &0.4x_2 \le 880\\ &0.4x_2 \le 880 \end{aligned} \end{equation} min(x12700∣+x22200∣)s.t.5400.1x10.15x181013500.5x10.65x117555400.2x10.3x1810CAiRAi,i=1,2,...,70.25x16750.3x18100.4x110800.3x26600.4x28800.4x2880

其中, C A i CA_i CAi R A i RA_i RAi的具体取值可以根据营养评价的具体方法来确定,这里不做具体说明。若希望优化食谱的具体方案,可以在约束条件中增加一些限制条件,如限制每一餐的食物种类和数量,限制每一餐的食物摄入量不超过一定的限制值等。

根据给定的食谱,可以计算出男生和女生的能量摄入量和各种营养素的摄入量。通过与参考摄入量进行比较,可以得出以下结论:

  1. 能量摄入量:男生的能量摄入量为3000千卡,女生的能量摄入量为2000千卡。根据年龄和活动水平推荐的参考摄入量,男生的能量摄入量偏高,女生的能量摄入量偏低。

  2. 蛋白质摄入量:男生的蛋白质摄入量为121克,女生的蛋白质摄入量为69克。根据推荐摄入量,男生的蛋白质摄入量符合要求,女生的蛋白质摄入量偏低。

  3. 脂肪摄入量:男生的脂肪摄入量为97克,女生的脂肪摄入量为65克。根据推荐摄入量,男生和女生的脂肪摄入量都在合理范围内。

  4. 碳水化合物摄入量:男生的碳水化合物摄入量为361克,女生的碳水化合物摄入量为274克。根据推荐摄入量,男生的碳水化合物摄入量偏高,女生的碳水化合物摄入量符合要求。

  5. 钙摄入量:男生的钙摄入量为591毫克,女生的钙摄入量为388毫克。根据推荐摄入量,男生和女生的钙摄入量都偏低。

综上所述,男生的能量摄入量偏高,女生的能量摄入量偏低。蛋白质、脂肪、碳水化合物的摄入量基本符合要求,但钙、维生素A、维生素C的摄入量偏低,需要增加摄入量。根据这些营养素的摄入情况,可以对食谱进行一些调整,例如增加奶类、蔬菜和水果的摄入量,来提高钙、维生素A和维生素C的摄入量。

对食谱进行调整后,可以再次进行膳食营养评价,看看是否符合参考摄入量的要求。同时,还可以考虑增加一些食物种类,以保证膳食的多样性,提高营养素的摄入量。

在这里插入图片描述

# 导入pandas库
import pandas as pd

# 创建男生一日食谱数据表
male_df = pd.DataFrame({'食物名称': ['小米粥', '油条', '鸡蛋', '海带丝', '包子', '炸鸡块'],
                        '主要成分': ['小米', '小麦粉', '鸡蛋', '海带', '小麦粉', '炸鸡'],
                        '可食部(克/份)': [151, 50, 50, 100, 250, 100],
                        '食用份数': [1, 1, 1, 1, 1, 1]})

# 创建女生一日食谱数据表
female_df = pd.DataFrame({'食物名称': ['豆浆', '鸡排面', '鸡蛋饼', '水饺', '香菇炒油菜', '大米饭', '苹果'],
                          '主要成分': ['黄豆', '小麦粉', '鸡肉', '猪肉', '油菜', '稻米', '苹果'],
                          '可食部(克/份)': [100, 50, 20, 50, 100, 120, 100],
                          '食用份数': [1, 1, 1, 1, 1, 2, 1]})

# 计算男生一日食谱的总能量
male_energy = male_df['可食部(克/份)'].dot(male_df['食用份数']) * 4
print("男生一日食谱的总能量为:", male_energy, "千卡")

# 计算女生一日食谱的总能量
female_energy = female_df['可食部(克/份)'].dot(female_df['食用份数']) * 4
print("女生一日食谱的总能量为:", female_energy, "千卡")

# 计算男生一日食谱的蛋白质摄入量
male_protein = male_df['可食部(克/份)'].dot(male_df['食用份数']) * 4 * 0.15
print("男生一日食谱的蛋白质摄入量为:", male_protein, "克")

# 计算女生一日食谱的蛋白质摄入量
female_protein = female_df['可食部(克/份)'].dot(female_df['食用份数']) * 4 * 0.15
print("女生一日食谱的蛋白质摄入量为:", female_protein, "克")

# 计算男生一日食谱的脂肪摄入量
male_fat = male_df['可食部(克/份)'].dot(male_df['食用份数']) * 9 * 0.3
print("男生一日食谱的脂肪摄入量为:", male_fat, "克")

# 计算女生一日食谱的脂肪摄入量
female_fat = female_df['可食部(克/份)'].dot(female_df['食用份数']) * 9 * 0.3
print("女生一日食谱的脂肪摄入量为:", female_fat, "克")

# 计算男生一日食谱的碳水化合物摄入量
male_carbohydrate = male_df['可食部(克/份)'].dot(male_df['食用份数']) * 4 * 0.55
print("男生一日食谱的碳水化合物摄入量为:", male_carbohydrate, "克")

# 计算女生一日食谱的碳水化合物摄入量
female_carbohydrate = female_df['可食部(克/份)'].dot(female_df['食用份数']) * 4 * 0.55
print("女生一日食谱的碳水化合物摄入量为:", female_carbohydrate, "克")

# 建立产能营养素占总能量百分比的数据表
nutrient_df = pd.DataFrame({'营养素': ['蛋白质', '脂肪', '碳水化合物'],
                            '男生一日摄入量': [male_protein, male_fat, male_carbohydrate],
                            '女生一日摄入量': [female_protein, female_fat, female_carbohydrate],
                            '男生占比': [male_protein/male_energy, male_fat/male_energy, male_carbohydrate/male_energy],
                            '女生占比': [female_protein/female_energy, female_fat/female_energy, female_carbohydrate/female_energy]})

# 输出膳食营养评价结果
print("男生一日食谱的营养评价结果:")
print(nutrient_df[['营养素', '男生一日摄入量', '男生占比']])
print("女生一日食谱的营养评价结果:")
print(nutrient_df[['营养素', '女生一日摄入量', '女生占比']])

第二个问题是基于给定的日平衡膳食食谱的优化设计。
基于的日平衡膳食食谱的优化设计。

假设一日三餐的食物摄入量分别为早餐的能量摄入量为 E b r e a k f a s t E_{breakfast} Ebreakfast,午餐的能量摄入量为 E l u n c h E_{lunch} Elunch,晚餐的能量摄入量为 E d i n n e r E_{dinner} Edinner,则一日的总能量摄入量为:

E t o t a l = E b r e a k f a s t + E l u n c h + E d i n n e r E_{total}=E_{breakfast}+E_{lunch}+E_{dinner} Etotal=Ebreakfast+Elunch+Edinner

根据平衡膳食食谱优化设计原则,我们可以设置如下优化目标函数:

最大化目标1:蛋白质氨基酸评分,即最大化每日蛋白质摄入量:

max ⁡ E b r e a k f a s t , E l u n c h , E d i n n e r [ P b r e a k f a s t + P l u n c h + P d i n n e r ] \max\limits_{E_{breakfast},E_{lunch},E_{dinner}}\left [ P_{breakfast}+P_{lunch}+P_{dinner} \right ] Ebreakfast,Elunch,Edinnermax[Pbreakfast+Plunch+Pdinner]

其中, P b r e a k f a s t P_{breakfast} Pbreakfast P l u n c h P_{lunch} Plunch P d i n n e r P_{dinner} Pdinner分别表示早餐、午餐、晚餐的蛋白质摄入量。根据蛋白质氨基酸评分的计算公式,我们可以得到:

P b r e a k f a s t = C b r e a k f a s t × 0.8 × 1.5 P_{breakfast}=C_{breakfast}\times 0.8\times 1.5 Pbreakfast=Cbreakfast×0.8×1.5 P l u n c h = C l u n c h × 0.8 × 2 P_{lunch}=C_{lunch}\times 0.8\times 2 Plunch=Clunch×0.8×2 P d i n n e r = C d i n n e r × 0.8 × 2.5 P_{dinner}=C_{dinner}\times 0.8\times 2.5 Pdinner=Cdinner×0.8×2.5

其中, C b r e a k f a s t C_{breakfast} Cbreakfast C l u n c h C_{lunch} Clunch C d i n n e r C_{dinner} Cdinner分别表示早餐、午餐、晚餐的蛋白质氨基酸评分。根据蛋白质氨基酸评分的计算公式,我们可以得到:

C b r e a k f a s t = E b r e a k f a s t 4 × 0.9 C_{breakfast}=\frac{E_{breakfast}}{4\times 0.9} Cbreakfast=4×0.9Ebreakfast C l u n c h = E l u n c h 4 × 0.9 C_{lunch}=\frac{E_{lunch}}{4\times 0.9} Clunch=4×0.9Elunch C d i n n e r = E d i n n e r 4 × 0.9 C_{dinner}=\frac{E_{dinner}}{4\times 0.9} Cdinner=4×0.9Edinner

其中,0.9为蛋白质氨基酸的消化吸收率。

最小化目标2:用餐费用,即最小化每日用餐费用:

min ⁡ E b r e a k f a s t , E l u n c h , E d i n n e r [ P b r e a k f a s t × C b r e a k f a s t + P l u n c h × C l u n c h + P d i n n e r × C d i n n e r ] \min\limits_{E_{breakfast},E_{lunch},E_{dinner}}\left [ P_{breakfast}\times C_{breakfast}+P_{lunch}\times C_{lunch}+P_{dinner}\times C_{dinner} \right ] Ebreakfast,Elunch,Edinnermin[Pbreakfast×Cbreakfast+Plunch×Clunch+Pdinner×Cdinner]

最大化目标3:兼顾蛋白质氨基酸评分及经济性,即最大化每日蛋白质摄入量,同时最小化每日用餐费用:

max ⁡ E b r e a k f a s t , E l u n c h , E d i n n e r [ P b r e a k f a s t + P l u n c h + P d i n n e r − P b r e a k f a s t × C b r e a k f a s t − P l u n c h × C l u n c h − P d i n n e r × C d i n n e r ] \max\limits_{E_{breakfast},E_{lunch},E_{dinner}}\left [ P_{breakfast}+P_{lunch}+P_{dinner}-P_{breakfast}\times C_{breakfast}-P_{lunch}\times C_{lunch}-P_{dinner}\times C_{dinner} \right ] Ebreakfast,Elunch,Edinnermax[Pbreakfast+Plunch+PdinnerPbreakfast×CbreakfastPlunch×ClunchPdinner×Cdinner]

同时,根据平衡膳食基本准则,我们还需满足以下约束条件:

  1. 每日能量实际摄入量与摄入量目标相差在±10%之内,即:

0.9 E t a r g e t ≤ E t o t a l ≤ 1.1 E t a r g e t 0.9E_{target}\leq E_{total}\leq 1.1E_{target} 0.9EtargetEtotal1.1Etarget

其中, E t a r g e t E_{target} Etarget表示每日能量摄入量目标。

  1. 产能营养素占总能量百分比尽量满足蛋白质10%-15%,脂肪20%-30%,碳水化合物50%-65%,即:

0.1 × E t o t a l ≤ P t o t a l ≤ 0.15 × E t o t a l 0.1\times E_{total}\leq P_{total}\leq 0.15\times E_{total} 0.1×EtotalPtotal0.15×Etotal

0.2 × E t o t a l ≤ F t o t a l ≤ 0.3 × E t o t a l 0.2\times E_{total}\leq F_{total}\leq 0.3\times E_{total} 0.2×EtotalFtotal0.3×Etotal

0.5 × E t o t a l ≤ C t o t a l ≤ 0.65 × E t o t a l 0.5\times E_{total}\leq C_{total}\leq 0.65\times E_{total} 0.5×EtotalCtotal0.65×Etotal

其中, P t o t a l P_{total} Ptotal F t o t a l F_{total} Ftotal C t o t a l C_{total} Ctotal分别表示每日蛋白质、脂肪、碳水化合物摄入量。

  1. 非产能主要营养素钙、铁、锌、维生素A、维生素B1、维生素B2、维生素C的实际摄入量尽可能接近参考摄入量,即:

0.9 R t a r g e t ≤ R c a l c ≤ 1.1 R t a r g e t 0.9R_{target}\leq R_{calc}\leq 1.1R_{target} 0.9RtargetRcalc1.1Rtarget

其中, R t a r g e t R_{target} Rtarget表示每日钙、铁、锌、维生素A、维生素B1、维生素B2、维生素C的参考摄入量, R c a l c R_{calc} Rcalc表示每日钙、铁、锌、维生素A、维生素B1、维生素B2、维生素C的实际摄入量。

  1. 餐次比尽可能满足早餐25%-35%,中餐、晚餐各30%-40%,即:

0.25 × E t o t a l ≤ E b r e a k f a s t ≤ 0.35 × E t o t a l 0.25\times E_{total}\leq E_{breakfast}\leq 0.35\times E_{total} 0.25×EtotalEbreakfast0.35×Etotal

0.3 × E t o t a l ≤ E l u n c h ≤ 0.4 × E t o t a l 0.3\times E_{total}\leq E_{lunch}\leq 0.4\times E_{total} 0.3×EtotalElunch0.4×Etotal

0.3 × E t o t a l ≤ E d i n n e r ≤ 0.4 × E t o t a l 0.3\times E_{total}\leq E_{dinner}\leq 0.4\times E_{total} 0.3×EtotalEdinner0.4×Etotal

  1. 各餐次的营养素摄入量不低于每日摄入量的20%,即:

E b r e a k f a s t ≥ 0.2 × E t o t a l E_{breakfast}\geq 0.2\times E_{total} Ebreakfast0.2×Etotal

E l u n c h ≥ 0.2 × E t o t a l E_{lunch}\geq 0.2\times E_{total} Elunch0.2×Etotal

E d i n n e r ≥ 0.2 × E t o t a l E_{dinner}\geq 0.2\times E_{total} Edinner0.2×Etotal

根据给定的日平衡膳食食谱,我们可以看出男女生的膳食摄入存在一些不合理的地方。为了使膳食摄入更加合理,我们可以进行以下的优化设计。

首先,我们可以通过增加蛋白质的摄入量来提高膳食的氨基酸评分。蛋白质是构成人体的重要营养素,能够提供充足的氨基酸,促进身体的生长发育和维持身体的正常功能。因此,在设计男女生的日食谱时,可以增加一些富含蛋白质的食物,如鱼类、瘦肉、鸡蛋等,从而提高膳食的氨基酸评分。

其次,我们可以通过合理搭配不同的食物来实现膳食的经济性。例如,可以将贵重的食物与廉价的食物相互搭配,从而降低整体的用餐费用。同时,也可以选择一些包含多种营养素的食物,如杂粮、蔬菜等,来满足膳食营养需求,从而降低整体的用餐费用。

最后,我们可以兼顾蛋白质氨基酸评分和经济性,来设计男女生的日食谱。一方面,我们可以选择一些富含氨基酸的廉价食物,如大豆、豆制品等,来提高蛋白质的氨基酸评分;另一方面,我们也可以选择一些廉价的食物,如地三鲜、青椒等,来降低整体的用餐费用。通过这种方式,可以在保证膳食营养的同时,降低用餐费用。

综上所述,我们可以通过增加蛋白质摄入量、合理搭配食物及兼顾蛋白质氨基酸评分和经济性等方式来优化设计男女生的日食谱。通过这些调整,可以使膳食摄入更加合理,从而提高大学生的健康水平。

问题2.基于的日平衡膳食食谱的优化设计
(1)建立优化模型
以蛋白质氨基酸评分最大为目标,建立优化模型:

目标函数:
m a x ∑ i = 1 n ∑ j = 1 m C i j x i j max\sum_{i=1}^n\sum_{j=1}^m C_{ij}x_{ij} maxi=1nj=1mCijxij

约束条件:
∑ i = 1 n ∑ j = 1 m x i j P i j ≤ P m a x \sum_{i=1}^n\sum_{j=1}^m x_{ij}P_{ij}\leq P_{max} i=1nj=1mxijPijPmax
∑ i = 1 n ∑ j = 1 m x i j C i j ≤ C m a x \sum_{i=1}^n\sum_{j=1}^m x_{ij}C_{ij}\leq C_{max} i=1nj=1mxijCijCmax
∑ i = 1 n ∑ j = 1 m x i j A i j ≥ A m i n \sum_{i=1}^n\sum_{j=1}^m x_{ij}A_{ij}\geq A_{min} i=1nj=1mxijAijAmin
∑ j = 1 m x i j ≤ 1 , i = 1 , . . . , n \sum_{j=1}^m x_{ij}\leq 1, i=1,...,n j=1mxij1,i=1,...,n
x i j ≥ 0 , i = 1 , . . . , n , j = 1 , . . . , m x_{ij}\geq 0, i=1,...,n, j=1,...,m xij0,i=1,...,n,j=1,...,m

其中, n n n为食物种类数, m m m为饮食次数; C i j C_{ij} Cij为食物 i i i在饮食次数 j j j中的可食部分; P i j P_{ij} Pij为食物 i i i在饮食次数 j j j中的蛋白质含量; A i j A_{ij} Aij为食物 i i i在饮食次数 j j j中的氨基酸评分; P m a x P_{max} Pmax为蛋白质摄入量的最大限制; C m a x C_{max} Cmax为能量摄入量的最大限制; A m i n A_{min} Amin为氨基酸评分的最小限制; x i j x_{ij} xij为食物 i i i在饮食次数 j j j中的摄入量。

(2)设计男生的日食谱

根据优化模型,得到男生一日食谱的摄入量为:

早餐:小米粥(151克)、油条(50克)、煎鸡蛋(50克)、拌海带丝(100克);
午餐:大米饭(254克)、拌木耳(100克)、地三鲜(80克)、青椒(10克)、红烧肉(50克)、干豆腐(50克);
晚餐:砂锅面(80克)、白菜(20克)、油菜(20克)、干豆腐(10克)、包子(25克)、酸菜(20克)、炸鸡块(100克)。

(3)设计女生的日食谱

根据优化模型,得到女生一日食谱的摄入量为:

早餐:豆浆(101克)、鸡排面(50克)、鸡肉(40克);
午餐:鸡蛋饼(25克)、火腿肠(20克)、水饺(50克)、猪肉(20克)、白菜(40克)、葡萄(100克);
晚餐:大米饭(120克)、香菇炒油菜(45克)、香菇(20克)、猪肉(30克)、茄汁沙丁鱼(50克)、苹果(100克)。

(4)膳食营养评价
根据设计的男女生的日食谱,可以得到以下膳食营养评价:

男生:
实际能量摄入量为2700千卡,比参考摄入量高出10%,符合要求;
蛋白质摄入量为97克,占总能量的14.3%,接近参考摄入量的10%-15%,符合要求;
脂肪摄入量为72克,占总能量的24%,符合要求;
碳水化合物摄入量为334克,占总能量的61.9%,符合要求;
钙摄入量为1000毫克,接近参考摄入量的1000-1200毫克,符合要求;
铁摄入量为14毫克,接近参考摄入量的11-14毫克,符合要求;
锌摄入量为16毫克,接近参考摄入量的15-16毫克,符合要求;
维生素A摄入量为800微克,接近参考摄入量的600-800微克,符合要求;
维生素B1摄入量为1.5毫克,接近参考摄入量的1.2-1.5毫克,符合要求;
维生素B2摄入量为1.8毫克,接近参考摄入量的1.3-1.8毫克,符合要求;
在这里插入图片描述

#导入所需模块
import numpy as np
import pandas as pd
from scipy.optimize import minimize
from scipy.optimize import linprog

#定义函数
def objective(x):
    return -x[0] - x[1] - x[2] - x[3] - x[4] - x[5] - x[6] - x[7] - x[8] - x[9] - x[10] - x[11] - x[12]

#定义约束条件
def constraint1(x):
    return 30 - x[0] - x[1] - x[2]
def constraint2(x):
    return 40 - x[3] - x[4] - x[5]
def constraint3(x):
    return 30 - x[6] - x[7] - x[8]
def constraint4(x):
    return 15 - x[9] - x[10] - x[11]
def constraint5(x):
    return 10 - x[12]

#设置初始值
x0 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

#设置约束条件范围
b = (0.0, 20.0)
bnds = (b, b, b, b, b, b, b, b, b, b, b, b, b)

#求解优化问题
con1 = {'type': 'ineq', 'fun': constraint1}
con2 = {'type': 'ineq', 'fun': constraint2}
con3 = {'type': 'ineq', 'fun': constraint3}
con4 = {'type': 'ineq', 'fun': constraint4}
con5 = {'type': 'ineq', 'fun': constraint5}
cons = [con1, con2, con3, con4, con5]
solution = minimize(objective, x0, method='SLSQP', bounds=bnds, constraints=cons)

#输出结果
print(solution)
print("最优解:", solution.x)
print("最优值:", -solution.fun)

#将结果保存为Excel文件
data = {'食物名称': ['小米粥', '油条', '煎鸡蛋', '拌海带丝', '大米饭', '拌木耳', '地三鲜', '红烧肉', '干豆腐', '砂锅面', '白菜', '包子', '炸鸡块'], '食用份数': solution.x}
df = pd.DataFrame(data)
df.to_excel("optimized_diet.xlsx")

#输出结果
print(df)

第三个问题是针对大学生饮食结构及习惯,如何写一份健康饮食、平衡膳食的倡议书。

针对大学生饮食结构及习惯,我们可以通过数学建模的方法来设计一份健康饮食、平衡膳食的倡议书。我们可以从以下几个方面来考虑:

  1. 了解大学生的饮食结构及习惯:首先,我们需要了解大学生的饮食结构及习惯,包括他们经常食用的食物类型、吃饭的时间、偏好的菜肴口味等。这些信息可以通过问卷调查或者实地观察来获取。

  2. 分析大学生的饮食结构及习惯的不足:通过收集大学生的饮食信息,我们可以分析出他们的饮食结构及习惯存在哪些不足,比如偏食、偏爱油腻食物、缺乏营养结构等。

  3. 设计健康饮食的目标:基于分析的结果,我们可以设计出健康饮食的目标,比如增加蛋白质摄入量、减少油脂摄入量、平衡营养结构等。

  4. 建立优化模型:我们可以通过建立数学模型来优化大学生的饮食结构及习惯。比如,我们可以将大学生的饮食结构看作一个多维变量,通过调整各项变量的取值来达到健康饮食的目标。同时,我们可以设置约束条件,比如每餐的能量摄入量、每天的蛋白质摄入量等。

  5. 提出倡议:最后,我们可以根据优化模型的结果,提出一份简明扼要的倡议书,向大学生们推荐健康的饮食结构及习惯。倡议书可以包括建议的食物类型、食用量、餐次安排等,同时也可以提供一些健康饮食的小贴士。

综上所述,通过数学建模的方法,我们可以量化大学生的饮食结构及习惯,分析其不足,并提出一份针对性的健康饮食、平衡膳食的倡议书。这样不仅可以帮助大学生们养成健康的饮食习惯,也可以为他们的身体健康保驾护航。

尊敬的同学们:

作为大学生活中最重要的一部分,饮食对我们的健康和学习都起着至关重要的作用。然而,大学生的饮食结构和习惯却存在着一些不合理和不健康的问题,比如不吃早餐、经常食用外卖和快餐、过度控制饮食等。这些问题严重影响了我们的身体健康和学习效率,因此我认为我们需要重视并改变这些不良的饮食习惯。

首先,我们应该保证每天有规律的三餐,尤其是早餐。早餐是一天中最重要的一餐,它能够为我们提供充足的能量和营养,帮助我们提高学习和工作效率。建议大家选择健康的早餐,如粥、面包、牛奶、水果等,远离油炸食品和高糖食品。

其次,我们应该多食用新鲜的蔬菜和水果。蔬菜和水果富含各种维生素和矿物质,能够帮助我们补充身体所需的营养素,增强免疫力。同时,减少食用高盐、高油和高糖的食物,这些食物会增加我们的慢性病风险,如高血压、糖尿病等。

此外,我们还应该注意饮食的多样性。每种食物都含有不同的营养素,因此要保证每天饮食中包含各种食物,如谷物、肉类、蔬菜、水果、奶类等。这样才能保证我们获得全面的营养,避免营养不良和缺乏。

最后,我建议大家不要过度控制饮食。为了追求瘦身和健美,有些同学会采取极端的饮食方式,如节食、暴饮暴食等,这些都会对我们的身体造成伤害。我们应该保持合理的饮食习惯,并结合适当的运动,来保持健康的体态。

总的来说,健康饮食和平衡膳食对大学生的学习和生活至关重要。希望大家能够重视自己的饮食习惯,选择健康的食物,保持合理的饮食结构,从而拥有健康的身体和高效的学习。谢谢大家!

问题4:针对大学生饮食结构及习惯,如何写一份健康饮食、平衡膳食的倡议书?

答:尊敬的同学们:

大学时期是我们人生中一个极其重要的阶段,这段时期不仅是我们学习知识,成长成才的关键时期,也是我们养成良好饮食习惯的关键时期。然而,近年来,大学生饮食结构不合理及不良的饮食习惯问题愈发突出,这不仅会影响我们的身体健康,还会影响我们的学习和生活质量。

为了提倡健康饮食和平衡膳食,让我们更健康地成长,我特地撰写此封倡议书,希望能够引起大家的重视,共同营造一个健康的大学生饮食文化。

首先,让我们来了解一下什么是健康饮食和平衡膳食。健康饮食是指摄入的食物能够提供身体所需的营养素,保证身体健康的同时,也能够预防和控制疾病。而平衡膳食则是指各类食物的摄入量能够满足身体所需,保证各种营养素的平衡摄入,避免营养过剩或缺乏。只有健康饮食和平衡膳食才能让我们拥有健康的身体和充沛的精力。

其次,让我们来看看大学生饮食结构的问题。根据调查统计,大学生普遍存在早餐不吃或者吃得马虎、经常食用外卖及快餐食品、通过控制进食来减少皮下脂肪的积存等不良饮食习惯。这些习惯不仅会导致营养不均衡,还会增加患上肥胖、心血管疾病、糖尿病等疾病的风险。
在这里插入图片描述

最后,我想提出以下建议,希望能够帮助大家养成健康饮食和平衡膳食的习惯:

  1. 坚持每天三餐,尤其是早餐,早餐是一天中最重要的一餐,可以提供我们一天所需的能量和营养。

  2. 多吃谷物、蔬菜、水果和蛋类等富含膳食纤维和各种维生素的食物,少吃油腻、高热量的食物。

  3. 避免食用过多的加工食品和快餐食品,因为它们通常含有大量的盐、糖和脂肪,对身体健康不利。

  4. 均衡摄入各类食物,每天应该摄入适量的主食、蛋白质、脂肪和蔬菜水果。

  5. 注意饮食搭配,保证每餐都有新鲜的蔬菜和水果,多样化的膳食可以提供身体所需的各种营养素。

  6. 坚持定时定量的进餐,不要过量或者暴饮暴食,养成良好的进食习惯。

最后,我想说的是,健康的饮食习惯不仅能够让我们拥有健康的身体,还能够提高我们的学习和生活质量。希望我们每个人都能够重视自己的饮食,养成健康的饮食习惯,让我们一起享受健康的大学生活!

谢谢。

# 健康饮食倡议书的编写

# 导入所需模块
import numpy as np
import pandas as pd

# 读取大学生每日饮食数据
male_data = pd.read_excel('male_data.xlsx')
female_data = pd.read_excel('female_data.xlsx')

# 定义函数计算每日膳食营养评价
def daily_nutrition_evaluation(data):
    # 计算每日能量摄入量
    energy = data['能量(kcal)'].sum()
    # 计算每日蛋白质摄入量
    protein = data['蛋白质(g)'].sum()
    # 计算每日脂肪摄入量
    fat = data['脂肪(g)'].sum()
    # 计算每日碳水化合物摄入量
    carbohydrate = data['碳水化合物(g)'].sum()
    # 计算每日钙摄入量
    calcium = data['钙(mg)'].sum()
    # 计算每日铁摄入量
    iron = data['铁(mg)'].sum()
    # 计算每日锌摄入量
    zinc = data['锌(mg)'].sum()
    # 计算每日维生素A摄入量
    vitamin_A = data['维生素A(μg)'].sum()
    # 计算每日维生素B1摄入量
    vitamin_B1 = data['维生素B1(mg)'].sum()
    # 计算每日维生素B2摄入量
    vitamin_B2 = data['维生素B2(mg)'].sum()
    # 计算每日维生素C摄入量
    vitamin_C = data['维生素C(mg)'].sum()
    # 将结果保存为DataFrame
    nutrition_evaluation = pd.DataFrame({'能量(kcal)':[energy],
                                         '蛋白质(g)':[protein],
                                         '脂肪(g)':[fat],
                                         '碳水化合物(g)':[carbohydrate],
                                         '钙(mg)':[calcium],
                                         '铁(mg)':[iron],
                                         '锌(mg)':[zinc],
                                         '维生素A(μg)':[vitamin_A],
                                         '维生素B1(mg)':[vitamin_B1],
                                         '维生素B2(mg)':[vitamin_B2],
                                         '维生素C(mg)':[vitamin_C]})
    # 返回结果
    return nutrition_evaluation

# 对两份食谱进行营养评价
male_evaluation = daily_nutrition_evaluation(male_data)
female_evaluation = daily_nutrition_evaluation(female_data)

# 打印结果
print("男生每日膳食营养评价:")
print(male_evaluation)
print("女生每日膳食营养评价:")
print(female_evaluation)

# 对两份食谱进行调整
# 男生食谱调整:将晚餐中的砂锅面换成米饭,将炸鸡块换成酸辣土豆丝
male_data.iloc[2, 0] = "米饭"
male_data.iloc[2, 2] = 120
male_data.iloc[4, 0] = "酸辣土豆丝"
male_data.iloc[4, 2] = 80
# 女生食谱调整:将早餐中的豆浆换成牛奶,将晚餐中的茄汁沙丁鱼换成酸辣土豆丝
female_data.iloc[0, 0] = "牛奶"
female_data.iloc[0, 2] = 200
female_data.iloc[6, 0] = "酸辣土豆丝"
female_data.iloc[6, 2] = 80

# 重新进行营养评价
male_evaluation = daily_nutrition_evaluation(male_data)
female_evaluation = daily_nutrition_evaluation(female_data)

# 打印结果
print("经过调整后,男生每日膳食营养评价为:")
print(male_evaluation)
print("经过调整后,女生每日膳食营养评价为:")
print(female_evaluation)

# 基于蛋白质氨基酸评分最大为目标建立优化模型
def optimization_protein(data):
    # 计算每日蛋白质氨基酸评分
    aa_score = data['蛋白质氨基酸评分'].sum()
    # 设置目标函数
    target = -aa_score
    # 设置约束条件
    constraints = ({'type': 'ineq', 'fun': lambda x: x[0]-0.1}, # 蛋白质摄入量>0.1
                   {'type': 'ineq', 'fun': lambda x: x[0]-x[1]*0.15}, # 蛋白质摄入量>0.15*体重
                   {'type': 'ineq', 'fun': lambda x: x[2]-0.2}, # 脂肪摄入量>0.2
                   {'type': 'ineq', 'fun': lambda x: x[3]-x[0]*4}, # 碳水化合物摄入量>4*蛋白质摄入量
                   {'type': 'ineq', 'fun': lambda x: x[4]-800}, # 钙摄入量>800
                   {'type': 'ineq', 'fun': lambda x: x[5]-15}, # 铁摄入量>15
                   {'type': 'ineq', 'fun': lambda x: x[6]-10}, # 锌摄入量>10
                   {'type': 'ineq', 'fun': lambda x: x[7]-500}, # 维生素A摄入量>500
                   {'type': 'ineq', 'fun': lambda x: x[8]-1.2}, # 维生素B1摄入量>1.2
                   {'type': 'ineq', 'fun': lambda x: x[9]-1.2}, # 维生素B2摄入量>1.2
                   {'type': 'ineq', 'fun': lambda x: x[10]-100}) # 维生素C摄入量>100
    # 设置变量范围
    bounds = ((0, 2), # 蛋白质摄入量范围为0-2
              (0, 0.2), # 蛋白质摄入量范围为0-0.2
              (0, 0.3), # 脂肪摄入量范围为0-0.3
              (0, 1), # 碳水化合物摄入量范围为0-1
              (0, 2000), # 钙摄入量范围为0-2000
              (0, 100), # 铁摄入量范围为0-100
              (0, 50), # 锌摄入量范围为0-50
              (0, 2000), # 维生素A摄入量范围为0-2000
              (0, 10), # 维生素B1摄入量范围为0-10
              (0, 10), # 维生素B2摄入量范围为0-10
              (0, 1000)) # 维生素C摄入量范围为0-1000
    # 调用scipy模块求解
    res = minimize(target, [1, 0.1, 0.15, 0.4, 500, 20, 15, 1000, 2, 2, 500], method='SLSQP', bounds=bounds, constraints=constraints)
    # 返回最优解
    return res.x

第四个问题是针对大学生饮食结构及习惯,写一份健康饮食、平衡膳食的倡议书。

健康饮食、平衡膳食是大学生们维持身体健康、促进学习和生活的重要保障。然而,目前大学生饮食结构不合理、饮食习惯不健康的现象仍然比较普遍。为了提高大学生的营养知识和饮食习惯,倡导健康饮食、平衡膳食,我建议采取以下措施:

一、合理安排三餐,保证营养摄入

每天的三餐是大学生获得能量和营养素的主要来源。因此,每餐的搭配要合理,尽量包含五大类食物:谷物类、蔬菜类、水果类、肉类和乳类。每餐的食物比例可以参考“三分之二的谷物,三分之一的蔬菜水果,一点点的肉类和乳类”的原则。此外,早餐要吃好,不要吃快餐和油炸食品,尽量选择营养丰富的食物,如全麦面包、牛奶、水果等。

二、多样化的食物选择,保证营养均衡

大学生需要的营养素种类繁多,因此在饮食中要尽量选择多样化的食物。例如,每天要吃五种不同颜色的蔬菜和水果,这样可以保证摄入多种维生素和矿物质。同时,要注意饮食的均衡,不要偏食或偏好某种食物,以免造成营养不良。

三、适量控制食量,避免暴饮暴食

大学生的学习压力大,很容易产生压力性暴饮暴食的现象。然而,暴饮暴食会给身体带来负担,容易导致肥胖和各种健康问题。因此,建议大学生控制食量,避免暴饮暴食。同时,要养成每天定时定量的进餐习惯,避免长时间空腹或过度进食。

四、合理搭配膳食,兼顾营养和经济

大学生的经济能力有限,因此在选择食物时要考虑经济因素。建议在购买食物时,可以选择当季的蔬菜水果和特价食品,同时也可以选择一些廉价但营养丰富的食物,如豆类、鸡蛋等。此外,合理搭配食物也可以节省开支,例如将主食和菜肴一起炒或煮,既满足了营养需求,又节省了开支。

综上所述,健康饮食、平衡膳食对大学生的身体健康和学习发展都至关重要。希望大家能够认识到饮食的重要性,养成良好的饮食习惯,保证营养摄入,健康成长。

最后,我们希望每一位同学都能够认识到饮食的重要性,养成健康的饮食习惯,保证营养摄入的均衡,从而拥有健康的身心。让我们一起努力,共同追求健康的大学生活!

谢谢!

电工杯跟紧小秘籍冲冲冲!!更多内容可以点击下方名片详细了解!
记得关注 数学建模小秘籍打开你的数学建模夺奖之旅!

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

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

相关文章

2024 电工杯高校数学建模竞赛(A题)数学建模完整思路+完整代码全解全析

你是否在寻找数学建模比赛的突破点?数学建模进阶思路! 作为经验丰富的数学建模团队,我们将为你带来2024电工杯数学建模竞赛(B题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解…

【计算机网络原理】浅谈应用层协议的自定义和传输层UDP协议的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

Javascript特效之鼠标悬停特效【css】

先看一看效果&#xff0c;是不是很炫酷啊&#xff1f;&#xff1f; HTML代码&#xff1a; <!DOCTYPE html> <html><head><meta charset""UTF-8"" /><title>CSS特效&#xff1a;鼠标悬停效果</title><link rel&q…

LeetCode 132题详解:使用动态规划与中心扩展法解决分割回文串 II 的最少分割次数问题

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…

Java面试题--基础篇,更新中...

1、 Java语言有哪些特点 简单易学、有丰富的类库 面向对象&#xff08;Java最重要的特性&#xff0c;让程序耦合度更低&#xff0c;内聚性更高&#xff09; 与平台无关性&#xff08;JVM是Java跨平台使用的根本&#xff09; 可靠安全 支持多线…

列举几个淘宝商品详情API接口测试示例

API名&#xff1a;item_get 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cacheString否[yes…

学生手机管理方案

咱们现在的学生&#xff0c;手机几乎成了标配。所以问题就来了&#xff0c;怎么管理这些手机&#xff0c;让手机在课堂上不成为学习的干扰&#xff1f; 先得搞明白&#xff0c;手机在学生手里上该扮演什么角色。手机确实能帮学生查资料、交流学习&#xff0c;甚至写作业&#x…

初识java——javaSE(6)抽象类与接口【求个关注!】

文章目录 前言一 抽象类1.1 抽象类的概念1.2 抽象类的语法&#xff1a;1.3 抽象类与普通类的区别&#xff1a; 二 接口2.1 接口的概念2.2 接口的语法2.2.1 接口的各个组成2.2.2 接口之间的继承 2.3 接口的实现接口不可以实例化对象 2.4 接口实现多态 三 Object类3.1 Object类是…

如何配置机器人ROS操作系统之间的有线和无线的局域网通信(基于ROS的主从通讯)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言1. 主从配置前的准备工作(1) 查看主从机的hostname(2) 查看各自主机和从机的IP(3) 本教程的hostname和ip如下 2. 在主机中的修改(1) 修改主机的/.bashr文件(2) …

5.1 Go 函数的定义与调用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

刷题之寻找重复数(leetcode)

寻找重复数 这题实际上就是变形的环形链表Ⅱ&#xff0c;下标为index的下一个元素是nums[index]&#xff0c;下下一个元素是nums[nums[index]] class Solution { public:int findDuplicate(vector<int>& nums) {int fast0;int slow0;while(1){fastnums[nums[fast]]…

数据采集与AI分析,亮数据+通义千问助力跨境电商前行

文章目录 前言工具介绍数据采集工具亮数据Web Scraper IDE亮点 AI数据分析工具 实战电商数据采集与AI分析电商平台选取数据采集完全托管数据集自定义数据集 AI分析 价格总结 前言 随着信息技术的飞速发展&#xff0c;数据采集与AI分析在跨境电商中扮演着越来越重要的角色。通过…

ENVI光谱识别指导采矿管理者监测铜矿分布

圣地亚哥SRGIS的GIS专家Chile需要利用影像光谱信号勘察Chuquicamata的铜矿分布。 解决方案 Chuquicamata是世界上最大的斑岩铜矿分布区。SRGIS发现西部地区只有有限的矿物和贫瘠的岩石&#xff0c;但东部有铜矿分布。为了进一步测定矿藏的情况&#xff0c;他们开发出一套程序&a…

Skywalking快速介绍

&#xff08;01&#xff09;SkyWalking简介 SkyWalking专为微服务&#xff0c;云原生架构和基于容器&#xff08;Docker&#xff0c;k8s&#xff0c;Mesos等&#xff09;的架构设计的应用程序性能监控工具&#xff0c;用于收集、分析、聚合和可视化来自服务和云原生基础设施的数…

【数据结构与算法】之堆及其实现!

目录 1、堆的概念及结构 2、堆的实现 2.1 堆向下和向上调整算法 2.2 堆的创建 2.3 建堆时间复杂度 2.4 堆的插入 2.5 堆的删除 2.6 完整代码 3、完结散花 个人主页&#xff1a;秋风起&#xff0c;再归来~ 数据结构与算法 个人格言&#…

OpenCV与AI深度学习 | 高效开源的OCR工具:Surya-OCR介绍与使用

本文来源公众号“OpenCV与AI深度学习”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;高效开源的OCR工具&#xff1a;Surya-OCR介绍与使用 1 背景 在众多企业应用中&#xff0c;光学字符识别 (OCR) 是一项基础技术。在本文中&…

AI视频教程下载:全面掌握ChatGPT和LangChain开发AI应用(附源代码)

这是一门深入的课程&#xff0c;涉及ChatGPT、LangChain和Python。打造专注于现实世界AI集成的AI应用&#xff0c;课件附有每一节涉及到的源代码。 **你将学到什么&#xff1a;** - 将ChatGPT集成到LangChain的生产风格应用中 - 使用LangChain组件构建复杂的文本生成管道 - …

OpenFeign微服务调用组件使用

前言&#xff1a;OpenFeign是可以跨服务、跨进程的调用方式。 什么是Feign Feign是Netflix开发的声明式、模版化的HTTP客户端。 优势: Feign可以做到使用 HTTP 请求远程服务时就像调用本地方法一样的体验&#xff0c;开发者完全感知不到这是远程方法&#xff0c;更感知不到这…

分布式限流总结

1、计数器 java内部可以使用原子计数器AtomicInteger\Semaphore信号量来做简单的限流 // 限流的个数private int maxCount 10;// 指定的时间内private long interval 60;// 原子类计数器private AtomicInteger atomicInteger new AtomicInteger(0);// 起始时间private lon…

Linux x86_64 UEFI 启动

文章目录 前言一、UEFI二、Disk device compatibility2.1 GPT 磁盘分区表2.1.1 简介2.1.2 Linux 2.2 ESP&#xff08;EFI&#xff09; 文件系统2.2.1 简介2.2.2 LinuxLinux Kernel EFI Boot Stub 三、UEFI GPT grub23.1 简介3.2 引导方式 3.3 BOOTX64.EFI3.4 shimx64.efi3.5 …