举重比赛按照运动员的体重分组,拟合体重与总成绩的关系(老师布置的作业)

本文主要是介绍举重比赛按照运动员的体重分组,拟合体重与总成绩的关系(老师布置的作业),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

非常小白,有问题有错误,各位大佬请指正!!!!

问题:

在这里插入图片描述

1.符号假设

y y y 举重成绩

t t t 力度

s s s 肌肉横截面积

q q q 特征尺寸

w w w 体重

2.分析1

假设1

举重成绩与力度成正比,即 y ∝ t y = k 1 t y \propto t ~~~ y=k_{1}t yt   y=k1t

力度与肌肉横截面积成正比, 即 t ∝ s t = k 2 s t \propto s ~~~ t=k_{2}s ts   t=k2s

肌肉横截面积与某种特征尺寸成正比, 即 s ∝ q s = k 3 q s \propto q~~~ s=k_{3}q sq   s=k3q

体重与某种特征尺寸成正比, 即 w ∝ q w = k 4 q w \propto q~~~ w=k_{4}q wq   w=k4q

将上面的公式结合得, y = k 1 k 2 k 3 w k 4 y=\frac{k_{1}k_{2}k_{3}w}{k_{4}} y=k4k1k2k3w

3.模型1求解

集合表中数据利用最小二乘法的思想,来求关系式 y = k 1 k 2 k 3 w k 4 y=\frac{k_{1}k_{2}k_{3}w}{k_{4}} y=k4k1k2k3w的比例系数,利用python scipy库求解

程序,如下

from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
import numpy as np
from scipy.optimize import leastsq
def err(p, x, y):return p[0] * x  - y
p0 = [100]
Xi=np.array([54, 59, 64, 70, 76, 83, 91, 99, 108])
Yi=np.array([287.5, 307.5, 335, 357.5, 367.5, 392.5, 402.5, 420, 430])
ret = leastsq(err, p0, args = (Xi, Yi))
print (ret) 
import matplotlib.pyplot as plt
k = ret[0]
plt.figure(figsize=(8,6))
plt.scatter(Xi,Yi,color="red",label="Sample Point",linewidth=3)
x = np.linspace(50,110,1000)
y = k * x 
plt.plot(x,y,color="orange",label="Fitting Line",linewidth=2)
plt.xlabel("最大体重(y)/kg", fontsize=12)
plt.ylabel("总成绩(w)/kg", fontsize=12)
plt.legend()
plt.grid()
plt.show()  

结果:
在这里插入图片描述
由上图可以看出拟合度较差

猜测,用线性函数对举重成绩与体重进行拟合的模型过于简单

所以我们再次猜测

4.分析2

假设2

举重成绩与力度成正比,即 y ∝ t y = k 1 t y \propto t ~~~ y=k_{1}t yt   y=k1t

力度与肌肉横截面积成正比, 即 t ∝ s t = k 2 s t \propto s ~~~t=k_{2}s ts   t=k2s

肌肉横截面积与某种特征尺寸的平方成正比, 即 s ∝ q 2 s = k 3 q 2 s \propto q^{2}~~~ s=k_{3}q^{2} sq2   s=k3q2

体重与某种特征尺寸成正比, 即 w ∝ q w = k 4 q w \propto q~~~ w=k_{4}q wq   w=k4q

将上面的公式结合得, y = k 1 k 2 k 3 w 2 k 4 y=\frac{k_{1}k_{2}k_{3}w^{2}}{k_{4}} y=k4k1k2k3w2

5.模型2求解

集合表中数据利用最小二乘法的思想,来求关系式 y = k 1 k 2 k 3 w 2 k 4 y=\frac{k_{1}k_{2}k_{3}w^{2}}{k_{4}} y=k4k1k2k3w2的比例系数,利用python scipy库求解

即模型 y ∝ k w α y \propto kw^{\alpha} ykwα

程序,如下

from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
import numpy as np
from scipy.optimize import leastsq
Xi=np.array([54, 59, 64, 70, 76, 83, 91, 99, 108])
Yi=np.array([287.5, 307.5, 335, 357.5, 367.5, 392.5, 402.5, 420, 430])
def error(p,x,y):return p[0]*x**p[1]-y
p0 = [5,2]
ret = leastsq(error,p0,args=(Xi,Yi))
import matplotlib.pyplot as plt
plt.figure(figsize=(8,6))
plt.scatter(Xi,Yi,color="red",label="Sample Point",linewidth=3)
x = np.linspace(50,110,1000)
y = 32.74825487 * x ** 0.55553414
plt.plot(x,y,color="orange",label="Fitting Curve",linewidth=2)
plt.xlabel("最大体重(y)/kg", fontsize=12)
plt.ylabel("总成绩(w)/kg", fontsize=12)
plt.legend()
plt.grid()
plt.show()
from sympy import *
x = symbols('x')
e = 32.74825487 * x ** 0.55553414
print("函数:")
print(e)

结果:
在这里插入图片描述

函数:
32.74825487*x**0.55553414

从上图看出,模型2理论值与实际值非常接近
即求解

这篇关于举重比赛按照运动员的体重分组,拟合体重与总成绩的关系(老师布置的作业)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/794521

相关文章

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

Mysql如何将数据按照年月分组的统计

《Mysql如何将数据按照年月分组的统计》:本文主要介绍Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql将数据按照年月分组的统计要的效果方案总结Mysql将数据按照年月分组的统计要的效果方案① 使用 DA

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

python安装whl包并解决依赖关系的实现

《python安装whl包并解决依赖关系的实现》本文主要介绍了python安装whl包并解决依赖关系的实现,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、什么是whl文件?二、我们为什么需要使用whl文件来安装python库?三、我们应该去哪儿下

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

MYSQL关联关系查询方式

《MYSQL关联关系查询方式》文章详细介绍了MySQL中如何使用内连接和左外连接进行表的关联查询,并展示了如何选择列和使用别名,文章还提供了一些关于查询优化的建议,并鼓励读者参考和支持脚本之家... 目录mysql关联关系查询关联关系查询这个查询做了以下几件事MySQL自关联查询总结MYSQL关联关系查询

使用C#如何创建人名或其他物体随机分组

《使用C#如何创建人名或其他物体随机分组》文章描述了一个随机分配人员到多个团队的代码示例,包括将人员列表随机化并根据组数分配到不同组,最后按组号排序显示结果... 目录C#创建人名或其他物体随机分组此示例使用以下代码将人员分配到组代码首先将lstPeople ListBox总结C#创建人名或其他物体随机分组

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06