如何使Maxima存储函数输出?

时间:2019-02-24 06:40:49

标签: maxima

我在Maxima中具有后勤地图功能,如下所示:

F(x,r,n):= x[n]=r*x[n-1]*(1-x[n-1]);

当我输入正确的变量时,它会给我答案,例如x [0]:

(%i15)  n:0$
x[n-1]:[0.1]$
F(x, r:3, n);
(%o15)  x[0]=[0.27]

但是,这个答案并没有记住,当我输入x [0]时得到

    x[0];
(%o5)   x[0]

我该如何编写一个为我计算x [n]并将其存储在内存中的函数,以便以后使用?我试图在不使用任何黑匣子(即轨道函数)的情况下为后勤图制作分叉图。

谢谢!

1 个答案:

答案 0 :(得分:1)

有不同的解决方法。一种简单的方法是创建一个列表,然后进行迭代,一个接一个地计算其元素。例如:

(%i4) x: makelist (0, 10);
(%o4)            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
(%i5) x[1]: 0.1;
(%o5)                          0.1
(%i6) r: 3;                       
(%o6)                           3
(%i7) for i:2 thru 10 do x[i]: r * x[i - 1] * (1 - x[i - 1]);
(%o7)                         done
(%i8) x; 
(%o8) [0.1, 0.2700000000000001, 0.5913000000000002, 
0.7249929299999999, 0.5981345443500454, 0.7211088336156269, 
0.603332651091411, 0.7179670896552621, 0.6074710434816448, 
0.7153499244388992]

请注意,:是赋值运算符,而不是=