簡體   English   中英

不需要的無限 While 循環與 Python 3

[英]Unwanted Infinite While Loop with Python 3

v0=1
alpha=1
t=0
dt=0.1
v = v0 - alpha*np.sqrt(v0)*dt
while v > 0:
    print(v,t)
    v0 = v
    t = t+dt

我的意圖是在第一次檢查 v>0 之后,我們在重新執行檢查之前讓 v0 等於 v。 相反,我看到的是第一個計算出的 v = 0.9 的無限流

您需要使用更新后的參數每次通過循環重新計算v

import numpy as np

v0=1
alpha=1
t=0
dt=0.1
v = v0 - alpha*np.sqrt(v0)*dt

while v > 0:
    print(v,t)
    v0 = v
    t = t+dt
    v = v0 - alpha*np.sqrt(v0)*dt

輸出:

0.9 0
0.805131670195 0.1
0.715402540577 0.2
0.630821068577 0.30000000000000004
0.551396823627 0.4
0.477140724644 0.5
0.408065350983 0.6
0.34418535795 0.7
0.28551804525 0.7999999999999999
0.232084156635 0.8999999999999999
0.183909043077 0.9999999999999999
0.141024425429 1.0999999999999999
0.103471206469 1.2
0.0713042659134 1.3
0.0446014072812 1.4000000000000001
0.0234823620184 1.5000000000000002
0.00815840625677 1.6000000000000003
v0=1
alpha=1
t=0
dt=0.1
v = v0 - alpha*np.sqrt(v0)*dt
while v > 0:
    print(v,t)
    v0 = v
    t = t+dt
    v = v0 - alpha*np.sqrt(v0)*dt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM