我怎样才能给最大值中的数组变量一个值?
how can I give an array variable in maxima a value?
我有
expand(product(1-p*a[i], i, 0, 1));
现在我想用一个复数值代替 a[0] 和 a[1]:
subst(array_make([(-%i)-1,%i-1]), a, expand(product(1-p*a[i], i, 0, 1)));
请帮忙!
expand(subst(1.0*%i-1.0, a(1), subst(-1.0*%i-1.0, a(0), expand(product(1-s/a(i), i, 0, 1)))));
Maxima 对数组的处理有些不一致。这里有一些想法来获得你想要的结果。
(我注意到您的第一个输入有 %1
而不是 %i
,我猜这是一个印刷错误。)
(1) 为每个下标变量代入一个值。
myexpr: expand (product (1 - p*a[i], i, 0, 1));
subst ([a[0] = (-%i)-1, a[1] = %i - 1], myexpr);
(2) 用一个值代替数组。我将使用 ev
来做到这一点,因为 subst
似乎有一个错误;我会就此提交错误报告。
Maxima 没有 built-in 函数来创建包含列表内容的数组,因此我将为此定义一个辅助函数 array_from
。
myexpr: expand (product (1 - p*a[i], i, 0, 1));
array_from(l) := fillarray (make_array (any, length(l)), l);
ev(myexpr, a = array_from([(-%i)-1, %i - 1]));
我有
expand(product(1-p*a[i], i, 0, 1));
现在我想用一个复数值代替 a[0] 和 a[1]:
subst(array_make([(-%i)-1,%i-1]), a, expand(product(1-p*a[i], i, 0, 1)));
请帮忙!
expand(subst(1.0*%i-1.0, a(1), subst(-1.0*%i-1.0, a(0), expand(product(1-s/a(i), i, 0, 1)))));
Maxima 对数组的处理有些不一致。这里有一些想法来获得你想要的结果。
(我注意到您的第一个输入有 %1
而不是 %i
,我猜这是一个印刷错误。)
(1) 为每个下标变量代入一个值。
myexpr: expand (product (1 - p*a[i], i, 0, 1));
subst ([a[0] = (-%i)-1, a[1] = %i - 1], myexpr);
(2) 用一个值代替数组。我将使用 ev
来做到这一点,因为 subst
似乎有一个错误;我会就此提交错误报告。
Maxima 没有 built-in 函数来创建包含列表内容的数组,因此我将为此定义一个辅助函数 array_from
。
myexpr: expand (product (1 - p*a[i], i, 0, 1));
array_from(l) := fillarray (make_array (any, length(l)), l);
ev(myexpr, a = array_from([(-%i)-1, %i - 1]));