Mathematica Learning - 基础入门
本文主要介绍一些Mathematica基础的入门用法,包括一些常用的函数和使用方法。
基本操作
常用快捷键
对于一个表达式运行结果,使用快捷键
Shift + Enter
。对于一个函数显示帮助,快捷键是
F1
。
函数定义
一般的函数(带名)定义方法如下:
In[1]:= f[x_] := x + 1;
In[2]:= f[2]
Out[2]:= 3
In[1]:= g[x_, y_] := x + y;
In[2]:= g[4, 4]
Out[2]:= 8
纯函数(匿名)定义方法为:
(*例:对10求相反数*)
In[1]:= (#*-1)&[10]
Out[1]:= -10
函数调用
a//f
⇔ ⇔f[a]
f@a
⇔ ⇔f[a]
f@@{a, b, c}
⇔ ⇔f[a, b, c]
基本存储单元 List - 列表
列表(List),是Mathematica的基本存储单元,就像矩阵(Mat)是Matlab的基本存储单元一样。
创建列表的方法很简单,例如:
{1, 2, 3} (*创建普通列表*)
{{1, 2}, {3, 4}} (*矩阵,列表的列表*)
{{1,2,3}, 2, {1, {2}, 3}} (*不规则列表*)
Reverse方法:
对列表求逆
In[1]:= Reverse[{1,2,3}]
Out[1]:= {3, 2, 1}
三大常用函数
函数 - Range[]
Range[]
常用于产生,一串步长一致的序列值:
Range[imax]
(* 生成列表{1, 2, ... ,imax} *)
Range[imin, imax]
(* 生成列表,从imin到imax *)
Range[imin, imax, step]
(* 生成列表,从imin到imax,步长为step *)
函数 - Table[]
Table[]
用于对某表达式中某个变量代入数值,产生一串序列:
Table[expr, {i, imax}]
Table[expr, {i, imin, imax}]
Table[expr, {i, imin, imax, step}]
(* 根据i的范围值,产生对应expr值的序列 *)
(*例*)
In[1]:= Table[x^2 + 1, {x, 0, 9, 3}]
Out[1]:= {1, 10, 37, 82}
函数 - Select
Select[]
用于选择序列中某些符合要求的值,并生成新的序列:
Select[list, crit]
(* 选取list中使得crit[ei]为True的所有元素ei *)
Select[list, crit, n]
(* 选取list中使得crit[ei]为True的前n个元素ei *)
(*例*)
In[1]:= Select[{1,2,3,4,5,6,7}, #>2&, 2]
Out[1]:= {3, 4}
In[2]:= Select[{1,2,3,4,5,6,7}, EvenQ, 2]
Out[2]:= {2, 4}
判断函数
Mathematica有很多内置的判断函数,都是以Q结尾的,例如:
EvenQ[]
- 判断偶数OddQ[]
- 判断奇数
其他操作
函数 - With
替换变量
With[{x=a, y=b}, expr]
(* 将expr中的x、y使用a、b替换 *)
函数 - Flatten
将多维列表压为一维
In[1]:= Flatten[{{1, 2, 3}, 4, 5, {6, {7}}}]
Out[1]:= {1, 2, 3, 4, 5, 6, 7}
函数 - DeleteDuplicates
删除列表中的重复元素
In[1]:= DeleteDuplicates[{1,1,2}]
Out[1]:= {1,2}
函数 - Total
对列表中所有元素求和
In[1]:= Total[{1, 2}]
Out[1]:= 3
函数 - FactorInteger
用于分解质因数
In[1]:= FactorInteger[100]
Out[1]:= {{2, 2}, {5, 2}}
(* 100 = 2*2*5*5 *)
函数 - Outer
外积
In[1]:= Outer[f, {a, b}, {x, y, z}]
Out[1]:= {{f[a, x], f[a, y], f[a, z]}, {f[b, x], f[b, y], f[b, z]}}
(*向量的外积*)
In[2]:= Outer[Times, {1, 2, 3, 4}, {a, b, c}]
Out[2]:= {{a, b, c}, {2 a, 2 b, 2 c}, {3 a, 3 b, 3 c}, {4 a, 4 b, 4 c}}
(*矩阵的外积*)
In[3]:= Outer[Times, {{1, 2}, {3, 4}}, {{a, b}, {c, d}}]
Out[3]:= {{{{a, b}, {c, d}}, {{2 a, 2 b}, {2 c, 2 d}}}, {{{3 a, 3 b}, {3 c, 3 d}}, {{4 a, 4 b}, {4 c, 4 d}}}}
官方文档
Mathematica官方文档极为详尽,应当养成随查的习惯,附链接如下: