离散时间动力系统的Sage实现

时间:2017-03-28 03:59:33

标签: python algorithm sage

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()

所以,正如你看到我有x1x2的初始值,然后将其插入函数f1f2,然后我调用了一个新变量{ {1}}这只是k1,我为f1+x1做了同样的事情。然后,我的结果f2k1成为k2x1的新值,依此类推。我想多次这样做,但是我觉得有点愚蠢,没有for循环为x2次迭代做这件事。我试图在Sage中这样做。我使用牛顿的方法在Sage中查找了一些编码。但是我看到他们在编程中使用了一个变量。有人会让我从这个问题的代码开始。

1 个答案:

答案 0 :(得分:0)

原则上,您只需重命名。在这里,我已将-*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()