如何为产品内的变量分配数值?

时间:2016-12-01 11:43:12

标签: maxima

首先让我说我刚刚开始使用最大值,所以我不知道 很多。

我已经定义了一个表达式

(%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中的变量 产品

2 个答案:

答案 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