数学建模——管住嘴迈开腿——python实现

这篇具有很好参考价值的文章主要介绍了数学建模——管住嘴迈开腿——python实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数学建模——管住嘴迈开腿——python实现

喂喂喂,该减减肥啦!

来制定你的减肥计划吧!

模型假设

(1)体重增加正比于吸收的热量, 平均8000kcal       增加体重1kg.

(2)代谢引起的体重减少正比于体重, 每周每千克       体重消耗200 ~ 320kcal (因人而异).70kg每天消耗2000 ~ 3200kcal.

(3)运动引起的体重减少正比于体重, 且与运动       形式和运动时间有关.  

(4)为了安全与健康, 每周吸收热量≥10000kcal,且每周       减少量≤1000kcal; 每周体重减少量≤ 1.5kg.

食物每百克所含热量

食物

米饭

豆腐

青菜

苹果

瘦肉

鸡蛋

热量(kcal/100g)

120

100

2030

5060

140160

150

运动每小时每千克体重消耗热量

运动

步行(4km/h)

跑步

跳舞

乒乓

自行车

(中速)

游泳(50m/min)

热量(kcal/hkg)

3.1

7.0

3.0

4.4

2.5

7.9

基本模型

w(k)~第k周(初)体重 (kg) , k=1,2,…

c(k) ~第k周吸收热量 (kcal)

~热量转换系数                平均8000kcal增加体重1kg        =1/8000(kg/kcal)

 数学建模——管住嘴迈开腿——python实现

一、减肥计划的提出

阿数身高1.70m, 体重100kg, BMI高达34.6. 目前每周吸收20000kcal热量,体重长期未变.

制订减肥计划使体重减至75kg(BMI=26)并维持下去.

1. 在正常代谢情况下安排一个两阶段计划:    

第一阶段:吸收热量每周减少1000kcal, 直至达到     安全下限10000 kcal/周;

第二阶段:每周吸收热量保持下限, 达到减肥目标 .

2. 为加快进程而增加运动,重新安排两阶段计划.

3. 给出达到目标后维持体重不变的方案.

二.模型建立与解决

模型建立 由书可得基本模型如下:

由假设一,𝛼 =1/8000𝑘𝑔/𝑘𝑐𝑎𝑙。减肥计划的提出 通过制定一个具体的减肥计划讨论模型(1)的应用。某人身高1.70 𝑚,体重100 𝑘𝑔,𝐵𝑀𝐼高达34.6。自述目前每周吸收20000 𝑘𝑐𝑎𝑙热量,体重长期未变。试为他按照以下方式制订减肥计划,使其体
重减至75 𝑘𝑔(即𝐵𝑀𝐼 = 26)并维持下去:
1)在正常代谢情况下安排一个两阶段计划,第一阶段:吸收热量由20000 𝑘𝑐𝑎𝑙 每周减少1000 𝑘𝑐𝑎𝑙,直至达到安全下限(每周10000 𝑘𝑐𝑎𝑙);第二阶段:每周吸收热量保持下限,直至达到减肥目标。
2)为加快进程而增加运动,重新安排两阶段计划。
3)给出达到目标后维持体重不变的方案。
减肥计划的制订 首先应确定某人的代谢消耗系数𝛽,根据他每周吸收𝑐 =20000 𝑘𝑐𝑎𝑙热量,体重𝑤 = 100 𝑘𝑔不变,在(1)式中令𝑤( 𝑘 + 1 ) = 𝑤(𝑘) =𝑤,𝑐(ℎ) = 𝑐,得

数学建模——管住嘴迈开腿——python实现

于是

数学建模——管住嘴迈开腿——python实现

相当于每周每千克体重消耗热量20000/100= 200 𝑘𝑐𝑎𝑙。从假设 2 可以知道,某人属于正常代谢消耗相当弱的人。他又吃得那么多,难怪如此之胖。

正常代谢情况下的两阶段计划。第一阶段要求吸收热量由20000 𝑘𝑐𝑎𝑙每周减少1000 𝑘𝑐𝑎𝑙(由表 2,如每周减少米饭和瘦肉各350 𝑔),达到下限𝑐𝑚𝑖𝑛 = 10000 𝑘𝑐𝑎𝑙,即第十周达到下限

数学建模——管住嘴迈开腿——python实现

将𝑐(𝑘)及𝛼 =1/8000,𝛽 = 0.025代入(1)式,可得

数学建模——管住嘴迈开腿——python实现

