迭代函数的计算

TableSumMathematica 的内部迭代函数计算其变量值时稍有不同.

在计算如 Table[f, {i, imax}] 等表达式时,如 "块和局部值" 节所述,第一步把 i 作为局部变量,接下来,计算迭代的最大值 . 表达式 f 保持在不被计算的状态,但随着 i 下一个值的引入反复进行计算. 当这个过程完成后,i 的全局值就恢复原值.

函数 RandomReal[] 计算了4次故有4个伪随机数.
In[1]:=
Click for copyable input
Out[1]=
在放入 Table 之前计算 RandomReal[]. 所以这4个数相同.
In[2]:=
Click for copyable input
Out[2]=

大部分情况下,将 Table[f, {i, imax}] 等表达式中的 f 在一个特定的值赋给 之前保持为不计算的状态是方便的,特别是没有一个对所有的 i 都适用的 f 时.

这里定义 在变量为整数时给出阶乘,其余给出 (表示"Not a Number").
In[3]:=
Click for copyable input
这一形式中, 直到一个特定的整数赋给 前不计算.
In[4]:=
Click for copyable input
Out[4]=
Evaluate 强行计算 是一个符号.
In[5]:=
Click for copyable input
Out[5]=

Table[f, {i, imax}] 等表达式中,如果对每个 i 能找出 f 完整的符号形式,则先计算这个形式,再把它存入 Table 更好. 这可以通过 Table[Evaluate[f], {i, imax}] 来实现.

对每个 值计算 Sum.
In[6]:=
Click for copyable input
Out[6]=
对任意 值,可得到Sum的计算公式.
In[7]:=
Click for copyable input
Out[7]=
Evaluate 可以让 Mathematica 形式地求和,再对每个 迭代.
In[8]:=
Click for copyable input
Out[8]=
Table[f,{i,imax}]在特定的 i 之前不计算 f
Table[Evaluate[f],{i,imax}]先对符号 i 求出 f

迭代函数的使用.

New to Mathematica? Find your learning path »
Have a question? Ask support »