离散时间动力系统的 Sage 实现
Sage implementation for discrete–time dynamical system
x1=18;x2 = 10
f1_0=(40)*x1*(100000-x1-x2)-x1;k1_0=f1_0+x1;k1_0.n()
f2_0=(1/3)*x1;k2_0=f2_0+x2;k2_0.n()
######################################################
x1=k1_0.n();x2=k2_0.n()
f1_1=(40)*x1*(100000-x1-x2)-x1;k1_1=f1_1+x1;k1_1.n()
f2_1=(1/3)*x1;k2_1=f2_1+x2;k2_1.n()
######################################################
x1=k1_1.n();x2=k2_1.n()
f1_2=(40)*x1*(100000-x1-x2)-x1;k1_2=f1_2+x1;k1_2.n()
f2_2=(1/3)*x1;k2_2=f2_2+x2;k2_2.n()
因此,如您所见,我有 x1
和 x2
的初始值,然后将其插入函数 f1
和 f2
,然后我调用了一个新的变量 k1
就是 f1+x1
,我对 f2
做了同样的事情。然后,我的结果 k1
和 k2
成为 x1
和 x2
的新值,依此类推。我想多次这样做,但我觉得没有 for 循环为 N
次迭代执行此操作有点愚蠢。我正在尝试在 Sage 中这样做。我在 Sage 中查找了一些编码,例如使用牛顿法。但我看到他们都在编程中使用单个变量。有人能让我着手解决这个问题的代码吗?
原则上,您只需重命名即可。在这里,我将 -*x1
替换为 -x1
,但根据我得到的数字,我认为这是不正确的。
x1=18;x2 = 10
for i in range(10):
f1=(40)*x1*(100000-x1-x2)-x1
k1=f1+x1
f2=(1/3)*x1
k2=f2+x2
print k1, k2
x1=k1.n()
x2=k2.n()
x1=18;x2 = 10
f1_0=(40)*x1*(100000-x1-x2)-x1;k1_0=f1_0+x1;k1_0.n()
f2_0=(1/3)*x1;k2_0=f2_0+x2;k2_0.n()
######################################################
x1=k1_0.n();x2=k2_0.n()
f1_1=(40)*x1*(100000-x1-x2)-x1;k1_1=f1_1+x1;k1_1.n()
f2_1=(1/3)*x1;k2_1=f2_1+x2;k2_1.n()
######################################################
x1=k1_1.n();x2=k2_1.n()
f1_2=(40)*x1*(100000-x1-x2)-x1;k1_2=f1_2+x1;k1_2.n()
f2_2=(1/3)*x1;k2_2=f2_2+x2;k2_2.n()
因此,如您所见,我有 x1
和 x2
的初始值,然后将其插入函数 f1
和 f2
,然后我调用了一个新的变量 k1
就是 f1+x1
,我对 f2
做了同样的事情。然后,我的结果 k1
和 k2
成为 x1
和 x2
的新值,依此类推。我想多次这样做,但我觉得没有 for 循环为 N
次迭代执行此操作有点愚蠢。我正在尝试在 Sage 中这样做。我在 Sage 中查找了一些编码,例如使用牛顿法。但我看到他们都在编程中使用单个变量。有人能让我着手解决这个问题的代码吗?
原则上,您只需重命名即可。在这里,我将 -*x1
替换为 -x1
,但根据我得到的数字,我认为这是不正确的。
x1=18;x2 = 10
for i in range(10):
f1=(40)*x1*(100000-x1-x2)-x1
k1=f1+x1
f2=(1/3)*x1
k2=f2+x2
print k1, k2
x1=k1.n()
x2=k2.n()