我在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]并将其存储在内存中的函数,以便以后可以使用它?我试图为逻辑地图制作分叉图,而不使用任何黑盒子,即轨道功能。
谢谢!
有不同的方法可以解决它。一种直接的方法是创建一个列表然后迭代,逐个计算它的元素。例如。:
(%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]
请注意,:
是赋值运算符,而不是=
。