2.2.10 结构的操作Mathematica 有改变表达式结构的有效功能,这可以使我们实现合并、 分配等数学特性. Sort[ ] 可以对列表和含有任何头部的表达 式的元素进行分类. Sort 将函数的变量按序排列
Out[1]= |  |
按顺序分类 将数字按减少的顺序排列
Out[2]= |  |
根据不含 x 的元素比含 x 的元素靠前的次序排列
Out[3]= |  |
压平表达式的结构 Flatten 压平函数嵌套
Out[4]= |  |
用 Flatten 将元素拼接为列表或其它表达式
Out[5]= |  |
Flatten 进行组合,Distribute 进行分配. 分配律 f 分配到 a+b
Out[6]= |  |
更复杂一些的例子
Out[7]= |  |
一般地, Expand 对标准的代数乘法进行 类似的分配展开,Distribute 可对任意运算进行类似的分配展开. Expand 实施乘法对加法的分配
Out[8]= |  |
对一个列表进行分配
Out[9]= |  |
当表达式的头部为f时对其进行分配
Out[10]= |  |
当头部是 f 时对列表进行分配, 用 gp 代替列表,用 fp 代替f
Out[11]= |  |
与 Distribute 相关的是 Thread, Thread 将函数并行地作用于一个列表 或表达式的所有项. 线性作用于表达式的函数 变量是列表的函数
Out[12]= |  |
Thread 线性作为列表的元素
Out[13]= |  |
不在列表中的元素将重复
Out[14]= |  |
Mathematica 的许多函数可以形成列表,它们可以自动进行线性作用. Log 函数可自动线性作用于列表
Out[15]= |  |
但 Log 不能自动对方程进行线性作用
Out[16]= |  |
可以用 Thread 使函数作用 于方程两端
Out[17]= |  |
广义内积和外积 Outer[f, , ]给出 list1 和 list2中元素所有可能的组合, 并将 f 作用于这些给合,它可以看作是张量的积的推广. Outer 给出了元素的所有组合,并用 f 作用
Out[18]= |  |
Outer 产生一个下三角 Boolean 矩阵
Out[19]= |  |
Outer 可用于任何头部相同的表达式
Out[20]= |  |
像 Distribute 一样,Outer 给出元素所有可能的组合,而 Inner 像 Thread 一样 仅给出表达式中相应位置元素的组合. 由 Inner 形成的结构
Out[21]= |  |
Inner 是内积的推广
Out[22]= |  |
|