Mathematica Learning - 基础入门

Mathematica 基础入门用法

Posted by Yun on Fri, Feb 2, 2018

本文主要介绍一些Mathematica基础的入门用法,包括一些常用的函数和使用方法。

基本操作

常用快捷键

  • 对于一个表达式运行结果,使用快捷键Shift + Enter

  • 对于一个函数显示帮助,快捷键是F1

函数定义

一般的函数(带名)定义方法如下:

1 In[1]:= f[x_] := x + 1;
2 In[2]:= f[2]
3Out[2]:= 3
4
5 In[1]:= g[x_, y_] := x + y;
6 In[2]:= g[4, 4]
7Out[2]:= 8

纯函数(匿名)定义方法为:

1(*例:对10求相反数*)
2 In[1]:= (#*-1)&[10]
3Out[1]:= -10

函数调用

  • a//f$\Leftrightarrow$f[a]
  • f@a$\Leftrightarrow$f[a]
  • f@@{a, b, c}$\Leftrightarrow$f[a, b, c]

基本存储单元 List - 列表

列表(List),是Mathematica的基本存储单元,就像矩阵(Mat)是Matlab的基本存储单元一样。

创建列表的方法很简单,例如:

1{1, 2, 3}					(*创建普通列表*)
2{{1, 2}, {3, 4}}			(*矩阵,列表的列表*)
3{{1,2,3}, 2, {1, {2}, 3}}	(*不规则列表*)

Reverse方法:

对列表求逆

1 In[1]:= 	Reverse[{1,2,3}]
2Out[1]:=	{3, 2, 1}

三大常用函数

函数 - Range[]

Range[]常用于产生,一串步长一致的序列值:

1Range[imax]
2	(* 生成列表{1, 2, ... ,imax} *)
3	
4Range[imin, imax]
5	(* 生成列表,从imin到imax *)
6
7Range[imin, imax, step]	
8	(* 生成列表,从imin到imax,步长为step *)

函数 - Table[]

Table[]用于对某表达式中某个变量代入数值,产生一串序列:

1Table[expr, {i, imax}]
2Table[expr, {i, imin, imax}]
3Table[expr, {i, imin, imax, step}]
4
5	(* 根据i的范围值,产生对应expr值的序列 *)
1(**)
2 In[1]:= Table[x^2 + 1, {x, 0, 9, 3}]
3Out[1]:= {1, 10, 37, 82}

函数 - Select

Select[]用于选择序列中某些符合要求的值,并生成新的序列:

1Select[list, crit]
2	(* 选取list中使得crit[ei]True的所有元素ei *)
3	
4Select[list, crit, n]
5	(* 选取list中使得crit[ei]True的前n个元素ei *)
1(**)
2 In[1]:= Select[{1,2,3,4,5,6,7}, #>2&, 2]
3Out[1]:= {3, 4}
4
5 In[2]:= Select[{1,2,3,4,5,6,7}, EvenQ, 2]
6Out[2]:= {2, 4}

判断函数

Mathematica有很多内置的判断函数,都是以Q结尾的,例如:

  • EvenQ[] - 判断偶数
  • OddQ[] - 判断奇数

其他操作

函数 - With

替换变量

1With[{x=a, y=b}, expr]
2	(* expr中的xy使用ab替换 *)

函数 - Flatten

将多维列表压为一维

1 In[1]:= Flatten[{{1, 2, 3}, 4, 5, {6, {7}}}]
2Out[1]:= {1, 2, 3, 4, 5, 6, 7}

函数 - DeleteDuplicates

删除列表中的重复元素

1 In[1]:= DeleteDuplicates[{1,1,2}]
2Out[1]:= {1,2}

函数 - Total

对列表中所有元素求和

1 In[1]:= Total[{1, 2}]
2Out[1]:= 3

函数 - FactorInteger

用于分解质因数

1 In[1]:= FactorInteger[100]
2Out[1]:= {{2, 2}, {5, 2}}
3	(*  100 = 2*2*5*5  *)

函数 - Outer

外积

 1 In[1]:= Outer[f, {a, b}, {x, y, z}]
 2Out[1]:= {{f[a, x], f[a, y], f[a, z]}, {f[b, x], f[b, y], f[b, z]}}
 3
 4(*向量的外积*)
 5 In[2]:= Outer[Times, {1, 2, 3, 4}, {a, b, c}]
 6Out[2]:= {{a, b, c}, {2 a, 2 b, 2 c}, {3 a, 3 b, 3 c}, {4 a, 4 b, 4 c}}
 7
 8(*矩阵的外积*)
 9 In[3]:= Outer[Times, {{1, 2}, {3, 4}}, {{a, b}, {c, d}}]
10Out[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官方文档极为详尽,应当养成随查的习惯,附链接如下:

Wolfram 语言与系统:参考资料中心

Wolfram 语言:快速编程入门


版权声明:本文遵循 CC BY-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

Copyright statement: This article follows the CC BY-SA 4.0 copyright agreement. For reprinting, please attach the original source link and this statement.