Mathematica函数及使用方法.docx
- 文档编号:9736320
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:25
- 大小:30.34KB
Mathematica函数及使用方法.docx
《Mathematica函数及使用方法.docx》由会员分享,可在线阅读,更多相关《Mathematica函数及使用方法.docx(25页珍藏版)》请在冰豆网上搜索。
Mathematica函数及使用方法
Mathematica函数及使用方法
2006-12-2511:
35:
45
---------------------------------------------------------------------
注:
为了对Mathematica有一定了解的同学系统掌握Mathematica的强大
功能,我们把它的一些资料性的东西整理了一下,希望能对大家有所帮助。
---------------------------------------------------------------------
一、运算符及特殊符号
Line1;执行Line,不显示结果
Line1,line2顺次执行Line1,2,并显示结果
?
name关于系统变量name的信息
?
?
name关于系统变量name的全部信息
!
command执行Dos命令
n!
N的阶乘
!
!
filename显示文件内容
Expr>>>filename打开文件从文件末写
()结合率
[]函数
{}一个表
<*MathFun*>在c语言中使用math的函数
(*Note*)程序的注释
#n第n个参数
##所有参数
rule&把rule作用于后面的式子
%前一次的输出
%%倒数第二次的输出
%n第n个输出
var:
:
note变量var的注释
"Astring"字符串
Context`上下文
a+b加
a-b减
a*b或ab乘
a/b除
a^b乘方
base^^num以base为进位的数
lhs&&rhs且
lhs||rhs或
!
lha非
++,--自加1,自减1
+=,-=,*=,/=同C语言
>,<,>=,<=,==,!
=逻辑判断(同c)
lhs=rhs立即赋值
lhs:
=rhs建立动态赋值
lhs:
>rhs建立替换规则
lhs->rhs建立替换规则
expr//funname相当于filename[expr]
expr/.rule将规则rule应用于expr
expr//.rule将规则rule不断应用于expr知道不变为止
param_名为param的一个任意表达式(形式变量)
param__名为param的任意多个任意表达式(形式变量)
—————————————————————————————————————
二、系统常数
Pi3.1415....的无限精度数值
E2.17828...的无限精度数值
Catalan0.915966..卡塔兰常数
EulerGamma0.5772....高斯常数
GoldenRatio1.61803...黄金分割数
DegreePi/180角度弧度换算
I复数单位
Infinity无穷大
-Infinity负无穷大
ComplexInfinity复无穷大
Indeterminate不定式
—————————————————————————————————————
三、代数计算
Expand[expr]展开表达式
Factor[expr]展开表达式
Simplify[expr]化简表达式
FullSimplify[expr]将特殊函数等也进行化简
PowerExpand[expr]展开所有的幂次形式
ComplexExpand[expr,{x1,x2...}]按复数实部虚部展开
FunctionExpand[expr]化简expr中的特殊函数
Collect[expr,x]合并同次项
Collect[expr,{x1,x2,...}]合并x1,x2,...的同次项
Together[expr]通分
Apart[expr]部分分式展开
Apart[expr,var]对var的部分分式展开
Cancel[expr]约分
ExpandAll[expr]展开表达式
ExpandAll[expr,patt]展开表达式
FactorTerms[poly]提出共有的数字因子
FactorTerms[poly,x]提出与x无关的数字因子
FactorTerms[poly,{x1,x2...}]提出与xi无关的数字因子
Coefficient[expr,form]多项式expr中form的系数
Coefficient[expr,form,n]多项式expr中form^n的系数
Exponent[expr,form]表达式expr中form的最高指数
Numerator[expr]表达式expr的分子
Denominator[expr]表达式expr的分母
ExpandNumerator[expr]展开expr的分子部分
ExpandDenominator[expr]展开expr的分母部分
TrigExpand[expr]展开表达式中的三角函数
TrigFactor[expr]给出表达式中的三角函数因子
TrigFactorList[expr]给出表达式中的三角函数因子的表
TrigReduce[expr]对表达式中的三角函数化简
TrigToExp[expr]三角到指数的转化
ExpToTrig[expr]指数到三角的转化
RootReduce[expr]
ToRadicals[expr]
—————————————————————————————————————
四、解方程
Solve[eqns,vars]从方程组eqns中解出vars
Solve[eqns,vars,elims]从方程组eqns中削去变量elims,解出vars
DSolve[eqn,y,x]解微分方程,其中y是x的函数
DSolve[{eqn1,eqn2,...},{y1,y2...},x]解微分方程组,其中yi是x的函数
DSolve[eqn,y,{x1,x2...}]解偏微分方程
Eliminate[eqns,vars]把方程组eqns中变量vars约去
SolveAlways[eqns,vars]给出等式成立的所有参数满足的条件
Reduce[eqns,vars]化简并给出所有可能解的条件
LogicalExpand[expr]用&&和||将逻辑表达式展开
InverseFunction[f]求函数f的逆函数
Root[f,k]求多项式函数的第k个根
Roots[lhs==rhs,var]得到多项式方程的所有根
—————————————————————————————————————
五、微积分函数
D[f,x]求f[x]的微分
D[f,{x,n}]求f[x]的n阶微分
D[f,x1,x2..]求f[x]对x1,x2...偏微分
Dt[f,x]求f[x]的全微分df/dx
Dt[f]求f[x]的全微分df
Dt[f,{x,n}]n阶全微分df^n/dx^n
Dt[f,x1,x2..]对x1,x2..的偏微分
Integrate[f,x]f[x]对x在的不定积分
Integrate[f,{x,xmin,xmax}]f[x]对x在区间(xmin,xmax)的定积分
Integrate[f,{x,xmin,xmax},{y,ymin,ymax}]f[x,y]的二重积分
Limit[expr,x->x0]x趋近于x0时expr的极限
Residue[expr,{x,x0}]expr在x0处的留数
Series[f,{x,x0,n}]给出f[x]在x0处的幂级数展开
Series[f,{x,x0,nx},{y,y0,ny}]先对y幂级数展开,再对x
Normal[expr]化简并给出最常见的表达式
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]^nn阶小量x^n
O[x,x0]^nn阶小量(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[list]对复数数据进行付氏变换
InverseFourier[list]对复数数据进行付氏逆变换
Min[{x1,x2...},{y1,y2,...}]得到每个表中的最小值
Max[{x1,x2...},{y1,y2,...}]得到每个表中的最大值
Select[list,crit]将表中使得crit为True的元素选择出来
Count[list,pattern]将表中匹配模式pattern的元素的个数
Sort[list]将表中元素按升序排列
Sort[list,p]将表中元素按p[e1,e2]为True的顺序比较list
的任两个元素e1,e2,实际上Sort[list]中默认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
==Real,...]*)
IntegerDigits[n,b,len]数字n以b近制的前len个码元
RealDigits[x,b,len]类上
FromDigits[list]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[3x+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[list]矩阵的转置
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]m化简为阶梯矩阵
Minors[m,k]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
.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阶单位阵
DiagonalMatrix[list]对角阵
元素操作
Part[expr,i]或expr[
]第i个元
expr[[-i]]倒数第i个元
expr[[i,j,..]]多维表的元
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]去掉表list前n个元剩下的表,其他参数同上
Rest[expr]去掉表list第一个元剩下的表
Select[list,crit]把crit作用到每一个list的元上,
为True的所有元组成的表
表的属性
Length[expr]expr第一曾元素的个数
Dimensions[expr]表的维数返回{n1,n2..},expr为一个n1*n2...的阵
TensorRank[expr]秩
Depth[expr]expr最大深度
Level[expr,n]给出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]返回list按顺序排列的表
Reverse[expr]把表expr倒过来
RotateLeft[expr,n]把表expr循环左移n次
RotateRight[expr,n]把表expr循环右移n次
Partition[list,n]把list按每n各元为一个子表分割后再组成的大表
Flatten[list]抹平所有子表后得到的一维大表
Flatten[list,n]抹平到第n层
Split[list]把相同的元组成一个子表,再合成的大表
FlattenAt[list,n]把list[
]处的子表抹平
Permutations[list]由list的元素组成的所有全排列的列表
Order[expr1,expr2]如果expr1在expr2之前返回1,如果expr1在
expr2之后返回-1,如果expr1与expr2全等返回0
Signature[list]把list通过两两交换得到标准顺序所需的
交换次数(排列数)
以上函数均为仅返回所需表而不改变原表
AppendTo[list,elem]相当于list=Append[list,elem];
PrependTo[list,elem]相当于list=Prepend[list,elem];
--—————————————————————————————————————
十四、绘图函数
二维作图
Plot[f,{x,xmin,xmax}]一维函数f[x]在区间[xmin,xmax]上的函数曲线
Plot[{f1,f2..},{x,xmin,xmax}]在一张图上画几条曲线
ListPlot[{y1,y2,..}]绘出由离散点对(n,yn)组成的图
ListPlot[{{x1,y1},{x2,y2},..}]绘出由离散点对(xn,yn)组成的图
ParametricPlot[{fx,fy},{t,tmin,tmax}]由参数方程在参数变化范围内的曲线
ParametricPlot[{{fx,fy},{gx,gy},...},{t,tmin,tmax}]
在一张图上画多条参数曲线
选项:
PlotRange->{0,1}作图显示的值域范围
AspectRatio->1/GoldenRatio生成图形的纵横比
PlotLabel->label标题文字
Axes->{False,True}分别制定是否画x,y轴
AxesLabel->{xlabel,ylabel}x,y轴上的说明文字
Ticks->None,Automatic,fun用什么方式画轴的刻度
AxesOrigin->{x,y}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mathematica 函数 使用方法