首先让我说我刚刚开始使用最大值,所以我不知道 很多。
我已经定义了一个表达式
(%i77) f: 1 + exp(x(i,1) + x(i,2));
x(i, 2) + x(i, 1)
(%o77) %e + 1
我想在不同的上下文中评估,以获得不同的值
x(i,1)
和x(i,2)
。
(%i78) ev(f, x(i,1)=0, x(i,2)=0);
(%o78) 2
问题出在产品表达式中,ev
没有
任何东西:
(%i79) product(f, i, 1, n);
n
/===\
! ! x(i, 2) + x(i, 1)
(%o79) ! ! (%e + 1)
! !
i = 1
(%i80) product(ev(f, x(i,1)=0, x(i,2)=0), i, 1, n);
n
/===\
! ! x(i, 2) + x(i, 1)
(%o80) ! ! (%e + 1)
! !
i = 1
(%i81) ev(product(f, i, 1, n), x(i,1)=0, x(i,2)=0);
n
/===\
! ! x(i, 2) + x(i, 1)
(%o81) ! ! (%e + 1)
! !
i = 1
如何将数值赋给a中的变量 产品
答案 0 :(得分:3)
使用subst,而不是ev。
(%i1) f: 1 + exp(x(i,1) + x(i,2));
x(i, 2) + x(i, 1)
(%o1) %e + 1
(%i2) subst([x(i,1)=0, x(i,2)=0],f);
(%o2) 2
(%i3) subst([x(i,1)=0, x(i,2)=0],product(f, i, 1, n));
n
(%o3) 2
答案 1 :(得分:1)
也许您必须添加中间函数:
(%i1) f: 1 + exp(x(i,1) + x(i,2));
x(i, 2) + x(i, 1)
(%o1) %e + 1
(%i2) g:product(f, i, 1, n);
n
/===\
! ! x(i, 2) + x(i, 1)
(%o2) ! ! (%e + 1)
! !
i = 1
(%i3) ev(g,x(i,1)=0,x(i,2)=0);
n
(%o3) 2