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

how to assign numerical values to variables inside a product?

首先让我说我刚开始使用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

如何将数值赋给一个变量 产品?

也许你必须添加中间函数:

(%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

使用 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