作者hank546288 (hanker8862)
看板Python
标题[问题] 空气阻力code问题
时间Sun Oct 29 18:05:24 2017
这是我的code
我该怎麽让f会随着ball.v变化呢?
t=0
dt=0.001
m=5
g=-9.8
ball.a=g
p=1.2
c=0.5
A=0.25*pi
f=0.5*p*c*A*ball.v**2
while ball.pos.y>=0.5:
t=t+dt
rate(1000)
f+=0.5*p*c*A*(ball.a*dt)**2
ball.v+=ball.a*dt
ball.pos.y+=ball.v*dt
ball.a=ball.a+f/m
如果照我这样写 f会变成v^2+adt^2 但我要的是f=(v+adt)^2 不知道该怎麽写出来
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.252.208.7
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1509271526.A.67F.html
※ 编辑: hank546288 (111.252.208.7), 10/29/2017 18:32:29
1F:→ neil987: 把空气阻力简化看 f=kv^2 所以你下面 f+=kadt^2就会变成 10/29 20:17
2F:→ neil987: f = kv^2 +k adt^2 10/29 20:17
好的 谢谢你
※ 编辑: hank546288 (111.252.208.7), 10/29/2017 20:20:14
3F:→ neil987: v2=(v1+at) f2 = k(v2)^2 所以你只要改变v 再带入f=kv^2 10/29 20:20
所以我要在定义一个v2然後再把f定义出来吗?
※ 编辑: hank546288 (111.252.208.7), 10/29/2017 20:27:12
4F:→ neil987: 你while回圈里面 不是有v=v+adt吗= = 就是那个 10/29 20:29
5F:→ neil987: ball.v+=ball.a*dt f = k*ball.v**2 10/29 20:31
我把while回圈里的f改成f=k*ball.v**2後 a最後会跑到正值 是有少什麽吗?
※ 编辑: hank546288 (111.252.208.7), 10/29/2017 20:47:06
※ 编辑: hank546288 (111.252.208.7), 10/29/2017 20:55:11
6F:→ neil987: 你的v有先改吗 10/29 21:05
解决了 谢谢你
※ 编辑: hank546288 (114.35.47.124), 10/30/2017 10:17:37