不带有小数点的数,系统都认为是整数,而带有小数点的数,系统则认为是实数。对两个整数的比,如12/13,系统认为是有理数,而a+b*I形式的数,系统认为是复数。Mathematica可表示任意大的数和任意小的数,其它计算机语言比如C、Basic是做不到这一点的,例如 !5001.220136825991110 ′1 A:=Table1i+j,i,1,8,j,1,8;De
其中//N表示取表达式的数值解,默认精度为16位,它等价于N[expr],一般形式为N[expr,n],即取表达式n位精度的数值解。如
,NDetAN p, ′2.12669006510607072000158763622 3.141592653589793238462643383279502884197169399使用Rationalize[expr,error]命令可将表达式转换为有理数,其中
error表示转换后误差的控制范围。例如
Rationalize3.1415926,10^11 -Rationalize3.1415926,10^173??@??HL8<8 0Solvex^3-2 x^2+3 x-6??x?2,x?-?上面的行列式|A|的计算结果,系统给出的是一个分数值,在 Mathematica中,不同类型的数进行运算,其结果是高一级的数,如有理数与实数运算的结果是实数,复数与实数的运算结果是复数,依此类推。由于整数与有理数的运算级别最低,因此,在进行数学计算中,如果可能的话,就尽量用精确数,即整数或有理数。另外,“==”称为逻辑等号,定义一个等式要用逻辑等号。 A:=5,1,2,1,2,6,1,2,7;Invers@D98<9??=9??=3,x?? 8<8<8<@D2-9 其中Inverse[]是求逆矩阵命令。在Mathematica中,一行中可以输入多个命令,各命令间用分号分隔。另外,分号还有一个作用是通知Mathematica,只在内存中计算以分号结尾的命令,但不输出此命令的计算结果。如果表达式太长,一行写不下,可以分2行写,系统会自动判断一个表达式是否输入完毕。对于需要多行输入的表达式,建议每行用运算符结尾。下面我们简要说明一下Mathematica的赋值符号及相关命令。在Mathematica中,对变量赋值,有两种方法。A:=expr的意思是将表达式expr的值赋给A,但Mathematica并不立即执行此项操作,一直到用到A的值时,Mathematica才真正的将expr的值赋给A,即所谓的延迟赋值。在大部分情况下,我们都采用延迟赋值的形式为表达式赋值。另一种赋值方法是我们所熟悉的赋值形式,即A=expr或A=B= expr的形式,一般称为立即赋值。只要一执行该命令,Mathematica将expr 的值赋给A。另外,对于变量,Mathematica不像C语言那样,需要申请后再使用,也不用事先确定变量的类型,这些问题都由Mathematica来自动处理。对于不需要的变量,可以使用Clear命令将变量从内存中清除出去,以节省内存空间,例如 Clear[A] 清除变量A,其简写形式是A=. Clear[A,B,W] 清除变量A、B、W Clear[“A*”,”B*”] 清除以A、B开头的所有变量 可以使用Precision[expr]或Accuracy[expr]返回表达式的精度, 2:8>:>8<><8<8<@D8<8<8< 29,-13,29,-19,113,-289,0,-1, B:=5.0,1,2,1,2,6,1,2,7 ;Invers0.222222,-0.333333,0.222222, -0.111111,3.66667,-3.11111,0.,-1.,下面的变量a是计算?e?xdx的数值积分,b是计算其符号积分,c和d 12只是输入的形式不同,但精度却不一样。 c=16 a:=NIntegrateExp-x^2,x,1,2 b:=IntegrateExp-x^2,x,1,2c=1.23;d=123100;Print\c=\Accuracyc,\@@D8 的常数有:Pi(π)、E(实数e)、ComplexInfinity(复数的无穷大)、I(复数 。 i)、Degree(1=π/180)、C(不定积分的任意常数),另外,D(导数运算符),N(取精度运算符)、O(泰勒展开的高阶无穷小量)。上面Print[]命令 2-10 的功能是打印表达式或者字符串,其格式为 Print[expr1,expr2,??] expr1,expr2,??可以为任意合法的Mathematica表达式,如果为字符串,则需要双引号将字符串括起来。 在实际计算过程中,可能得到的结果中含有很小的数,为了以后计算上的方便,我们如果想去掉这样的数,可以使用命令 Chop[expr,dx] 若expr中的某个数小于dx,则用0来代替该数 Chop[expr]若expr中的数小于10-10,则用0来代替该数 下面是一个多项式曲线拟合问题的实际例子 data= fx_=Fitdata,1,x,x^2,x^3,x 1.33227′10-15-6.66134′10-16x+1.x2+1.38778′10Chop f 可以用下面的几个函数来判断表达式运算结果的类型,其中True和False是系统内部的布尔常量。 NumberQ[expr]判断表达式是否为一个数,返回True或False IntegerQ[expr]判断表达式是否为整数, 返回True或False EvenQ[expr]判断表达式是否为偶数,返回True或False OddQ[expr]判断表达式是否为奇数,返回True或False PrimeQ[expr]判断表达式是否为素数,返回True或False Head[expr]判断表达式的类型 PrintHead0.5,\\Head12,\\Head1,2,RealRational 4、常用数学函数 Mathematica的数学运算,主要是依靠其内部的大量数学函数完成的,下面我们依次列出常用的数学函数,其中x、y、a、b代表实数,z代表复数,m、n、k为整数。所有的函数或者是它的英文全名,或者是其它计算机语言约定俗成的名称,函数的参数表用方括号[]括起来,而不是用圆括号。另外,Mathematica对大小写敏感。 ●数值函数 Round[x] 最接近x的整数 Floor[x] 不大于x的最大整数 Celing[x] 不小于x的最小整数 Sign[x] 符号函数 Abs[z] 若z为实数,则求绝对值,为复数,则取模 Max[x1,x2,?]或Max[{x1,x2, ?},?] 求最大值 Min[x1,x2,?]或Min[{x1,x2, ?},?] 求最小值 x+Iy,Re[z],Im[z],Conjugate[z],Arg[z] 关于复数的基本运算 8<8<8<8<8<8<8<@D@8 @@D@??D@8 ●随机函数 Random[] 返回一个区间[0,1]内的一个随机数 Random [Real,{xmin,xmax}]返回一个区间[xmin,xmax]内的随机数 Random[Integer] 以1/2的概率返回0或1 Random[Integer,{imin,imax}]返回位于[imin,imax]间的一个整数 Random[Complex] 模为1的随机复数 Random[Complex,{zmin,zmax}] 复平面上的随机复数 SeedRandom[] 使用系统时间作为随机种子 SeedRandom[n] 使用整数n作为随机种子 ●整数函数及组合函数 Mod[m,n],Quotient[m,n] m/n的余数及商 GCD[n1,n2,?],LCM[n1,n2, ?] 最大公约数及最小公倍数 FactorInteger[n] 返回整数n的所有质数因子表 PrimePi[x],Prime[k]返回小于x的质数个数及第k个质数 n!, n!! 整数n的阶乘及双阶乘 Binomial[n,m],Mutinomial[n,m,?]计算 n!m!?(n?m)!, (n?m??)n!?m!?? Signature[{i1,i2,?}]排列的正负符号 ●初等超越函数 这些函数的名称一目了然,我们不多加解释。它们是:Sqrt[z]、z1^z2、Exp[z]、Log[z]、Log[b,z]、Sin[z]、Cos[z]、Tan[z]、Cot[z]、Csc[z]、Sec[z]、ArcSin[z]、ArcCos[z]、ArcCsc[z]、ArcSec[z]、ArcTan[z]、ArcCot[z]、Sinh[z]、Cosh[z]、Tanh[z]、Coth[z]、 Csch[z]、Sech[z]、ArcSinh[z]、ArcCosh[z]、ArcTanh[z]、ArcCoth[z]、ArcCsch[z]、ArcSech[z]。 ●正交多项式 LegendreP[n,x], LegendreP[n,m,x] 勒让德多项式 ChebyshevT[n,x],ChebyshevU[n,x] 切比雪夫多项式 HermiteH[n,x] Hermite多项式 LaguerreL[n,x] Laguerrel[n,a,x] 拉盖尔多项式 JacobiP[n,a,b,x] 雅可比多项式 ●特殊函数 此处我们将不给出特殊函数的具体表达式,读者可查阅相关资料。 Beta[a,b],Beta[z,a,b] Bata函数及不完全Beta函数 Gamma[z],Gamma[a,z] Gamma函数及不完全Gamma函数 Erf[z],Erf[z0,z1] 误差函数及广义误差函数 BesselJ[n,z],BesselY[n,z] 贝赛尔函数 2-12
相关推荐: