X_next
在每次迭代中都得到更新,但是尽管我在每次迭代中都进行了XList.append(X_next)
,但在 last 迭代中仅计算出了X_next
在每次迭代时附加。您可以在每次迭代X_next
和XList
循环之后for
打印它们的过程中看到它们。
代码:
import pylab as pl
def acc(x):
return -1 - x
X_prev = pl.array([1, 0])
X_next = pl.array([0., 0])
dt = 0.1
XList =[]
for i in range(0, 10):
x1 = X_prev[0] + X_prev[1]*dt/2
X_next[1] = X_prev[1] + acc(x1)*dt
X_next[0] = x1 + X_next[1]*dt/2
print(X_next)
XList.append(X_next)
X_prev = X_next
print(XList)
结果:
[ 0.99 -0.2 ]
[ 0.9601 -0.398 ]
[ 0.910599 -0.59202 ]
[ 0.84199201 -0.7801198 ]
[ 0.7549651 -0.9604184]
[ 0.65038854 -1.13111282]
[ 0.52930809 -1.29049611]
[ 0.39293456 -1.43697444]
[ 0.24263169 -1.56908302]
[ 0.0799025 -1.68550078]
[array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078])]
问题:为什么会这样以及如何解决呢?