如何让Maxima存储功能输出?

问题描述 投票:1回答:1

我在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]并将其存储在内存中的函数,以便以后可以使用它?我试图为逻辑地图制作分叉图,而不使用任何黑盒子,即轨道功能。

谢谢!

maxima
1个回答
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]

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

© www.soinside.com 2019 - 2024. All rights reserved.