Mathematica函数(书)
- 格式:doc
- 大小:990.50 KB
- 文档页数:37
Mathematica常⽤函数的中⽂说明及使⽤⽅法Mathematica常⽤函数的中⽂说明及使⽤⽅法---------------------------------------------------------------------注:为了对Mathematica有⼀定了解,使同学系统掌握Mathematica的强⼤功能,将常⽤函数的中⽂说明及使⽤⽅法总结如下,希望能对⼤家有所帮助。
---------------------------------------------------------------------⼀、运算符及特殊符号Line1; 执⾏Line,不显⽰结果Line1,line2 顺次执⾏Line1,2,并显⽰结果name 关于系统变量name的信息name 关于系统变量name的全部信息!command 执⾏Dos命令n! N的阶乘!!filename 显⽰⽂件内容<Expr>> filename 打开⽂件写Expr>>>filename 打开⽂件从⽂件末写() 结合率[] 函数{} ⼀个表<*Math Fun*> 在c语⾔中使⽤math的函数(*Note*) 程序的注释#n 第n个参数## 所有参数rule& 把rule作⽤于后⾯的式⼦% 前⼀次的输出%% 倒数第⼆次的输出%n 第n个输出var::note 变量var的注释"Astring " 字符串Context ` 上下⽂a+b 加a-b 减a*b或a b 乘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应⽤于exprexpr//.rule 将规则rule不断应⽤于expr知道不变为⽌param_ 名为param的⼀个任意表达式(形式变量)param__ 名为param的任意多个任意表达式(形式变量)⼆、系统常数Pi 3.1415....的⽆限精度数值E 2.17828...的⽆限精度数值Catalan 0.915966..卡塔兰常数EulerGamma 0.5772....⾼斯常数GoldenRatio 1.61803...黄⾦分割数Degree Pi/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中解出varsSolve[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/dxDt[f] 求f[x]的全微分dfDt[f, {x, n}] n阶全微分df^n/dx^nDt[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幂级数展开,再对xNormal[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]^n n阶⼩量x^nO[x, x0]^n n阶⼩量(x-x0)^n六、多项式函数Variables[poly] 给出多项式poly中独⽴变量的列表CoefficientList[poly, var] 给出多项式poly中变量var的系数CoefficientList[poly, {var1,var2...}]给出多项式poly中变量var(i)的系数列表PolynomialMod[poly, m] poly中各系数mod m同余后得到的多项式,m可为整式PolynomialQuotient[p, q, x] 以x为⾃变量的两个多项式之商式p/q PolynomialRemainder[p, q, x] 以x为⾃变量的两个多项式之余式PolynomialGCD[poly1,poly2,...] poly(i)的最⼤公因式PolynomialLCM[poly1,poly2,...] poly(i)的最⼩公倍式PolynomialReduce[poly, {poly1,poly2,...},{x1,x2...}]得到⼀个表{{a1,a2,...},b}其中Sum[ai*polyi]+b=polyResultant[poly1,poly2,var] 约去poly1,poly2中的varFactor[poly] 因式分解(在整式范围内)FactorTerms[poly] 提出poly中的数字公因⼦FactorTerms[poly, {x1,x2...}] 提出poly中与xi⽆关项的数字公因⼦FactorList[poly]给出poly各个因⼦及其指数{{poly1,exp1},{...}...}FactorSquareFreeList[poly]FactorTermsList[poly,{x1,x2...}] 给出各个因式列表,第⼀项是数字公因⼦,第⼆项是与xi⽆关的因式,其后是与xi有关的因式按升幂的排列Cyclotomic[n, x] n阶柱函数Decompose[poly, x] 迭代分解,给出{p1,p2,...},其中p1(p2(...))=poly InterpolatingPolynomial[data, var] 在数据data上的插值多项式data可以写为{f1,f2..}相当于{{x1=1,y1=f1}..}data可以写为{{x1,f1,df11,df12,..},{x2,f2,df21..}可以指定数据点上的n阶导数值RootSum[f, form] 得到f[x]=0的所有根,并求得Sum[form[xi]]七、随机函数Random[type,range] 产⽣type类型且在range范围内的均匀分布随机数type可以为Integer,Real,Complex,不写默认为Realrange为{min,max},不写默认为{0,1}Random[] 0~1上的随机实数SeedRandom[n] 以n为seed产⽣伪随机数如果采⽤了 <在2.0版本为 <<"D:\\Math\\PACKAGES\\STATISTI\\Continuo.m" Random[distribution]可以产⽣各种分布如Random[BetaDistribution[alpha, beta]]Random[NormalDistribution[miu,sigma]]等常⽤的分布如BetaDistribution,CauchyDistribution,ChiDistribution, NoncentralChiSquareDistribution,ExponentialDistribution, ExtremeValueDistribution,NoncentralFRatioDistribution, GammaDistribution,HalfNormalDistribution, LaplaceDistribution, LogNormalDistribution,LogisticDistribution,RayleighDistribution,NoncentralStudentTDistribution, UniformDistribution, WeibullDistribution⼋、数值函数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[a]==Real,...]*) IntegerDigits[n,b,len] 数字n以b近制的前len个码元RealDigits[x,b,len] 类上FromDigits[list] IntegerDigits的反函数Rationalize[x,dx] 把实数x有理化成有理数,误差⼩于dxChop[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[list] 矩阵的转置Transpose[list,{n1,n2..}]将矩阵list 第k⾏与第nk列交换Det[m] 矩阵的⾏列式Eigenvalues[m] 特征值Eigenvectors[m] 特征向量Eigensystem[m] 特征系统,返回{eigvalues,eigvectors}LinearSolve[m, b] 解线性⽅程组m.x==bNullSpace[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[u]].DiagonalMatrix[w].vPseudoInverse[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[i]Table[expr,{i,imin,imax},{j,jmin,jmax},..] 多维表Range[imax] 简单数表{1,2,..,imax}Range[imin, imax, di] 以di为步长的数表Array[f, n] ⼀维表,元素为f[i] (i从1到n)Array[f,{n1,n2..}] 多维表,元素为f[i,j..] (各⾃从1到ni) IdentityMatrix[n] n阶单位阵DiagonalMatrix[list] 对⾓阵元素操作Part[expr, i]或expr[[i]]第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元前插⼊elemInsert[expr,elem,{i,j,..}]在元素expr[[{i,j,..}]]前插⼊elemDelete[expr, {i, j,..}] 删除元素expr[[{i,j,..}]]后剩下的表DeleteCases[expr,pattern]删除匹配pattern的所有元后剩下的表ReplacePart[expr,new,n] 将expr的第n元替换为newSort[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[[n]]处的⼦表抹平Permutations[list] 由list的元素组成的所有全排列的列表Order[expr1,expr2] 如果expr1在expr2之前返回1,如果expr1在expr2之后返回-1,如果expr1与expr2全等返回0Signature[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} 坐标轴原点位置AxesStyle->{{xstyle}, {ystyle}}设置轴线的线性颜⾊等属性Frame ->True,False 是否画边框FrameLabel ->{xmlabel,ymlabel,xplabel,yplabel}边框四边上的⽂字FrameTicks同Ticks 边框上是否画刻度GridLines 同Ticks 图上是否画栅格线FrameStyle ->{{xmstyle},{ymstyle}设置边框线的线性颜⾊等属性ListPlot[data,PlotJoined->True] 把离散点按顺序连线PlotSytle->{{style1},{style2},..}曲线的线性颜⾊等属性PlotPoints->15 曲线取样点,越⼤越细致三维作图Plot3D[f,{x,xmin,xmax}, {y,ymin,ymax}]⼆维函数f[x,y]的空间曲⾯Plot3D[{f,s}, {x,xmin,xmax}, {y,ymin,ymax}]同上,曲⾯的染⾊由s[x,y]值决定ListPlot3D[array] ⼆维数据阵array的⽴体⾼度图ListPlot3D[array,shades]同上,曲⾯的染⾊由shades[数据]值决定ParametricPlot3D[{fx,fy,fz},{t,tmin,tmax}]⼆元数⽅程在参数变化范围内的曲线ParametricPlot3D[{{fx,fy,fz},{gx,gy,gz},...},{t,tmin,tmax}]多条空间参数曲线选项:ViewPoint ->{x,y,z} 三维视点,默认为{1.3,-2.4,2}Boxed -> True,False 是否画三维长⽅体边框BoxRatios->{sx,sy,sz} 三轴⽐例BoxStyle 三维长⽅体边框线性颜⾊等属性Lighting ->True 是否染⾊LightSources->{s1,s2..} si为某⼀个光源si={{dx,dy,dz},color}color为灯⾊,向dx,dy,dz⽅向照射AmbientLight->颜⾊函数慢散射光的光源Mesh->True,False是否画曲⾯上与x,y轴平⾏的截⾯的截线MeshStyle 截线线性颜⾊等属性MeshRange->{{xmin,xmax}, {ymin,ymax}}⽹格范围ClipFill->Automatic,None,color,{bottom,top}指定图形顶部、底部超界后所画的颜⾊Shading ->False,True 是否染⾊HiddenSurface->True,False 略去被遮住不显⽰部分的信息等⾼线ContourPlot[f,{x,xmin,xmax},{y,ymin,ymax}]⼆维函数f[x,y]在指定区间上的等⾼线图ListContourPlot[array] 根据⼆维数组array数值画等⾼线选项:Contours->n 画n条等⾼线Contours->{z1,z2,..} 在zi处画等⾼线ContourShading -> False 是否⽤深浅染⾊ContourLines -> True 是否画等⾼线ContourStyle -> {{style1},{style2},..}等⾼线线性颜⾊等属性FrameTicks 同上密度图DensityPlot[f,{x,xmin,xmax},{y,ymin,ymax}]⼆维函数f[x,y]在指定区间上的密度图ListDensityPlot[array] 同上图形显⽰Show[graphics,options] 显⽰⼀组图形对象,options为选项设置Show[g1,g2...] 在⼀个图上叠加显⽰⼀组图形对象GraphicsArray[{g1,g2,...}]在⼀个图上分块显⽰⼀组图形对象SelectionAnimate[notebook,t]把选中的notebook中的图画循环放映选项:(此处选项适⽤于全部图形函数)Background->颜⾊函数指定绘图的背景颜⾊RotateLabel -> True 竖着写⽂字TextStyle 此后输出⽂字的字体,颜⾊⼤⼩等ColorFunction->Hue等把其作⽤于某点的函数值上决定某点的颜⾊RenderAll->False 是否对遮挡部分也染⾊MaxBend 曲线、曲⾯最⼤弯曲度⼗四、绘图函数(续)图元函数Graphics[prim, options]prim为下⾯各种函数组成的表,表⽰⼀个⼆维图形对象Graphics3D[prim, options]prim为下⾯各种函数组成的表,表⽰⼀个三维图形对象SurfaceGraphics[array, shades]表⽰⼀个由array和shade决定的曲⾯对象ContourGraphics[array]表⽰⼀个由array决定的等⾼线图对象DensityGraphics[array]表⽰⼀个由array决定的密度图对象以上定义图形对象,可以进⾏对变量赋值,合并显⽰等操作,也可以存盘Point[p] p={x,y}或{x,y,z},在指定位置画点Line[{p1,p2,..}]经由pi点连线Rectangle[{xmin, ymin}, {xmax, ymax}] 画矩形Cuboid[{xmin,ymin,zmin},{xmax,ymax,zmax}]由对⾓线指定的长⽅体Polygon[{p1,p2,..}] 封闭多边形Circle[{x,y},r] 画圆Circle[{x,y},{rx,ry}] 画椭圆,rx,ry为半长短轴Circle[{x,y},r,{a1,a2}] 从⾓度a1~a2的圆弧Disk[{x, y}, r] 填充的园、椭圆、圆弧等参数同上Raster[array,ColorFunction->f] 颜⾊栅格Text[expr,coords] 在坐标coords上输出表达式PostScript["string"] 直接⽤PostScript图元语⾔写Scaled[{x,y,..}] 返回点的坐标,且均⼤于0⼩于1颜⾊函数(指定其后绘图的颜⾊)GrayLevel[level] 灰度level为0~1间的实数RGBColor[red, green, blue] RGB颜⾊,均为0~1间的实数Hue[h, s, b] 亮度,饱和度等,均为0~1间的实数CMYKColor[cyan, magenta, yellow, black] CMYK颜⾊其他函数(指定其后绘图的⽅式)Thickness[r] 设置线宽为rPointSize[d] 设置绘点的⼤⼩Dashing[{r1,r2,..}] 虚线⼀个单元的间隔长度ImageSize->{x, y} 显⽰图形⼤⼩(像素为单位)ImageResolution->r 图形解析度r个dpiImageMargins->{{left,right},{bottom,top}}四边的空⽩ImageRotated->False 是否旋转90度显⽰流程控制—————————————————————————————————————⼗五、流程控制分⽀If[condition, t, f] 如果condition为True,执⾏t段,否则f段If[condition, t, f, u] 同上,即⾮True⼜⾮False,则执⾏u段Which[test1,block1,test2,block2..] 执⾏第⼀为True的testi对应的blockiSwitch[expr,form1,block1,form2,block2..]执⾏第⼀个expr所匹配的formi所对应的blocki段循环Do[expr,{imax}] 重复执⾏expr imax次Do[expr,{i,imin,imax}, {j,jmin,jmax},...]多重循环While[test, body] 循环执⾏body直到test为FalseFor[start,test,incr,body]类似于C语⾔中的for,注意","与";"的⽤法相反examp: For[i=1;t =x,i^2<10,i++,t =t+i;Print[t]]异常控制Throw[value] 停⽌计算,把value返回给最近⼀个Catch处理Throw[value, tag] 同上,Catch[expr] 计算expr,遇到Throw返回的值则停⽌Catch[expr, form] 当Throw[value, tag]中Tag匹配form时停⽌其他控制Return[expr] 从函数返回,返回值为exprReturn[ ] 返回值NullBreak[ ] 结束最近的⼀重循环Continue[ ] 停⽌本次循环,进⾏下⼀次循环Goto[tag] ⽆条件转向Label[Tag]处Label[tag] 设置⼀个断点Check[expr,failexpr] 计算expr,如果有出错信息产⽣,则返回failexpr的值Check[expr,failexpr,s1::t1,s2::t2,...]当特定信息产⽣时则返回failexprCheckAbort[expr,failexpr]当产⽣abort信息时放回failexprInterrupt[ ] 中断运⾏Abort[ ] 中断运⾏TimeConstrained[expr,t] 计算expr,当耗时超过t秒时终⽌MemoryConstrained[expr,b]计算expr,当耗⽤内存超过b字节时终⽌运算交互式控制Print[expr1,expr2,...] 顺次输出expri的值examp: Print[ "X=" , X//N , " " ,f[x+1]];Input[ ] 产⽣⼀个输⼊对话框,返回所输⼊任意表达式Input["prompt"] 同上,prompt为对话框的提⽰Pause[n] 运⾏暂停n秒函数编程—————————————————————————————————————⼗六、函数编程(*函数编程是Mathematica中很有特⾊也是最灵活的⼀部分,它充分体现了 *)(*Mathematica的“⼀切都是表达式”的特点,如果你想使你的Mathematica程 *)(*序快于⾼级语⾔,建议你把本部分搞通*)纯函数Function[body]或body& ⼀个纯函数,建⽴了⼀组对应法则,作⽤到后⾯的表达式上Function[x, body] 单⾃变量纯函数Function[{x1,x2,...},body]多⾃变量纯函数#,#n 纯函数的第⼀、第n个⾃变量## 纯函数的所有⾃变量的序列examp: #1^#2& [2,3] 返回第⼀个参数的第⼆个参数次⽅映射Map[f,expr]或f/@expr 将f分别作⽤到expr第⼀层的每⼀个元上得到的列表Map[f,expr,level] 将f分别作⽤到expr第level层的每⼀个元上Apply[f,expr]或f@@expr 将expr的“头”换为fApply[f,expr,level] 将expr第level层的“头”换为fMapAll[f,expr]或f//@expr把f作⽤到expr的每⼀层的每⼀个元上MapAt[f,expr,n] 把f作⽤到expr的第n个元上MapAt[f,expr,{i,j,...}] 把f作⽤到expr[[{i,j,...}]]元上MapIndexed[f,expr] 类似MapAll,但都附加其映射元素的位置列表Scan[f, expr] 按顺序分别将f作⽤于expr的每⼀个元Scan[f,expr,levelspec] 同上,仅作⽤第level层的元素复合映射Nest[f,expr,n] 返回n重复合函数f[f[...f[expr]...]]NestList[f,expr,n] 返回0重到n重复合函数的列表{expr,f[expr],f[f[expr]]..} FixedPoint[f, expr] 将f复合作⽤于expr直到结果不再改变,即找到其不定点FixedPoint[f, expr, n] 最多复合n次,如果不收敛则停⽌FixedPointList[f, expr] 返回各次复合的结果列表FoldList[f,x,{a,b,..}] 返回{x,f[x,a],f[f[x,a],b],..}Fold[f, x, list] 返回FoldList[f,x,{a,b,..}]的最后⼀个元ComposeList[{f1,f2,..},x]返回{x,f1[x],f2[f1[x]],..}的复合函数列表Distribute[f[x1,x2,..]] f对加法的分配率Distribute[expr, g] 对g的分配率Identity[expr] expr的全等变换Composition[f1,f2,..] 组成复合纯函数f1[f2[..fn[ ]..]Operate[p,f[x,y]] 返回p[f][x, y]Through[p[f1,f2][x]] 返回p[f1[x],f2[x]]Compile[{x1,x2,..},expr]编译⼀个函数,编译后运⾏速度可以⼤⼤加快Compile[{{x1,t1},{x2,t2}..},expr] 同上,可以制定函数参数类型⼗七、替换规则lhs->rhs 建⽴了⼀个规则,把lhs换为rhs,并求rhs的值lhs:>rhs 同上,只是不⽴即求rhs的值,知道使⽤该规则时才求值Replace[expr,rules] 把⼀组规则应⽤到expr上,只作⽤⼀次expr /. rules 同上expr //.rules 将规则rules不断作⽤到expr上,直到⽆法作⽤为⽌Dispatch[{lhs1->rhs1,lhs2->rhs2,...}]综合各个规则,产⽣⼀组优化的规则组查询函数、串函数—————————————————————————————————————⼗⼋、查询函数(*查询函数⼀般是检验表达式是否满⾜某些特殊形式,并返回True或False*)(*可以在Mathematica中⽤“?*Q”查询到 *)ArgumentCountQ MatrixQAtomQ MemberQDigitQ NameQEllipticNomeQ NumberQEvenQ NumericQExactNumberQ OddQFreeQ OptionQHypergeometricPFQ OrderedQInexactNumberQ PartitionsQIntegerQ PolynomialQIntervalMemberQ PrimeQInverseEllipticNomeQ SameQLegendreQ StringMatchQLetterQ StringQLinkConnectedQ SyntaxQLinkReadyQ TrueQListQ UnsameQLowerCaseQ UpperCaseQMachineNumberQ ValueQMatchLocalNameQ VectorQMatchQ⼗九、字符串函数"text" ⼀个串,头为_String"s1"<>"s2"<>..或StringJoin["s1","s2",..] 串的连接StringLength["string"] 串长度StringReverse["string"] 串反转StringTake["string", n] 取串的前n个字符的⼦串,参数同Take[]StringDrop["string", n] 参见Drop,串也就是⼀个表StringInsert["string","snew",n] 插⼊,参见Insert[]StringPosition["string", "sub"] 返回⼦串sub在string中起⽌字母位置StringReplace["string",{"s1"->"p1",..}] ⼦串替换StringReplacePart["string", "snew", {m, n}]把string第m~n个字母之间的替换为snewStringToStream["string"] 把串当作⼀个输⼊流赋予⼀个变量Characters["string"] 把串"string"分解为每⼀个字符的表ToCharacterCode["string"] 把串"string"分解为每⼀个字符ASCII值的表FromCharacterCode[n] ToCharacterCode的逆函数FromCharacterCode[{n1,n2,..}]ToCharacterCode的逆函数ToUpperCase[string] 把串的⼤写形式ToLowerCase[string] 把串的⼩写形式CharacterRange["c1","c2"] 给出ASCII吗在c1到c2之间的字符列表ToString[expr] 把表达式变为串的形式ToExpression[input] 把⼀个串变为表达式Names["string"] 与?string同,返回与string同名的变量列表。
第八章 微分方程的解我们知道,许多由实际的科学或工程问题推出的数学模型是微分方程或微分方程组,不仅物理学等学科如此,现在它们几乎出现在自然科学、管理科学和工程技术的各个领域,甚至包括传统的实验科学,如化学、生物学、农学等等中。
微分方程的特点是未直接表达出变量间的函数关系,而是包含有导数的关系式。
与代数方程或方程组的解法相似,微分方程的解法也有解析法和数值法。
Mathematica 能够用这两种方法来求解微分方程,涉及的命令分别为DSolve 命令和NDSolve 命令。
§8.1 微分方程的解析解Mathematica 求解常微分方程的解析解法是DSolve 命令,它既可用于解一阶常微分方程,也可用于其它阶的微分方程的求解;可以解单个的微分方程,也可以解微分方程组;可求无定解条件的通解,也可求有定解条件时的特解;可求初值问题的解,也可求边值问题的解。
其格式为:DSolve[微分方程, y[x], x]:解常微分方程的通解y(x),其中有积分常数;DSolve[{微分方程, 定解条件}, y[x], x]:解常微分方程满足定解条件的特解y(x); DSolve[{微分方程1, 微分方程2, …, 定解条件1, 定解条件2, …}, {y 1[x], y 2[x],…}, x]:解常微分方程组满足定解条件的特解y 1(x), y 2(x), …。
要注意的是,微分方程中的一阶导数应写作“y ’[x]”,二阶导数写作“y ’’[x]”,因变量y 应写作“y[x]”。
通解中的常数为大写的“C ”,并有方括号括住的序号。
下面分别举例说明。
例如,求一阶常微分方程)'('2y y a xy y +=-的通解,此方程是可分离变量的微分方程。
求一阶常微分方程xyx y y tan '+=的通解,此式为齐次常微分方程。
因方程中有三角函数,故系统警告可能会漏掉一些解。
例如,解一阶常微分方程初值问题 ⎪⎩⎪⎨⎧=∈-=1)0(]1,0[,2y x y x y dx dy 的特解,有已求得微分方程的通解,可在给出常数C 的值后,求出特解。
《Mathematica》使用手册Mathematica使用手册=========================第一章:介绍Mathematica-------------------------------------1.1 Mathematica的概述Mathematica是一种强大的数学计算和数据处理软件,广泛应用于科学、工程、计算机科学等领域。
1.2 安装和启动本节介绍如何安装Mathematica软件并启动它。
1.3 界面和基本操作介绍Mathematica的界面和基本操作,包括工具栏、菜单、笔记本等。
第二章:基本语法和数据类型-------------------------------------2.1 表达式和运算符讲解Mathematica的表达式和运算符,包括数值运算、符号运算、逻辑运算等。
2.2 变量和函数介绍Mathematica中的变量和函数的定义和使用方法。
2.3 数据类型讲解Mathematica中的基本数据类型,包括数值类型、字符串类型、列表类型等。
第三章:图形绘制-------------------------------------3.1 绘制函数图像介绍使用Mathematica绘制函数图像的方法和技巧。
3.2 绘制二维图形讲解Mathematica中绘制二维图形的常用函数和参数设置。
3.3 绘制三维图形介绍Mathematica中绘制三维图形的方法,包括绘制曲面、绘制立体图形等。
第四章:方程求解和数值计算4.1 方程求解讲解Mathematica中方程求解的方法和技巧。
4.2 数值计算介绍Mathematica中数值计算的函数和用法。
4.3 微分方程求解讲解Mathematica中求解微分方程的方法和技巧。
第五章:数据分析和统计-------------------------------------5.1 数据导入和导出介绍Mathematica中的数据导入和导出方法。
第9章定义函数与变换规则9.1 自定义函数9.1.1 自定义一元函数自定义一元函数措施如下:f[x_]:=自选体现式(1)先看x_与x功能上旳差异(占位符,规则变量,模式变量) (2)再看“=”与“:=”功能上旳差异(立即赋值,延时赋值)9.1.2 自定义多元函数自定义二元函数旳一般形式是f[u_ ,v_]:=自选体现式Zhou er9.1.3自定义函数旳保留与重新调出已经自定义好旳函数,假如但愿后来多次使用,这就需要妥善保留与重新调出,保留旳措施如下:Save[“文献名”,自定义函数名序列f,g,…]Note:Save[“文献名”,变量名1,变量名2,…]查看内容:!!文献名显示已经使用旳所有变量:?Global`*9.2纯函数在Mathematica中还常用到一种没有函数名字旳函数,这种特殊形式旳函数称为纯函数。
9.2.1纯函数旳一般形式Function[自变量,函数体现式]9.2.2纯函数旳缩写形式上面纯函数旳一般形式与一般函数旳书写形式相比还较麻烦,至少需要输入更多旳字符,假如采用函数旳缩写形式就会简便得多,缩写形式如下:函数体现式&此外,符号##表达所有旳自变量,##n表达从第n个起往后旳所有自变量。
f[##, ##2] & [x, y, z] f[x, y, z, y, z]Eg. a=Range[10]; Select[a, Mod[#, 2] == 0 &]9.3体现式求值与变换规则9.3.1体现式求值在Mathematica系统中,所有输入旳实体都可称为体现式,系统对体现式旳处理过程称为求值过程,求值旳成果也许是一种数值、一种图形、一种体现式等等。
求值旳对象是体现式,求值旳成果也是体现式,因此可将求值过程看作是从体现式到体现式旳一种变换,或者是一种映射。
Mathematica对体现式旳处理系统是由一种求值系统和一种变换规则库构成。
变换规则库一般由系统内部已经有旳函数构成,顾客也可新建某些函数加入到规则库中。
mathematica 任意数量参数函数在Mathematica 中,你可以创建一个接受任意数量参数的函数。
这可以通过使用特殊参数`##` 和`##n` 来实现,其中`n` 是一个整数。
`##` 表示所有传递给函数的参数,而`##n` 表示从第`n` 个参数开始的所有参数。
不过,更常见的方法是使用`Sequence` 和模式匹配。
下面是一个例子,演示了如何创建一个接受任意数量参数的函数:```mathematicaf[x__] := {x}```这里,`x__`(两个下划线)是一个模式,匹配任意数量的参数。
当你调用这个函数时,所有的参数都会被收集到一个列表中:```mathematicaf[1, 2, 3](* {1, 2, 3} *)f[a, b, c, d](* {a, b, c, d} *)```如果你想对参数进行更复杂的操作,你可以在函数体内部使用`Sequence` 和其他Mathematica 函数。
例如:```mathematicag[x__] := Plus @@ {x}g[1, 2, 3](* 6 *)h[x__] := T able[x[[i]]^2, {i, Length[{x}]}]h[1, 2, 3, 4](* {1, 4, 9, 16} *)```注意,在这个例子中,`{x}` 实际上创建了一个包含所有参数的列表,然后我们可以对这个列表进行操作。
`@@` 操作符用于将列表的元素“展开”为函数的参数。
另外,如果你想创建一个接受至少一个参数的函数,你可以使用`x_`(一个下划线)作为第一个参数,然后使用`x__` 匹配剩余的参数:```mathematicak[first_, rest__] := {first, {rest}}k[1, 2, 3, 4](* {1, {2, 3, 4}} *)```在这个例子中,`first_` 匹配第一个参数,`rest__` 匹配剩余的参数,并将它们收集到一个列表中。
mathematica对数函数Mathematica是一种功能强大的数学计算软件,它提供了多种对数函数的功能和应用。
对数函数常见的有自然对数函数(ln(x))、常用对数函数(log10(x))等。
此外,Mathematica还提供了一些其他变形和特殊类型的对数函数,如指数对数函数(ExpIntegralEi(x))、罗氏对数函数(LogisticSigmoid[x])等。
在下面的文章中,将介绍Mathematica中对数函数的基本用法和一些高级应用。
自然对数函数是以自然对数e为底数的对数函数。
在Mathematica中,自然对数函数表示为Log[x]。
例如,要计算ln(2),可以使用Log[2]。
Mathematica还提供了对自然对数函数的各种基本操作和运算,如计算对数函数的导数、积分、级数展开等。
使用Mathematica计算自然对数函数的导数非常简单。
可以使用D函数来表示对数函数的导数,如D[Log[x], x]表示对ln(x)求导。
例如,D[Log[x], x]的结果是1/x。
可以将这个结果用于其他数学计算中。
Mathematica还提供了计算对数函数的积分的功能。
可以使用Integrate函数来表示对数函数的积分,如Integrate[Log[x], x]表示对ln(x)积分。
计算这个积分的结果是x * ln(x) - x。
可以通过将积分结果用于其他数学计算中。
在一些应用中,需要对对数函数进行级数展开。
可以使用Series函数来表示对数函数的级数展开,如Series[Log[x], {x, 1, 5}]表示对ln(x)在x=1处展开为前5项级数。
通过这个级数展开,可以近似计算对数函数的值。
除了自然对数函数外,Mathematica还提供了其他类型的对数函数。
其中,常用对数函数是以10为底数的对数函数。
在Mathematica中,常用对数函数表示为Log10[x]。
使用Log10函数可以计算常用对数函数的值,如Log10[100]的结果是2Mathematica还提供了一些其他类型的对数函数,如指数对数函数(ExpIntegralEi[x])。
Mathematica常用函数基本运算a+b+c 加a-b 减a b c 或a*b*c 乘a/b 除-a 负号a^b 次方Mathematica 数字的形式256 整数2.56 实数11/35 分数2+6I 复数常用的数学常数Pi 圆周率,π=3.141592654…E 尤拉常数,e=2.71828182…Degree 角度转换弧度的常数,Pi/180I 虚数,其值为√-1Infinity 无限大指定之前计算结果的方法% 前一个运算结果%% 前二个运算结果%%…%(n个%) 前n个运算结果%n 或Out[n] 前n个运算结果复数的运算指令a+bI 复数Conjugate[a+bI] 共轭复数Re[z], Im[z] 复数z的实数/虚数部分Abs[z] 复数z的大小或模数(Modulus)Arg[z] 复数z的幅角(Argument)Mathematica 输出的控制指令expr1; expr2; expr3 做数个运算,但只印出最后一个运算的结果expr1; expr2; expr3; 做数个运算,但都不印出结果expr; 做运算,但不印出结果常用数学函数Sin[x],Cos[x],Tan[x],Cot[x],Sec[x],Csc[x] 三角函数,其引数的单位为弧度Sinh[x],Cosh[x],Tanh[x],… 双曲函数ArcSin[x],ArcCos[x],ArcTan[x] 反三角函数ArcCot[x],ArcSec[x],ArcCsc[x]ArcSinh[x],ArcCosh[x],ArcTanh[x],… 反双曲函数Sqrt[x] 根号Exp[x] 指数Log[x] 自然对数Log[a,x] 以a为底的对数Abs[x] 绝对值Round[x] 最接近x的整数Floor[x] 小于或等于x的最大整数Ceiling[x] 大于或等于x的最小整数Mod[a,b] a/b所得的馀数n! 阶乘Random[] 0至1之间的随机数(最新版本已经不用这个函数,改为使用RandomReal[])Max[a,b,c,...],Min[a,b,c,…] a,b,c,…的极大/极小值数值设定x=a 将变数x的值设为ax=y=b 将变数x和y的值均设为bx=. 或Clear[x] 除去变数x所存的值变数使用的一些法则xy 中间没有空格,视为变数xyx y x乘上y3x 3乘上xx3 变数x3x^2y 为x^2 y次方运算子比乘法的运算子有较高的处理顺序四个处理指令Expand[expr] 将expr展开Factor[expr] 将expr因式分解Simplify[expr] 将expr化简成精简的式子FullSimplify[expr] Mathematica 会尝试更多的化简公式,将expr化成更精简的式子多项式/分式转换ExpandAll[expr] 把算式全部展开Together[expr] 将expr各项通分在并成一项Apart[expr] 把分式拆开成数项分式的和Apart[expr,var] 视var以外的变数为常数,将expr拆成数项的和Cancel[expr] 把分子和分母共同的因子消去分母/分子运算Denominator[expr] 取出expr的分母Numerator[expr] 取出expr的分子ExpandDenominator[expr] 展开expr的分母ExpandNumerator[expr] 展开expr的分子多项式转换函数Collect[expr,x] 将expr表示成x的多项式,如Collect[expr,{x,y,…}] 将expr分别表示成x,y,…的多项式FactorTerms[expr] 将expr的数值因子提出,如4x+2=2(2x+1)FactorTerms[expr,x] 将expr中把所有不包含x项的因子提出FactorTerms[e xpr,{x,y,…}] 将expr中把所有不包含{x,y,...}项的因子提出函数和指数运算TrigExpand[expr] 将三角函数展开TrigFactor[expr] 将三角函数所组成的数学式因式分解TrigReduce[expr] 将相乘或次方的三角函数化成一次方的基本三角函数之组合ExpToTrig[expr] 将指数函数化成三角函数或双曲函数TrigToExp[expr] 将三角函数或双曲函数化成指数函数复数、次方乘积ComplexExpand[expr] 假设所有的变数都是实数来对expr展开ComplexExpand[expr,{x,y,…}] 假设x,y,..等变数均为复数来对expr展开PowerExpand[expr] 将项次、系数最高次方Coefficient[expr,form] 于expr中form的系数Exponent[expr,form] 于expr中form的最高次方Part[expr,n] 或expr[[n]] 在expr项中第n个项代换运算子expr/.x->value 将expr里所有的x均代换成valueexpr/.{x->value1,y->value2,…} 执行数个不同变数的代换expr/.{{x->value1},{x->value2},…} 将expr代入不同的x值expr//.{x->value1,y->value2,…} 重复代换到expr不再改变为止求解方程式的根Solve[lhs==rhs,x] 解方程式lhs==rhs,求xNsolve[lhs==rhs,x] 解方程式lhs==rhs的数值解Solve[{lhs1==rhs1,lhs2==rhs2,…},{x,y,…}] 解联立方程式,求x,y,…NSolve[{lhs1==rhs1,lhs2==rhs2,…},{x,y,…}] 解联立方程式的数值解FindRoot[lhs==rhs,{x,x0}] 由初始点x0求lhs==rhs的根四种括号(term) 圆括号,括号内的term先计算f[x] 方括号,内放函数的引数{x,y,z} 大括号或串列括号,内放串列的元素p[[i ]] 或Part[p,i] 双方括号,p的第i项元素p[[i,j]] 或Part[p,i,j] p的第i项第j个元素缩短输出指令expr//Short 显示一行的计算结果Short[expr,n] 显示n行的计算结果Command; 执行command,但不列出结果查询物件Command 查询Command的语法及说明Command 查询Command的语法和属性及选择项Aaaa* 查询所有开头为Aaaa的物件定义之查询与清除f[x_]= expr 立即定义函数f[x]f[x_]:= expr 延迟定义函数f[x]f[x_,y_,…] 函数f有两个以上的引数f 查询函数f的定义Clear[f] 或f=. 清除f的定义Remove[f] 将f自系统中清除掉含有预设值的Patterna_+b_. b的预设值为0,即若b从缺,则b以0代替x_ y_ y的预设值为1x_^y_ y的预设值为1条件式的自订函数lhs:=rhs/;condition 当condition成立时,lhs才会定义成rhsIf指令If[test,then,else] 若test为真,则回应then,否则回应elseIf[test,then,else,unknow] 同上,若test无法判定真或假时,则回应unknow 极限Limit[expr,x->c] 当x趋近c时,求expr的极限Limit[expr,x->c,Direction->1]Limit[expr,x->c,Direction->-1]微分D[f,x] 函数f对x作微分D[f,x1,x2,…] 函数f对x1,x2,…作微分D[f,{x,n}] 函数f对x微分n次D[f,x,NonConstants->{y,z,…}] 函数f对x作微分,将y,z,…视为x的函数全微分Dt[f] 全微分dfDt[f,x] 全微分Dt[f,x1,x2,…] 全微分Dt[f,x,Constants->{c1,c2,…}] 全微分,视c1,c2,…为常数不定积分Integrate[f,x] 不定积分∫f dx定积分Integrate[f,{x,xmin,xmax}] 定积分Integrate[f,{x,xmin,xmax},{y,ymin,ymax}] 定积分数列之和与积Sum[f,{i,imin,imax}] 求和Sum[f,{i,imin,imax,di}] 求数列和,引数i以di递增Sum[f,{i,imin,imax},{j,jmin,jmax}]Product[f,{i,imin,imax}] 求积Product[f,{i,imin,imax,di}] 求数列之积,引数i以di递增Product[f,{i,imin,imax},{j,jmin,jmax}]泰勒展开式Series[expr,{x,x0,n}] 对expr于x0点作泰勒级数展开至(x-x0)n项Series[expr,{x,x0,m},{y,y0,n}] 对x0和y0展开关系运算子a==b 等于a>b 大于a>=b 大于等于a<b 小于a<=b 小于等于a!=b 不等于逻辑运算子!p notp||q||… orp&&q&&… andXor[p,q,…] exclusive orLogicalExpand[expr] 将逻辑表示式展开二维绘图指令Plot[f,{x,xmin,xmax}]画出f在xmin到xmax之间的图形Plot[{f1,f2,…},{x,xmin,xmax}]同时画出数个函数图形Plot[f,{x,xmin,xmax},option->value]指定特殊的绘图选项,画出函数f的图形Plot几种指令选项预设值说明AspectRatio 1/GoldenRatio 图形高和宽之比例,高/宽Axes True 是否把坐标轴画出AxesLabel Automatic 为坐标轴贴上标记,若设定为AxesLabel->{?ylabel?},则为y轴之标记。
Mathematica中数的类型:Integer任意长度的精确整数Rational有理数的最简形式Real实数Complex复数检验不同类型的数:NumberQ[x]检验x是否是数IntegerQ[x] 检验x是否是整数EvenQ[x] 检验x是否是偶数OddQ[x] 检验x是否是奇数PrimeQ[x] 检验x是否是素数Head[x]===type 检验数的类型数的输入形式:不同形式的数之间的转换IntegerDigits[n]整数n在十进制中的每一位数的列表IntegerDigits[n, b]整数n在b进制中的每一位数的列表IntegerDigits[n, b, len]在每位数的列表中的左端补0,使列表长度达到lenIntegerExponent[n, b]整数n在b进制中末尾零的个数RealDigits[x]实数x在十进制中每一位数的列表,并给出小数点左边的位数RealDigits[x, b]实数x在b进制中的每一位数的列表RealDigits[x, b, len] 实数x在b进制中的前len位的每一位数的列表RealDigits[x, b, len, n]从b n的系数开始的前len位的列表FromDigits[list]从其十进制每位数的序列重构该数FromDigits[list, b] 从其b进制每位数的序列重构该数b^^nnnn b进制下的数BaseForm[x, b] x在b进制下的形式MantissaExponent[x]给出包含x的尾数和指数的列表(科学计数法)MantissaExponent[x, b]给出b进制下的尾数和指数数值精度Precision[x] x的十进制下的有效数位的总数Accuracy[x] x的十进制下小数点后边的有效数位的数目不定结果和无穷结果Indeterminate 不确定的数值结果Infinity 正无穷大量-Infinity 负无穷大量(DirectedInfinity[-1])DirectedInfinity[r] 具有复方向r的无穷大量ComplexInfinity 不定方向的无穷大量DirectedInfinity[ ] 等价于ComplexInfinity数值计算选项Compiled是各种数值函数和画图函数的一个选项,指明他们的表达式是否应当自动被编译。
Compiled->True自动创建编译函数。
如果要使用高精度数,应当设置Compiled->False。
AccuracyGoal是一个针对不同数值运算的可选项,它用来指定最后结果的数字准确度。
AccuracyGoal是诸如NIntegrate, NDSolve和FindRoot函数的一个可选项,AccuracyGoal ->Automatic产生的准确度是10个数位,这小于WorkingPrecision的设置,尽管你可以指定AccuracyGoal->n,但得到的结果可能远远小于n数位的准确度,大多数情形下,必须将WorkingPrecision设定为至少与AccuracyGoal一样大,通过使用AccuracyGoal->a和PrecisionGoal->p , Mathematica将尽量使大小为的结果中数值误差小于10-a+x10-p。
PrecisionGoal是各种数值运算的一个选项,指定在最后的结果中,应寻求多少精度数位。
WorkingPrecision是各种数值运算的一个选项,指定在内部计算时保持多少位的数值精度。
WorkingPrecision是诸如NIntegrate和FindRoot的函数的选项。
设置WorkingPrecision->n使得所有进行的内部计算有至多n位的精度。
即使内部计算进行到n位精度,你得到的结果可能有更低的精度。
3.2 数学函数数值函数IntegerPart[x] X的整数部分FractionalPart[x] X的小数部分Round[x] 最靠近X的整数Floor[x] 小于X的最大整数Floor 92,2.5,Ceiling[x] 大于X的最小整数Sign[x]符号函数,X>0时为1,X<0时为-1或z/Abs[z] Sign/@{153.2,π,©-π,π+™©}UnitStep[x] 阶梯函数,X≥0时为1,X<0时为-1Abs[x] 绝对值Abs5,512,Max[x1,x2,……] or Max[{x1,x2,……},……]Min[x1,x2,……] or Min[{x1,x2,……},……]x + I yRe[z] Z的实部ComplexExpand[Re[a+b ™]]Im[z] Z的虚部{Im[a+b ™],ComplexExpand[Im[a+b ™]]}Conjugate[z] x - I y .Complex0,n_Comple Abs[z] |z|Arg[z] 幅角主值Rationalize[x] 靠近X的有理数(即有理数逼近)Table Rationalize,102i,Rationalize[x, dx] 靠近X的有理数(即有理数逼近),误差为dx伪随机函数Random[ ] 在0-1之间产生一个随机实数Random[Real, xmax] 在0-xmax之间产生一个随机数Random[Real,{xmin,xmax}] 在xmin -xmax之间产生一个随机数Random[Complex] 在单位正方形内产生一个复随机数Random[Complex, { zmin, zmax}] 产生一个复随机数Random[type, range, n]产生N位数的随机数这是0 与1 之间的30 位的伪随机实数:Random[Integer] 产生随机整数Random[Integer,{ imin, imax}]产生随机整数SeedRandom[ ]将随机数产生器的起点重设为时钟时刻SeedRandom[s]将起点重设整数S$RandomState随机数产生器的当前状态整数函数Mod[k, n] K/N的余数Quotient[m, n] M/N商的整数部分GCD[n1,n2,……] 最大公约数LCM[n1,n2,……] 最小公倍数KroneckerDelta[n1,n2,……] 克罗内克符号IntegerDigits[n, b]给出在整数n的b进制的数字列表。
IntegerDigits[n]给出整数n的十进制数字列表。
IntegerDigits[n,b,len]给列表左边补零去给出一个长度为len的列表。
IntegerExponent[n, b]给出b除n的最高幂。
IntegerExponent[n]等于IntegerExponent[n,10]. IntegerExponent[n,b]以b进制给出n的数字中尾数为0的数.Mod[k, n]结果在0到N-1之间Mod[k, n, 1]结果在1到N之间Mod[k, n, -n/2]结果在-n/2到n/2之间Mod[k, n, d]结果在D到D+N-1之间FactorInteger[n] 分解整数为素数积FactorInteger[5,GaussianIntegers→True] Divisors[n] N的除数列表Divisors[24+30™]Prime[k] 第K个素数(K应小于10^8)Prime[Range[100]]PrimePi[x] ≤X的素数个数π(x)PrimeQ[n] 判断N是否为素数Table22n1,PrimeQ22n1,n FactorInteger[n, GaussianIntegers->True] 分解整数为高斯素数积PrimeQ[n, GaussianIntegers->True]判断N是否为高斯素数(复素数)PowerMod[a, b, n] a b/N的余数EulerPhi[n] 欧拉函数φ(n),小于N的正整数中与N互质的数的个数MoebiusMu[n] 莫比乌斯函数μ(n)=1(n=1);(-1)r(n为r个不同素数的乘积);0(n被一素数的平方整除)DivisorSigma[k, n] 除数函数=Σd|n d k DivisorSigma[-1,120]JacobiSymbol[n, m] 雅可比符号,当m为奇数时归结为勒让德符号ExtendedGCD[n1,n2,……] 最大公约数g r,1n1r2n2 MultiplicativeOrder[k, n] 给出以n为模的k的乘法阶数, 定义为使得成立的最小整数.表示法偶尔被使用,也称为K的指标。
MultiplicativeOrder[k, n,{r1,r2,……}] 给出以n为模的k的广义乘法阶数,定义为使得成立的最小整数m. CarmichaelLambda[n] 给出了Carmichael(卡尔米切)函数(n),Carmichael 函数定义为使得对所有的与n互素的k都有的最小整数。
LatticeReduce[{v1,v2,……}]给出向量的集合的化简的基。
的元素可以是整数,高斯整数,或高斯有理数。
ContinuedFraction[x, n] 生成连分数到N项(a n)FromContinuedFraction[list] 将连分数化为分数或二次不尽根Rationalize[x, dx] 靠近X的有理数(即有理数逼近),误差为dx ContinuedFraction[x] 将二次不尽根生成循环连分数RealDigits[x] 将分数生成循环小数(有理数的完全数字序列)RealDigits[x, b] 将分数生成b进制循环小数(b进制下的完全数字序列)FromDigits[list]将循环小数生成分数DigitCount[n, b, d] 用来给出n的b进制表示中数字d的个数.DigitCount[n, b]用来给出n的b进制表示中数字1,2,...,b-1, 0的个数. DigitCount[n]用来给出n的10进制表示中数字1,2,...,9, 0的个数.DigitCount[n]等价于DigitCount[n,10,Mod[Range[10],10]].BitAnd[n1,n2,……]整数n i的位与BitOr[n1,n2,……]整数n i的位或BitXor[n1,n2,……]整数n i的位异或BitNot[n]整数n i的位非位运算作用于表示为二进制的整数. BitAnd[, ,...] 产生一个整数其二进制表示的某一位为 1 当且仅当所有的n i在该位为 1. BitOr[, ,...] 产生一个整数其二进制表示的某一位为1,只要某个 n i在该位为 1. BitXor[, ] 产生一个整数其二进制表示的某一位为 1,当且仅当 n1,n2中仅有一个在该位为 1. BitXor[, ,...] 的二进制表示的某一位为 1,当且仅当 n i中有奇数个在该位为1.组合函数n! n(n-1)(n-2) … 1,0!=1。