Mathematica 函数及使用方法
一、运算符及特殊符号
Line1;
Line1,line2
?name
??name
!command
n!
执行 Line,不显示结果
顺次执行 Line1,2,并显示结果
关于系统变量 name 的信息
关于系统变量 name 的全部信息
执行 Dos 命令
N 的阶乘
显示文件内容
!!filename
<> filename 打开文件写
Expr>>>filename 打开文件从文件末写
读入文件并执行
函数
结合率
()
[]
{}
<*Math Fun*> 在 c 语言中使用 math 的函数
(*Note*)
程序的注释
一个表
#n
##
rule&
%
%%
%n
var::note
"Astring "
`
Context
第 n 个参数
所有参数
把 rule 作用于后面的式子
前一次的输出
倒数第二次的输出
第 n 个输出
变量 var 的注释
字符串
上下文
乘
除
减
加
乘方
a+b
a-b
a*b 或 a b
a/b
a^b
base^^num
lhs&&rhs
lhs││rhs
!lha
++,--
+=,-=,*=,/=
>,<,>=,<=,==,!= 逻辑判断(同 c)
非
自加 1,自减 1
同 C 语言
以 base 为进位的数
且
或
立即赋值
建立替换规则
建立替换规则
建立动态赋值
lhs=rhs
lhs:=rhs
lhs:>rhs
lhs->rhs
expr//funname 相当于 filename[expr]
expr/.rule
将规则 rule 应用于 expr
expr//.rule 将规则 rule 不断应用于 expr 知道不变为止
param_
param__
二、系统常数
名为 param 的一个任意表达式(形式变量)
名为 param 的任意多个任意表达式(形式变量)
3.1415....的无限精度数值
2.17828...的无限精度数值
0.915966..卡塔兰常数
0.5772....高斯常数
1.61803...黄金分割数
Pi/180 角度弧度换算
复数单位
Pi
E
Catalan
EulerGamma
GoldenRatio
Degree
I
Infinity
-Infinity
ComplexInfinity 复无穷大
Indeterminate 不定式
负无穷大
无穷大
三、代数计算
化简表达式
展开表达式
展开表达式
将特殊函数等也进行化简
化简 expr 中的特殊函数
合并同次项
合并 x1,x2,...的同次项
通分
Expand[expr]
Factor[expr]
Simplify[expr]
FullSimplify[expr]
PowerExpand[expr]
展开所有的幂次形式
ComplexExpand[expr,{x1,x2...}] 按复数实部虚部展开
FunctionExpand[expr]
Collect[expr, x]
Collect[expr, {x1,x2,...}]
Together[expr]
Apart[expr]
Apart[expr, var]
Cancel[expr]
ExpandAll[expr]
ExpandAll[expr, patt]
FactorTerms[poly]
提出共有的数字因子
FactorTerms[poly, x]
提出与 x 无关的数字因子
FactorTerms[poly, {x1,x2...}] 提出与 xi 无关的数字因子
多项式 expr 中 form 的系数
Coefficient[expr, form]
Coefficient[expr, form, n]
多项式 expr 中 form^n 的系数
表达式 expr 中 form 的最高指数
Exponent[expr, form]
部分分式展开
对 var 的部分分式展开
约分
展开表达式
展开表达式
Numerator[expr]
Denominator[expr]
ExpandNumerator[expr]
ExpandDenominator[expr]
表达式 expr 的分子
表达式 expr 的分母
展开 expr 的分子部分
展开 expr 的分母部分
TrigExpand[expr]
TrigFactor[expr]
TrigFactorList[expr]
TrigReduce[expr]
TrigToExp[expr]
ExpToTrig[expr]
展开表达式中的三角函数
给出表达式中的三角函数因子
给出表达式中的三角函数因子的表
对表达式中的三角函数化简
三角到指数的转化
指数到三角的转化
RootReduce[expr]
ToRadicals[expr]
四、解方程
从方程组 eqns 中解出 vars
从方程组 eqns 中削去变量 elims,解出 vars
解微分方程,其中 y 是 x 的函数
Solve[eqns, vars]
Solve[eqns, vars, elims]
DSolve[eqn, y, x]
DSolve[{eqn1,eqn2,...},{y1,y2...},x]解微分方程组,其中 yi 是 x 的函数
DSolve[eqn, y, {x1,x2...}]
Eliminate[eqns, vars]
SolveAlways[eqns, vars]
Reduce[eqns, vars]
LogicalExpand[expr]
InverseFunction[f]
Root[f, k]
Roots[lhs==rhs, var]
求函数 f 的逆函数
求多项式函数的第 k 个根
得到多项式方程的所有根
化简并给出所有可能解的条件
用&&和││将逻辑表达式展开
解偏微分方程
把方程组 eqns 中变量 vars 约去
给出等式成立的所有参数满足的条件
五、微积分函数
求 f[x]的微分
求 f[x]的 n 阶微分
求 f[x]对 x1,x2...偏微分
求 f[x]的全微分 df/dx
求 f[x]的全微分 df
n 阶全微分 df^n/dx^n
对 x1,x2..的偏微分
f[x]对 x 在的不定积分
D[f, x]
D[f, {x, n}]
D[f,x1,x2..]
Dt[f, x]
Dt[f]
Dt[f, {x, n}]
Dt[f,x1,x2..]
Integrate[f, x]
Integrate[f, {x, xmin, xmax}]
Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}]
Limit[expr, x->x0]
Residue[expr, {x,x0}]
Series[f, {x, x0, n}]
给出 f[x]在 x0 处的幂级数展开
Series[f, {x, x0,nx}, {y, y0, ny}]先对 y 幂级数展开,再对 x
Normal[expr]
化简并给出最常见的表达式
x 趋近于 x0 时 expr 的极限
expr 在 x0 处的留数
f[x]对 x 在区间(xmin,xmax)的定积分
f[x,y]的二重积分
SeriesCoefficient[series, n] 给出级数中第 n 次项的系数
SeriesCoefficient[series, {n1,n2...}]
'或 Derivative[n1,n2...][f]
InverseSeries[s, x]
ComposeSeries[serie1,serie2...] 给出两个基数的组合
SeriesData[x,x0,{a0,a1,..},nmin,nmax,den]表示一个在 x0 处 x 的幂级数,其中 ai 为系数
O[x]^n
O[x, x0]^n
n 阶小量 x^n
n 阶小量(x-x0)^n
一阶导数
给出逆函数的级数
八、数值函数
N[expr]
N[expr, n]
表达式的机器精度近似值
表达式的 n 位近似值,n 为任意正整数
NSolve[lhs==rhs, var] 求方程数值解
NSolve[eqn, var, n]
求方程数值解,结果精度到 n 位
NDSolve[eqns, y, {x, xmin, xmax}]微分方程数值解
NDSolve[eqns, {y1,y2,...}, {x, xmin, xmax}]
微分方程组数值解
FindRoot[lhs==rhs, {x,x0}]
以 x0 为初值,寻找方程数值解
FindRoot[lhs==rhs, {x, xstart, xmin, xmax}]
NSum[f, {i,imin,imax,di}]
数值求和,di 为步长
NSum[f, {i,imin,imax,di}, {j,..},..]
多维函数求和
NProduct[f, {i, imin, imax, di}]函数求积
NIntegrate[f, {x, xmin, xmax}] 函数数值积分
优化函数:
数据处理:
FindMinimum[f, {x,x0}]
以 x0 为初值,寻找函数最小值
FindMinimum[f, {x, xstart, xmin, xmax}]
ConstrainedMin[f,{inequ},{x,y,..}]
inequ 为线性不等式组,f 为 x,y..之线性函数,得到最小值及此时的 x,y..取值
ConstrainedMax[f, {inequ}, {x, y,..}]同上
LinearProgramming[c,m,b]
解线性组合 c.x 在 m.x>=b&&x>=0 约束下的
最小值,x,b,c 为向量,m 为矩阵
LatticeReduce[{v1,v2...}]
向量组 vi 的极小无关组
Fit[data,funs,vars]用指定函数组对数据进行最小二乘拟和
data 可以为{{x1,y1,..f1},{x2,y2,..f2}..}多维的情况
emp: Fit[{10.22,12,3.2,9.9}, {1, x, x^2,Sin[x]}, x]
Interpolation[data]对数据进行差值,
data 同上,另外还可以为{{x1,{f1,df11,df12}},{x2,{f2,.}..}指定各阶导数
InterpolationOrder 默认为 3 次,可修改
ListInterpolation[array]对离散数据插值,array 可为 n 维
ListInterpolation[array,{{xmin,xmax},{ymin,ymax},..}]
FunctionInterpolation[expr,{x,xmin,xmax}, {y,ymin,ymax},..]
以对应 expr[xi,yi]的为数据进行插值
Fourier
对复数数据进行付氏变换
InverseFourier
对复数数据进行付氏逆变换
Min[{x1,x2...},{y1,y2,...}]得到每个表中的最小值
Max[{x1,x2...},{y1,y2,...}]得到每个表中的最大值
Select[list, crit]
将表中使得 crit 为 True 的元素选择出来
Count[list, pattern]
将表中匹配模式 pattern 的元素的个数
Sort
将表中元素按升序排列
Sort[list,p]
将表中元素按 p[e1,e2]为 True 的顺序比较
list
的任两个元素 e1,e2,实际上 Sort
中默认 p=Greater
集合论:
并集并排序
并排序
Union[list1,list2..]
表 listi 的
Intersection[list1,list2..]
表 listi 的交集
Complement[listall,list1,list2...]从全集 listall
中对 listi 的差集
九、虚数函数
Re[expr]
Im[expr]
Abs[expr]
Arg[expr]
复数表达式的实部
复数表达式的虚部
复数表达式的模
复数表达式的辐角
Conjugate[expr]
复数表达式的共轭
十、数的头及模式及其他操作
Integer _Integer
Real
_Real
Complex _Complex
Rational_Rational
整数
实数
复数
有理数
(*注:模式用在函数参数传递中,如 MyFun[Para1_Integer,Para2_Real]
规定传入参数的类型,另外也可用来判断 If[Head[a]==Real,...]*)
IntegerDigits[n,b,len] 数字 n 以 b 近制的前 len 个码元
RealDigits[x,b,len]
类上
FromDigits
IntegerDigits 的反函数
Rationalize[x,dx]
把实数 x 有理化成有理数,误差小于 dx
Chop[expr, delta]
将 expr 中小于 delta 的部分去掉,dx 默认为 10^-10
Accuracy[x]
给出 x 小数部分位数,对于 Pi,E 等为无限大
Precision[x]
给出 x 有效数字位数,对于 Pi,E 等为无限大
SetAccuracy[expr, n]
设置 expr 显示时的小数部分位数
SetPrecision[expr, n] 设置 expr 显示时的有效数字位数
十一、区间函数
Interval[{min, max}]
区间[min, max](* Solve[3
x+2==Interval[{-2,5}],x]*)
IntervalMemberQ[interval, x]
x 在区间内吗?
IntervalMemberQ[interval1,interval2]
区间 2 在区间 1 内吗?
IntervalUnion[intv1,intv2...]
区间的并
IntervalIntersection[intv1,intv2...]
区间的交
十二、矩阵操作
a.b.c 或 Dot[a, b, c] 矩阵、向量、张量的点积
Inverse[m]
Transpose
矩阵的转置
矩阵的逆
Transpose[list,{n1,n2..}]将矩阵 list 第 k 行与第 nk 列交换
Det[m]
Eigenvalues[m]
Eigenvectors[m]
Eigensystem[m]
矩阵的行列式
特征值
特征向量
特征系统,返回{eigvalues,eigvectors}
LinearSolve[m, b]
解线性方程组 m.x==b
NullSpace[m]
矩阵 m 的零空间,即 m.NullSpace[m]==
零向量
RowReduce[m]
Minors[m, k]
m 化简为阶梯矩阵
m 的所有 k*k 阶子矩阵的行列式的值(伴
随阵,好像是)
MatrixPower[mat, n]
阵 mat 自乘 n 次
Outer[f,list1,list2..]
listi 中各个元之间相互组合,并作为 f 的参
数的到的矩阵
Outer[Times,list1,list2]给出矩阵的外积
SingularValues[m]
m 的奇异值,结果为{u,w,v},
m=Conjugate[Transpose].DiagonalMatrix[w].v
PseudoInverse[m]
m 的广义逆
QRDecomposition[m]
QR 分解
SchurDecomposition[m]
Schur 分解
LUDecomposition[m]
LU 分解
十三、表函数
(*“表”,我认为是 Mathematica 中最灵活的一种数据类型
*)
(*实际上表就是表达式,表达式也就是表,所以下面 list==expr
*)
(*一个表中元素的位置可以用于一个表来表示
*)
表的生成
{e1,e2,...}
一个表,元素可以为任意表达式,无穷嵌套
Table[expr,{imax}]
生成一个表,共 imax 个元素
Table[expr,{i, imax}] 生成一个表,共 imax 个元素 expr
Table[expr,{i,imin,imax},{j,jmin,jmax},..] 多维表
Range[imax]
简单数表{1,2,..,imax}
Range[imin, imax, di]
以 di 为步长的数表
Array[f, n]
一维表,元素为 f
(i 从 1 到 n)
Array[f,{n1,n2..}]
多维表,元素为 f[i,j..]
(各自从 1 到 ni)
IdentityMatrix[n]
n 阶单位阵
DiagonalMatrix
对角阵
元素操作
Part[expr, i]或 expr[]第 i 个元
expr[[-i]]
expr[[i,j,..]]
倒数第 i 个元
多维表的元
expr[[{i1,i2,..}]
返回由第 i(n)的元素组成的子表
First[expr]
Last[expr]
Head[expr]
第一个元
最后一个元
函数头,等于 expr[[0]]
Extract[expr, list]
取出由表 list 制定位置上 expr 的元素值
Take[list, n]
取出表 list 前 n 个元组成的表
Take[list,{m,n}]
取出表 list 从 m 到 n 的元素组成的表
Drop[list, n]
Rest[expr]
去掉表 list 前 n 个元剩下的表,其他参数同上
去掉表 list 第一个元剩下的表
Select[list, crit]
把 crit 作用到每一个 list 的元上,
为 True 的所有元组成的表
Length[expr]
Dimensions[expr]
TensorRank[expr]
Depth[expr]
Level[expr,n]
expr 第一曾元素的个数
表的维数返回{n1,n2..},expr 为一个 n1*n2...的阵
秩
expr 最大深度
给出 expr 中第 n 层子表达式的列表
Count[list, pattern]
满足模式的 list 中元的个数
MemberQ[list, form]
list 中是否有匹配 form 的元
FreeQ[expr, form]
MemberQ 的反函数
Position[expr, pattern] 表中匹配模式 pattern 的元素的位置列表
Cases[{e1,e2...},pattern]匹配模式 pattern 的所有元素 ei 的表
Append[expr, elem]
返回 在表 expr 的最后追加 elem 元后的表
Prepend[expr, elem]
返回 在表 expr 的最前添加 elem 元后的表
Insert[list, elem, n] 在第 n 元前插入 elem
Insert[expr,elem,{i,j,..}]在元素 expr[[{i,j,..}]]前插入 elem
表的属性
表的操作
Delete[expr, {i, j,..}] 删除元素 expr[[{i,j,..}]]后剩下的表
DeleteCases[expr,pattern]删除匹配 pattern 的所有元后剩下的表
ReplacePart[expr,new,n] 将 expr 的第 n 元替换为 new
Sort
返回 list 按顺序排列的表
Reverse[expr]
把表 expr 倒过来
RotateLeft[expr, n]
把表 expr 循环左移 n 次
RotateRight[expr, n]
把表 expr 循环右移 n 次
Partition[list, n]
把 list 按每 n 各元为一个子表分割后再组成
的大表
Flatten
抹平所有子表后得到的一维大表
Flatten[list,n]
抹平到第 n 层
Split
平
把相同的元组成一个子表,再合成的大表
FlattenAt[list, n]
把 list[[n]]处的子表抹
Permutations
由 list 的元素组成的所有全排列的列表
Order[expr1,expr2]
如果 expr1 在
expr2 之前返回 1,如果 expr1 在
expr2
之后返回-1,如果 expr1 与 expr2 全等返回 0
Signature
所需的
把 list 通过两两交换得到标准顺序
交换次数(排列数)
以上函数均为仅返回所需表而不改变
原表
AppendTo[list,elem]
相当于
list=Append[list,elem];
PrependTo[list,elem]
相当于
list=Prepend[list,elem];
十四、绘图函数
二维作图
一维函数 f[x]在区间[xmin,xmax]上的函数曲线
Plot[f,{x,xmin,xmax}]
Plot[{f1,f2..},{x,xmin,xmax}] 在一张图上画几条曲线
ListPlot[{y1,y2,..}]
ListPlot[{{x1,y1},{x2,y2},..}] 绘出由离散点对(xn,yn)组成的图
绘出由离散点对(n,yn)组成的图