(4)式虽是一阶线性常系数差分方程,但因右端含有时间变量𝑘,不能直接应用基础知识6 − 1的求解公式。更方便的办法是,以𝑤(1) = 100 𝑘𝑔为初始值,按照(4)式编程计算,可得第11周(初)体重𝑤(11) = 90 𝑘𝑔。第二阶段要求每周吸收热量保持下限𝑐𝑚𝑖𝑛,由(1)式可得

数学建模——管住嘴迈开腿——python实现

以第一阶段的终值𝑤(11)为第二阶段的初值,按照(5)式编程计算,直至𝑤(11 + 𝑛) ≤ 75 𝑘𝑔为止,可得𝑤(11 + 19) ≤ 75𝑘𝑔,即每周吸收热量保持下限10 000 𝑘𝑐𝑎𝑙,再有29周体重可减至75 𝑘𝑔。两阶段共需39周。
为加快进程而增加运动。记表3中热量消耗为𝛾,每周运动时间为𝑡 ℎ,在(1)式中将𝛽改为𝛽 + 𝑜𝛾𝑡,即

数学建模——管住嘴迈开腿——python实现

类似的计算可得,𝑤(11) = 90 𝑘𝑔, 𝑤( 11 + 13) = 74.196𝑘𝑔,即若增加𝛼𝛾𝑡 =0.005的运动,就可将第二阶段的时间缩短为13周。由𝛼 =1/8000可知,增加的运动内容应满足𝛾𝑡 = 40,可从表中选择合适的运动形式和时间,如每周步行7 ℎ加乒乓4 ℎ。两阶段共需23周,增加运动的效果非常明显。将正常代谢和增加运动两种情况下的体重𝑤(𝑘)作图。
 

数学建模——管住嘴迈开腿——python实现

由(9)式,在正常代谢下(𝛾 = 0)可算出𝑐 = 15000 𝑘𝑐𝑎𝑙;若增加𝛾𝑡 = 40的运动,则𝑐 = 18000 𝑘𝑐𝑎𝑙。实际上,如果在减肥计划的开始,就让某人每周吸收热量由20000 𝑘𝑐𝑎𝑙直接减至𝑐 = 15000 𝑘𝑐𝑎𝑙,那么他的体重也将逐渐下降,很长时间以后(理论上是无穷长)才会降到75 𝑘𝑔。而若每周吸收热量减至14000 𝑘𝑐𝑎𝑙,13000 𝑘𝑐𝑎𝑙,12 000 𝑘𝑐𝑎𝑙,体重下降速度将加快,直接按照(1)式计算,得到的曲线

三、改变计划

如果例子中的阿数只想在一个月内瘦十斤,那么他应该如何制定减肥计划?

1.确定采用哪一阶段的减肥计划。

2.给出每周应该摄入的热量,以及运动的方式和时间。

按一个月分为四周来算,即d(4,95)

由python画出画出点d的位置,可以看到在正常的代谢减肥计划中是不可能实现的,则我们选择增加运动,且我们要重新制定减肥计划

数学建模——管住嘴迈开腿——python实现

2、重新制定减肥计划

改变数学建模——管住嘴迈开腿——python实现的值即运动量和运动时间即可

这里我们主要确定 数学建模——管住嘴迈开腿——python实现中的

这里我运用python来求解(代码在后)

运用估计的方法来求(大取小,小取大,如下图)

数学建模——管住嘴迈开腿——python实现估计值=0.965

数学建模——管住嘴迈开腿——python实现=0.035=0.01    =1/8000

=80

 数学建模——管住嘴迈开腿——python实现

使用第一阶段

给出每周应该摄入的热量,以及运动的方式和时间。

第一阶段每周减1000kcal

则下降4周,则20000 – 4*1000 = 16000

第一周

19000

第二周

18000

第三周

17000

第四周

16000

 数学建模——管住嘴迈开腿——python实现

=80

比如:每周跑步10h加步行3h

比如:每周步行,乒乓各10h

 检验 “每周体重减少量<=1.5kg”

数学建模——管住嘴迈开腿——python实现

 我们发现这样安排减肥,是合理的,也是有效的

代码:

画出正常代谢和增加运动与计划点的差别

import matplotlib.pyplot as plt
w=100
W=[100]
K=[0]

for k in range(1, 11):
    w= w * 0.975 + 2.5 - 0.125 * k
    W.append(w)
    K.append(k)

for k in range(11, 36):
    w = w * 0.975 + 1.25
    W.append(w)
    K.append(k)

Wi=[100]
Ki=[0]
w=100
for k in range(1, 11):
    w= w * 0.97 + 2.5 - 0.125 * k
    Wi.append(w)
    Ki.append(k)

for k in range(11, 36):
    w = w * 0.97 + 1.25
    Wi.append(w)
    Ki.append(k)



