将矩阵方程的解替换为最大值的矩阵乘积

时间:2018-07-27 12:40:45

标签: moodle symbolic-math maxima

我正在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 problemsolve函数,但是这次甚至没有像这样将组件显式插入表达式中

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的问题从未得到解决,所以我想知道从现在开始我是否只需要手工计算。

1 个答案:

答案 0 :(得分:2)

subst纯粹是一种语法替换-它正在寻找x中值z的显式出现,并且不会猜测您的意思是等于i base0x的第'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