Mathematica函数及使用方法
Mathematica教程-2常用的数学函数
。
Round[x]: 最接近x的整数 Floor[x]: 不大于x的最大整数 Ceiling[x]: 不小于x的最小整数 Abs[x]: x的绝对值或复数的摸 x+Iy : 复数x+iy;Re[z]: 复数z的实部 Im[z]: 复数z的虚部;Arg[z]: 复数z的幅角 Divisors[n]: 能整除n的所有整数组成的表 Mod[m,n]: m被n除的正余数 Quotient[m,n]: m/n的整数部分 GCD[n1,n2……]: 求n1,n1,……的最大公因数 LCM[n1,n2……]: 求n1,n2,……的最小公倍数
函数的立即定义
立即定义函数的语法如下f[x_]=expr函数名为f, 自变量为x,expr是表达式。在执行时会把expr 中的x都换为f的自变量x(不是x_)。函数的自变 量具有局部性,只对所在的函数起作用。函数 执行结束后也就没有了,不会改变其它全局定 义的同名变量的值。例: 定义函数f(x)=x*Sinx+x2, 对定义的函数求函数 值,并绘制它的图形。
当然使用If命令也可以定义上面的函数
表
将一些相互关联的元素放在一起,使它们成 为一个整体。既可以对整体操作,也可以对 整体中的一个元素单独进行操作。在 Mathematica中这样的数据结构就称作表 (List)。表主要有三个用法:表{a,b,c} 可以表示一个向量;表{{a,b},{c,d}}可表示一 个矩阵。
常用函数的命令格式
三角函数 :Sin[x],Cos[x] ,Tan[x] ,Cot[x] 等
反三角函数 :ArcSin[x] ,ArcCos[x] ,ArcTan[x]等 双曲函数与反双曲函数 :Sinh[x] ,Cosh[x] ,Tanh[x], ArcSinh[x],ArcCosh[x],ArcTanh[x] 指数函数E^x(或Exp[x]),指数函数a^x
mathematica使用指南
mathematica使用指南Mathematica是一款功能强大的数学软件,具备广泛的应用领域,包括数学、统计学、物理学、工程学等等。
本文将为您提供一份Mathematica的使用指南,帮助您快速入门并提高使用效率。
1. Mathematica简介Mathematica是由Wolfram Research公司开发的一款通用计算软件,它具备数值计算、符号计算、图形绘制等多种功能。
Mathematica基于Wolfram Language语言,用户可以直接在其中编写代码进行计算和分析。
2. 安装与启动首先您需要从Wolfram Research公司官方网站下载Mathematica安装文件,并按照安装向导完成安装过程。
安装完成后,您可以在计算机上找到Mathematica的启动图标,点击即可启动该软件。
3. Mathematica界面介绍Mathematica的主界面由菜单栏、工具栏、输入区域和输出区域组成。
菜单栏提供了各种功能选项,工具栏包含常用工具按钮,输入区域用于输入代码,而输出区域用于显示计算结果。
4. 基本计算在输入区域中,您可以直接输入数学表达式进行计算。
例如,输入"2 + 3",然后按下Enter键即可得到计算结果"5"。
Mathematica支持基本的算术运算、三角函数、指数函数等数学操作。
5. 变量与函数您可以使用Mathematica定义变量并进行计算。
例如,输入"x = 2",然后再输入"y = x^2",按下Enter键后,变量y会被赋值为2的平方,即4。
定义的变量可以在后续计算中使用。
6. 图形绘制Mathematica提供了丰富的图形绘制功能。
您可以使用Plot函数绘制函数曲线,使用ListPlot函数绘制离散数据点,还可以绘制3D图形等等。
通过调整参数和选项,您可以自定义图形的样式和外观。
mathematica用法
Mathematica是一款非常强大的数学软件,它支持符号计算、数值计算和图形可视化等功能。
以下是一些Mathematica的基本用法:
表达式输入:在Mathematica中,可以通过输入表达式来得到结果。
例如,输入 2 + 3,然后按下回车键,就会得到结果5。
定义变量:使用Let 命令可以定义变量,例如Let[x = 5]。
使用函数:Mathematica提供了大量的内置函数,可以直接使用。
例如,Sin[x] 可以计算sin(x)的值。
使用Pattern替换:Mathematica支持模式替换,可以通过/. 操作进行。
例如,设 a 是一个变量,有a/.a->1 就可以将所有出现的a 替换为1。
使用纯函数:纯函数是一个没有副作用的函数,它对参数进行操作并返回结果,不会改变参数的值。
在Mathematica中,可以使用Function 命令定义纯函数。
例如,f = Function[{x}, x^2] 可以定义一个对输入的x进行平方操作的纯函数。
使用Plot和ParametricPlot:Plot 和ParametricPlot 是Mathematica中用于绘图的命令,可以用来绘制函数的图像或者参数方程的图像。
例如,Plot[Sin[x], {x, 0, 2*Pi}] 就会绘制sin(x)的图像。
mathematica简明使用教程
mathematica简明使用教程Mathematica是一种强大的数学软件,广泛应用于科学研究、工程计算和数据分析等领域。
本文将简要介绍Mathematica的使用方法,帮助读者快速上手。
一、安装和启动Mathematica我们需要下载并安装Mathematica软件。
在安装完成后,可以通过桌面图标或开始菜单中的快捷方式来启动Mathematica。
二、界面介绍Mathematica的界面分为菜单栏、工具栏、输入区域和输出区域四部分。
菜单栏提供了各种功能选项,工具栏包含了常用的工具按钮,输入区域用于输入代码或表达式,而输出区域则显示执行结果。
三、基本操作1. 输入和输出在输入区域输入代码或表达式后,按下Shift+Enter键即可执行,并在输出区域显示结果。
Mathematica会自动对输入进行求解或计算,并返回相应的输出结果。
2. 变量定义可以使用等号“=”来定义变量。
例如,输入“a = 3”,然后执行,就会将3赋值给变量a。
定义的变量可以在后续的计算中使用。
3. 函数调用Mathematica内置了许多常用的数学函数,可以直接调用使用。
例如,输入“Sin[π/2]”,然后执行,就会返回正弦函数在π/2处的值。
4. 注释和注解在代码中添加注释可以提高代码的可读性。
在Mathematica中,可以使用“(*注释内容*)”的格式来添加注释。
四、数学运算Mathematica支持各种数学运算,包括基本的加减乘除,以及更复杂的求导、积分、矩阵运算等。
下面简要介绍几个常用的数学运算:1. 求导可以使用D函数来求导。
例如,输入“D[Sin[x], x]”,然后执行,就会返回正弦函数的导数。
2. 积分可以使用Integrate函数来进行积分运算。
例如,输入“Integrate[x^2, x]”,然后执行,就会返回x的平方的不定积分。
3. 矩阵运算Mathematica提供了丰富的矩阵运算函数,可以进行矩阵的加减乘除、转置、求逆等操作。
mathematica级数
mathematica级数在 Mathematica 中,可以使用内置的符号计算功能来处理级数。
以下是一些基本的操作:1.定义级数:使用 Series 函数定义一个级数。
例如,定义一个简单的幂级数:mathematicaseries = Series[x^2 + 3*x + 2, {x, 0, 10}]这将创建一个级数,其中包含x2 ,3x 和 2 的前10项。
2. 求和:使用 Sum 函数来求和。
例如,求上述级数的和:mathematicaSum[CoefficientList[series, x][[n]], {n, 0, 10}]3.求导:使用 D 函数来求导。
例如,求上述级数的导数:mathematicaD[series, x]4.积分:使用 Integrate 函数来积分。
例如,求上述级数的积分:mathematicaIntegrate[series, x]5.展开式:使用 Normal 函数来获取级数的展开式。
例如,获取上述级数的展开式:mathematicaNormal[series]6.阶乘和组合数:Mathematica 内置了阶乘和组合数的符号。
例如,可以使用 n! 来表示 n 的阶乘,使用 Binomial[n, k] 来表示组合数。
7.展开二项式定理:使用 Binomial 函数来展开二项式定理。
例如,展开 (a+b)3 :mathematicaBinomial[3, 2]*a^3*b^2 + Binomial[3, 1]*a^2*b^3 + Binomial[3, 0]*a^1*b^3 + Binomial[3, 2]*a^2*b^1 +Binomial[3, 1]*a^1*b^2 + Binomial[3, 0]*a^0*b^3以上是一些基本的操作,具体使用时可能需要根据实际情况进行调整。
mathmatic 基本用法
mathmatic 基本用法Mathematica是一种强大的数学软件,它具有广泛的数学计算和可视化功能。
基本用法包括使用Mathematica进行数学运算、求解方程、绘制图表等。
1.数学运算:Mathematica可以进行基本的数学运算,如加减乘除、幂运算、三角函数、对数函数等。
例如,可以输入"2+3"得到结果"5",输入"Sin[π/2]"得到结果"1"。
2.方程求解:Mathematica可以求解各种类型的方程。
例如,可以输入"Solve[x^2 - 3x + 2 == 0, x]"来求解这个二次方程,得到结果"x == 1 || x == 2"。
3.符号计算:Mathematica可以进行符号计算,包括展开、化简、因式分解等。
例如,可以输入"Simplify[(x^2 + x - 6)/(x + 3)]"来化简这个表达式,得到结果"x - 2"。
4.绘图功能:Mathematica可以生成各种类型的图表,包括二维曲线图、三维曲面图、柱状图、散点图等。
例如,可以输入"Plot[Sin[x], {x, 0, 2π}]"来绘制正弦函数的曲线图。
除了基本用法外,Mathematica还有许多其他功能,如矩阵计算、微积分、概率统计、符号推导、动态演示等。
它还提供了大量的内置函数和算法,可以用于求解复杂的数学问题。
使用Mathematica还可以进行科学计算、工程计算、数据分析等各种应用领域。
总之,Mathematica是一款功能强大的数学软件,可以帮助用户进行各种数学计算和可视化操作。
mathematica解方程
mathematica解方程
Mathematica是一款强大的数学软件,可以使用其内置的求解方程的功能来解决方程问题。
下面是使用Mathematica求解方程的一般步骤:
1. 输入方程:在Mathematica的Notebook界面中,输入要解决的方程,使用等号“=”表示方程的左右两侧。
2. 使用Solve函数求解:使用Solve函数,输入方程,指定要解的变量,运行程序即可求解方程。
例如:
Solve[x^2 - 2x + 1 == 0, x]
这个命令可以求解方程x^2 - 2x + 1 = 0,并返回方程的解。
3. 使用Reduce函数求解:如果方程的解比较复杂或者有多个解,可以使用Reduce函数。
Reduce函数可以找到方程的所有解,并给出条件。
例如:
Reduce[x^3 + 3x^2 + 3x + 1 == 0, x]
这个命令可以求解方程x^3 + 3x^2 + 3x + 1 = 0,并返回方程的所有解。
4. 使用NSolve函数求解数值解:如果方程无法用解析式表示,或者需要求解数值解,可以使用NSolve函数。
例如:
NSolve[x^2 - 2x + 1 == 0, x]
这个命令可以求解方程x^2 - 2x + 1 = 0 的数值解。
Mathematica常用函数的中文说明及使用方法
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 范数
Mathematica支持多种范数计算,可以使用Norm函数来计算范数。常见的范数有L1范数、L2范数和无穷范数。
具体用法如下:
- L1范数:Norm[m, 1],其中m为向量或矩阵
- L2范数:Norm[m, 2],其中m为向量或矩阵
-无穷范数:Norm[m, Infinity],其中m为向量或矩阵
例如,计算向量{1, 2, 3}的L1范数和L2范数可以使用以下代码:
```
vec = {1, 2, 3};
L1Norm = Norm[vec, 1]
L2Norm = Norm[vec, 2]
```
Hale Waihona Puke 结果为L1范数为6,L2范数为√14。
同样地,计算矩阵的范数也可以使用Norm函数,例如:
```
matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
L1Norm = Norm[matrix, 1]
L2Norm = Norm[matrix, 2]
```
注意,对于矩阵的范数计算,可以选择对矩阵的每一行求范数(Norm[matrix, 1]),或者对矩阵的每一列求范数(Norm[matrix, Infinity])。
Math软件使用说明
1.两择一条件转向变量
1)对条件进行判断,假如成立,则执行表达式,不然返回 ( 或执行 体现式 1,体现式 2 ]
实例 当 a > 1时 ,画出自然对数函数 y = ln x 旳图像
a 2; If a 1, Plot Log x , x, 0, 1
实例 打印出自然数旳立方数,直至 125 。
Do If n 6, Print n ^ 3 , n, 1, 10
实例 打出自然数平方旳倒数,直至该倒数不大于 0.001 为止 。
Do If 1 n ^ 2 0.001, Print 1 n ^ 2 ,
n, 1, 10000
在循环中分别画出二次函数 y = x2 和自然对数函数 y = ln x 旳图像
BitXor 2, 14 BitXor 9, 10, 13
6.形成模块变量 阐明某些变量只在一种局部体现式(模块)
中起作用
Module [ { 变量 } ,体现式 ] x 12 ; Module x , x 7 x x1 x 12 y5 Module x, y , x a; y b; t x y t xy
x(1 x), x 0
实例 画出分段函数
y
x, 0 x 1 旳图像
2 x, x 1
Plot Which x 0, x 1 x , 0 x 1, x, x 1,
2 x , x, 2, 2
3.流程控制 —— 继续流程变量 转入目前循环流程旳下一步
Continue [ ]
t 1; Do t t k; Print t ; If k 6, Continue ; t 1, k, 10 t 1; Do t t k; Print t ; If t 600, Continue ; t 1, k, 10
Mathematical用法 大全 实用版
12.求极小值:In[1]:=FindMinimum[Sin[x]*Cos[x],{x,0.5}](求函数在0.5附近的极小值);
In[2]:=FindMinimum[Sin[x*y]*Exp[x^2],{x,0.2}, {y,0.3}](求多元函数极小值)
(* 这是一个例题 每行后按回车键 用半角标点符号*)
Print["请回答3个题目"]
For[i=1,i<=3,i=i+1,
a=Random[Integer,{1,100}];
b=Random[Integer,{1,100}];
In[4]:=%2+4,Out[4]= 12;
In[5]:=1/3-1/4,Out[5]= ;In[6]:=N[%],Out[6]= 0.0833333;
In[7]:=N[%5+12,10],Out[7]= 12.08333333(注意字母的大小写)
3.变量赋值:变量=表达式,“x=.”或Clear[x] 表示清除对x的赋值。
Mathematica for Windows用法
一、Mathematica的主要功能
Mathematica是美国Wolfram公司开发的一个功能强大的计算机数学系统,提供了范围广泛的数学计算功能,主要包括三个方面:符号演算、数值计算、图形。例如:多项式的四则运算、展开、因式分解,有理式的各种计算,有理方程、超越方程的解,向量和矩阵的各种计算,求极限、导数、极值、不定积分、定积分、幂级数展开式,求解微分方程,作一元、二元函数的图形等等。
8.幂级数展开:In[1]:=Series[Exp[x],{x,0,4}](在x=0处展开到x的四次幂)
Mathematica数学软件操作技巧及界面详解
Mathematica数学软件操作技巧及界面详解Mathematica是一款十分强大的数学计算软件,它可以广泛应用于科学、工程和教育等领域。
本文将介绍一些Mathematica的操作技巧,并详细解析其界面设计。
一、Mathematica的基本操作技巧1. 输入和计算Mathematica的主界面提供了一个输入框,我们可以在其中输入各种数学表达式和计算公式。
输入时需要遵循一定的语法规则,比如使用^表示乘方,使用*表示乘法,使用/表示除法等。
在输入完毕后,按下Enter键即可进行计算。
2. 变量定义和赋值在Mathematica中,我们可以使用等号(=)来定义和赋值变量。
比如,我们可以输入"radius = 5"来定义一个名为radius的变量,并将其赋值为5。
之后,我们可以直接使用radius来进行计算。
3. 函数调用Mathematica内置了许多数学函数,比如sin、cos、log等。
我们可以使用这些函数来进行各种数学运算。
调用函数时需要在函数名后加上待计算的参数,比如"sin(0.5)"可以计算出0.5的正弦值。
二、Mathematica的界面详解1. 顶部菜单栏Mathematica的顶部菜单栏包含了许多功能按钮,我们可以通过点击这些按钮来执行相应的操作,比如打开文件、保存文件、进行图像绘制等。
2. 工具栏在Mathematica的工具栏上,我们可以找到常用的绘图工具、格式调整工具和计算选项卡等。
这些工具可以帮助我们更加方便地进行数学计算和图形绘制。
3. 文档窗口Mathematica的文档窗口是我们进行数学计算和编写代码的主要区域。
我们可以在文档窗口中输入数学表达式、编写代码,并且可以将计算结果直接显示在文档窗口中。
4. 侧边栏在Mathematica的侧边栏上,我们可以找到各种各样的面板和选项卡。
这些面板和选项卡提供了对Mathematica的进一步设置和功能扩展,比如图形面板、数据面板和设置面板等。
《Mathematica》使用手册
《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中的数据导入和导出方法。
Mathematica函数及使用方法
函数及使用方法(来源: )注:为了对有一定了解地同学系统掌握地强大功能,我们把它地一些资料性地东西整理了一下,希望能对大家有所帮助.一、运算符及特殊符号; 执行,不显示结果顺次执行,,并显示结果关于系统变量地信息关于系统变量地全部信息执行命令! 地阶乘显示文件内容< >> 打开文件写>>> 打开文件从文件末写() 结合率[] 函数{} 一个表<* *> 在语言中使用地函数(**) 程序地注释第个参数所有参数把作用于后面地式子前一次地输出倒数第二次地输出第个输出变量地注释" " 字符串` 上下文加减*或乘除^ 乘方^^ 以为进位地数且或非自加,自减,* 同语言>,<,>,< 逻辑判断(同)立即赋值建立动态赋值:> 建立替换规则> 建立替换规则相当于[]将规则应用于将规则不断应用于知道不变为止名为地一个任意表达式(形式变量)名为地任意多个任意表达式(形式变量)—————————————————————————————————————二、系统常数....地无限精度数值...地无限精度数值..卡塔兰常数....高斯常数...黄金分割数角度弧度换算复数单位无穷大负无穷大复无穷大不定式—————————————————————————————————————三、代数计算[] 展开表达式[] 展开表达式[] 化简表达式[] 将特殊函数等也进行化简[] 展开所有地幂次形式[,{...}] 按复数实部虚部展开[] 化简中地特殊函数[, ] 合并同次项[, {,...}] 合并,...地同次项[] 通分[] 部分分式展开[, ] 对地部分分式展开[] 约分[] 展开表达式[, ] 展开表达式[] 提出共有地数字因子[, ] 提出与无关地数字因子[, {...}] 提出与无关地数字因子[, ] 多项式中地系数[, , ] 多项式中^地系数[, ] 表达式中地最高指数[] 表达式地分子[] 表达式地分母[] 展开地分子部分[] 展开地分母部分[] 展开表达式中地三角函数[] 给出表达式中地三角函数因子[] 给出表达式中地三角函数因子地表[] 对表达式中地三角函数化简[] 三角到指数地转化[] 指数到三角地转化[][] —————————————————————————————————————四、解方程[, ] 从方程组中解出[, , ] 从方程组中削去变量,解出[, , ] 解微分方程,其中是地函数[{,...},{...}]解微分方程组,其中是地函数[, , {...}] 解偏微分方程[, ] 把方程组中变量约去[, ] 给出等式成立地所有参数满足地条件[, ] 化简并给出所有可能解地条件[] 用和将逻辑表达式展开[] 求函数地逆函数[, ] 求多项式函数地第个根[, ] 得到多项式方程地所有根—————————————————————————————————————五、微积分函数[, ] 求[]地微分[, {, }] 求[]地阶微分[..] 求[]对...偏微分[, ] 求[]地全微分[] 求[]地全微分[, {, }] 阶全微分^^[..] 对..地偏微分[, ] []对在地不定积分[, {, , }] []对在区间()地定积分[, {, , }, {, , }] []地二重积分[, >] 趋近于时地极限[, {}] 在处地留数[, {, , }] 给出[]在处地幂级数展开[, {, }, {, , }]先对幂级数展开,再对[] 化简并给出最常见地表达式[, ] 给出级数中第次项地系数[, {...}]'或[...][] 一阶导数[, ] 给出逆函数地级数[...] 给出两个基数地组合[,{,..}]表示一个在处地幂级数,其中为系数[]^ 阶小量^[, ]^ 阶小量()^—————————————————————————————————————八、数值函数[] 表达式地机器精度近似值[, ] 表达式地位近似值,为任意正整数[, ] 求方程数值解[, , ] 求方程数值解,结果精度到位[, , {, , }]微分方程数值解[, {,...}, {, , }]微分方程组数值解[, {}] 以为初值,寻找方程数值解[, {, , , }][, {}] 数值求和,为步长[, {}, {,..},..] 多维函数求和[, {, , , }]函数求积[, {, , }] 函数数值积分优化函数:[, {}] 以为初值,寻找函数最小值[, {, , , }][,{},{,..}]为线性不等式组,为..之线性函数,得到最小值及此时地..取值[, {}, {, ,..}]同上[] 解线性组合在>>约束下地最小值,为向量为矩阵[{...}] 向量组地极小无关组数据处理:[]用指定函数组对数据进行最小二乘拟和可以为{{},{}..}多维地情况: [{}, {, , ^[]}, ][]对数据进行差值,同上,另外还可以为{{,{}},{,{,.}..}指定各阶导数默认为次,可修改[]对离散数据插值,可为维[,{{},{},..}][,{}, {},..]以对应[]地为数据进行插值[] 对复数数据进行付氏变换[] 对复数数据进行付氏逆变换[{...},{,...}]得到每个表中地最小值[{...},{,...}]得到每个表中地最大值[, ] 将表中使得为地元素选择出来[, ] 将表中匹配模式地元素地个数[] 将表中元素按升序排列[] 将表中元素按[]为地顺序比较地任两个元素,实际上[]中默认集合论:[..] 表地并集并排序[..] 表地交集并排序[...]从全集中对地差集—————————————————————————————————————九、虚数函数[] 复数表达式地实部[] 复数表达式地虚部[] 复数表达式地模[] 复数表达式地辐角[] 复数表达式地共轭—————————————————————————————————————十、数地头及模式及其他操作整数实数复数有理数(*注:模式用在函数参数传递中,如[]规定传入参数地类型,另外也可用来判断[[],...]*)[] 数字以近制地前个码元[] 类上[] 地反函数[] 把实数有理化成有理数,误差小于[, ] 将中小于地部分去掉默认为^[] 给出小数部分位数,对于等为无限大[] 给出有效数字位数,对于等为无限大[, ] 设置显示时地小数部分位数[, ] 设置显示时地有效数字位数—————————————————————————————————————十一、区间函数[{, }] 区间[, ](* [ [{}]]*)[, ] 在区间内吗?[] 区间在区间内吗?[...] 区间地并[...] 区间地交—————————————————————————————————————十二、矩阵操作或 [, , ] 矩阵、向量、张量地点积[] 矩阵地逆[] 矩阵地转置[,{..}]将矩阵第行与第列交换[] 矩阵地行列式[] 特征值[] 特征向量[] 特征系统,返回{}[, ] 解线性方程组[] 矩阵地零空间,即[]零向量[] 化简为阶梯矩阵[, ] 地所有*阶子矩阵地行列式地值(伴随阵,好像是)[, ] 阵自乘次[..] 中各个元之间相互组合,并作为地参数地到地矩阵[]给出矩阵地外积[] 地奇异值,结果为{},[[]][][] 地广义逆[] 分解[] 分解[] 分解—————————————————————————————————————十三、表函数(*“表”,我认为是中最灵活地一种数据类型 *)(*实际上表就是表达式,表达式也就是表,所以下面 *)(*一个表中元素地位置可以用于一个表来表示 *)表地生成{,...} 一个表,元素可以为任意表达式,无穷嵌套[,{}] 生成一个表,共个元素[,{, }] 生成一个表,共个元素[][,{},{},..] 多维表[] 简单数表{}[, , ] 以为步长地数表[, ] 一维表,元素为[] (从到)[,{..}] 多维表,元素为[..] (各自从到) [] 阶单位阵[] 对角阵元素操作[, ]或[[]]第个元[[]] 倒数第个元[[,..]] 多维表地元[[{,..}] 返回由第()地元素组成地子表[] 第一个元[] 最后一个元[] 函数头,等于[[]][, ] 取出由表制定位置上地元素值[, ] 取出表前个元组成地表[,{}] 取出表从到地元素组成地表[, ] 去掉表前个元剩下地表,其他参数同上[] 去掉表第一个元剩下地表[, ] 把作用到每一个地元上,为地所有元组成地表表地属性[] 第一曾元素地个数[] 表地维数返回{..}为一个*...地阵[] 秩[] 最大深度[] 给出中第层子表达式地列表[, ] 满足模式地中元地个数[, ] 中是否有匹配地元[, ] 地反函数[, ] 表中匹配模式地元素地位置列表[{...}]匹配模式地所有元素地表表地操作[, ] 返回在表地最后追加元后地表[, ] 返回在表地最前添加元后地表[, , ] 在第元前插入[,{,..}]在元素[[{,..}]]前插入[,{,..}]删除元素[[{,..}]]后剩下地表[]删除匹配地所有元后剩下地表[] 将地第元替换为[] 返回按顺序排列地表[] 把表倒过来[, ] 把表循环左移次[, ] 把表循环右移次[, ] 把按每各元为一个子表分割后再组成地大表[] 抹平所有子表后得到地一维大表[] 抹平到第层[] 把相同地元组成一个子表,再合成地大表[, ] 把[[]]处地子表抹平[] 由地元素组成地所有全排列地列表[] 如果在之前返回,如果在之后返回,如果与全等返回[] 把通过两两交换得到标准顺序所需地交换次数(排列数)以上函数均为仅返回所需表而不改变原表[] 相当于[];[] 相当于[];—————————————————————————————————————十四、绘图函数二维作图[,{}] 一维函数[]在区间[]上地函数曲线[{..},{}] 在一张图上画几条曲线[{,..}] 绘出由离散点对()组成地图[{{},{},..}] 绘出由离散点对()组成地图[{},{}] 由参数方程在参数变化范围内地曲线[{{},{},...},{}]在一张图上画多条参数曲线选项:>{} 作图显示地值域范围>生成图形地纵横比> 标题文字>{} 分别制定是否画轴>{}轴上地说明文字>用什么方式画轴地刻度>{} 坐标轴原点位置>{{}, {}}设置轴线地线性颜色等属性> 是否画边框>{}边框四边上地文字同边框上是否画刻度同图上是否画栅格线>{{},{}设置边框线地线性颜色等属性[>] 把离散点按顺序连线>{{},{},..}曲线地线性颜色等属性> 曲线取样点,越大越细致三维作图[,{}, {}]二维函数[]地空间曲面[{}, {}, {}]同上,曲面地染色由[]值决定[] 二维数据阵地立体高度图[]同上,曲面地染色由[数据]值决定[{},{}]二元数方程在参数变化范围内地曲线[{{},{},...},{}]多条空间参数曲线选项:>{} 三维视点,默认为{}> 是否画三维长方体边框>{} 三轴比例三维长方体边框线性颜色等属性> 是否染色>{..} 为某一个光源{{}}为灯色,向方向照射>颜色函数慢散射光地光源> 是否画曲面上与轴平行地截面地截线截线线性颜色等属性>{{}, {}}网格范围指定图形顶部、底部超界后所画地颜色 > 是否染色> 略去被遮住不显示部分地信息等高线[,{},{}]二维函数[]在指定区间上地等高线图[] 根据二维数组数值画等高线选项:> 画条等高线>{,..} 在处画等高线> 是否用深浅染色> 是否画等高线> {{},{},..}等高线线性颜色等属性同上密度图[,{},{}]二维函数[]在指定区间上地密度图[] 同上图形显示[] 显示一组图形对象,为选项设置[...] 在一个图上叠加显示一组图形对象[{,...}]在一个图上分块显示一组图形对象[]把选中地中地图画循环放映选项:(此处选项适用于全部图形函数)>颜色函数指定绘图地背景颜色> 竖着写文字此后输出文字地字体,颜色大小等>等把其作用于某点地函数值上决定某点地颜色> 是否对遮挡部分也染色曲线、曲面最大弯曲度绘图函数(续)图元函数[, ]为下面各种函数组成地表,表示一个二维图形对象[, ]为下面各种函数组成地表,表示一个三维图形对象[, ]表示一个由和决定地曲面对象[]表示一个由决定地等高线图对象[]表示一个由决定地密度图对象以上定义图形对象,可以进行对变量赋值,合并显示等操作,也可以存盘[] {}或{},在指定位置画点[{,..}]经由点连线[{, }, {, }] 画矩形[{},{}]由对角线指定地长方体[{,..}] 封闭多边形[{}] 画圆[{},{}] 画椭圆,为半长短轴[{},{}] 从角度~地圆弧[{, }, ] 填充地园、椭圆、圆弧等参数同上[>] 颜色栅格[] 在坐标上输出表达式[""] 直接用图元语言写[{,..}] 返回点地坐标,且均大于小于颜色函数(指定其后绘图地颜色)[] 灰度为间地实数[, , ] 颜色,均为间地实数[, , ] 亮度,饱和度等,均为间地实数[, , , ] 颜色其他函数(指定其后绘图地方式)[] 设置线宽为[] 设置绘点地大小[{,..}] 虚线一个单元地间隔长度>{, } 显示图形大小(像素为单位)> 图形解析度个>{{},{}}四边地空白> 是否旋转度显示—————————————————————————————————————十五、流程控制分支[, , ] 如果为,执行段,否则段[, , , ] 同上,即非又非,则执行段[..] 执行第一为地对应地[..]执行第一个所匹配地所对应地段循环[,{}] 重复执行次[,{}, {},...]多重循环[, ] 循环执行直到为[]类似于语言中地,注意","与";"地用法相反: [ ^< []]异常控制[] 停止计算,把返回给最近一个处理[, ] 同上,[] 计算,遇到返回地值则停止[, ] 当[, ]中匹配时停止其他控制[] 从函数返回,返回值为[ ] 返回值[ ] 结束最近地一重循环[ ] 停止本次循环,进行下一次循环[] 无条件转向[]处[] 设置一个断点[] 计算,如果有出错信息产生,则返回地值[,...]当特定信息产生时则返回[]当产生信息时放回[ ] 中断运行[ ] 中断运行[] 计算,当耗时超过秒时终止[]计算,当耗用内存超过字节时终止运算交互式控制。
Mathematica使用教程
Mathematica使⽤教程Mathematica 使⽤教程⼀、要点Mathematica 是⼀个敏感的软件. 所有的Mathematica 函数都以⼤写字母开头; 圆括号( ),花括号{ },⽅括号[ ]都有特殊⽤途, 应特别注意; 句号“.”,分号“;”,逗号“,”感叹号“!”等都有特殊⽤途, 应特别注意; ⽤主键盘区的组合键Shfit+Enter 或数字键盘中的Enter键执⾏命令.⼆、介绍案例1. 输⼊与输出例1 计算 1+1:在打开的命令窗⼝中输⼊1+2+3并按组合键Shfit+Enter 执⾏上述命令,则屏幕上将显⽰:In[1] : =1+2+3 Out[1] =6这⾥In[1] : = 表⽰第⼀个输⼊,Out[1]= 表⽰第⼀个输出,即计算结果.2. 数学常数Pi 表⽰圆周率π; E 表⽰⽆理数e; I 表⽰虚数单位i ; Degree 表⽰π/180; Infinity 表⽰⽆穷⼤.注:Pi,Degree,Infinity 的第⼀个字母必须⼤写,其后⾯的字母必须⼩写.3. 算术运算Mathematica 中⽤“+”、“-”、“*”、“/” 和“^”分别表⽰算术运算中的加、减、乘、除和乘⽅.例2 计算π+ --213121494891100.输⼊ 100^(1/4)*(1/9)^(-1/2)+8^(-1/3)*(4/9)^(1/2)*Pi则输出 3103π+这是准确值. 如果要求近似值,再输⼊N[%] 则输出这⾥%表⽰上⼀次输出的结果,命令N[%]表⽰对上⼀次的结果取近似值. 还⽤ %% 表⽰上上次输出的结果,⽤ %6表⽰Out[6]的输出结果.注:关于乘号*,Mathematica 常⽤空格来代替. 例如,x y z 则表⽰x*y*z,⽽xyz 表⽰字符串,Mathematica 将它理解为⼀个变量名. 常数与字符之间的乘号或空格可以省略.4. 代数运算例3 分解因式 232++x x输⼊ Factor[x^2+3x+2] 输出 )x 2)(x 1(++ 例4 展开因式 )2)(1(x x ++输⼊ Expand[(1+x)(2+x)] 输出 2x x 32++例5 通分 3122+++x x 输⼊ Together[1/(x+3)+2/(x+2)]输出 )x 3)(x 2(x38+++例6 将表达式)3)(2(38x x x+++ 展开成部分分式输⼊ Apart[(8+3x)/((2+x)(3+x))]输出 3x 12x 2+++ 例7 化简表达式 )3)(1()2)(1(x x x x +++++输⼊ Simplify[(1+x)(2+x)+(1+x)(3+x)]输出 2x 2x 75++三、部分函数1. 内部函数Mathematica 系统内部定义了许多函数,并且常⽤英⽂全名作为函数名,所有函数名的第⼀个字母都必须⼤写,后⾯的字母必须⼩写. 当函数名是由两个单词组成时,每个单词的第⼀个字母都必须⼤写,其余的字母必须⼩写. Mathematica 函数(命令)的基本格式为函数名[表达式,选项] 下⾯列举了⼀些常⽤函数:算术平⽅根x Sqrt[x] 指数函数x e Exp[x]对数函数x a log Log[a,x]对数函数x ln Log[x]三⾓函数 Sin[x], Cos[x], Tan[x], Cot[x], Sec[x], Csc[x] 反三⾓函数ArcSin[x], ArcCos[x], ArcTan[x], ArcCot[x], AsrcSec[x], ArcCsc[x]双曲函数 Sinh[x], Cosh[x], Tanh[x], 反双曲函数 ArcSinh[x], ArcCosh[x], ArcTanh[x] 四舍五⼊函数 Round[x] (*取最接近x 的整数*) 取整函数 Floor[x] (*取不超过x 的最⼤整数*) 取模 Mod[m,n] (*求m/n 的模*) 取绝对值函数 Abs[x] n 的阶乘 n! 符号函数Sign[x] 取近似值 N[x,n] (*取x 的有n 位有效数字的近似值,当n 缺省时,n 的默认值为6*)例8 求π的有6位和20位有效数字的近似值.输⼊ N[Pi] 输出输⼊ N[Pi, 20] 输出注:第⼀个输⼊语句也常⽤另⼀种形式:输⼊ Pi235] 输出 (3) 输⼊ Round[] 输出 -2 例10 计算表达式)6.0arctan(226sin 2ln 1132+-+-e π的值输⼊ 1/(1+Log[2])*Sin[Pi/6]-Exp[-2]/(2+2^(2/3))*ArcTan[.6] 输出2. ⾃定义函数在Mathematica 系统内,由字母开头的字母数字串都可⽤作变量名,但要注意其中不能包含空格或标点符号.变量的赋值有两种⽅式. ⽴即赋值运算符是“=”,延迟赋值运算符是“: =”. 定义函数使⽤的符号是延迟赋值运算符“: =”.例11 定义函数 12)(23++=x x x f ,并计算)2(f ,)4(f ,)6(f . 输⼊Clear[f,x]; (*清除对变量f 原先的赋值*) f[x_]:=x^3+2*x^2+1; (*定义函数的表达式*) f[2] (*求)2(f 的值*)f[x]/.{x->4} (*求)4(f 的值,另⼀种⽅法*)x=6; (*给变量x ⽴即赋值6*)f[x] (*求)6(f 的值,⼜⼀种⽅法*)输出17 97 289注:本例1、2、5⾏的结尾有“;”,它表⽰这些语句的输出结果不在屏幕上显⽰.四、解⽅程在Mathematica 系统内,⽅程中的等号⽤符号“==”表⽰. 最基本的求解⽅程的命令为 Solve[eqns, vars]它表⽰对系数按常规约定求出⽅程(组)的全部解,其中eqns 表⽰⽅程(组),vars 表⽰所求未知变量. 例12 解⽅程0232=++x x 输⼊Solve[x^2+3x+2==0, x] 输出 }}1x {},2x {{-→-→例13 解⽅程组 =+=+1dy cx by ax输⼊ Solve[{a x + b y == 0,c x + d y ==1}, {x,y}]输出+-→-→ad bc a y ,ad bc b x例14 解⽆理⽅程a x x =++-11输⼊ Solve[Sqrt[x-1]+ Sqrt[x+1] == a, x]输出 ??+→24a 4a 4x 很多⽅程是根本不能求出准确解的,此时应转⽽求其近似解. 求⽅程的近似解的⽅法有两种,⼀种是在⽅程组的系数中使⽤⼩数,这样所求的解即为⽅程的近似解;另⼀种是利⽤下列专门⽤于求⽅程(组)数值解的命令: NSolve[eqns, vars] (*求代数⽅程(组)的全部数值解*)FindRoot[eqns, {x, x0}, {y, y0} ,]后⼀个命令表⽰从点),,(00 y x 出发找⽅程(组)的⼀个近似解,这时常常需要利⽤图像法先⼤致确定所求根的范围,是⼤致在什么点的附近.例15 求⽅程013=-x 的近似解输⼊ NSolve[x^3-1== 0, x]输出 {{→x →x →x 输⼊ FindRoot[x^3-1==0,{x, .5}] 输出 {→x 1.}下⾯再介绍⼀个很有⽤的命令:Eliminate[eqns, elims] (*从⼀组等式中消去变量(组)elims*) 例16从⽅程组 ??=+=-+-+=++11)1()1(1222222y x z y x z y x 消去未知数y 、z .输⼊Eliminate[{x^2+y^2+z^2 ==1,x^2+(y-1)^2 + (z-1)^2 ==1, x + y== 1},{y, z}]输出 0x 3x 22==+-注:上⾯这个输⼊语句为多⾏语句,它可以像上⾯例⼦中那样在⾏尾处有逗号的地⽅将⾏与⾏隔开, 来迫使Mathematica 从前⼀⾏继续到下⼀⾏在执⾏该语句. 有时候多⾏语句的意义不太明确,通常发⽣在其中有⼀⾏本⾝就是可执⾏的语句的情形,此时可在该⾏尾放⼀个继续的记号“\”, 来迫使Mathematica 继续到下⼀⾏再执⾏该语句.五、保存与退出Mathematica 很容易保存Notebook 中显⽰的内容,打开位于窗⼝第⼀⾏的File 菜单,点击Save 后得到保存⽂件时的对话框,按要求操作后即可把所要的内容存为 *.nb ⽂件. 如果只想保存全部输⼊的命令,⽽不想保存全部输出结果,则可以打开下拉式菜单Kernel,选中Delete All Output,然后再执⾏保存命令. ⽽退出Mathematica 与退出Word 的操作是⼀样的.六、查询与帮助查询某个函数(命令)的基本功能,键⼊“函数名”,想要了解更多⼀些,键⼊“函数名”,例如,输⼊Plot则输出Plot[f,{x,xmin,xmax}] generates a plot of f as a functionof x from xmin to xmax. Plot[{f1,f2,…},{x,xmin,xmax}] plots several functions fi 它告诉了我们关于绘图命令“Plot”的基本使⽤⽅法.例17 在区间]1,1y=的图形.[-上作出抛物线2x输⼊ Plot[x^2,{x,-1,1}]则输出例18 .输⼊ Plot[{Sin[x],Cos[x]},{x,0,2Pi}]则输出Plot则Mathematica会输出关于这个命令的选项的详细说明,请读者试之.此外,Mathematica的Help菜单中提供了⼤量的帮助信息,其中Help菜单中的第⼀项Help Browser(帮助游览器)是常⽤的查询⼯具,读者若想了解更多的使⽤信息,则应⾃⼰通过Help菜单去学习.编辑本段Mathematica 基本运算a+mathematica数学实验(第2版) b+c 加a-b 减a b c 或 a*b*c 乘a/b 除-a 负号a^b 次⽅Mathematica 数字的形式256 整数实数11/35 分数2+6I 复数常⽤的数学常数Pi 圆周率,π=…E 尤拉常数,e=2.…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[expr,{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清除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 ⼤於等於aa<=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 函数及使用方法
Mathematica函数及使用方法Mathematica函数大全--运算符及特殊符号一、运算符及特殊符号Line1;执行Line,不显示结果Line1,line2顺次执行Line1,2,并显示结果?name关于系统变量name的信息??name关于系统变量name的全部信息!command执行Dos命令n!N的阶乘!!filename显示文件内容<<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的任意多个任意表达式(形式变量)Mathematica函数及使用方法—————————————————————————————————————二、系统常数Pi3.1415....的无限精度数值E2.17828...的无限精度数值Catalan0.915966..卡塔兰常数EulerGamma0.5772....高斯常数GoldenRatio1.61803...黄金分割数Degree Pi/180角度弧度换算I复数单位Infinity无穷大-Infinity负无穷大ComplexInfinity复无穷大Indeterminate不定式Mathematica函数及使用方法—————————————————————————————————————三、代数计算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]Mathematica函数及使用方法—————————————————————————————————————四、解方程Solve[eqns,vars]从方程组eqns中解出varsSolve[eqns,vars,elims]从方程组eqns中削去变量elims,解出varsDSolve[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]得到多项式方程的所有根Mathematica函数及使用方法—————————————————————————————————————五、微积分函数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)^nMathematica函数及使用方法—————————————————————————————————————六、多项式函数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]] Mathematica函数及使用方法—————————————————————————————————————七、随机函数Random[type,range]产生type类型且在range范围内的均匀分布随机数type可以为Integer,Real,Complex,不写默认为Realrange为{min,max},不写默认为{0,1}Random[]0~1上的随机实数SeedRandom[n]以n为seed产生伪随机数如果采用了<<Statistics`ContinuousDistributions`后在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,WeibullDistributionMathematica函数及使用方法—————————————————————————————————————八、数值函数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的差集Mathematica函数及使用方法—————————————————————————————————————收集制作:科研中国文章出处:南京大学小百合站九、虚数函数Re[expr]复数表达式的实部Im[expr]复数表达式的虚部Abs[expr]复数表达式的模Arg[expr]复数表达式的辐角Conjugate[expr]复数表达式的共轭Mathematica函数及使用方法—————————————————————————————————————十、数的头及模式及其他操作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显示时的有效数字位数Mathematica函数及使用方法—————————————————————————————————————十一、区间函数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...]区间的交Mathematica函数及使用方法—————————————————————————————————————十二、矩阵操作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函数及使用方法—————————————————————————————————————十三、表函数(*“表”,我认为是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,..}]]前插入elem Delete[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];Mathematica函数及使用方法--绘图函数—————————————————————————————————————十四、绘图函数二维作图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]设置线宽为r收集制作:科研中国文章出处:南京大学小百合站PointSize[d]设置绘点的大小Dashing[{r1,r2,..}]虚线一个单元的间隔长度ImageSize->{x,y}显示图形大小(像素为单位)ImageResolution->r图形解析度r个dpiImageMargins->{{left,right},{bottom,top}}四边的空白ImageRotated->False是否旋转90度显示Mathematica函数及使用方法——流程控制—————————————————————————————————————十五、流程控制分支If[condition,t,f]如果condition为True,执行t段,否则f段If[condition,t,f,u]同上,即非True又非False,则执行u段Which[test1,block1,test2,block2..]执行第一为True的testi对应的blockitch[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,...]当特定信息产生时则返回failexpr CheckAbort[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的“一切都是表达式”的特点,如果你想使你的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[ex pr]]..}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]同上,可以制定函数参数类型Mathematica函数及使用方法—————————————————————————————————————十七、替换规则lhs->rhs建立了一个规则,把lhs换为rhs,并求rhs的值lhs:>rhs同上,只是不立即求rhs的值,知道使用该规则时才求值Replace[expr,rules]把一组规则应用到expr上,只作用一次expr/.rules同上expr//.rules将规则rules不断作用到expr上,直到无法作用为止Dispatch[{lhs1->rhs1,lhs2->rhs2,...}]综合各个规则,产生一组优化的规则组Mathematica函数及使用方法——查询函数、串函数—————————————————————————————————————十八、查询函数(*查询函数一般是检验表达式是否满足某些特殊形式,并返回True或False*) (*可以在Mathematica中用“?*Q”查询到*)ArgumentCountQ MatrixQAtomQ MemberQDigitQ NameQEllipticNomeQ NumberQEvenQ NumericQExactNumberQ OddQFreeQ OptionQHypergeometricPFQ OrderedQInexactNumberQ PartitionsQIntegerQ PolynomialQIntervalMemberQ PrimeQInverseEllipticNomeQ SameQ收集制作:科研中国文章出处:南京大学小百合站LegendreQ StringMatchQLetterQ StringQLinkConnectedQ SyntaxQLinkReadyQ TrueQListQ UnsameQLowerCaseQ UpperCaseQMachineNumberQ ValueQMatchLocalNameQ VectorQMatchQMathematica函数及使用方法—————————————————————————————————————十九、字符串函数"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基本数学函数及应用
MATHEMATICA第一讲1 数的运算算例378/123N[378/123,6] (*取小数点后6位的近似值*)Pi^2E^(-1)100!N[Pi,100]N[I^(-I)]2 常用数学函数Sqrt[ ]平方根, Exp[ ]指数函数, Log[ ] 对数函数,Sin[ ] 正弦函数, Cos[ ] 余弦函数,T an[ ] 正切函数, Cot[ ] 余切函数,Sec[ ] 正割函数, Csc[ ] 余割函数,ArcSin[ ] 反正弦函数, ArcCos[ ] 反余弦函数,ArcT an[ ] 反正切函数, ArcCot[ ] 反余切函数, ArcSec[ ] 反正割函数, ArcCsc[ ] 反余割函数,Sinh[ ] 双曲正弦, Cosh[ ] 双曲余弦,T anh[ ] 双曲正切, Coth[ ] 双曲余切,Sech[ ] 双曲正割, Csch[ ] 双曲余割,ArcSinh[ ]反双曲正弦, ArcCosh[ ]反双曲余弦,ArcT anh[ ]反双曲正切, ...算例Sin[N[Sqrt[3],50]]3 其它函数! 阶乘Mod[n,m] n取模m的结,Quoti ent[n,m] n除以m的商的整数部分GCD[n,m]LCM[n,m] n和m的最大公约数和最小公约数Round[ ] 距离近似数x最近的整数Floor[ ] 不大于x的最大整数算例100!Quoti ent[10,3]GCD[105,30]Round[-1.234]Floor[-1.234]4 变量的赋值与替换算例f1=x^2+3 x+1 (*将表达式赋给变量f1*)f1/.x->3 (*求f1当x=3时的值f1(3)*)f1/.x->x+1 (*在f1中用x+1替换x得到f1(x+1)*) f1=. (*取消变量f1的定义*)f1/.x->3 (*此时已经得不到所想的结果f1(3)*)5 多项式计算Expand[p] (* 多项式展开*)Factor[p] (*多项式因式分解*)算例p1=x^3-6x^2+11x-6p2=(x-1)*(x-2)*(x-3)Factor[p1]Expand[p2]MATHEMATICA第二讲一元函数的图形一命令语句Plot[表达式,{变量,下限,上限},可选项]Plot[{表达式,表达式,...},{变量,下限,上限},可选项]二可选参数项第一类参数1. PlotRange->{y1,y2} 指定作图纵座标范围为(y1,y2)默认值为Atuomatic或指定All执行算例Plot[T an[x],{x,-2Pi,2Pi}]Plot[T an[x],{x,-2Pi,2Pi},PlotRange->{-10,10}]Plot[Exp[-x^2]*Sin[6x],{x,-2,2},PlotRange->{-0.5,0.5}] Plot[Exp[-x^2]*Sin[6x],{x,-2,2},PlotRange->All]2.AspectRatio->Automatic 按实际比例作图默认值为Atuomatic=0.618:1执行算例Plot[Sqrt[1-x^2],{x,-1.5,1.5}]Plot[Sqrt[1-x^2],{x,-1.5,1.5}, AspectRatio->Automatic] 3. Axes->Automatic 画坐标轴自动确定位置Axes->None 不画坐标轴Axes->{x0,y0} 指定坐标原点在(x0,y0)处执行算例Plot[Cos[x],{x,-2Pi,2Pi}]Plot[Cos[x],{x,-2Pi,2Pi},Axes->None]Plot[Cos[x],{x,-2Pi,2Pi},Axes->{1,2}]4 AxesLabel->None 不说明坐标轴的标记AxesLabel->{x,y} 指定横轴为x纵轴为yAxesLabel->{u,v} 指定横轴为u纵轴为v执行算例Plot[Sin[x]/x,{x,-10,10},AxesLabel->None]Plot[Sin[x]/x,{x,-10,10},AxesLabel->{x,y}]Plot[Sin[x]/x,{x,-10,10},AxesLabel->{时间T,电流I}]5. Ticks->{i,j} 规定坐标轴上的刻度位置Ticks->{t1,t2,t3,...}执行算例Plot[{ArcSin[x],ArcCos[x]},{x,-1,1},PlotStyle->{{RGBColor[0,1,1],Thickness[0.01]}, {RGBColor[1,0,1],Dashing[{0.05,0.05}]}}]第二类参数1.DisplayFunction->Identity 只生成图形现在不显示执行算例Plot[{Sin[T an[x]]-T an[Sin[x]]},{x,1,2},DisplayFunction->Identity]Plot[{Sin[T an[x]]-T an[Sin[x]]},{x,-2,2}]2. PlotPoints->50 指定计算函数值的取点数为50执行算例Plot[{Sin[T an[x]]-T an[Sin[x]]},{x,-2,2},PlotPoints->50]3. MaxBend 说明曲线的折线在相邻两段之间的最大折角执行算例4. PlotDivision 说明取点的限度执行算例5.PlotStyle->Thickness[t] 描述线宽PlotStyle->GrayLevel[i] 描述灰度PlotStyle->RGBColor[r,g,b] 描述颜色PlotStyle->Dashing[{d1,d2,...}] 描述虚线的画法PlotStyle->PointSize[0.03] 描述点的大小执行算例Plot[{Sin[x],Sin[2x],Sin[3x]},{x,0,2Pi},PlotStyle->{RGBColor[1,0,0],RGBColor[0,1,0],RGBColor[0,0,1]}]Plot[Sin[1/x],{x,-1,1}]Plot[Sqrt[1+x^2],{x,-6,6},PlotStyle->Dashing[{0.02,0.01}]] Plot[Sin[Cos[Sin[x]]],{x,-Pi,Pi}]Plot[(T an[Sin[x]]-Sin[T an[x]])/x^2,{x,-5,5}]Plot[{E^x,ArcT an[x],E^ArcT an[x]},{x,-5,5},PlotPoints->100] 三图形的重新显示,组合,存储和输出Show[t] 重新显示Show[t1,t2,...,tn] 将几个图形合在一起执行算例f1=Plot[x,{x,0.1,2},PlotRange->{0,2}]f2=Plot[1/x,{x,0.1,2},PlotRange->{0,3}]f3=ParametricPlot[{2,t},{t,0,2}]Show[f1,f2,f3]Display["filename",图形]保存图形到文件中存为Postsceipt格式Hardcopy[图形] 将图形送去打印四二维参数图形ParametricPlot[{x(t),y(t)},{t,下限,上限},可选项]执行算例ParametricPlot[{Sin[t],Cos[t]},{t,0,2*Pi}, AspectRatio->Automatic] ParametricPlot[{Sin[2*t],Cos[3*t]},{t,0,2*Pi}, AspectRatio->Automatic]y1=ParametricPlot[{Cos[t]^3,Sin[t]^3},{t,0,2*Pi}, AspectRatio->Automatic] y2=ParametricPlot[{Cos[t],Sin[t]},{t,0,2*Pi}, AspectRatio->Automatic] Show[y1,y2]z1=ParametricPlot[{t-Sin[t],1-Cos[t]},{t,0,2*Pi}, AspectRatio->Automatic]五极坐标图形执行算例r[t_]:=(3Cos[t]^2-1)/2ParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi}, AspectRatio->Automatic]r[t_]:=2(1-Cos[t])ParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi}, AspectRatio->Automatic]r[t_]:=2Sin[3t]ParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi}, AspectRatio->Automatic]r[t_]:=Cos[2*t]ParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi}, AspectRatio->Automatic]r[t_]:=0.5*tParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi}, AspectRatio->Automatic]r[t_]:=Exp[t/3]ParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi}, AspectRatio->Automatic]r[t_]:=Cos[8*t]ParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi}, AspectRatio->Automatic]介绍:Hue六动画制作<<Graphics\Animatio.m 调入动画制作软件包Animate[图形,{自变量,下限,上限}],{参变量,下限,上限,步长}]执行算例<<Graphics\Animatio.mAnimate[Plot[Sin[x+t*Pi],{x,0,10Pi}],{t,0,5/3,1/3}]T able[k, 100]MATHEMATICA第三讲三维作图一命令语句Plot3D[函数表达式,,,{变量,上限,下限},{可选项}]Plot3D[{函数表达式,着色表达式},{变量,上限,下限},{变量,上限,下限},{可选项}]二可选参数项1 PlotRange,说明要求的图形显示范围2 PlotLabel,说明图的名称标注3 AspectRatio,说明整个图的高度比4 Boxed:说明是否给图形加一个立体框5 BoxRation:说明图形立体框在三个方向的长度比6 ViewPoints:在将三维图形投射到平面上时使用的观察点.7 Mesh:说明在曲线上是否画网格8 HiddenSurface:曲面被挡住的部分是否隐掉9 Shading:在曲面上是否涂阴影10 lightScources:设置照明光源11 Lighting:说明是否打开已经设置的光源12 AmbienLight:漫射光设置.默认值是黑色,用GrayLevel[0]表示13 ClipFill:作出的图形中被切掉的那些部分用什么方法填充14 Axes:说明是否画坐标轴以及把坐标轴中心放在什么地方15 Ticks:规定坐标轴上刻度的位置执行算例1 默认情形Plot3D[x^2+y^2,{x,-1,1},{y,-1,1}]2 适当选取X,Y,Z轴的比例关系Plot3D[x^2+y^2,{x,-1,1},{y,-1,1},BoxRatios->{1,1,1.5}]3 不加阴影的情形Plot3D[x^2+y^2,{x,-1,1},{y,-1,1},BoxRatios->{1,1,1.5},Shading->False]4 不打开照明的情形Plot3D[x^2+y^2,{x,-1,1},{y,-1,1},BoxRatios->{1,1,1.5},Lighting->False]5 不设网格的情形Plot3D[x^2+y^2,{x,-1,1},{y,-1,1},BoxRatios->{1,1,1.5},Boxed->False,Axes->False,Mesh->False]-SurfaceGraphics-6 用参数方式图形更合乎实际情形ParametricPlot3D[{函数表达式},{变量,上限,下限},{可选项}]ParametricPlot3D[{v Sin[u],v Cos[u],v^2},{v,0,1},{u,0,2Pi}, BoxRatios->{1,1,1}] ParametricPlot3D[{u,u^2,t},{u,-1,1},{t,0,1}, PlotPoints->25,Lighting->True, ViewPoint->{2,-1,1}]7 视点的选择Plot3D[Cos[Sqrt[x^2+y^2]],{x,-10,10},{y,-10,10},PlotPoints->25,Lighting->True, ViewPoint->{1,1,2}]Plot3D[Cos[Sqrt[x^2+y^2]],{x,-10,10},{y,-10,10},PlotPoints->25,Lighting->True, ViewPoint->{0,0,1}]Plot3D[Cos[Sqrt[x^2+y^2]],{x,-10,10},{y,-10,10},PlotPoints->25,Lighting->True, ViewPoint->{0,1,2}]ParametricPlot3D[{u^2,u,v}, {v,0,2},{u,-2,2},BoxRatios->{1,1,0.6},ViewPoint->{1,3,1},Shading->True]8 将多个曲面放在一张图上Z1=Plot3D[x*y,{x,0,1},{y,0,1}]Z2=ParametricPlot3D[{u,u,t},{u,0,1},{t,0,1},PlotPoints->25,Lighting->True]Z3=ParametricPlot3D[{1,u,t},{u,-1,1},{t,0,1},PlotPoints->25,Lighting->True]Show[Z1,Z2,Z3,BoxRatios->{1,1,1},ViewPoint->{1,1,1},Shading->False]9 动画制作<<Graphics\Animatio.mAnimate[ParametricPlot3D[{u,u^2,t},{u,-1,1},{t,0,1},PlotPoints->25,Lighting->True,ViewPoint->{Cos[2*Pi*t],Sin[2*Pi*t],1}],{t,0,1,1/6}]波纹面动画演示注意:此演示需要较大内存,耐心等待。
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 建立替换规则exprule 将规则rule应用于exprexpr..的无限精度数值E ...的无限精度数值Catalan ..卡塔兰常数EulerGamma ....高斯常数GoldenRatio ...黄金分割数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,解出varsDSolve[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—————————————————————————————————————八、数值函数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] 解线性组合在>=b&&x>=0约束下的最小值,x,b,c为向量,m为矩阵LatticeReduce[{v1,v2...}] 向量组vi的极小无关组数据处理:Fit[data,funs,vars]用指定函数组对数据进行最小二乘拟和data可以为{{x1,y1,..f1},{x2,y2,..f2}..}多维的情况emp: Fit[{,12,,}, {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...] 区间的交—————————————————————————————————————十二、矩阵操作或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] 解线性方程组==bNullSpace[m] 矩阵m的零空间,即[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} 三维视点,默认为{,,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对应的blocki Switch[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,...]当特定信息产生时则返回failexpr CheckAbort[expr,failexpr]当产生abort信息时放回failexprInterrupt[ ] 中断运行Abort[ ] 中断运行TimeConstrained[expr,t] 计算expr,当耗时超过t秒时终止MemoryConstrained[expr,b]计算expr,当耗用内存超过b字节时终止运算交互式控制Print[expr1,expr2,...] 顺次输出expri的值examp: Print[ "X=" , X.},body]多自变量纯函数#,#n 纯函数的第一、第n个自变量## 纯函数的所有自变量的序列examp: ^& [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.}] 把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 .}]综合各个规则,产生一组优化的规则组><Mathematica的常见问题><===================================1).Mathematica 可以定义变量为实数么1. 在Simplify/FullSimplify可以使用\[Element],如Simplify[Re[a+b*I],a\[Element]Reals]2. 可以使用ComplexExpand[]来展开表达式,默认:符号均为实数:Unprotect[Abs];Abs[x_] := Sqrt[Re[x]^2 + Im[x]^2];ComplexExpand[Abs[a + b*I], a]3. 使用/:,对符号关联相应的转换规则x /: Im[x] = 0;x /: Re[x] = x;y /: Im[y] = 0;y /: Re[y] = y;Re[x+y*I]===================================2).Mathematica中如何中断运算Alt+. 直接终止当前执行的运算Alt+, 询问是否终止或者继续如果不能终止,用菜单Kernel\Quit Kernal\Local来退出当前运算===================================3).请高手推荐Mathematica参考书我迄今为止看到的最好的一本就是Mathematica自己带的帮助里面的The Mathematica Book,内容全面,循序渐近,非常容易学习使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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,解出varsDSolve[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—————————————————————————————————————八、数值函数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^-10Accuracy[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,..}]]前插入elem删除元素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对应的blocki Switch[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,...]当特定信息产生时则返回failexpr CheckAbort[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: ^& [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,...}]综合各个规则,产生一组优化的规则组>************************************************************************<Mathematica的常见问题>************************************************************************<===================================1).Mathematica 可以定义变量为实数么?1. 在Simplify/FullSimplify可以使用\[Element],如Simplify[Re[a+b*I],a\[Element]Reals]2. 可以使用ComplexExpand[]来展开表达式,默认:符号均为实数:Unprotect[Abs];Abs[x_] := Sqrt[Re[x]^2 + Im[x]^2];ComplexExpand[Abs[a + b*I], a]3. 使用/:,对符号关联相应的转换规则x /: Im[x] = 0;x /: Re[x] = x;y /: Im[y] = 0;y /: Re[y] = y;Re[x+y*I]===================================2).Mathematica中如何中断运算?Alt+. 直接终止当前执行的运算Alt+, 询问是否终止或者继续如果不能终止,用菜单Kernel\Quit Kernal\Local来退出当前运算===================================3).请高手推荐Mathematica参考书我迄今为止看到的最好的一本就是Mathematica自己带的帮助里面的The Mathematica Book,内容全面,循序渐近,非常容易学习使用。