#画图
plt.plot(K,W,label='正常代谢')
plt.plot(Ki,Wi,label='增加运动')
plt.scatter(4,95,s=60,color='g')

plt.legend()

#标签
plt.title('管住嘴迈开腿', fontsize=24)
plt.xlabel("k/周", fontsize=14)
plt.ylabel("w/kg", fontsize=14) # 设置刻度标记的大小

# 设置刻度标记的大小
plt.tick_params(axis='both', labelsize=14)

# 用黑体显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.show()

制定新计划的减肥图:

先标记目标点,然后不断改变数学建模——管住嘴迈开腿——python实现的值,直到经过标记点即可。计算出的值

根据表来制定训练计划。

import matplotlib.pyplot as plt
Wi=[100]
Ii=[0]
w=100
p=[]

for i in range(1,5):
    w=w*0.965+2.5-0.125*i
    Wi.append(w)
    Ii.append(i)
    T=Wi[i-1]-Wi[i]
    p.append(T)
    print("第%d周,减了%f kg,体重%f kg"%(i,T,w))

print("四周总共减了:",p[0]+p[1]+p[2]+p[3],'kg')
#print(Wi)
# 画图
plt.plot(Ii,Wi)
plt.scatter(4,95,s=60,color='g')
#标签
plt.title('管住嘴迈开腿', fontsize=24)
plt.xlabel("k/周", fontsize=14)
plt.ylabel("w/kg", fontsize=14) # 设置刻度标记的大小

# 设置刻度标记的大小
plt.tick_params(axis='both', labelsize=14)

# 用黑体显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.show()

输出结果

 数学建模——管住嘴迈开腿——python实现文章来源地址https://www.toymoban.com/news/detail-475107.html

到了这里,关于数学建模——管住嘴迈开腿——python实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学建模--PageRank算法的Python实现

       P a g e R a n k PageRank P a g e R ank 算法是现代数据科学中用于图链接分析的经典方法,最初由 L a r r y Larry L a rry P a g e Page P a g e 和 S e r g e y Sergey S er g ey B r i n Brin B r in 在1996年提出。两位斯坦福大学研究生认为互联网上的链接结构能够反映页面的重要性,与当时基于

    2024年01月23日
    浏览(38)
  • 数学建模--非整数规划求解的Python实现

    目录 1.算法流程简介 2.算法核心代码 3.算法效果展示

    2024年02月10日
    浏览(40)
  • 数学建模--多项式拟合方法Python实现

    目录    1.算法设计思路  2.算法核心代码  3.算法效果展示 1.算法设计思路  2.算法核心代码  3.算法效果展示

    2024年02月07日
    浏览(42)
  • 数学建模--线性规划方法的Python实现

    目录   1.算法求解问题   2.算法求解思路   3.算法求解代码   4.算法求解结果   

    2024年02月09日
    浏览(34)
  • 数学建模--Topsis评价方法的Python实现

    目录 1.算法流程简介 2.算法核心代码 3.算法效果展示  

    2024年02月09日
    浏览(42)
  • 数学建模__非线性规划Python实现

    线性规划指的是目标模型均为线性,除此以外的都是非线性规划,使用scipy提供的方法对该类问题进行求解。

    2024年02月07日
    浏览(48)
  • 数学建模:BP神经网络(含python实现)

      BP 神经网络,也称为多层感知机(Multilayer Perceptron,MLP),是一种常见的神经网络模型,用于解决各种机器学习问题,包括分类和回归。BP 代表“反向传播”(Backpropagation),这是该模型训练的关键算法。   BP 神经网络由多个神经元组成,通常分为输入层、隐藏层和输

    2024年02月20日
    浏览(39)
  • 数学建模--Seaborn库绘图基础的Python实现

    目录 1.绘图数据导入 2. sns.scatterplot绘制散点图 3.sns.barplot绘制条形图 4.sns.lineplot绘制线性图  5.sns.heatmap绘制热力图  6.sns.distplot绘制直方图  7.sns.pairplot绘制散图  8.sns.catplot绘制直方图 9.sns.countplot绘制直方图  10.sns.lmplot绘回归图        

    2024年02月10日
    浏览(31)
  • 数学建模--退火算法求解最值的Python实现

    目录 1.算法流程简介 2.算法核心代码 3.算法效果展示

    2024年02月09日
    浏览(40)
  • 数学建模--粒子群算法(PSO)的Python实现

    目录  1.开篇提示 2.算法流程简介 3.算法核心代码 4.算法效果展示 本题中需要处理的问题是:(设置搜索空间维度为20,范围为[-10,10])

    2024年02月10日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包