用Python解决物理问题

import numpy as np
import math
import matplotlib.pyplot as plt
from math import pi,e

def rain(v,t):
r = 0.001
g = 9.8
v0 = 140
Ff = 0.87vrvr
p1 = 1000
p2 = 1
mg = 4/3pirrrp1g
m = 4/3pirrrp1
F = 4/3
pirrrp2g
G = (mg-F)/m
B = 0.87
rr/m
b = B
t
v = math.sqrt(G/B*(1-e**-b))
x = np.arange(0,t,0.1)
y = [v for t in np.arange(0,t,0.1)]
plt.title("The ultimate speed of raindrops")
plt.xlabel("t")
plt.ylabel("v")
plt.plot(x,y,label="v-t")
plt.show()

if name=="main":
v = float(input("请输入雨滴的半径r: "))
t = int(input("请输入雨滴下落时长t: "))
rain(v,t)

图像一直是一条直线,原题大概是雨滴落下来做变加速直线运动,图像应该是曲线

你的速度曲线公式调用没有初速度V的参与和时间的参与

y = [v for t in np.arange(0,t,0.1)]

你改变了T的值也是一个成直线的原因建议修改如下

y = [v for i in np.arange(0,t,0.1)]

y轴数据
在上面的公式中一直是v v是一个恒定值由

v = math.sqrt(G / B * (1 - e ** -b))

决定,所以当v计算出的那一刻就将注定这个是一条直线
你看看公式是否与程序对应.函数rain中传入的初速度V在被下面语句使用后就再也没使用;了

 Ff = 0.87 * v ** 2 * r ** 2

而Ff也未被使用