我在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]并将其存储在内存中的函数,以便以后使用?我试图在不使用任何黑匣子(即轨道函数)的情况下为后勤图制作分叉图。
谢谢!
答案 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]
请注意,:
是赋值运算符,而不是=
。