我正在尝试在for循环中创建一个增长的向量,即向量用一个元素初始化(让我们称之为q_1),在循环的下一次迭代中,向量由第二个元素扩展(让称之为q_2)等等。每个元素都是一个符号元素,取决于另一个独立元素(在我的例子中是时间t)。
总的想法是创建一个不断增长的二阶ODE,我想在每个循环中解决和绘制。
我已经实现的第一步是for循环,但我很难在循环中创建一个新的符号变量。我的第一个想法是通过名称创建变量,因此我可以使用循环的迭代索引i并在每个循环中创建一个新的唯一字符串,但我不知道如何使用Maxima完成此操作。
答案 0 :(得分:2)
有各种各样的方式。
u[1], u[2], u[3], ...
。gensym()
返回类似g4282
的内容,然后下次gensym()
返回g4283
等等。concat
构建符号,例如concat('foo, 3)
返回foo3
。这是最后一个度假村的解决方案。在重新选择CONCAT之前尝试任何行动。这样做很容易搞得一团糟。如果您显示目前的代码,也许我可以提供更具体的建议。
答案 1 :(得分:0)
在接受的答案的基础上,以下是concat
循环的示例(使用for
方法)创建矩阵M
,其中包含"索引"符号e_ij
作为元素:
M: zeromatrix(6,6)$
for r: 1 thru 6 do (
for c: 1 thru 6 do (
M[r][c]: concat('e_,r,c)
)
)$