本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。
问题描述
大家都是通过高考考上大家心仪的学校的(当然也不乏一些保送的) 那么对于理科生来说一定 做过这一类的题:
一个质量为M球体在以V1的速度从光滑平面冲到一个光滑圆面上,圆的半径为R判断可不可以过最高点,若能则求其在到达最高点时圆面对球的压力。(已知g为?)
解决方案
以下输出结果单位为 “牛顿”
from math import *
def circular (R,V1,M,g):
V0=(V1**2-2*g*R)#由 物理中动能守恒的式子可以推出
if V0<0:
print("不可倒达最高点,N不存在")
elif V0==0:
print('该速度恰好到达最高点')
else:
V=sqrt(V0)
N=(M*(V**2)/R - M*g)
return N
V0=0#V为末速度的平方
V=0#V为末速度
N=0#F为最高点的圆面对球的压力
print('输入R,V1 并用“,”隔开')
R,V1=map(float,input().split(','))#R为圆的半径 V1为初速度
print('输入M,g 并用“,”隔开')
M,g =map(float,input().split(','))# M为物体质量 g为 题中的重力加速度
x=circular (R,V1,M,g)
print(x)
结语
这次的实验报告是我们的组员耗时两周,并且在请教助教以后最终完成的。从高中最常见物理题中获得启发,而联想到用python解决高中物理题有关圆周运动的最高点压力的问题,并且通过反复揣摩,独立自主的写出代码,完成实验。