2.4.9 保留已有值的函数用 := 定义的函数中,调用时函数的值就会被反复计算. 但在一些计算中,需要将同一组函数值使用多次,这时就可以让 Mathematica 记住这些函数值以节省时间. 接下来就给出定义这种函数的方法. 定义保存已有值的函数 定义一个函数,它保存所有已得到的值 此处给出f递推结束的条件
Out[2]= |  |
f 已有的定义
求 f[5] 时需要计算 f[5],f[4], f[2]]
Out[4]= |  |
到此为止的 f 值全部保存着
此时再求 f[5] 时,Mathematica 可立即找出,不需要重新计算
Out[6]= |  |
f[x_] := f[x] = f[x-1] + f[x-2] 使用过程如下:当调用 f 时,先计算 f[x-1]+f[x-2],再将结果保存到 f[x] 中. 在进行递推运算时,使用能保存已有值的函数是一个好方法.递推的一个典型 情况是函数 f 在整数 x 的值通过它在 , x-2 等值给出,Fibonacci 函数 就是这样的一种递推,在计算 f(10) 等时,需反复递推, 如需要反复计算 f(5) 多次,故此时记住 f(5) 的值下次直接找出就比反复计算要好. 在记住了一些函数值时,查找就比计算快,但这需要占用内存, 通常当重复计算的代价很大时保存函数值,且需要保存的函数不宜太多.
|