喂喂喂,该减减肥啦!
来制定你的减肥计划吧!
模型假设
(1)体重增加正比于吸收的热量, 平均8000kcal 增加体重1kg.
(2)代谢引起的体重减少正比于体重, 每周每千克 体重消耗200 ~ 320kcal (因人而异).70kg每天消耗2000 ~ 3200kcal.
(3)运动引起的体重减少正比于体重, 且与运动 形式和运动时间有关.
(4)为了安全与健康, 每周吸收热量≥10000kcal,且每周 减少量≤1000kcal; 每周体重减少量≤ 1.5kg.
食物每百克所含热量
食物 |
米饭 |
豆腐 |
青菜 |
苹果 |
瘦肉 |
鸡蛋 |
热量(kcal/100g) |
120 |
100 |
20~30 |
50~60 |
140~160 |
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)
一、减肥计划的提出
阿数身高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 ) = 𝑤(𝑘) =𝑤,𝑐(ℎ) = 𝑐,得
于是
相当于每周每千克体重消耗热量20000/100= 200 𝑘𝑐𝑎𝑙。从假设 2 可以知道,某人属于正常代谢消耗相当弱的人。他又吃得那么多,难怪如此之胖。
正常代谢情况下的两阶段计划。第一阶段要求吸收热量由20000 𝑘𝑐𝑎𝑙每周减少1000 𝑘𝑐𝑎𝑙(由表 2,如每周减少米饭和瘦肉各350 𝑔),达到下限𝑐𝑚𝑖𝑛 = 10000 𝑘𝑐𝑎𝑙,即第十周达到下限
将𝑐(𝑘)及𝛼 =1/8000,𝛽 = 0.025代入(1)式,可得
(4)式虽是一阶线性常系数差分方程,但因右端含有时间变量𝑘,不能直接应用基础知识6 − 1的求解公式。更方便的办法是,以𝑤(1) = 100 𝑘𝑔为初始值,按照(4)式编程计算,可得第11周(初)体重𝑤(11) = 90 𝑘𝑔。第二阶段要求每周吸收热量保持下限𝑐𝑚𝑖𝑛,由(1)式可得
以第一阶段的终值𝑤(11)为第二阶段的初值,按照(5)式编程计算,直至𝑤(11 + 𝑛) ≤ 75 𝑘𝑔为止,可得𝑤(11 + 19) ≤ 75𝑘𝑔,即每周吸收热量保持下限10 000 𝑘𝑐𝑎𝑙,再有29周体重可减至75 𝑘𝑔。两阶段共需39周。
为加快进程而增加运动。记表3中热量消耗为𝛾,每周运动时间为𝑡 ℎ,在(1)式中将𝛽改为𝛽 + 𝑜𝛾𝑡,即
类似的计算可得,𝑤(11) = 90 𝑘𝑔, 𝑤( 11 + 13) = 74.196𝑘𝑔,即若增加𝛼𝛾𝑡 =0.005的运动,就可将第二阶段的时间缩短为13周。由𝛼 =1/8000可知,增加的运动内容应满足𝛾𝑡 = 40,可从表中选择合适的运动形式和时间,如每周步行7 ℎ加乒乓4 ℎ。两阶段共需23周,增加运动的效果非常明显。将正常代谢和增加运动两种情况下的体重𝑤(𝑘)作图。
由(9)式,在正常代谢下(𝛾 = 0)可算出𝑐 = 15000 𝑘𝑐𝑎𝑙;若增加𝛾𝑡 = 40的运动,则𝑐 = 18000 𝑘𝑐𝑎𝑙。实际上,如果在减肥计划的开始,就让某人每周吸收热量由20000 𝑘𝑐𝑎𝑙直接减至𝑐 = 15000 𝑘𝑐𝑎𝑙,那么他的体重也将逐渐下降,很长时间以后(理论上是无穷长)才会降到75 𝑘𝑔。而若每周吸收热量减至14000 𝑘𝑐𝑎𝑙,13000 𝑘𝑐𝑎𝑙,12 000 𝑘𝑐𝑎𝑙,体重下降速度将加快,直接按照(1)式计算,得到的曲线
三、改变计划
如果例子中的阿数只想在一个月内瘦十斤,那么他应该如何制定减肥计划?
1.确定采用哪一阶段的减肥计划。
2.给出每周应该摄入的热量,以及运动的方式和时间。
按一个月分为四周来算,即d(4,95)
由python画出画出点d的位置,可以看到在正常的代谢减肥计划中是不可能实现的,则我们选择增加运动,且我们要重新制定减肥计划
2、重新制定减肥计划
改变的值即运动量和运动时间即可
这里我们主要确定 中的
这里我运用python来求解(代码在后)
运用估计的方法来求(大取小,小取大,如下图)
估计值=0.965
则=0.035则=0.01 且=1/8000
则=80
使用第一阶段
给出每周应该摄入的热量,以及运动的方式和时间。
第一阶段每周减1000kcal
则下降4周,则20000 – 4*1000 = 16000
第一周
19000
第二周
18000
第三周
17000
第四周
16000
取=80
比如:每周跑步10h加步行3h
比如:每周步行,乒乓各10h
检验 “每周体重减少量<=1.5kg”
我们发现这样安排减肥,是合理的,也是有效的
代码:
画出正常代谢和增加运动与计划点的差别
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()
制定新计划的减肥图:
先标记目标点,然后不断改变的值,直到经过标记点即可。计算出的值
根据表来制定训练计划。
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()
输出结果文章来源:https://www.toymoban.com/news/detail-475107.html
文章来源地址https://www.toymoban.com/news/detail-475107.html
到了这里,关于数学建模——管住嘴迈开腿——python实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!