如何按元素对两个 Maxima/LISP-lists 求和,以便在嵌入 Moodle STACK-exam 的 JSXgraph 中使用它们?

How to sum two Maxima/LISP-lists elementwise, in order to use them in a JSXgraph embedded in a Moodle STACK-exam?

标题说的是什么。我正在尝试构建一个图形化的 two-variable 优化问题,供学生使用 STACK-type Moodle-question 解决,它使用 Maxima 作为处理数学的后端。我试过以下方法:

/*Constants*/
c1 : rand_with_step(0,15,0.1);
c2 : c1 + 2;
c3 : c1 + 1;
c4 : c1;

/*Solutions*/
OptimiPa : [c3,c1];
za : -1 * OptimiPa[1] + 2 * OptimiPa[2];

OptimiPb : [c3 + 1/2,c3 - 1/2];
zb : 2 * OptimiPb[1] + OptimiPb[2];

OptimiPc : [c1,c1];
zc : OptimiPc[1]  + 3 * OptimiPc[2] 

OptimiPd : [];
zd : inf;

/*Variables for drawing*/
a : 1000000;
b : a - 1;

/*Variables for drawing lines*/
OptimiPa2 : OptimiPa + [1,0.5];

然而,当插入 JSXgraph 时,这不会产生预期的结果:

<jsxgraph style="width=500em;height=500em"; box="uniqueName">(function() {

var board = JXG.JSXGraph.initBoard('uniqueName', {boundingbox:['{#c3-5#}','{#c2+2#}','{#c3+3#}', '{#c1-2#}'], keepaspectratio: true,zoom:false});

/*Axes*/
var axis1 = board.create('axis', [['{#c3-5#}','{#c1#}'], ['{#c3+3#}', '{#c1#}']]);
var axis2 = board.create('axis', [['{#c1#}','{#c1-5#}'], ['{#c1#}', '{#c2+3#}']]);

/*Polygon angles*/
var k1 = board.create('point', ['{#c3#}','{#c1#}'],{visible:false});
var k2 = board.create('point', ['{#c1#}','{#c1#}'],{visible:false});
var k3 = board.create('point', ['{#c1-a#}','{#-(-c1-a)#}'],{visible:false});
var k4 = board.create('point', ['{#c1-b#}','{#2 - (-c1 - b)#}'],{visible:false});
var k5 = board.create('point', ['{#c1+3/2#}','{#(c1 + 3/2) - 1#}'],{visible:false});

/*Optimization area as a polygon*/
var optAl = board.create('polygon',[k1,k2,k3,k4,k5],{borders: {visible: true},vertices: {visible: false}});


/*Points for drawing lines*/
var pa1 = board.create('point', '{#OptimiPa#}',{visible:false});
var pa2 = board.create('point', '{#OptPa2#}',{visible:false});

/*Lines*/
var suoraA = board.create('line',[pa1,pa2]);

})();
</jsxgraph>

我在这里做错了什么?图像的其余部分看起来很好,但是 suoraA 行没有出现在图中。

编辑:根据@jkiiski 的观点修复了代码,但问题仍然存在。在下面查看部分答案。

好吧,@jkiiski 提出的观点是问题的一部分,但我现在发现了问题所在。变量 OptimiPa2 是一个列表,显然 STACK 出于某种原因不喜欢直接使用 '{#variable_name#}' 语法访问 list 类型的变量,即使这应该有效。对我来说解决问题的是手动访问列表元素并将其输入到新列表中,然后我将其作为参数提供给 point "constructor":

/*Pisteitä suoria varten*/
var pa1 = board.create('point', ['{#OptimiPa[1]#}','{#OptimiPa[2]#}'],{visible:true});
var pa2 = board.create('point', ['{#OptmiPa2[1]#}','{#OptmiPa2[2]#}'],{visible:true});

/*Suoria*/
var suoraA = board.create('line',[pa1,pa2]);

这给了我下面的图像:

这是我想要实现的,尽管我希望输入列表作为 JSXGraph 的参数更容易。再说一次,我可能只是做错了。

编辑:引用列出了@jkiiski 在评论中建议的方法,尽管我发誓我之前尝试过但没有用。