作者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/m.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