如何解决如何给最大值中的数组变量赋值?
我有
expand(product(1-p*a[i],i,1));
现在我要用复数值代替a [0]和a [1]:
subst(array_make([(-%i)-1,%i-1]),a,expand(product(1-p*a[i],1)));
请帮助!
解决方法
Maxima对数组的处理有些不一致。这里有一些想法,以获得想要的结果。
(我注意到您的第一个输入有%1
而不是%i
,我想这是一个印刷错误。)
(1)为每个下标变量替换一个值。
myexpr: expand (product (1 - p*a[i],i,1));
subst ([a[0] = (-%i)-1,a[1] = %i - 1],myexpr);
(2)替换数组的值。我将使用ev
来执行此操作,因为看来subst
中存在错误;我将提交有关此问题的错误报告。
Maxima没有内置函数来创建具有列表内容的数组,因此我将为此定义一个辅助函数array_from
。
myexpr: expand (product (1 - p*a[i],1));
array_from(l) := fillarray (make_array (any,length(l)),l);
ev(myexpr,a = array_from([(-%i)-1,%i - 1]));
,
expand(subst(1.0*%i-1.0,a(1),subst(-1.0*%i-1.0,a(0),expand(product(1-s/a(i),1)))));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。