此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.2)

2.4.6 定义函数

1.7.1 节中讨论了函数的定义,可以用 f[x_] = x^2 定义一个函数 (事实上在 1.7.1节中用 := 而不是=来定义,在 2.4.8 节中将解释它们的使用情况).
定义 f[x_] = x^2 表明当 Mathematica 遇到与模式 f[x_] 匹配的表达式时,它将用 x^2 来代替该表达式.由于模式 f[x_] 与所有形如 f[anything] 的表达式匹配,这一定义可用于任何变量.
函数定义 f[x_] = x^2 可以与前一节讨论的有标号的变量 f[a] = b 进行 比较. f[a] = b 表明当特定的表达式 f[a] 出现时用 b 代替. 但这定义对 f[y] 等表达式不起作用,因为这时 f 有另外的标号. 为了定义一个函数,必须给可以是 任何值的变量 x 的表达式 f[x] 指定对应值,这可以通过定义模式 f[x_] 来实现.

定义有标号的变量和定义函数的区别

定义 f[2]f[a] 可以看作对阵列 f 的元素赋值,定义一个函数 f[x-] 可以看作对一个具有任意标号的阵列的一系列元素赋值. 事实上,可以把函数看作具有 任意变动标号的元素的阵列. 从数学的观点看,f 是一个映射,当定义 f[1] , f[2] 等时,就是给出其定义域中离散点的象,而 f[x_] 是给出 f 在一连续流点集上的像.

对确定的表达式 f[x] 定义变换规则

当这一确定的表达式 f[x] 出现时用u代替它,其它表达式 f[argument] 则不变

对任意变量定义 f 的值

最初特定形式的 f[x] 的定义仍然有效,一般定义 f[x_] 用来求出 f[y] 的值

清除 f 的所有定义

Mathematica 中可以对任何表达式或模式定义变换规则,可以将 f[1], f[2] 等这些具体表达式的定义与像 f[x_] 等的定义相结合. 许多数学函数可以通过将特定和一般定义相结合的方式给出. 例如阶乘函数,在 Mathematica 中已经给出了这一函数 n!,但可以用 Mathematica 的定义自行建立这个函数.
阶乘函数的数学定义几乎可以直接在 Mathematica 中使用,其形式为 f[n_] := n f[n-1]; f[1] = 1. 此定义表明 f[1]=1,对其余 n, f[n]=nf[n-1].

变量为 1 时阶乘函数的值

阶乘函数一般的递推过程

现在就可以用这个定义去得到阶乘的值乘的值

此结果与内部函数 n! 的值相同