Mathematica基础复习.ppt
数学实验Mathematical Experiment,主讲教师叶传秀,窗口操作指令,执行指令的方法:左:Shift+Enter;终止指令进行的方法:alt+.;动画演示:ctr+y自动根据命令前辍完成命令:ctr+k复制上一次的输入:ctr+L复制上一次的输出:ctr+shift+L,数、变量、函数、算式和表,数的表示和计算变量函数表基本符号运算,分式 x Ctrl+/2 n次方 x Ctrl+n 开n次方 Ctrl+2 x Ctrl+5 n下标 x Ctrl+_n,数学表达式二维格式的输入,近似值的函数N Mathematica允许用户任意指定数值计算的精度,函数N的调用格式如下,N表达式,数字位数 N表达式,另:可用函数NumberFormReal,n规定 实数的显示位数.,数的进制转换,可以使用bnnn将一个b进制的数nnn转化为十进制的数.可以使用BaseFormx,b函数将一个十进位数x化成b进位数.,Pi 表示 3.14159E 自然对数的底,e=2.71828.Degree/180I 虚数单位Infinity 无穷大Infinity 负的无穷大GoldenRatio 黄金分割数0.61803,数学常数,1)变量命名,Mathematica中的变量命名必须是以字母开头的并由字母或数字组成的字符串(长度不限),但是不能含有空格或标点符号,大写与小写字母用于表示不同的变量.例如 x,al,bl2,Tc都是合法的变量名;2a是不合法的变量名;al与Al是不同的变量.,变量,2)变量赋值,一个变量可以表示各种类型的数或字符串,也可以表示一个算式.与C语言不同,不必事先声明变量的类型,Mathematica会根据用户给变量所赋的值自动处理.,x=Value 给x赋值;X=y=Value 同时给x,y赋相同的值;x,y,=Value1,Value2,在Mathematica中,运算符号“=”或“:=”起赋值作用,一般形式为:变量=表达式 或 变量1=变量2=表达式其执行步骤为:先计算赋值号右边的表达式,再将计算结果送到变量中,在Mathematica中,“=”应理解为给变量一个值在使用“=”定义规则时,定义式右边的表达式立即被求值;而在使用“:=”定义规则时,系统不做运算,也就没有相应的输出,定义式右边的表达式不被立即求值,直到被调用时才被求值因此,“:=”被称为延迟赋值号,“=”被称为立即赋值号一般的高级语言没有符号运算功能,因此,在C和Pascal等语言中,一个变量只能表示一个数值、字符串或逻辑值而在Mathematica中,一个变量可以代表一个数值、一个表达式、一个数组或一个图形,为了避免隐蔽的错误,应该及时清除不再使用的变量.其方法有以下几种:,3)清除变量,x=.清除x的值但保留变量x.,Clearx 清除x的值,Removex 清除变量x.,Clear“Global*”清除所有变量的值.,Remove“Global*”清除所有变量.,%是一个重要的Mathematica符号,如下:,4)表示输出的专用符号,%表示前一个输出的内容.,%表示倒数第二个输出的内容.,%n 表示第n个(即Outn)输出的内容.,所有%n的内容一直被Mathematica记忆,它们可以像其他变量一样被后面的计算引用,灵活地使用%符号可以节省大量的输入时间.如输入,5)变量的替换在给定一个表达式时其中的变量可能取不同的值,这是可用变量替换来计算表达式的不同值。方法为:函数/.变量名-数值或表达式或函数/.变量名1-数值1或表达式1,变量名2-数值2或表达式2,fnx/.x-8 可以得到函数值fn(8),fnx_,y_:=x3+y2/.x-a,y-b+2可以得到函数值fn(a,b+2),Mathematica的基本功能是作为一个最高级的函数计算器来使用的,各种操作主要靠函数来实现.Mathematica提供的函数种类繁多且功能强大,函数一词也不仅限于数学上的含义,有实现各种操作的函数.还可以由用户自定义函数,加入到Mathematica中,能像系统函数一样使用.,3.函数,函数的一般形式是:函数名参数1,参数2,.,b)系统函数的书写规则 Mathematic的系统函数书写规则很严格,应注意以下几点:函数名首字符用大写,后面的字符一般用小写,当函数名分成几段时,每段的首字符应大写,函数名中不能含有空格;参数用方括号括起来,但是不能用圆括号.Mathematica认为圆括号表示相乘.如f(x+y)-f*(x+y),2)常用函数,Absx 求实数x的绝对值或复数的模Signx 符号函数Max 一组数的最大值Min 一组数的最小值Rex(Imx)复数x的实(虚)部Argx 复数x的辐角Conjugatex 复数x的共轭数Floorx 不超过x的最大整数,Ceilingx 不小于x的最小整数Roundx 最接近x的整数Modm,n 整数m被n除的余数Quotientm,n整数m被n除的整数部分GCD 一组整数的最大公约数LCM 一组整数的最小公倍数n!(n!)求n的(双)阶乘Binomialn,k 求FactorIntegern 将整数分解成素数的积,3)随机函数,Random 产生0,1之间的一个实数RandomInteger 只能产生0或1RandomComplex 产生单位正方形内的一 个复数RandomReal,max 产生0,max范围内的一个实数RandomComplex,zmin,zmax 产生左下角为zmin,右上角为zmax的矩形内的一个复数.,(1)函数的立即定义立即定义函数的语法如下fx_=expr函数名为f,自变量为x,expr是表达式。在执行时会把expr中的x都换为f的自变量x(不是x_)。函数的自变量具有局部性,只对所在的函数起作用。函数执行结束后也就没有了,不会改变其它全局定义的同名变量的值。对于定义的函数我们可以使用命令Clearf清除掉而Removef则从系统中删除该函数。,4)函数的定义,(2)多变量函数的定义也可以定义多个变量的函数,格式为 fx_,y_,z_,=expr自变量为x,y,z.,相应的expr中的自变量会被替换。如:Fx_,y_=x+y+Sinx y,(3)延迟定义函数延迟定义函数从定义方法上与即时定义的区别为“=”与“:=”延迟定义的格式为fx_:=expr其他操作基本相同。那么延迟定义和即时定义的主要区别是什么?即时定义函数在输入函数后立即定义函数并存放在内存中并可直接调用。延时定义只是在调用函数时才真正定义函数。,(4)使用条件运算符定义和If命令定义函数 这样的分段函数应该如何定义,显然要根据x 的不同值给出不同的表达式。一种办法是使用条件运算符,基本格式为fx_:=expr/;condition,当condition条件满足时才把expr赋给f.If语句的格式为If条件,值1,值2如果条件成立取“值1”,否则取“值2”,(5)函数求值,形式:函数/.变量名-数值或表达式 fx/.x-数值或表达式 或者函数/.变量名1-数值1或表达式1,变量名2-数值2或表达式2,表是存储多个数变量或等式等对象的一种数据结构,一个表用一对花括号表示,它的成员(元素)在括号内用逗号隔开,同一个表的成员可以有不同的数据类型,表的成员还可以是一个表(子表).如,4.表,tn或Partt,n 表示表t的第n个元素t-n或Partt,-n 表示表t的倒数第n个元素t 或 Partt,表示t的第 个元素Ti,j 或 Partt,i,j 表示表t的第i个子表的第j个元素Lengtht 表示表t的元素的个数,1)表的元素的操作 经常要提取或改变一个表中的元素,以下函数是常用的:,下面函数可以通过提取添加删除替换一个表中的元素得到一个新表(原来的表不变).Taket,n 提取表t的前n个元素Taket,-n 提取表t的后n个元素Taket,m,n提取表的第m到第n个元素Insertt,expr,n在表t的第n个位置插入元素,Insertt,expr,-n在表t的倒数第n个位置插入元素exprPrependt,expr在表t的第一个元素前面插入元素exprAppendt,expr在表t的尾部插入元素exprDeletet,n 删除表t的第n个元素Dropt,n 删除表t的前n个元素,Dropt,-n 删除表t的后n个元素Dropt,m,n 删除表t的第m到n个元素ReplacePartt,expr,n 用expr替换表t的第n个元素ReplacePartt,expr,-n 用expr替换表t的倒数第n个元素ReplacePartt,expr,i,j 用expr替换表t的第i个元素中的第j个成员。,2)表的操作 通过下列函数可以进行表的运算,生成新表(原来的表不变):,Joint1,t2 将表t1,t2连接成一个表Uniont1,t2 取表t1,t2的并集组成一个表Uniont 合并表t中的相同元素得到一个表Intersectiont1,t2 取表t1,t2的交集组成一个表,Complementeall,e1,e2,给出在表eall中但不在e1,e2,中的元素组成的表Partitiont,n 将表t的元素按n个一组生成子表Flattent 展开表t的各个子表Sortt 将表t的元素按标准顺序排序Reverset 将表t的元素逆向排列,Tablef,i,imin,imax,stepi,j,jmin,jmax,stepj 用于建立通项为f的表,其中f是i,j的函数,min,max,step规定了初值,终值,步长,min和step的默认值是1,3)某些建表函数 最重要的建表函数是Table,其调用格式如下:,以上参数设置用于建立一个2层表,实际 上表的层数是可以任意的.使用函数Table,还可以生成具有抽象元素的表.通项f本身也可以具有表的形式,注记:,函数Range用于建立一些特殊的表其调用格式如下:,Rangemin,max,step 按初值,终值,步长生 成一个表Rangen 生成前n个自然数的表,5.基本的符号运算,基本代数运算,微积分,线性代数,代数运算是一切符号运算的基础,本节介绍实现各种基本代数运算的Mathematica 函数,用于变换数学表达式,解方程和解不等式.其中最重要的是化简函数,在各种符号演算中都会用到.,1 化简计算结果,1)两个化简函数,Simplifyexpr 使用变换化简表达式FullSimplifyexpr 使用更广泛的变换化 简表达式,注:函数FullSimplify还可以化简特殊函数,2)带有条件的化简 化简函数允许带有条件,条件可以是等式或不等式,还可以使用下面的表达式指明数的取值范围,x domElementx,dom,其中dom只能取下列集合之一:Integers,Rationals(有理数),Reals,Complexes,Primes,Algebraics(代数),Booleans.,2常用的因式分解函数,1)因式分解 用于因式分解的函数是:,Factorexpr 用于和式的因式分解,也可 以分解分式的分子、分母(还可以先通分,再分解,2)合并同类项 合并同类项的函数是Collect,调用格式如下:,Collectexpr,x 将表达式expr中的x的同 次幂合并Collectexpr,x,y,将表达式expr按x,y,的同次幂合并.,3)表达式的展开 将表达式展开的函数有:,Expandexpr ExpandAllexpr,这两个函数都可用于乘积的展开,也可以展开分式.后者的展开更为彻底,前者展开分式时只展开分子,后者将分子、分母都进行展开.,4)分式的化简与展开 下列函数分别用于有理式的合并、化简与展开,Togetherexpr 用于通分,把所有的项 放在同一个分母上并化简Cancelexpr用于约去分子、分母的公 因式Apartexpr 将有理式分解为最简分式 的和,5)三角函数式的化简 还有三角函数专用的分解、展开、化简函数:,TrigExpandexpr 将三角函数式展开TrigFactorexpr 将三角函数式因式分解TrigReduceexpr 用倍角化简三角函数式TrigToExpexpr 将三角函数式转换成指 数形式ExpToTrigexpr 前一个函数的逆变换,3 多项式的运算 两个多项式的四则运算使用通常的+,-,*,/运算符,其中乘号可以用空格代替.,PolynomialQuotientp1,p2,x 求x的多项 式p1被p2除的商PolynomialRemainderp1,p2,x 求x的多 p1被p2除的余式PolynomialGCDp1,p2,求多个因式的 最大公因式PolynomialLCMp1,p2,求多个因式的 最小公倍式,4 解方程,1)解符号方程(组)在Mathematica中“=”用于给变量赋值,而方程中的等号使用符号“=”来表示.方程组用花括号括起来,各个方程之间用逗号分隔.所有未知量也用花括号括起来,未知量之间用逗号分隔.单个方程和未知量不必使用花括号.以下用eqns表示方程组,用vars表示未知量组,下列函数用于解符号方程(组):,Solveeqns,vars 对系数按常规约定求出 方程(组)的全部解.Reduceeqns,vars 讨论系数出现的各种 可能情况,分别求解.,2)求近似解 有很多方程是根本不能求出准确解的,前面介绍的一些函数也无能为力.下列函数专门用于求方程(组)的数值解.,NSolveeqns,vars 求代数方程(组)的全部数值解FindRooteqns,x,x0,y,y0,从(x0,y0,)出发找方程(组)的一个解,3)消去某些变量,Eliminateeqns,elims 从一组等式中消去变量(组)elims,5 解不等式 Mathematica没有解不等式的内部函数,但是它自带的外部函数有此功能,但必须将有此函数的程序文件调入后才能使用,文件位于Mathematica的标准扩展程序包集中.标准扩展程序包集是Mathematica的一个子目录StandardPackage,它的子目录我们称为程序包子集.,程序包子集按数学学科分类,如Algebra,Calculus等.每个程序包子集中有多个文件,文件扩展名为m.每个文件中有一个或多个外部函数.,调入方法是键入:程序包子集名文件名也可以调入整个程序包子集:程序包子集名,上例中In1首先调入Algebra程序包子集中的InequalitySolve.m文件,它位于子目录:C:Mathematica4.0AddOnsStan-dardPackagesAlgebra下,其中有函数:,InequalitySolve不等式(或等式)组,变量组 用于解不等式(或等式)组.,1 求极限,1)使用内部函数求极限 函数Limit可用于求一元函数的极限:,Limitf,x-x0 求函数f(x)当x-x0时 的极限.,注:Mathematicam没有区分 和,使用x-时的极限要小心.,微积分,2)调用外部函数求极限 Mathematica自带的外部程序中还有求极限的同名函数,增强了解题能力.文件位于Mathematica的标准扩展程序包集中,可以通过查看Help,找到相应文件.,2 求导数,1)求导数或偏导数 Mathematica的求导功能很强,求一元函数的导数与求多元函数的偏导数,都使用同样的函数.,Df,var 求函数f对自变量var的偏导数Df,x1,x2,求函数f对自变量x1,x2,的混合偏导数,Df,x1,n1,x2,n2,求函数f对自变量 x1,x2,的n1,n2,阶混合偏导数,注:Mathematica求导的优点在于能求抽象的复合函数的导数,2)求全微分和全导数 求全微分和全导数的函数是Dt,其调用格式如下:,Dtf 求f的全微分Dtf,var 求f对自变量var的全导数,其中 f的各元都是var的函数.SetAttributesc,Constant 声明c是常数,3 求不定积分,Integratef,x 用于求f(x)的一个原函数,也可以对某些抽象的函数求某些积分.,提示:用基本输入模板输入积分符号更方便,4 求定积分,求定积分多重积分的函数与求不定积分相同,只是多一些参数.,Integratef,x,a,b 用于求 Integratef,x,a,b,y,y1,y2 用于求,求定积分的数值解用NIntegrate,5 无穷级数与无穷乘积,1)求和与求积Sumf,i,imin,imax 求Sumf,i,imin,imax,j,jmin,jmax,求多重和Productf,i,imin,imax 求Productf,i,imin,imax,j,jmin,jmax,求多重积,2)将函数展为幂级数 将函数展为幂级数的函数调用格式如下Seriesf,x,x0,n 将f(x)在x0处展成幂级数直到n次项为止Seriesf,x,x0,n,y,y0,m 将f(x,y)先对y后对x展开,6 解常微分方程(组),Mathematica能求常微分方程(组)的准确解,能求解的类型大致覆盖了人工求解的范围,功能很强.但不如人灵活,输出的结果与教材上的答案可能在形式上不同.,1)解常微分方程(组)的函数,Dsolveeqn,yx,x 求方程eqn的通解y(x),其中自变量是xDsolveeqn,yx0=y0,yx,x 求满足条 件y(x0)=y0的特解y(x)Dsolveeqn1,eqn2,y1x,y2x,x 求方程组的通解Dsolveeqn1,y1x0=y10,y1x,x 求方程组的特解,1 矩阵的输入与输出 在Mathematica中向量和矩阵就是一个表.,表示一个向量 表示一个m行n列的 矩阵,其中每一个子表表示矩阵的一行,线性代数,1)直接输入矩阵 直接输入矩阵的方法有3种,如下所述:,按表的形式输入矩阵由模板输入矩阵.在基本输入模板中输入2阶方阵,按“Ctrl+,添加一列,Ctr+Enter添加一行.如果矩阵不大,此法较方便由菜单输入矩阵,2)以矩阵形式输出矩阵 不管用何种方式输入矩阵,矩阵总是按表的形式输出.这既违背常规,又难于阅读.Mathematica提供了以矩阵形式输出矩阵的函数:,MatrixFormlist 将表list按矩阵形式输出,注意:Mathematica不区分行向量与列向量.,3)用函数创建矩阵 可以通过函数建立一些有规律的矩阵,除了在讲表时已经介绍过的函数Table外,还有以下专用函数:,Arraya,m,n 创建一个m行,n列的矩阵 元素为ai,j.IdentityMatrixn 创建一个n阶单位矩阵DiagonalMatrixlist 创建一个对角线上为表list的元素的方阵.,4)提取矩阵元素 除了在表中介绍过的操作以外,还有三个矩阵专用的函数:,MAll,i 提取矩阵M的第i列元素组成一 个表TrM,List 提取矩阵M的主对角元素组成一 个表DimensionsM 求矩阵M的行数,列数.,2 矩阵运算,1)加法与数乘 除了两个矩阵相加外,还有一个数与矩阵相加,都使用加号.一个数与矩阵相加就是矩阵的每个元素都加上该数,一个数与矩阵相乘就是矩阵的每个元素都乘上该数,2)乘法 句号作为两个矩阵相乘或两个向量内积的运算符.另外:求两个向量的向量积的函数为Crossa,b 求,3)矩阵转置TransposeM 将矩阵M转置,4)求行列式DetA 求方阵A的行列式,5)求逆矩阵InverseA 求方阵A的逆矩阵(自动判别是否可逆),注意:不表示逆矩阵,6)特征值与特征向量 求方阵的特征值与对应的特征向量的函数是EigenvaluesA 求方阵A的全部特征值EigenvectorsA 求方阵A的一组线性无关 的特征向量EigensystemA 求全部特征值和对应的线 性无关的特征向量组,7)Jordan标准形 求方阵A的Jordan标准形和过渡矩阵的函数是JordanDecompositionA 输出一个表,表的第一个元素是过渡矩阵,表的第二 个元素是A的Jordan标准形.,3 解线性方程组 专门用于解线性方程组的函数有三个,RowReduceM 消元得到矩阵M的行最 简形矩阵NullSpaceM 求齐次线性方程组Mx=0的一个基础解系LinearSolveM,b 求线性方程组Mx=b的 一个特解,1)表达式的查询 操作符?用于某些内容的查询,用法如下,?变量名 显示一个变量的信息?ab*显示以字母ab开头的全部变量?Global*显示已经使用过的全部变量,操作符?还可以用于查询帮助信息,用法如下:,?函数名 显示函数的帮助信息?函数名 显示函数的更为详细的帮助信息?Ab*显示以字母Ab开头的所有函数,可以运用Windows的拷贝粘贴功能将其复制到另一个新打开的工作区窗口中,然后存盘(为*.nb型文件).此法既可以保存键入的表达式,又可以保存Mathematica输出的计算结果.Mathematica提供了保存变量的值的操作符,用法如下,2)表达式的保存,变量名“文件名”将变量的值保存到指定的文件中变量名“文件名”将变量的值添加到指定的文件中Save“文件名”,变量名1,变量名2,将变量的值添加到指定的文件中,查看文件使用的操作符如下:!文件名 在工作区内显示文件的内容,3)文件的调入 用户以*.nb型文件保存的内容,可以通 过File菜单的Open或Notebooks项查找调入.Mathematica将专门为调入的文件打开一个工作区窗口,显示出保存的内容,可以修改或再次执行其中的语句.,调入程序文件使用的操作符如下“文件名”将指定的文件调入运行,三.图 形,二维图形,三维图形,图形表达式的结构,1 一元函数的情形 在平面直角坐标系中绘制函数y=f(x)的图形的函数是Plot,其调用格式如下:,Plotfx,x,a,b,选项 绘制函数f(x)在区 间a,b范围内的图形Plotf1x,f2x,x,a,b,选项 同时绘 制多个函数的图形,例1:,例3:,2 可选参数 绘图函数的可选参数很多,一下介绍Plot的常用可选参数.可选参数分为两类:第一类参数能改变输出图形的外观,但不影响图形自身的质量;第二类参数则影响图形自身的质量.可选参数的格式为:可选项名-可选项值,当不使用可选参数时该参数去默认值.,1)第一类可选参数 第一类可选参数有以下几种:,(1)PlotRang 指定绘图的范围.其可选值是:,Automatic 由Mathematica自动选取范围 切除无穷值点和尖峰All 画出所有点min,max 给出y(三维为z)轴方向的取值 范围,分别给出x,y(三维加z)轴方向的取值范围,例4:,(2)AspectRatio 指定图形的高宽比.可选值是:默认值为0.618(即黄金分割),准确值是1/GoldenRatio,其中是一个Mathematica常数.如果取Automatic,则高宽比为1,还可以取任何正数.,例6:,(3)Axes 用于指定是否显示坐标轴.它有 三个值:,True(或Automatica)为默认值,表示画出 坐标轴False 表示不画出坐标轴True,False或False,True只画出一个轴,(4)AxesOrigin 用于指定两个坐标轴的交点 位置.它有两个选择:,Automatica 由Mathematica自己选择,但 可能不在(0,0)点(默认值)x,y 给出交点坐标,例7:,(5)AxesLabel 用于给坐标轴加上注记(说明 性字符串).它有三个值:,None 没有标记(默认值)“字符串”给y(三维为z)轴加上标记“字符串1”,“字符串2”分别给出x,y轴(三维加z)轴的注记,例8:,(6)Ticks 用于给坐标轴加上刻度或给坐标 轴上的点加标记.长用的选项值为:,Automatic 由Mathematica自动加上刻度(默认值)None 不加刻度 在横坐标的点 和纵坐标的点 处加 上刻度,x1,“字符串1”,x2,“字符串2”,y1,“字符串1”,y2,“字符串2”,在横坐标上的点 和纵坐标上 的点 处写上字符串.,例9:,(7)AxesStyle 用于设置坐标轴的颜色,线宽 等选项.它的值为:,选项1,选项2,对所有的轴设置相同 的选项x轴选项1,x轴选项2,y轴选项1,y轴选项2,分别对各轴设置不同的 选项,例 10:,(8)Frame 用于给图形加框.它的值为:,False 不加框(默认值)True 加框,例 11:,(9)GridLines 用于加网格线.它的值为:,None 不加网格线(默认值)Automatic 由Mathematica自动加上网格线 在横轴上的点 和纵轴上的点 处加 上网格线,例 12:,(10)Background 用于指定背景颜色.可以使 用多种颜色模式,常用选项是:,Automatic 实际颜色与Windows的窗口背景色一致,但利用Mathematica的直接打印功 能输出时是白色(默认值)GrayLevelk 其中k是0到1之间的数,给出 灰度大小,0为黑色,1为白色,RGBColorr,g,b 其中r,g,b是0到1之间的数,分别表示红,绿,蓝色的强度,1,1,1为白色,0,0,0为黑色,1,0,0为红色,例 13,(11)PlotLabel 用于在图形上方居中加注释。其值为:,None 没有注释(默认值)“字符串”将字符串里的内容作为注释,例 14,(12)DisplayFunction 指定任何显示图形 其值为:,$DisplayFunction 使用Mathematic的显示函数(默认值)Identity 只生成但不显示图形,2)第二类可选参数 第二类可选参数有以下几种:,PlotStyle 用于规定曲线的线形和颜色.常用值是:,Automatic 曲线是黑色实线(默认值)GrayLevelk 指定曲线的灰度RGBColorr,g,b 指定曲线的颜色,PointSized 其中d是点的直径与整个图形宽度之比(二维时默认值为0.008,三维时默认值为0.01)Thicknessr 其中r是线的宽度与整个图形宽度之比(二维时默认值为0.004,三维时默认值为0.001),Dashingr1,r2,交替使用数r1,r2,作为线段和空白的相对长度画虚线(其中r1,r2,是远远小于1的数,整个图形宽度为1),例 15 使用不同颜色和线宽绘制曲线,例 16 画虚线时参数的设置法,3 二维参数图 我们经常会遇到曲线方程由参数式给出的情形,绘制平面参数式曲线的函数是ParametricPlot,其调用格式如下:,ParametricPlotx(t),y(t),t,a,b 其中t的取值范围是区间a,b,ParametricPlotx1(t),y1(t),x2(t),y2(t),t,a,b 同时画出多条曲线,注:此函数可以添加与Plot一样的可选参数,例 17 绘制星形线,4 绘制点列 用一个表给出点列中各点的坐标,函数ListPlot用于绘制点列,其调用格式如下:,ListPloty1,y2,画出点列(1,y1),(2,y2),ListPlotx1,y1,x2,y2,画出点列(x1,y1),(x2,y2),此函数还有可选参数PlotJioned,用于将点用线段顺次连接起来,它的值为:,False 不连接(默认值)True 连接各点,例 18,5 等值线图和密度图 1)等值线图 绘制函数z=f(x,y)的等值线图使用函数:,ContourPlotf,x,xmin,xmax,y,ymin,ymax 其中f是二元函数的表达式,例 19,此函数有以下几个可选参数:,ContourShading用于决定是否使用灰度.其值为:,True 使用灰度(默认值)False 只画出等值线,没有灰度,(2)Contours 用于给出等值线的数目.其值为:,n 给出等值线的条数(默认值为10)z1,z2,画出对应函数值为z1,z2,的等值线,注:利用指定函数值可以画出隐函数F(x,y)=0 的图形.,例20,(3)ColorFunction 用于规定函数值大小的显示方法.其值为:,Automatic 用灰度表示函数值的大小(默认值)Hue 用一系列颜色表示函数值的大小,2)密度图 密度图也用灰度表示函数值的大小,越亮的地方函数值越大,这与等值线图类似.绘制密度图的函数是:,DensityPlotf,x,xmin,xmax,y,ymin,ymax 其中f是二元函数的表达式,例 21,此函数有两个可选参数:,(1)ColorFunction 意义同上,(2)Mesh 说明在曲面上是否画网格.其值为:,True 画网格(默认值)False 不画网格,6 外部绘制函数 Mathematica绘制二维图形的内部函数缺少一些功能,如绘制极坐标图形,直方图和向量场等.但是它有自带的绘图程序包.,例 22,极坐标系下做图,例 23,例 24,最后再给出一个绘制向量场的例子:,1 二元函数图形 1)绘制二元函数图形的函数 在空间直角坐标系中绘制二元函数z=f(x,y)所表示的曲面的函数是Plot3D,其调用格式如下:,Plot3Df,x,xmin,xmax,y,ymin,ymax 其中二元函数f的定义域是一个矩形区域Plot3Df,s,x,xmin,xmax,y,ymin,ymax 其中s是着色表达式,用于给曲面着色,例 1,例 2,2)可选参数 函数Plot3D有以下可选参数:,(1)Boxed 说明是否给图形加立体框.其值为:,True 加立体框(默认值)False 不加立体框,(3)Mesh 说明在曲面上是否画网格.其值为:,True 画网格(默认值)False 不画网格,(2)BoxRatios 给出3个方向上的长度比,默认值为1,1,0.4.,例 3,(4)HiddenSurface 说明是否隐藏曲面被 遮住的部分.其值为:,True 隐藏(默认值)False 不隐藏,True 在曲面上涂色(默认值)False 只有曲面网格线,曲面为白色,(5)Shading 说明是否在曲面上按函数值 大小涂灰色(或彩色).其值为:,(5)ColorFunction 决定曲面用灰度还是用 彩色涂色.,(6)FaceGrids 用于添加坐标网格线,其值为:,None 没有坐标网格线(默认值)All 由Mathematica自动在立体框的6个面上添加坐标网格线,face1,face2,指定6个面中的哪些面添加坐标网格线.其中face1等表示由三个数组成的表,例如0,0,-1表示底面,0,0,1表示顶面,三个数必定有两个是0,另一个为1或-1,(7)Lighting 说明是否打开光源.默认值为 True,当曲面上按函数值大小涂灰色时,曲面由于反光呈现彩色,如果曲面上按 函数值大小涂彩色,则光源不起作用.,(8)ViewPoint 用于设置观察点默认值为 1.3,-2.4,2,可以将观察点设置为任何 点,从不同角度观察曲面的形状.,(9)PlotPoints 用于规定作图时取的最少 点数.其值为,n 在x轴和y轴方向上各取n点(默认值15)nx,ny 在x轴和y轴方向上分别取nx,ny点,2 三维参数图形 1)三维参数式曲线 绘制三维参数式曲线的函数是:,ParametricPlot3Dx(t),y(t),z(t),t,a,b 绘制三维参数式曲线,例 4,同时绘制多条曲线可得到一些简易的三维图形,2)三维参数式曲面 函数Plot3D的最大缺陷在于曲面总是定义在矩形区域上,这不能满足实际需要,Mathma tica提供的画三维参数图形的功能,留给用户自由变换的余地,用途广泛.绘制三维参数式曲面与绘制三维参数式曲线使用同一个函数,只是参数有差异:,ParametricPlot3Dx(u,v),y(u,v),z(u,v),u,umin,umax,v,vmin,vmax 绘制参数式曲面,本节介绍了Mathematica的图形表达式的分类,结构和图形元素,保存,调入和重新显示图形的方法.,1 图形表达式的分类 在前面已经看到,一个绘图函数被执行后,除了显示图形外,总会显示:Outx=-Graphics-等字符串,作用是提示用户该图形的表达式已经生成.由于图形表达式很长且复杂,对于一般用户也无阅读必要,因此没有显示具体内容,只显示其类型名称.图形表达式像计算结果的表达式一样,可以观看,命名,引用,保存,实际上它比图形更重要.观看图形表达式的内容使用函数:,InputFormexpr 其中expr是Out的输出编号%x或表示图形的变量,Mathematica的图形表达式分成下面几类,其差别在于允许使用的图形元素和可选项不同:,Graphicslist 一般二维图形DensityGraphicslist 密度图ContourGraphicslist 等值线图SurfaceGraphicslist 曲面图Graphics3Dlist 一般三维图形GraphicsArraylist 由按矩阵形式排列 的多个图形组合成的图形,2 图形表达式的操作 1)重新显示图形的函数,Showg1,g2,options 可以将多个图形g1,g2,组合成一个图形显示出来.其中options表示可选项,还有将多个图形以矩阵的排列方式同时显示的方法,格式如下:,ShowGraphicsArraylist 将多个图形按行列排列同时显示.其中list是按矩阵形式给出的由图形表达式名字组成的表,2)保存图形表达式 保存图形表达式的方法与保存变量一样再将该文件调入后就可以用函数Show显示该图形.,2)保存图形 除了存储图形表达式外,还可以将图形本身用通用的图形文件格式保存,实现这一功能的函数是,Display“文件名”,图形,“图形格式”生成一个指定格式的图形文件,如果不 指定图形格式,则默认为Postscrip格式,其中常用的的图形文件格式为:,BMP*.bmp型文件 TIFF*.tif或*.tiff型文件 JPEG*.jpg或*.jpeg型文件GIF*.gif型文件,其中后两种格式生成经过压缩的图形,图形质量会有损失,但是生成的文件比前两种格式小得多,是经常使用的格式.,3 二维图形元素,图形元素由一系列“基本图形”和“基本图形指示”组成,其中“基本图形指示”可以不出现.二维图形表达式Graphics的“基本图形”是,Pointx,y 坐标为x,y的点Linex1,y1,x2,y2,顺次连接点(x1,y1),(x2,y2),的折线,Circlex,y,r 圆心坐标为x,y,半径为r 的圆Circle x,y,r,n1,n2 从角n1到角n2的圆弧Circlex,y,a,b 中心坐标为x,y,半轴为a,b的椭圆Circlex,y,a,b,n1,n2 椭圆弧,Rectanglexmin,ymin,xmax,ymax 按给定的左下角和右上角坐标,用指定的颜色填充成一个矩形(默认为黑色)Polygon x1,y1,x2,y2,以指定的顶点填充成一个多边形Diskx,y,r 圆心坐标为x,y,半径为r的填充圆Text“text”,x,y 以(x,y)为中心在图上标注字符串,注意:以上表达式不同于一般计算机语言中的绘图语句,不能单独使用直接得到图形,它们只能作为图形表达式的成员,使用函数Show才能绘制出图形.,“基本图形指示”用于指明“基本图形”的颜色,点的大小,线的宽度等,如下所示:,RGBColorr,g,b 指定颜色GrayLevelk 指定灰度 PointSized 点的直径与整个图形宽度之比Thicknessr 线的宽度与整个图形宽度之比Dashingr1,r2,画虚线,注:更全面的可在Help中键入Graphics查询,4 三维图形元素,三维图形表达式Graphics3D的“基本图形”是,Pointx,y,z 坐标为x,y,z的点Linex1,y1,z1,x2,y2,z2,顺次连接点(x1,y1,z1),(x2,y2,z2),的折线Cuboidxmin,ymin,zmin,xmax,ymax,zmax 立方体,Polygon x1,y1,z1,x2,y2,z2,以指定的顶点填充成一个多边