1、Mathematica 9.0 简明教程2015 年 10 月 10 日1目录0.Mathematica 启动与帮助 .31. Mathematica 基本使用 .42. Mathematica 的基本语法特征 .43. Mathematica 中的数据类型和数学常数 .54. Mathematica 数的运算符 .55. Mathematica 中的精确数与近似数 .56. Mathematica 中的表 .6建表命令: .6分量命令: .7运算命令 .77. Mathematica 中的变量 .8(1) Mathematica 的变量命名 .8(2) Mathematica 中的变量取值与
2、清除 .8(3) Mathematica 中有关变量的注意事项 .98. Mathematica 中的函数 .10(1).的 Mathematica 内部函数 .10(2).Mathematica 中的自定义函数 .11(3).Mathematica 中的函数求值 .129. Mathematica 中的表达式 .12(1).Mathematica 中的算术表达式 .13(2).Mathematica 中的关系表达式 .13(3).Mathematica 中的逻辑表达式 .13(4).Mathematica 中的复合表达式 .1410.Mathematica 中的一些符号和语句 .14(1).
3、Mathematica 中的专用符 .14(2).Mathematica 中的屏幕输出语句 .1511. 绘图 .16(一) Mathematica 绘图命令有如下一些常用形式: .16(二) 绘图命令中的选择项参数的形式为: .192Mathematica 自 1988 年由美国的 Wolfram Research 公司首次推出,是一个功能强大的常用数学软件, 不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。0.Mathematica 启动与帮助假设在 Windows 环境下已安装好中文 Mathematica9.0,在 “开始”菜单的“程序”中
4、单击 ,就启动了 Mathematica9.0,默认为是新建“笔记本”。这与文件 新建菜单是一样的。笔记本,幻灯片,项目,后缀都是.nb,可以理解为不同场合设计的模板。任何时候都可以通过按 F1 键或点击帮助菜单项“参考资料中心” ,调出帮助菜单,如图所示,函数浏览器和虚拟全书可理解为两个搜索引擎,帮助查找所需内容。该文档全面整合的文件中心容纳几千个详细举例、动画、辅导课程和其它资料。这些都被翻译成中文,帮助您使用 Mathematica。 1. Mathematica 基本使用3(1) 在工作区(软件打开初始时,左侧的窗口,上方有 untitled-1*)输入命令,按Shift+Enter
5、组合键执行命令;如输入“1+1” ,按 Shift+Enter 执行后,窗口显示In1:= 1 + 1 Out1= 2其中“In1:= , Out1=”为系统自动添加(不必管),In1括号内数字 1 表示第 1次输入。如果不想显示此次输入的结果,只要在所输入命令的后面再加上一个分号便可。(2)可以打开“助手面板” ,方便命令输入,如级数,积分,数学符号等。(3)在 Mathematica 系统中定义了许多功能强大的函数,我们称之为内建函数(built-in function), 直接调用这些函数可以取到事半功倍的效果。这些函数分为两类,一类是数学意义上的函数,如:绝对值函数 Absx,正弦函数
6、 Sinx,余弦函数 Cosx,以 e 为底的对数函数 Logx,以 a 为底的对数函数 Loga,x等;第二类是命令意义上的函数,如作函数图形的函数 Plotfx,x,xmin,xmax,解方程函数 Solveeqn,x,求导函数 Dfx,x等。 在 Mathematica 中,函数名和自变量之间的分隔符是用方括号“ ”,而不是一般数学书上用的圆括号“( )”,初学者很容易犯这类错误。2. Mathematica 的基本语法特征 (1)Mathematica 中区分大、小写,如 Name、name 、NAME 等是不同的变量名或函数名。(2)系统所提供的功能大部分以系统函数的形式给出,内部函
7、数一般写全称,而且一定是以大写英文字母开头,如 Sin2等。 (3)乘法即可以用*,又可以用空格表示,如 2 32*36 ,x y,2 Sinx等;乘幂可以用“”表示,如 x0.5,Tanxy。 (4)自定义的变量可以取几乎任意的名称,长度不限,但不可以数字开头。 (5)当赋予变量任何一个值,除非明显地改变该值或使用 Clear变量名或“变量名=.”取消该值为止,否则它将始终保持原值不变。 (6)一定要注意四种括号的用法:()圆括号表示运算项的结合顺序,如 (x+(yx+1/(2x);方括号表示函数,如 Logx, BesselJx,1;大括号表示一个 “表”( 一组数字、任意表达式、函数等的
8、集合),如2x,Sin12 Pi,1+A,y*x; 双方括号表示“表”或“表达式”的下标,如 a2,3、1,2,31=1 。 (7)Mathematica 的语句书写十分方便,一个语句可以分为多行写,同一行可以写多个语句(但要以分号间隔) 。当语句以分号结束时,语句计算后不做输出(输出语句除外) ,否则将输出计算的结果。 3. Mathematica 中的数据类型和数学常数Mathematica 提供的简单数据类型有整数、有理数、实数和复数 4 种类型,这些数据在 Mathematica 中有如下的要求:4(1)整数描述为 Integer,是可以具有任意长度的精确数。书写方法同于我们通常的表示
9、,输入时,构成整数的各数字之间不能有空格、逗号和其它符号,整数的正负号写在该数的首位,正号可以不输入。如:2367189、-932 是正确的整数。 (2)有理数描述为 Rational,用化简过的分数表示,但其中分子和分母都应该是整数,有理数是精确数,输入时分号用“ / ”代替,即使用“分子 分母” 的形式。如:23/45 、- 41/345 是正确的有理数。(3)实数描述为 Real,是除了整数和有理数之外的所有实数。与一般高级语言不同的是这里数学中的无理数是可以有任意精确度的近似数, 如圆周率 , 在 Mathematica 中它可以根据需要取任意位有效数字。(4)复数描述为 Comple
10、x,用是否含有虚数单位 I 来区分,它的实部和虚部可以是整数、有理数和实数。如:.3I、18.5I 都是正确的复数。为了方便数学处理和计算更准确,Mathematica 定义了一些数学常数,它们用英文字符串表示,常用的有:Pi 表示圆周率 =3.14159E 表示自然数 e =2.71828Degree 表示几何的角度 1或 /180 ,30 Degree 表示 30.I 表示虚数单位 -1 开平方 IInfinity 表示数学中的无穷大 (正无穷)注意:数学常数是精确数,可以直接用于输入的公式中,作为精确数参与计算和公式推导。这些常数可以从符号面板选择输入。4. Mathematica 数的
11、运算符数的运算有:加、减、乘、除和乘方,它们在 Mathematica 中的符号为:加() 、减() 、乘(*) 、除(/)和乘方( ) 。不同类型的数参与运算,其结果的类型为: 如果运算数有复数,则计算结果为复数类型; 如果运算数没有复数,但有实数,则计算结果为实数类型 如果运算数没有复数和实数,但有分数,则计算结果为有理数类型 如果运算数只有整数,则计算结果或是整数类型(如果计算结果是整数) ;或是有理数类型(如果计算结果不是整数) 。5. Mathematica 中的精确数与近似数(1)Mathematica 的近似数是带有小数点的数;精确数是整数、有理数、数学常数以及函数在自变量取整数
12、、有理数、数学常数时的函数值。如: 62243、2/3 、E、Sin4都是精确数。如果参与运算或求值的数带有小数点,则运算结果通常为带有位有效数字的近似数,如:In3: = 1.2345678020/30 Out3=0.0411523 结果为近似数In4: = 2+Sin1.0 Out4= 2.84147 结果为近似数5In5: = 2+Sin1 Out5= 2 + Sin1 结果为精确数(2)如果需要精确数的数值结果(除了整数之外) ,可以用 Mathematica 提供的 N 函数将其转化,N 函数可以得到该精确数的任意精度的近似结果: 例如:In6: = 2*E+Sin Pi/5 / N
13、 Out6= 6.02345 (输入 2*E+Sin Pi/5 试试)In7:= N 2*E+SinPi/5 , 30 Out7= 6.02434890921056359988928089734Input=NPi,20output=3.141592653589793238462643383286. Mathematica 中的表 表可以用来表示数学中的集合、向量、矩阵和数据库中的记录。在 Mathematica 中,任何用一对花括号括起来的一组元素都代一个表,其中的元素用逗号分隔且各元素可以具有不同的类型,特别其中的元素还可以是一个表。表的形式: 元素 1,元素 2,元素3,元素 n ,如:1
14、, 3,5 、3,x,1 ,y,4 都是表建表命令:(1)命令形式 1: Tablef(i),i ,imin ,imax,h,其中 h0功能:产生一个表 f(imin) ,f(imin +h),f(imin +2h), ,f(imin +nh) 例如:In8: = Table i2 , i , 1, 19 , 2 Out8= 1, 9, 25, 49, 81, 121, 169, 225, 289, 361 (2)命令形式 2: Table 通项公式 f(i),i ,imin ,imax,相当于 h=1功能:产生一个表 f(imin) ,f(imin +1),f(imin +2),f(imin
15、 +n)命令:In9: = Tablei2, i, 2 , 10Out9= 4, 9, 16, 25, 36, 49, 64, 81, 100(3)命令形式 3: Table 通项公式 f, 循环次数 n, f 为常数功能:产生 n 个 f 的一个表 f ,f ,f,f 例如:建立产生 8 个 2 一个表2,2,2,2,2,2,2,2命令:In10: = Table2, 8Out10= 2,2,2,2,2,2,2,2(4)命令形式 4: Table 通项公式 f(i , j),i ,imin, imax,j ,jmin,jmax功能:产生一个二维表 f(imin, jmin) ,f(imin,
16、 jmin +1),f(imin, jmin +2),, f(imin, jmin +m), f(imin+1, jmin) ,f(imin+1, jmin +1), f(imin+1, jmin +2), , f(imin+1 , jmin +m), f(imin+n, jmin) ,f(imin+n, jmin +1),f(imin+n, jmin +2),,f(imin +n, jmin +m)例如 :In11: = Tablei-j, i, 1 , 6, j, 1 , 2Out11= 0, -1, 1, 0, 2, 1, 3, 2, 4, 3, 5, 4 6分量命令:表的分量表示:有时
17、为了需要,希望取出表中的某一或某些元素参与后面的运算和处理。(1)命令形式 1: 表 序号 n 功能:取出表中序号为 n 的元素例如:取出表1, 9, x, 49, 81, 121, 169, 225, 289, 361的正数第 3 个元素、第 6 个元素、和倒数第 2 个元素的命令依次为:命令:In12: = 1, 9, x, 49, 81, 121, 169, 225, 289, 361 3 Out12=xIn13: = 1, 9, x, 49, 81, 121, 169, 225, 289, 361 6 Out13=121,169In14: = 1, 9, x, 49, 81, 121,
18、 169, 225, 289, 361 -2 (倒数可以用负号表示)Out14=289In15: =A=Tablei,i,1,30,3Out15=A3=7(2)命令形式 2: 表序号 n 1, 序号 n 2, 序号 n 3,,序号 n m功能:取出由表中序号分别为 n1, n2, n3,,nm 的 m 个元素组成的一个表,其中序号 n1, n2, n3,,n m 可以重复。例如:取出由表1, 9, x, 49, 81, 121, 169, 225, 289, 361中序号分别为 1,3,3,6,-1 的 5 个元素组成的一个表:命令:In15: = 1, 9, x, 49, 81, 121,
19、169, 225, 289, 361 1,3,3,6,-1 Out15= 1, x, x, 121, 169, 361(3)命令形式 3: 表 序号 n1,序号 n2功能:取出表中序号为 n1 元素(该元素必须是一个表)的序号为 n2 的元素。例如:取出表1, 9, x, 49, 81, 121, 169, 225, 289, 361中序号为 6 的元素的正数第二个元素,命令:In16: = 1, 9, x, 49, 81, 121, 169, 225, 289, 361 6,2 Out16= 169运算命令Mathematica 表的运算命令有很多,这里介绍两个常用的函数:ApplyPlus
20、, 表 对表中所有元素求和ApplyTimes, 表 对表中所有元素求积例如:写出将表1, 9, 49, 81, 225, 289, 361中所有元素相加、相乘命令:In17: = t=1, 9, 49, 81, 225, 289, 361 In18= ApplyPlus, t Out18=1015In19= ApplyTimes, t Out19=83851564702577. Mathematica 中的变量(1) Mathematica 的变量命名 变量名规定为任何小写英文字母或以小写英文字母开头后跟若干字母或数字表示的字符串,如 x,y,ae3,d3er45 都是合法的变量名。 变量名
21、一般不用大写字母。如果在某些情况下一定要用大写字母,应该注意不要与Mathematica 中的数学常数和内部函数或命令的混淆。Mathematica 中的变量名是区分大小写字母的,如在 Mathematica 中,ab 与 Ab 表示两个不同的变量。 变量名中的字符之间不能有空格,因为变量名中的空格在 Mathematica 中被理解为变量的乘积。如:abcd 与 ab cd 有不同的含义,前者表示一个变量 abcd, 而后者Mathematica 会将其看成两个变量 ab 和 cd 的乘积关系。 变量名不能以数字开头的字符串来表示,如果在 Mathematica 里出现了这种字符串,Math
22、ematica 将其理解为数字与变量的乘积。例如: 以数字开头的字符串 3asd,在Mathematica 中表示 3 乘以变量 asd 即 3asd 表示 3*asd。 在 Mathematica 中变量使用前不必先定义变量类型。Mathematica 变量的类型可以不断变化,取决于其中所存数据的类型;变量不但可以存放前面所提到的四种数据数,而且可以存放一个方程式、一个图形或更复杂的关系式。(2) Mathematica 中的变量取值与清除如果一个变量在程序运行中没有被存储内容, 此时该变量名只是一般的数学符号参与程序的处理。如果变量被存储了内容, 称为变量取值。变量取值之后,该变量就用存入
23、的内容参与程序的处理。在 Mathematica 中,变量获取值的方式有三种:变量赋值、键盘输入和变量替换。下面分别介绍这三种方式: 变量赋值方式Mathematica 中变量赋值的一般形式为:变量 = 表达式这里“=”称为赋值号,表达式是广义的表达式,即它可以是数值和通常意义的数学表达式,还可以是一个方程或图形等。例如:In20: = x = 2+2Out20= 4In21:= x*x x + 1 Out21= 13 键盘输入方式键盘输入方式是变量取值的另一种常用的方式,多用于需要在命令或程序的运行中由用户从键盘上临时键入的人机交互式变量取值。键盘输入命令形式为:变量= Input 当遇到上
24、面的键盘输入命令后,计算机在屏幕上给出一个输入小窗口,等待用户在其中从键盘上键入一个表达式,键入完毕后,用鼠标点击“OK”按扭后,计算机将键入的表达式求值后,将结果存储在算等号左边的变量中。这里“=”是赋值号。8例如: In22: = x = Input *变量 x 等待键盘输入赋值 (见图)Out22= 23 (* 此时 x 从键盘上被赋值 23)In23:= x + 1 Out23= 24 变量替换变量替换类似于数学中的计算函数在某一点的函数值。变量替换的一般形式为:表达式 / . 变量名 1 表达式 1 或 表达式 / . 变量名 1 表达式 1, 变量名 2 表达式 2,这里符号“/.
25、”是由键盘上的两个符号“/” 和“.”组成的,中间不能有空格。同样,“”也是由键盘上的两个符号“ ”和“”组成的, 中间也不能有空格。例如:In24: = 2x+3y /. x - 2.1 Out24= 4.2 + 3 yIn25:= 2x+3y /.x - 2.1, y -1 + a Out25= 4.2 + 3 (1 + a) 清除变量清除变量的含义是清除给变量所赋的值,它的命令形式为:变量名=.或Clear变量名 1,变量名 2,清除变量后,变量名就还原成一般的数学符号了。 (3) Mathematica 中有关变量的注意事项 使用变量前先用清除命令清除其中的内容。Mathematica
26、 中的变量名还可以用作代数中的数学符号,在 Mathematica 的命令或程序中出现的任何合法的变量名符号,如果该变量名所代表的变量没有被赋值,则它就作为数学算式中的符号参与数学的公式推导和运算;如果该变量被赋值了,则用该变量所赋的值参与对应数学的公式推导和运算。因此,如果用户在做符号运算时使用的符号有被赋值的变量名,则就会出现察觉不到的错误。 变量替换时变量本身还是数学符号,没有发生变量赋值的行为。如:In26: = x=9; (若后面需要进行符号运算,则需要清除)In27: = 6/x-7 Out27= -19/3In28: = x=. -In29: = 6x-7/. x-9 (变量替换
27、,没有赋值行为)Out29= -19/3 In30: = 6/x-7Out30= 6/x-78. Mathematica 中的函数9(1).的 Mathematica 内部函数Mathematica 有很丰富的内部函数,它们是 Mathematica 系统自带的函数,函数名一般为数学中常使用的英文单词,只要输入相应的函数名,就可以方便地使用这些函数。内部函数既有数学中常用的函数,又有工程中用的特殊函数。如果用户想自己定义一个函数,Mathematica 也提供了这种功能。Mathematica 的内部函数名字大部分是其英文单词的全名,如 Random 等。Mathematica 内部函数的名字
28、第一个字母一定要大写,其后的字母一般是小写的,不过如果该名字有几个含义,则函数名字中体现每个含义的第一个字母也要大写,如反正切函数arctanx 中含有反 “arc”和正切“tan”两个含义, 故它的 Mathematica 函数表示为 ArcTanx。Mathematica 中的函数自变量应该用方括号 括起,不能用圆括 ( ) 号括起,即一个数学中的函数 f (x, y,)应该写为 f x, y,才行下面列举一些常用的 Mathematica 内部函数 数值函数Absx 表示 x 的绝对值|x|Roundx 表示最接近 x 的整数Floorx 表示不大于 x 的最大整数Ceilingx 表示
29、不小于 x 的最大整数Signx 表示 x 的符号函数 sgn(x)Expx 表示以自然数为底的指数函数 e xLogx 表示以自然数为底的对数函数 ln xLoga,x 表示以数 a 为底的对数函数 log a xSinx, Cosx 表示正弦函数 sin x, 余弦函数 cos xTanx, Cotx 表示正切函数 tan x ,余切函数 cot xArcSinx, ArcCosx 表示反正弦函数, 反余弦函数ArcTanx, ArcCotx 表示反正切函数 arctan x , 反余切函数 arccot xMaxx1,x2,xn 表示取出实数 x1,x2,。,x n 的最大值Maxs 表
30、示取出表 s 中所有数的最大值 Minx1,x2,xn 表示取出实数 x1,x2,。,x n 的最小值Mins 表示取出表 s 中所有数的最小值 n! 表示阶乘 n(n-1)(n-2) .1n! 表示双阶乘 n(n-2)(n-4) .Modm,n 表示整数 m 除以整数 n 的余数Quotientm,n 表示整数 m 除以整数 n 的整数部分GCDm1,m2,mn 表示取出整数 m1,m2,。,mn 的最大公约数GCD s 表示取出表 s 中所有数的最大公约数LCMm1,m2,mn 表示取出整数 m1,m2,。,mn 的最小公倍数LCM s 表示取出表 s 中所有数的最小公倍数Binomialn, m 表示二项式系数Rez 取复数 z 的实部Imz 取复数 z 的虚部Conjugatez 取复数 z 的共轭复数