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

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

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

问题:

在这里插入图片描述

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

相关文章

在 Java 中,JDK、JRE、JVM 分别代表什么,有何关系和区别?

在Java开发的世界中,我们会经常听到JDK、JRE和JVM这三个词。它们都与Java的运行环境以及Java程序的编译和运行有关,它们之间也存在一些关联性和区别。 什么是JDK、JRE和JVM 我们来看它们分别是什么。 JDK,全称Java Development Kit,即Java开发工具包。顾名思义,JDK是用于Java开发的一套工具包,里面包含了Java的编译器javac、

【Python如何输入升高和体重判断你是偏胖还是偏瘦】

1、求体质指数得Python代码如下: # BMI(Body Mass Index)指数:简称体质指数,# 是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。# 常用指标:BMI<18.5 偏瘦 18.5<=MBI<=24 正常 MBI>24 偏胖# 计算公式:BMI=体重kg/身高的平方ma = eval(input("请输入你的体重(kg):")) # 输入体重b = e

1_CString char* string之间的关系

CString转char*,string string转char*,CString char* 转CString,string 一、CString转char*,string //字串转换测试 CString CString1; std::string string1; CHAR* char1=NULL; //1string1=CString1.GetBuffer();CStri

基于NURBS曲线的数据拟合算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1NURBS曲线基础 4.2 数据拟合原理 5.完整程序 1.程序功能描述        基于NURBS曲线的数据拟合算法,非均匀有理B样条(Non-Uniform Rational B-Splines,简称NURBS)曲线是一种强大的数学工具,广泛应用于计算机图形学、CAD/CA

Mysql数据库约束的概述 , 逐渐约束 , 主键自增 , 表关系的概念和外键 ,多表关系约束介绍和使用

约束和表设计 1、DQL查询语句-limit语句(掌握) 目标 能够掌握limit语句的使用 讲解 作用: LIMIT是限制的意思,所以LIMIT`的作用就是限制查询记录的条数。 LIMIT语句格式: select * from 表名 limit offset, row_count;mysql中limit的用法:返回前几条或者中间某几行数据-- 1 表示分页查询的索引,对应数

抽象类和接口之间的关系

1。类可以实现多个接口而只能继承一个超类。 2。抽象类可以有非抽象方法而接口的方法只能都是抽象的。 3。抽象类可以定义和使用变量而接口则不可以。 4。抽象类中的方法可以有各种不同的修饰符,而接口中的方法默认都是public,不允许字面定修饰符。 一个接口中的成员函数可以在不同的类中安装,而它的成员函数可以有很多种的实现方法,但是抽象类却不能象这样,它必须是由子类来继承,然后由子类来实现它的

力扣SQL50 求关注者的数量 分组计数

Problem: 1729. 求关注者的数量 Code select user_id, count(1) followers_countfrom Followers group by user_idorder by user_id;

材质、纹理、贴图的关系

材质、纹理、贴图的关系 材质 (Material)包含贴图 (Map),贴图包含纹理 (Texture)。 纹理(Texture)是最基本的数据输入单位。

机器学习基础:与Python关系和未来发展

目录 初识Python Python的由来 自由软件运动 编译方式的演进 Python语言的特点 语法简单,易于理解 语法结构清晰,快速上手 丰富的第三方库 机器学习 监督学习 无监督学习 半监督学习         欢迎回到我们的神经网络与深度学习Tensorflow实战学习,本篇为人工智能学习第三篇文章。前面的文章中我们学习安装了Tensorflow-GPU,在本

学生作业管理系统设计文档

一、项目概述 本系统设计文档旨在为学生作业管理系统提供一个全面的设计方案。该系统旨在提高作业管理的效率,减轻教师的工作负担,并为学生提供一个清晰、便捷的作业提交和查看平台。系统需具备作业发布、作业提交、作业批改、成绩查看等基本功能,同时保证系统的稳定性、可扩展性和易用性。 二、系统功能性需求 1.用户管理 用户注册与登录 用户角色管理(教师、学生、管理员) 用户信息修改与查看 2.作业管