当我想减肥的时候,我想起用python科学建模【matplotlib]】

起因

近期因疫情影响,体重居高不下,且每日都有上升的趋势。此情此景我不得不展开减肥大计。于是乎

ing

通过几篇论文的查询,得到了一些公式,将其用python建模得到代码:

import matplotlib.pyplot as plt
import matplotlib
import math


font = {'family' : 'MicroSoft YaHei',
        'weight': 'bold',
        'size': 12}
matplotlib.rc('font', **font)

weight = float(input('体重:'))
height = float(input('身高:'))
age = float(input('年龄:'))
sex = input('性别:')
in_k = float(input('平均每日输入卡路里:'))
act = float(input('运动:'))
time = float(input('运动时间:'))
BMI = float(input('理想BMI:'))



day = 0
days = []
bias = 1
base = 0
consumes = 0
consume = 0
while weight*10000/height/height > BMI:
# while day < 100:
    need_k = 0

    if sex == '男':
        need_k = 13.88 * weight + 4.16 * height - 3.43 * age + 54.34
    else:
        need_k = 13.88 * weight + 4.16 * height - 3.43 * age - 58.06

    consumes = consume
    consume = (need_k + act * time - in_k) * bias
    if consume < 0:
        print("你的摄入大于消耗,无法减肥")
        break
    if day != 0:
        bias = math.sqrt(consume / consumes) * bias
    loose_weight = consume / 7700 * 1.5
    weight -= loose_weight
    days.append(weight)
    day += 1

plt.figure(figsize=(20, 10), dpi=80)
str_title = '你的'+str(day)+'减肥计划'
plt.title(str_title)
x_labels = ['{}days'.format(i) for i in range(len(days))]
plt.xticks(range(0, len(days), 5), x_labels[::5], rotation=45)
plt.yticks(range(40, 80))
plt.plot(range(len(days)), days, label='减肥曲线', color='cyan')
plt.xlabel('天数')
plt.ylabel('体重')
plt.grid(alpha=0.99)
plt.legend()
plt.savefig('loose_weight.png')
plt.show()

需要注意,这里的运动是每小时消耗的热量单位【实际上原本是打算按照散步与体重等的关系建模,然鹅没找到公式】

结果

输入:
在这里插入图片描述在这里插入图片描述
好的,减肥计划已生成,可以开始锻炼减肥了。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值