Mathematica教程-2常用的数学函数

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

常用的数学函数Mathematica里定义了许多数学函数,包括三角函数、指数对数函数、双曲函数和许多特殊函数。这些函数都可以用在表达式里。命名规则一般使用习惯的英文缩写,应该注意的是:函数名都是由字符串表示,字符之间不能有空格;函数名字的第一个字母总是大写的,后面的字母是小写的,但如果名字是由几个段构成的(如ArcSin),则每段的第一个字母都必须大写,这些是Mathematica内部函数取名的规则。再一点应当特别注意:函数的参数是用方括号括起来的。如Sin[x]三角函数: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对数函数lnx用Log[x],以a为底的对数函数用Log[a,x]平方根函数:Sqrt[x],绝对值函数:Abs[x]Max[x1,x1,……]:取x1,x2,……中的最大值Min[x1,x2,……]:取x1,x2,……中的最小值Sign[x]:符号函数(x大于0时值为1,小于0时值为-1)常用函数的命令格式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,……的最小公倍数。Random[]:0~1之间的随机数Random[Real,xmax]:0~xmax之间的随机数Random[Real,{xmin,xmax}]:xmin~xmax之间的随机数N[表达式,k]--求表达式的近似值,k为可选项,它指定计算结果的有效数字的位数。系统默认精度为六位有效数字N!:n的阶乘N!!:n的双阶乘在Mathematica中,除使用系统提供的函数外,也可自定义函数。定义一个不带附加条件的一元函数的规则是f[x_]:=或f[x_]=后面紧跟一个以x为变量的表达式,其中x_称为形式参数。如果需要给出附加条件,可在表达式的后面通过“/;”与表达式连接,即形式为:f[x_]:=表达式/;条件。调用自定义函数f[x_]时,只需用实在参数(变量或数值等)代替其中的形式参数即可。对于定义的函数我们可以使用命令Clear[f]清除掉或用Remove[f]从系统中删除该函数。自定义函数函数的立即定义立即定义函数的语法如下f[x_]=expr函数名为f,自变量为x,expr是表达式。在执行时会把expr中的x都换为f的自变量x(不是x_)。函数的自变量具有局部性,只对所在的函数起作用。函数执行结束后也就没有了,不会改变其它全局定义的同名变量的值。例:定义函数f(x)=x*Sinx+x2,对定义的函数求函数值,并绘制它的图形。多变量函数的定义也可以定义多个变量的函数,格式为f[x_,y_,z_,…]=expr自变量为x,y,z….,相应的expr中的自变量会被替换。例如定义函数•f(x,y)=xy+ycosx使用条件运算符定义和If命令定义函数如果要定义如:可以使用条件运算符,基本格式为f[x_]:=expr/;condition当condition条件满足时才把expr赋给f当然使用If命令也可以定义上面的函数表将一些相互关联的元素放在一起,使它们成为一个整体。既可以对整体操作,也可以对整体中的一个元素单独进行操作。在Mathematica中这样的数据结构就称作表(List)。表主要有三个用法:表{a,b,c}可以表示一个向量;表{{a,b},{c,d}}可表示一个矩阵。建表在表中元素较少时,可以采取直接列表的方式列出表中的元素,如{1,2,3}In[1]:={1,2,3}Out[1]={1,2,3}下面是符号表达式的列表In[2]:=1+%x+x^%Out[2]={1+2x,1+2x+x2,1+3x+x2}下面是对列表中的表达式对x求导In[3]:=D[%,x]Out[3]={2,2+2x,3+2x}In[4]:=%/.x-1Out[4]={2,4,5}下面给出x乘i的值的表,i的变化范围为[2,6]In[1]:=Table[x*i,{i,2,6}]Out[1]={2x,3x,4x,5x,6x}In[2]:=Table[x^2,{4}]Out[2]={x2,x2,x2,x2}用Range函数生成一个序列数In[3]:=Range[10]Out[3]={1,2,3,4,5,6,7,8,9,10}下面这个序列是以步长为2,范围从8到20In[4]:=Range[8,20,2]Out[4]={8,10,12,14,16,18,20}如果表中的元素较多时,可以用建表函数进行建表Table[f,{i,min,max,step}]:以step为步长给出f的数值表,i由min变到max,Table[f,{min,max}]:给出f的数值表,i由min变到max步长为1Table[f,max]:给出max个f的表Table[f,{i,imin,imax},{j,jmin,jmax},….]:生成一个多维表TableForm[list]:以表格格式显示一个表Range[n]:生成一个{1,2,……..}的列表Range[n1,n2,d]:生成{n1,n1+d,n1+d,….,n2}的列表表达式表达式的含义Mathematica能处理数学公式,表以及图形等多多种数据形式。尽管他们从形式上看起来不一样,但在Mathematica内部都被看成同种类型,即都把他们当作表达式的形式。Mathematica中的表达式是由常量、变量、函数、命令、运算符和括号等组成,最典型的形式是f[x,y]表达式的表示形式在显示表达式时,由于需要的不同,有时我们需要表达式的展开形式,有时又需要其因子乘积的形式。在我们计算过程中可能得到很复杂的表达式,这时我们又需要对它们进行化简。常用的处理这种情况的函数。Expand〔expr〕:按幂次升高的顺序展开表达式Factor〔expr〕:以因子乘积的形式表示表达式Simplify〔expr〕:进行最佳的代数运算,并给出表达式的最少项形式Apart[expr]:将多项式为化为部分分式之和表达式(x+y)^4(x+y^2)展开:还原上面的表达式为因子乘积的形式:多项式表达式的项数较多,比较复杂,在显示时显得比较杂乱,而且在计算过程中没有必要知道全部的内容;或表达式的项很有规律,没有必要打印全部的表达式的结果,Mathematica提供了一些命令,可将它缩短输出或不输出expr/Short:显示表达式的一行形式Short〔expr,n〕:显示表达式的n行形式,命令后加一分号“;”不打印结果将表达式(1+x)^30展开,并仅显示一行有代表项的式子:“%”称ditto运算符,有重复以前内容的意思。在计算过程中某次的计算可能要用到上次的计算结果,或者前几次的计算结果,就可用”%”符,用法如下:运算结果的读取---%运算符%读取上一个运算结果%%读取上上一个运算结果%%...%(n个)读取前第n个运算结果%n或Out[n]读取第n个运算结果置换运算符—“/.”代数式里的变量可以用某表达式替换,生成新的代数式。也可以把代数式里的所有的变量用数值替换,得到此代数式的计算结果。替换的格式为:expr/.x-x0:表示将表达式里的变量x用x0代替。expr/.{x-x0,y-y0,…}:表示将代数式里的变量x,y…用x0,y0,…代替。字符串”/.”由一个除号和一个圆点符号组成字符串”-”由一个减号和一个大于符号连成关系表达式与逻辑表达式关系表达式是最简单的逻辑表达式,我们常用关系表达式表示一个判别条件。例如:x0,y=0。关系表达式的一般形式是:表达式+关系算子+表达式。其中表达式可为数字表达式、字符表达式或意义更广泛的表达式,如一个图形表达式等。在我们实际运用中,这儿的表达式常常是数字表达式或字符表达式。关系运算判断式说明A==B等于AB大于A=B大于等于AB小于A=B小于等于A!=B不等于例如:In[1]:=x=2;y=9Out[1]=9;In[2]:=xyOut[2]=false下面是比较两个表达式的大小In[3]:=3^2y+1Out[3]=True逻辑运算•四种主要逻辑运算:逻辑非、逻辑与、逻辑或、逻辑异或!p非运算P&&q并运算P||q或运算Xor[e]异或运算常用的符号•(term)圆括号用于组合运算•f[x]方括号用于函数•{}花括号用于列表•[[i]]双括号用于排序•%代表最后产生的结果•%%倒数第二次的算结果•%%%(k)倒数第k次的计算结果•%n例出行Out[n])的结果多项式的表示形式多项式的运算与表达式的运算基本一样,表达式中的各种输出形式也可用于多项式的输出。Mathematica提供一组按不同形式表示代数式的函数。Expand[ploy]按幂次展开多项式ployExpand[ploy]全部展开多项式ployExpandAll[ploy]全部展开多项式ployFactor[ploy]对多项式poly进行因式分解FactorTerms[ploy,{x,y,…}]按变量x,y,…进行分解Simplify[poly]把多项式化为最简形式FullSimplify[ploy]把多项式展开并化简Collect[ploy,x]把多项式poly按x幂展开Collect[poly,{x,y…}]把多项式poly按x,y….的幂次展开对x^8-1进行分解展开多项式(1+x)^5化简(2+x)^4(1+x)^4(3+x)^3多项式的代数运算使用Cancel函数可以约去公因式In[8]:=Cancel[(2+3a+a^2)/(1+a)]Out[8]=2+a•两个多项式相除,总能写成一个多项式和一个有理式相加Mathematic中提供两个函数PolynomialQuotient和PolynomialRemainder分别返商式和余式。两个多项式相除,总能写成一个多项式和一个有理式相加Mathematic中提供两个函数PolynomialQuotient和PolynomialRemainder分别返回商式和余式。方程及其根的表示Mathematica把方程看作逻辑语句。在数学方程式表示为形如“x^2-2x+1=0”的形式,在Mathematica中用“==”表示逻辑等号,则方程应表示为“x^2-2x+1==0”。方程的解同原方程一样被看作是逻辑语句。例如用Roots求方程x^2-3x+2的根显示为用Solve[]可得解集形式。求解一元代数方程Solve[lhs==rhs,vars]:给出方程的解集NSolve[lhs==rhs,vars]:直接给出方程的数值解集Roots[lhs==rhs,vars]:求表达式的根FindRoot[lhs==rhs,{x,x0}]以x=x0为初始值,求方程的解当方程中有一些复杂的函数时,Solve[]可能无法直接给出解来。此时可用FindRoot[]来求解,例如:求3Cosx=logx的解如果方程有几个不同的解,当给定不同的初始值时,会给出不同的解。如上例若求x=10附近的,则因此确定解的起始位置是比较关键,一种常用的方法是,先绘制图形观察后再解如上例通过图形可断定在x=5附近有另一根求方程组的根使用Solve和NSolve,FindRoot也可求方程组的解求解求方程的全解求ax^2+bx+c=0的根.我们用Solve函数解的结果是:这不大合理,因为对不同的a,b,c方程的解有不同的情况,而上面只是给出部分解。如果要解决这个问

1 / 60
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功