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

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

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

问题:

在这里插入图片描述

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

相关文章

作业提交过程之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

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

Solr 使用Facet分组过程中与分词的矛盾解决办法

对于一般查询而言  ,  分词和存储都是必要的  .  比如  CPU  类型  ”Intel  酷睿  2  双核  P7570”,  拆分成  ”Intel”,”  酷睿  ”,”P7570”  这样一些关键字并分别索引  ,  可能提供更好的搜索体验  .  但是如果将  CPU  作为 Facet  字段  ,  最好不进行分词  .  这样就造成了矛盾  ,  解决方法

OpenCV结构分析与形状描述符(11)椭圆拟合函数fitEllipse()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C++11 算法描述 围绕一组2D点拟合一个椭圆。 该函数计算出一个椭圆,该椭圆在最小二乘意义上最好地拟合一组2D点。它返回一个内切椭圆的旋转矩形。使用了由[90]描述的第一个算法。开发者应该注意,由于数据点靠近包含的 Mat 元素的边界,返回的椭圆/旋转矩形数据

读软件设计的要素04概念的关系

1. 概念的关系 1.1. 概念是独立的,彼此间无须相互依赖 1.1.1. 一个概念是应该独立地被理解、设计和实现的 1.1.2. 独立性是概念的简单性和可重用性的关键 1.2. 软件存在依赖性 1.2.1. 不是说一个概念需要依赖另一个概念才能正确运行 1.2.2. 只有当一个概念存在时,包含另一个概念才有意义 1.3. 概念依赖关系图简要概括了软件的概念和概念存在的理

数据依赖基础入门:函数依赖与数据库设计的关系

在数据库设计中,数据依赖 是一个重要的概念,它直接影响到数据库的结构和性能。函数依赖 作为数据依赖的一种,是规范化理论的基础,对数据库设计起着至关重要的作用。如果你是一名数据库设计的初学者,这篇文章将帮助你理解函数依赖及其在数据库设计中的应用。 什么是数据依赖? 数据依赖 是指同一关系中属性间的相互依赖和制约关系,它是数据库设计中语义的体现。在现实世界中,数据之间往往存在某种依赖关系,而这

c++ 和C语言的兼容性关系

C++ 和 C 语言有很高的兼容性,但也存在一些差异和限制。下面是它们的兼容性关系的详细介绍: 兼容性 C++ 是 C 的超集: C++ 语言设计为兼容 C 语言的语法和功能,大部分 C 代码可以在 C++ 编译器中编译运行。 标准库兼容性: C++ 标准库包含了 C 标准库的内容,如 stdio.h、stdlib.h、string.h 等头文件,但 C++ 的标准库也提供了额外的功能,如

七、Maven继承和聚合关系、及Maven的仓库及查找顺序

1.继承   2.聚合   3.Maven的仓库及查找顺序