E N D
Mathematica简介 陈建兰 杭州电子科技大学 2005年3月
绪论 Mathematica是美国Wolfram Research公司开发的数学软件。可以做符号计算和数值计算问题,如能做多项式的计算、因式分解、展开;做各种有理式计算、求多项式、有理式方程和超越方程的精确解和近似解,做数值的或一般代数式的向量、矩阵的各种计算,求极限、导数、积分,做幂级数展开,求解某些微分方程等;可以做任意位数的整数或分子分母为任意大整数的有理数的精确计算,做具有任意位精度的数值(实、复数值)的计算。Mathematica还可以很方便地画出用各种方式表示的一元和二元函数的图形,通过图形,可以立即形象地掌握函数的某些特性,而这些特性一般很难从函数的符号表达式中看清楚。
§1 Mathematica的启动、运行和帮助、退出 1 . 启动 • 在Windows下,启动Mathematica的方式和其他Windows应用程序没有什么两样,只需要找到Mathematica图标(桌面上或程序中),双击它即可。等待约一秒进入Mathematica主窗口,并出现第一个notebook窗口(Untitled-1.nb),可以开始在此窗口中输入命令进行计算工作。
2.运行 Mathematica的运行符为:Shift + Enter或数字键盘的Enter键.如在工作窗口输入100!,需按Shift + Enter键或数字键盘上的Enter键,才能看结果(运行结果),且Mathematica系统将输入命令自动编号,前面加上In[nnn]:=的信息(nnn代表输入命令的序号),输出结果前也将加上提示符Out[nnn]= 。注意In[nnn]:=不能输入。
3.帮助 Mathematica的变量、常量以及函数等都是原版英文,无论书写和记忆都有十分高的要求。“如何提高速度、减少差错”一直是大家非常关心的事。这里推荐几个有效的途径,相信你会喜欢它们。
(1) 使用系统提供的Help菜单 选“Help”菜单,再选“Help Brower…”菜单项。如查“NestList”的用途与用法,可在上方GoTo后面的白色区域输入:NestList,并单击GoTo按钮。从中可以得到关于“NestList”的语法说明、基本例子、可参考的内容,以及进一步的较全面的例子。
(2) 用 Ctrl+K 键 如果只知道命令的首写字母,可在输入该首写字母后,同时按下“Ctrl+K”组合键,则所有以该字母为首的命令都列出来,只要用鼠标双击命令名就输入了该命令。
(3) 用 ? 查询 如果知道命令名,要了解其用法时只需输入?后空格,输入该命令运行即可。要了解命令的详细选项及默认值,只需输入??后空格,再输入该命令名运行即可。
4.退出 与一般应用软件一样,退出Mathematica通常也有两种基本的方法:①单击右上方X中的按钮;②选“File”菜单,再选“Exit”菜单项。
§2 文件的存储与读取 与大多数应用软件一样, 在Mathematica中可以保存或读取你所做的工作,包括你的输入、执行的结果、图像输出以及出错信息等。这样就便于你下次继续你的工作。
1、文件的存储 选“File”菜单,再选“Save”菜单项,这时弹出一个对话框,即告诉你当前文件的存储位置,在文件名处键入你所需保存结果文件的文件名(一般可选用一个便于记忆并与文件内容有关的文件名),回车后即完成文件的存储。当然,你也可以选择一个已经存在的文件来保存你的结果,不过要注意,此时确定以后,原来文件的内容将完全覆盖。
2、文件的另存 有时文件中有部分内容有变动,但又不想替换掉原文件,此时可选用Mathematica的另存功能。即选“File”菜单,再选“Save as”菜单项,在弹出的对话窗口中键入一个新的文件名,回车后即完成一个新文件的保存。
3、文件的特殊存储 Mathematica的特殊存储功能将.nb文件转存为其他格式的文件,以便应用。常用的文件格式有:Text,Tex,Html等。 选“File”菜单,再选“Save As Special”菜单项,在弹出的下级菜单选定你要保存Mathematica文件的特定格式,再在弹出的对话框中选定路径,键入文件名,回车后保存。
4、文件的打开 选“File”菜单,再选“Open”菜单项。在弹出的对话框中写好正确的路径和正确的文件,回车后即可打开你所需要的文件。注意对于用“Save AsSpecial”得到的结果,最好用“File”菜单下的“Open Special”菜单项打开。
5、部分输入或输出的保存 选中你所需要的内容,在该内容上单击鼠标右键,在弹出菜单中取“Copy As”菜单项,再在弹出的下级菜单中选中所需要的格式(文本或图形),按鼠标左键确定,这样就将选中内容以你所要求的格式置入剪贴板,之后你就可以在其他软件中用“Paste”或“粘贴”命令调用。用“File”菜单下的“Copy”菜单项截下的Mathematica文件部分无法应用于其他应用软件中。
§3 数和算术 Mathematica有几个常用的运算符:
2、整数、有理数计算 在Mathematica提示符下可以做整数、有理数的运算,计算结果仍为整数、有理数。如1/200003+45/60000,结果为604009/800012000,而 285^27/123^13 结果是:
3、浮点数(实数) 浮点数的运算符与整数、有理数的运算符一样。两个浮点数运算或一个浮点数与一个整数(有理数)运算,得到的结果都是浮点数.Mathematica可以将整数、有理数转换为浮点数,可以得到它们的任意位有效数字的浮点表示,转换是用一个系统函数:大写的N[x,n].如 N[237/4683, 50]:表示取237/4683的50位近似值。方括号中的两项用逗号分隔开,第一项是被取值的数或式子,第二项是要求的近似值位数 。如果只想求近似值而不关心位数,可以写 N[237/4683]或237/4683 //N
4、复数运算 • Mathematica也支持复数的计算。虚数i用大写字母I表示。下面是两个复数: • 2+3I • 3.24+6.17I • 复数也可以分成精确的(实部、虚部都是整数或有理数)和近似的两类。请试着算: • I^I和 I^I^I
5、常用的数学函数 Mathematica里定义了许多数学函数,包括三角函数、指数对数函数、双曲函数和许多特殊函数 。这些函数都可以用在表达式里。命名规则一般使用习惯的英文缩写,应该注意的是:函数名都是由字符串表示,字符之间不能有空格;函数名字的第一个字母总是大写的,后面的字母是小写的,但如果名字是由几个段构成的(如ArcSin),则每段的第一个字母都必须大写,这些是Mathematica内部函数取名的规则。再一点应当特别注意:函数的参数是用方括号括起来的。如Sin[x]
(1)常用函数的命令格式 三角函数: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 对数函数ln x用Log[x],以a为底的对数函数用Log[a,x] 平方根函数 :Sqrt[x] ,绝对值函数 :Abs[x] 最大值函数:Max[a,b,c] 最小值函数:Min[a,b,c]
6、定义变量 Mathematica系统里定义的变量是以字母开头的字母数字串表示,没有长度限制 。变量名不能以数字开头。如x2可以作为变量名。但是2x却是2*x的意思。一般的格式为: • x=value :表示把值value赋给x • x=y=value:表示把值value赋给x和y
7、清除变量 变量定义且赋值后,是不会变的,具有永久性。这样有时会对后面的计算带来不便,因此需要清除某些变量,清除变量用: x=.或者Clear[x]:表示清除x的值 Clear[x,y,z]:表示清除x,y,z的值
8、运算结果的读取---%运算符 “%”称ditto运算符,有重复以前内容的意思。在计算过程中某次的计算可能要用到上次的计算结果,或者前几次的计算结果,就可用”%”符,用法如下:
9、置换运算符—“/.” 代数式里的变量可以用某表达式替换,生成新的代数式。也可以把代数式里的所有的变量用数值替换,得到此代数式的计算结果。替换的格式为: expr/.x->x0:表示将表达式里的变量x用x0代。 expr/.{x->x0,y->y0,…}:表示将代数式里的变量x,y…用x0,y0,…代。 字符串” /.”由一个除号和一个圆点符号组成 字符串”->”由一个减号和一个大于符号连成
10、数组(表、矩阵)的生成 数组(表、矩阵)的生成用Table函数,格式为: • Table[f,{n}]:表示生成n个元素f的数组,Table[f,{n,n0,n1,dn}]:表示标注n从n0到n1,间隔为dn,生成f的数组,类似可生成多维数组。 • 如Table[x^n,{n,5}], Table[Sin[x],{x,0,2,0.2}], 而t=Table[a[i,j],{i,3},{j,4,6}]为二维数组。 • t[[3]]可表示提取表t中的第3个元素。
§4 基本微积分 微积分里的求导函数、求不定积分、级数展开等都是最典型的符号演算。Mathematica系统提供了一批做这些演算的函数,有些可以直接从工具栏中输入(工具栏由File---Plaettes-Basic Input激活)。
1、极限 求极限的函数是Limit,格式为: Limit[expr,x->x0.]:表示求表达式expr当x 趋向于x0时的极限 函数的左、右极限求法: 左极限:Limit[函数,x->x0,Direction->1] 右极限:Limit[函数,x->x0,Direction->-1]
2、微商 Mathematica可以求出任意函数表达式的微商,格式列表如下:(有些运算可从工具栏中直接输入 )
3、不定积分和定积分 求不定积分的函数是Integrate。格式为: Integrate[f[x],x](x为积分变量) 或用工具栏,输入不定积分 定积分也是用Integrate做,命令为: Integrate[f[x],{x,a,b}] 或用工具栏,输入定积分
4、多重积分与数值积分 用Integrate还可以做多重积分,如二重积分的格式为: Integrate[f[x,y],{y,c,d},{x,a,b}] 如:Integrate[x^2+y^2,{x,0,a},{y,0,x}]在Mathematica里求数值积分的函数是NIntegrate,举个例子: NIntegrate[Sin[Sin[x]],{x,0,Pi}]
5、幂级数(泰勒公式)展开 一个函数描述了在某个区域内值的对应关系,有时考察一个函数在某一点附近的性质时,可以用一个有限次的多项式作为这个函数的近似,这就是幂级数展开(Taylor展开)的意义。Mathematica可以非常方便地求出任一个复杂函数表达式的任意阶幂级数展开。运算格式:Series[f[x],{x,x0,n}]:表示f(x)在x=x0做Taylor展开至 阶(带余项)。 若要去余项,用函数Normal实现,如 s=Series[Sin[x],{x,0,10}] ,f1=Normal[s]
§5 拟合、自定义函数 这一节要介绍在Mathematica中如何求函数的极小值(FindMinmum)、求和的函数(Sum)、做函数(曲线)的拟合(Fit),以及函数的定义及赋值 。
1、求函数的极小值 求函数极小值的格式为:FindMinimum[f,{x,x0}]:以x=x0作为初始值,求函数f的最小值 FindMinimum[f,{x,x0},{y,y0},…]:求多变量函数的最小值 求最大值,可以先求出-f的最小值,从而可得到f的最大值。
2、求和 用Sum[f,{i,a,b,di}]可求数列的和,自变量i以di递增,di=1时可略 。 Sum[f,{i,a,b},{j,c,d}]:表示
3、函数的拟合(1) 做数据处理时希望用一个函数去反映客观的数据,这叫函数拟合。做拟合是要发现数据中的某种规律性,找出这种规律性的表达式,或者从实测数据得到有关数学模型的参数,然后就可以用表示式或模型预测可能的结果。Mathematica中,最基本的拟合操作是Fit ,即利用最小二乘(平方)法,将数据与要拟合的函数做分析运算,以求出最接近或最能表示数据趋势的函数。
3、函数的拟合(2) Fit的用法: 1)Fit[data,{1,x},x]:表示变量为x,进行线性拟合 2)Fit[data,{1,x,x^2},x]:二次多项式拟合 3)Fit[data,Table[x^j,{j,0,n}],x]:n阶多项式拟合 4)Fit[data,funs,vars]:将data用funs做曲线拟合 5)数据data={{x1,y1,..},{x2,y2,…},…}
4、函数定义 Mathematica有关函数定义的命令有: 1) f[x_]:=value表示无论在何时遇到和模型f[x_]相匹配的表达式都用value来替换(延时赋值 )“x_”中的“_”需按Shift和减号键。 2) f[x_]=value与f[x_]:= value相似但表示立即赋值,区别要在实践中体会。 3)f[x]=value表示何时出现表达式f[x],它都可用value来替换,但不能代f[y]这样的表达式 。 4)用 ?f显示f的定义,用Clear[f]可清除所有有关f的定义
5、立即赋值和延时赋值 运算符“:=”表示延时赋值 如在Ihs:=rhs式子中的rhs,并不在赋值的同时计算,它是在需要Ihs值时才进行计算的。 运算符“=”表示立即赋值 如在 Ihs=rhs式中的rhs,在赋值的同时也就被计算了,即在赋值的同时计算rhs,即rhs被假设为Ihs的最终值
§6 图 形 Mathematica可以绘制点图、二维图(曲线)、二维参数图、三维函数图(曲面)、三维参数图等;并可定义绘图的颜色与线条的粗细,坐标轴等等。
1、点图的绘制 点图的命令为: 1)ListPlot[{y1,y2,y3,…}]:表示绘制点 {1,y1},{2,y2},… 2)ListPlot[{{x1,y1},{x2,y2},…}]:表示绘制点{x1,y1},{x2,y2},… 3)ListPlot[list,PlotJoined->True]:用线段连接绘制点。 list={{x1,y1},{x2,y2},…},list表示取的变量名
2、基本的二维图形 Mathematica画曲线y=f (x)的图形(二维图形)用的命令格式为: 1)Plot[f[x],{x,xmin,xmax},选项]:从xmin至xmax绘制f (x)函数图,即曲线y=f (x) 2)Plot[{f1,f2,…},{x,xmin,xmax},选项]可以同时绘制多个函数图。
3、图形的选项(1) 作图命令“Plot”可带一些选项,现将常用选项列表如下:
3、图形的选项(2) Plot命令的其他选项可参考Mathematica书。
4、定义绘图的颜色 1)命令:Plot[{f1,f2,…},{x,xmin,xmax},PlotStyle->{RGBColor[r1,g1,b1],RBColor[r2,g2,b2],…}] 表示:分别用RGBColor[r1,g1,b1], RBColor[r2,g2,b2],…给f1,f2,…上色,r1,g1,b1…. 等值在[0,1]上取。 2)命令:Plot[{f1,f2,…},{x,xmin,xmax},PlotStyle->{GrayLevel[i], GrayLevel[j],…}]表示:分别用灰度GrayLevel[i], GrayLevel[j],…给f1,f2,…上色; i,j…等值也在[0,1]上取。
5、线条的粗细 命令: Plot[{f1,f2,…},{x,xmin,xmax}, PlotStyle->{Thickness[r1], Thickness[r2],…}] 表示:定义f1,f2,…线条的粗细为Thickness[r1], Thickness[r2],…来绘图,其中r1,r2…为线条的粗细所占图形宽度的比例。
6、二维参数图 命令: 1)ParametricPlot[{x1[t],y1[t]},{t,tmin,tmax},选项]:绘一条曲线 2)ParametricPlot[{{x1[t],y1[t]},{x2[t],y2[t]},…},{t,tmin,tmax},选项]:绘多条曲线
7、三维函数图(曲面) 命令: Plot3D[f[x,y],{x,xmin,xmax},{y,ymin,ymax},选项]绘制函数z=f (x,y)的图形。 如:Plot3D[Sin[x] *Cos[y], {x,0,2Pi},{y,0,2Pi}]
8、三维函数图选项(1) Plot3D常用选项: