我正在Maxima(在Moodle STACK中)执行以下操作:
c : matrix([5],[3],[1],[0],[0])
x : matrix([x1],[x2],[x3],[s1],[s2]);
base0 : matrix([0],[0],[5],[0],[1]);
z : transpose(c).x;
zval : subst(base0,x,z);
但是我得到的输出是x3+3⋅x2+5⋅x1
,它应该是函数z
在点base0
处的数值。不久前,我有了a similar problem和solve
函数,但是这次甚至没有像这样将组件显式插入表达式中
zval : subst(matrix([0],[0],[5],[0],[1]),matrix([x1],[x2],[x3],[s1],[s2]),matrix([5],[3],[1],[0],[0]).matrix([x1],[x2],[x3],[s1],[s2]));
有效。 solve
的问题从未得到解决,所以我想知道从现在开始我是否只需要手工计算。
答案 0 :(得分:2)
subst
纯粹是一种语法替换-它正在寻找x
中值z
的显式出现,并且不会猜测您的意思是等于i base0
和x
的第'th个元素。
通过构造一个表示预期替代的方程式,我得到了预期的结果。
(%i6) eqs:makelist(x[i,1] = base0[i,1],i,1,5)
(%o6) [x1 = 0, x2 = 0, x3 = 5, s1 = 0, s2 = 1]
(%i7) zval:subst(eqs,z)
(%o7) 5