看板 Python 關於我們 聯絡資訊
這是我的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://www.ptt.cc/bbs/Python/M.1509271526.A.67F.html ※ 編輯: hank546288 (111.252.208.7), 10/29/2017 18:32:29
neil987: 把空氣阻力簡化看 f=kv^2 所以你下面 f+=kadt^2就會變成 10/29 20:17
neil987: f = kv^2 +k adt^2 10/29 20:17
好的 謝謝你 ※ 編輯: hank546288 (111.252.208.7), 10/29/2017 20:20:14
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
neil987: 你while迴圈裏面 不是有v=v+adt嗎= = 就是那個 10/29 20:29
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
neil987: 你的v有先改嗎 10/29 21:05
解決了 謝謝你 ※ 編輯: hank546288 (114.35.47.124), 10/30/2017 10:17:37