Mathematica软件介绍及其应用.pptx
1Mathematica的进一步说明它吸取了不同类型软件的一些优点:(1)具有BASIC的简单易学的交互式方法(2)具有MathCADMatlab那样强的数值计算能力(3)具有Maple的和SMP那样的符号计算能力(4)具有APL和LISP那样的人工智能列表处理能力(5)像C和PASCAL那样的结构化设计语言Mathematica的开发者StephenWolfram是Mathematica的创始人,并被公认为是当今科学计算的先驱。Wolfram1959年出生于伦敦。他曾在牛津大学和加州理工学院接受教育,15岁发表了第一篇科技论文,1979年20岁时在加州理工学院获得理论物理学博士学位。他从1973年开始使用计算机,1981年主持开发了第一个计算机代数系统SMP。第1页/共241页2本章内容1.Mathematica软件概述2.Mathematica软件的使用 3.数列极限 4.函数的最值与导数 5.定积分计算 7.级数8.线性方程组和矩阵的应用第2页/共241页30 引言 Mathematica是什么?Mathematica是什么?Mathematica是一位数学家,她能做一位物理系大学毕业生能做的几乎所有的数学题,从简单的代数运算直到解偏微分方程。Mathematica不能做什么?Mathematica没有脑袋,所以她不能思考问题,也不能主动解决问题。她只能按照人类的指令一步一步地去解决某一特定问题。Mathematica是研究人员和工程技术人员的好朋友和最佳助手之一。第3页/共241页4Mathematica的主要功能及特色符号计算 Mathematica以符号计算为主,能像人一样进行带字母的计算,得到的是准确的结果。符号运算功能可以分成4个部分。(1):初等数学各种数及初等函数式的计算和化简(2):微积分求极限、导数、不定积分和定积分、将函数展成幂级数,无穷级数求和及积分变化(3):线性代数计算行列式、矩阵各种计算,解线性方程组、特征值、特征向量等(4):解方程组(包含微分方程)第4页/共241页5输入相对简单第5页/共241页6Mathematica软件的基本命令在命令窗口中输入命令,如SinPi/2,然后同时按下Shift+Enter键即可执行相应的命令。在输入的命令前出现提示符“In1:=”,其中“In”,表示“输入”,数字“1”表示输入命令的序号;在运行结果之前会自动出现提示符“Out1=”,表示输出第6页/共241页71:算术运算Mathematica软件的算术运算是指加减乘除以及乘方、开方运算。例如:(1)3*(5-2)+4(6-3)/2(2)3(1/3)(3)1/3+2/5精确计算与近似计算:在Mathematica软件中,若输入的数据是精确的,计算结果保留精确数字。若计算近似值,可以采用下面的方法:(4)N3(1/3)函数Nx表示x的近似值第7页/共241页8比较如下的输入方式若采用浮点数输入,则计算结果为近似值(1)1./3+2/5(2)2100(3)2.100一个是精确计算2的100次方,一个是近似计算2的100次方第8页/共241页92:常数与函数Mathematica软件中提供了数学上通用的一些常数,下表中给出了其中一部分常数常数常数数学含义数学含义常数常数数学含义数学含义Pi圆周率圆周率Infinity正无穷大正无穷大E自然对数的自然对数的底底eInfinity负无穷大负无穷大I虚数单位虚数单位ComplexInfinity复平面上无复平面上无穷远点穷远点第9页/共241页10常数可以直接参与计算(1)2*E(2)NPi,30给出30位有效数字在函数中使用(1)SinPi/6(2)Sqrt3.3+1.5I(3)Log10,2.0第10页/共241页11常用函数-列举(不完整)第11页/共241页12(1)Round-3.5(*下取整*)(2)Random(3)RandomInteger,-1000,1000(*产生-1000到1000之间的一个随机整数*)注意:在Mathematica软件中,英文字母大小写严格区分,函数与命令的第一个字母必须大写。函数与命令后面的表达式要放在中括弧里第12页/共241页13赋值与函数定义Mathematica软件中可以直接给变量赋值,并进行运算(1)a=1(2)b=2;c=3Mathematica软件中的语句可以写在同一行里,中间用分号隔开,分号之前的命令不显示结果(3)d=a+b*c此外,还可以采用延迟赋值的方式延迟赋值并不显示结果,只有调用变量时,才进行计算并赋值。第13页/共241页14上侧输出结果是一样,全部为0.937314。下侧输出结果不一样,分别为0.440112和0.980106第14页/共241页15用户给某个变量(比如x)赋值,以后的计算中再遇到x,Mathematica将自动替换x为其值。给变量赋的值可以是数,也可以是表达式。但是用户如何消除一个变量的赋值呢?消除变量的值消除变量的值可见,使用表达式”x=.”可以消除变量的赋值第15页/共241页16(1):fx_=Sinx(*被定义的函数的自变量后需跟下划线“_”*)(2)?f(*此命令用来查看f的含义*)Mathematica软件还可以定义函数第16页/共241页171、获取帮助信息?的其他用途2、获取更多的帮助信息3、获取更多的帮助信息第17页/共241页18如果需要计算函数fx在某一点x=x0的值:(1)fPi/2Mathematica软件中的函数可以用递归的方法进行定义h0=1;hn_:=n*hn-1;h5在这里定义了h函数的初始值,以及一般的函数定义,需要计算h5的具体数值第18页/共241页19(1):x=2.0;ux_:=Sinx;vx_=Sinx(2):?u(3):?v可以看出,上例中函数ux被定义为Sinx,而vx被定义为常函数0.909297(=Sin2.0)变量与函数在定义后可以用Clear命令清除其内容(4):Clearf,g,x;?f在编写程序时,一般在每个程序段的开始将程序中所用的符号的内容都用Clear命令加以清除,以防出错.第19页/共241页20逻辑运算Mathematica软件也提供了逻辑运算功能。逻辑运算可用于程序中的条件控制。Mathematica软件中的逻辑运算符与C语言中的逻辑运算符基本一致1:关系运算(1)32x=y相等相等xy大于大于x!=y不相等不相等x=y大于等于大于等于Xy小于小于X=y小于等于小于等于第20页/共241页21相同的关系运算符可以用来重复运算(1)234=y!p否否p&q且且p|q或或2:逻辑运算(5.84.1)&!(3.2=2.0)第21页/共241页22集合运算Mathematica软件中的集合是形如a,b,c,.的结构。其中的元素有多种形式,可以是常数、变量、函数、方程图形等。在Mathematica软件中向量、矩阵都可以看作为集合。1,2,3,4,5(*向量*)1,2,1,3,1,4(*矩阵,是一个二层集合*)fx,gx,hx(*函数*)x-y=1,x+y=3(*该集合表示方程组*)第22页/共241页231集合定义直接定义:直接用大括号将相关元素放在一起就得到一个集合(1)t1=1,2,3,4,5,6,7(2)t2=Sinu,Cosu语句定义:可用Range与Table语句来定义集合Rangeimin,imax,di给出的是一个数的集合,第一项为imin,最后一项不超过imax,步长为di。(3)t3=Range1,30,3Tableexpr,i,imin,imax,di给出的是一般的集合,它由表达式expr在i依步长di从imin取到imax时得到的值构成(4)t4=Tablei2,i,2,21,2第23页/共241页24Tableexpr,i,imin,imax,di,j,jmin,jmax,dj给出的是与i,j有关的二层集合(类似地可定义多层集合)(4)t5=Tablexi+yj,i,1,2,j,1,2(5)t6=Tablek,k,3.2,10(*步长为1时可省略*)(6)t7=Tablek,k,3.2(*步长为1,初值为1时都可省略*)(7)t8=Table5,4(*若expr与i无关,只要写出元素的个数*)第24页/共241页252.集合的运算命令命令说明说明(list是一个给定的集合是一个给定的集合)Firstlist取取list的第一个元素的第一个元素Lastlist取取list的最后一个元素的最后一个元素Partlist,i(Partlist,-i)取取list的的(倒数倒数)第第i个元素个元素Takelist,n(Takelist,-n)取取list的前的前(后后)n个元素个元素Takelist,m,n取取list的第的第m到第到第n个元素个元素Droplist,m,n去掉去掉list的第的第m到第到第n个元素个元素(1)Firstt2(*取t2的第一个元素*)(2)Partt4,4第25页/共241页26(1)Taket3,5(2)Taket3,3,5(3)Dropt3,-2在Mathematica软件中可用表示前一个命令的结果,%表示前面倒数第二个命令的结果,%n表示第n个命令的结果第26页/共241页27数的类型和精度在Mathematica中,有四种类型的数据类型:类型类型说明说明Integer任意长度的整数任意长度的整数Rational有理数有理数Real实数,可以具有一定的精度实数,可以具有一定的精度Complex复数,复数,a+bI的形式的形式第27页/共241页28整数,不用解释有理数:可以看成两个整数的比实数可以用小数点来区分(在Mathematica中实数可以有任意精度的。Mathematica的一大特点就是符号计算功能强大,数值运算不限精度。)复数可以分成实部和虚部两个部分第28页/共241页29Mathematica可以使用Head函数区分数据类型第29页/共241页30Mathematica提供了一些判断数类型的函数:函数函数功能功能NumberQx测试测试x是否是一个数是否是一个数IntegerQX测试测试x是否为整数是否为整数EvenQx测试测试x是否为偶数是否为偶数OddQx测试测试x是否为奇数是否为奇数PrimeQx测试测试x是否为质数是否为质数Headx测试数的类型测试数的类型务必小心(1)EvenQ2(*判断2是否为偶数*)(2)OddQ3.0(*判断3.0是否为奇数*)第30页/共241页31Mathematica在不同类型数之间的转换:不同类型的数之间是可以相互转化的,涉及到数的类型转换的函数主要有:函数功能Nx,n把数x转化成为具有n为精度的实数Rationalizex把数x转化成为有理数Rationalizex,dx把数x转化成为有理数,但是允许有dx的公差这是一个和Pi很近似的分数最早由祖冲之发现第31页/共241页32Mathematica对数的进制的转换:IntegerDigitsn以集合的方式逐个列出整数n中的十进制数位IntegerDigitsn,b 以集合的方式逐个列出整数n中的b进制数位RealDigitsx以集合方式列出x中十进制数位和小数点左边的位数RealDigitsx,b以集合方式列出x中b进制数位和小数点左边的位数FromDigitslist把集合中列出的数字按照十进制转化成为普通的数FromDigitslist,b把集合中列出的数字按照b进制转化成为普通的数BaseFormx,b把数x转化为b进制数显示出来第32页/共241页33第33页/共241页34Mathematica的区间计算:Intervalmin,max定义一个从数min到max的区间IntervalUnioninterval1,interval2求得区间interval1,interval2等的并集IntervalIntersectioninterval1,interval2,求得区间interval1,interval2等的交集第34页/共241页35Mathematica的区间计算:第35页/共241页36输入与输出1:输入在Mathematica软件中,符号、变量的值及命令等除了在程序中直接输入外,还可以在程序运行时从键盘输入:(1)a=Input;Input;Input“yz”;Input“mn”;a+b+c+d+e运行该命令后,将会出现四个对话框,分别对应四个Input命令。出现第一个对话框表示执行第一个Input命令,输入1第二个对话框输入b=3第三个对话框带“yz”提示信息;输入“c=4;d=5”最后一个对话框带“mn”提示信息;输入“e=12”第36页/共241页371:输入(续)我们可以从其他的文件中读取信息。比如我们读取prog1.txt中的数据1,0,0,0,1,0,0,0,1执行命令:A=和(1)rt_:=t2;rt“c:1.txt”(2)!c:1.txt(*查看c:1.txt文件里的内容*)(3)fx_:=Sinx;fx“c:1.txt”(4)!c:1.txt(*查看c:1.txt文件里的内容*)(5)a=12;b=3;c=a+b;c“c:1.txt”(6)!c:1.txt(*查看c:1.txt文件里的内容*)(7)gu_:=Logu;hv_:=v;Save“c:1.txt”,g,h(8)!c:1.txt(*查看c:1.txt文件里的内容*)Save存入的是变量所代表的内容第39页/共241页40Mathematica的查找和操作文件:Mathematica假定计算机系统中的文件都放在相应的文件夹中,在任何时候都一个工作目录。你只需要打入文件名字,就可以从目录中查询到文件Directory给出现行的工作目录SetDirectory设定现行工作目录FileNames列出现行工作目录中的文件FileNames“form”列出名称符合某种形式的文件CopyFile“file1”,”file2”File1拷贝到file2DeleteFile“file”删除文件第40页/共241页41Mathematica要求更改的目录必须是存在的,否则就是出现上述的错误第41页/共241页42产生CFortran语言的表达式:Mathematica可以将公式转化成为上述程序可以应用的表达式Cform转化成C语言可以调用的表达式FortranForm转化成为Fortran语言可以调用的表达式第42页/共241页43Mathematica中的四种括弧中的四种括弧Mathematica一般用到了四种括弧,每种括弧的功能都是不同的,下面总结一下:1、圆括号():用于组合运算,在计算中表示优先计算关系2、方括弧:用在函数中,表示其中为函数的参数3、大括弧:用来表示集合4、双括号:用来表示索引第43页/共241页44初 等 代 数1.1有理式的展开(常用命令)命令命令说明说明Expandpoly展开多项式展开多项式polyFactorpoly对多项式对多项式poly作因式分解作因式分解FactorTermspoly提取数字公因子提取数字公因子Exponentpoly,x多项式多项式poly中中x的最高次的最高次数数Cofficientpoly,expr多项式多项式poly中项中项expr的系的系数数Polyn或或Partpoly,n多项式多项式poly的第的第n项项第44页/共241页45第45页/共241页46(1)f=Expand(x+y+3)2(2)Factorf(3)Exponentf,x(4)Coefficientf,x(5)Factor(x3+2x+1)/(x3+x2+x+1)(6)Apart%(*将表达式分解为最简单分式*)第46页/共241页471.2有理式运算的常用命令命令命令说明说明ExpandNumeratorexpr展开分子展开分子ExpandDenominatorexpr展开分母展开分母Expandexpr展开分子展开分子,每项除以分母每项除以分母ExpandAllexpr分子分子,分母完全展开分母完全展开Togetherexpr通分通分Apartexpr分解为部分分式之和分解为部分分式之和Cancelexpr约分约分第47页/共241页48命令命令说明说明PolynomialQuotientp,q,xx的多项式的多项式p与与q相除的商相除的商式式PolynomialRemainderp,q,xx的多项式的多项式p与与q相除的余相除的余式式PolynomialGCDp1,p2,.多项式多项式p1,p2,.的最大公的最大公因式因式PolynomialLCMp1,p2,.多项式多项式p1,p2,.的最小公的最小公倍数倍数1.3多项式的代数运算第48页/共241页49(1)PolynomialQuotient1+x2,x+1,x(2)PolynomialGCDx2+2x+1,x3+1,x5+1命令命令说明说明Solve方程或方程组方程或方程组,变变量量求方程求方程(组组)的的精确解精确解NSolve方程或方程组方程或方程组,变变量量求方程求方程(组组)的的(全部全部)近似解近似解FindRoot方程方程,变量变量,初初值值用用Newton法法求方程组的求方程组的一个近似解一个近似解1.4方程求解第49页/共241页50(1)Solvea*x+b=0,x(2)Reducea*x+b=0,x(*推导方程组的解*)(3)FindRootSinx=0,x,3第50页/共241页51Mathematica对符号运算的限制对符号运算的限制用户在使用Mathematica对符号表达式进行处理时,也许会执行Expand(x+1)(100100)的命令。这个命令执行的结果,表达式将有100100+1项。也许计算机可以很方便地执行这个计算任务,但到计算的后期,每升高(x+1)的幂指数时,计算的增加量是非常大的。当运算超出计算机容量的限制时,Mathematica的计算只能停下来。即使计算下去,花费时间也是相当客观(1):进行包含10000位数的算术运算(2):展开有1000项的多项式(3):用有几千项的三个以上的变量分解多项式(4):使用一个递归计算1000次以上(5):找出100100矩阵的逆矩阵的计算(6):输出结果超过10页的计算第51页/共241页52用符号做标记用符号做标记在Mathematica中,可以指定符号为不同类型的目标作标记。这个标记就像数值的单位一样。比如:第52页/共241页53微积分Mathematica可以完成几乎所有标准数学函数的积分,可以对有理多项式进行积分,只要分母的幂指数不要太高.第53页/共241页54第54页/共241页55(1)DSinn*x,x,3(2)DtSinn*x,x(3)IntegrateLogx,x第55页/共241页56有些积分可能无法用确定的式子表示,至少不能用标准的数学函数表示。比如像,这样的积分根本不能用数学手册中定义的标准函数的形式求解。Mathematica对于不可积分的数学表达式将不作任何处理。第56页/共241页57线形代数计算方法、拟和、最优化计算第57页/共241页58Mathematica软件的作图给出一个一元函数及其作图区间,用Plot语句可以立刻作出函数在相应区间上的图形(1)PlotSinx,x,0,2Pi(2)PlotSinx,x,0,2Pi,AspectRatio-Automatic,PlotStyle-GrayLevel0.1,Dashing0.02,0.01,Thickness0.01,AxesLabel-“x”,“y”二维二维函数函数作图作图第58页/共241页59第59页/共241页60第60页/共241页61第61页/共241页62第62页/共241页63修改坐标的原点为(3,0),并设定图形名称第63页/共241页64修改x轴的刻度,y轴的刻度仍然不变第64页/共241页65在绘图时,允许使用选项对绘制图形的细节提出各种要求和设置。如果不设置任何选项,则Mathematica软件作图时选项取默认值。选项选项默认值默认值意义意义AspectRatio1/GoldRatio=0.618图形高度与宽度的比例。如图形高度与宽度的比例。如果要图形按实际情况显示,果要图形按实际情况显示,设置的选项应为设置的选项应为AutomaticAxesAutomatic是否画坐标轴以及设置坐标是否画坐标轴以及设置坐标轴的中心位置轴的中心位置.选项值为选项值为None时时,不设置坐标轴不设置坐标轴AxesLabelNone设置坐标轴上的标记符号设置坐标轴上的标记符号.用用“字符串字符串1”,“字符串字符串2”的形的形式定义轴的横坐标和纵坐标式定义轴的横坐标和纵坐标标记标记PlotRangeAutomatic图形中坐标的范围图形中坐标的范围第65页/共241页66选项选项默认值默认值意义意义PlotPoints22采样函数的点数采样函数的点数.对于对于函数值函数值变化剧烈变化剧烈的表达式的表达式,应设定较应设定较大的点数大的点数PlotStyleAutomatic设置曲线的样式。取默认值设置曲线的样式。取默认值时画出一条黑色、实的曲线。时画出一条黑色、实的曲线。选项选项意义意义Graylevelg灰度比值,灰度比值,g取取0到到1之间的数之间的数,0为黑色,为黑色,1为白色为白色RGBColorr,g,b红、绿、蓝三色的强度,红、绿、蓝三色的强度,0到到1之间的之间的数数Thickness线的宽度值为线的宽度值为tPlotStyle的可选项目第66页/共241页67二维二维参数参数作图作图使用Plot命令只能绘出一般的函数曲线,要绘制参数曲线,可以用ParametricPlot命令,其一般形式:ParametricPlotxt,yt,t,tmin,tmax,选项(1)ParametricPlotCost,Sint,t,0,2Pi(2)ParametricPlotCost,Sint,t,0,2Pi,AspectRatio-Automatic第67页/共241页68第68页/共241页69三维函数作图三维函数作图作出二元函数f(x,y)的立体图形的命令是Plot3D,其格式为:Plot3Dfx,y,x,xmin,xmax,y,ymin,ymax,选项(1)Plot3DSinSqrtx2+y2,x,-5,5,y,-5,5第69页/共241页70与Plot语句类似,Plot3D语句中也可以加入许多选项(2)Plot3DSinSqrtx2+y2,x,-5,5,y,-5,5,Boxed-False,Axes-False,PlotPoints-50,Mesh-False第70页/共241页71三维函数作图三维函数作图第71页/共241页72图形轴上加上标记图形轴上加上标记第72页/共241页73学习过画法几何或工程制图的都知道,制图时通常用三视图来表示一个物体的具体形状特性。我们在生活中也知道从不同观察点观察物体,其效果是很不一样的。在绘制立体图形时,在系统默认的情况下,观察点在(1.3,-2.4,2)处。这个参考点选择是具有一般性的,因此偶尔把图形的不同部分重在一起也不会发生视觉混乱。改变视点改变视点第73页/共241页74带有阴影和网格的图形对于理解曲面的形状是很有好处的。在有些矢量图形的输出装置中,你可能得不到阴影,但是当有阴影时,输出装置可能要花很长时间来输出它。通常情况下,Mathematica为了使图形更加逼真而用明暗分布的形式给空间立体曲面着色。在这种情况下,Mathematica假定在图形的右上方有三种光源照在物体上。但有时这种方法会造成混乱,此时你可用Lighting-False来采取根据高度在表面上涂以不同灰度的阴影的方法。第74页/共241页75第75页/共241页76选项选项默认值默认值意义意义AspectRatio1图形高度与宽度的比率图形高度与宽度的比率AxesTrue是否画坐标轴是否画坐标轴AxesLabelNone设置坐标轴上的标记符号设置坐标轴上的标记符号BoxedTrue是否显示外框是否显示外框MeshTrue是否在表面画网格是否在表面画网格PlotRangeAutomatic图形中坐标的范围图形中坐标的范围PlotPoints15采样函数的点数采样函数的点数ShadingTrue表面是阴影还是空白表面是阴影还是空白Plot3D语句的各种常用的选项第76页/共241页77三维三维参数参数作图作图在Mathematica软件中三维参数作图有两种形式,一种是空间曲线参数作图,其命令为:ParametricPlot3Dxt,yt,zt,t,tmin,tmax,选项(1)ParametricPlot3D6Cost,6Sint,3*t,t,-8,8,AspectRatio-1第77页/共241页78另外一种是空间曲面参数作图,其命令为:ParametricPlot3Dxu,v,yu,v,zu,v,u,umin,umax,v,vmin,vmax,选项(2)ParametricPlot3DCosu*Cosv,Sinu*Cosv,Sinv,u,0,2Pi,v,-Pi/2,Pi/2,Axes-False,Boxed-False第78页/共241页79(2)ParametricPlot3DCosu*Cosv,Sinu*Cosv,Sinv,2Cosu*Cosv,2Sinu*Cosv,2Sinv,u,0,Pi,v,-Pi/2,Pi/2,Boxed-False,Axes-False第79页/共241页80第80页/共241页81数据作图数据作图在Mathematica软件也可以根据数据作出图形,其命令为:ListPlot数据,选项(1)p=Tablen,Primen,n,1,20;ListPlotp第81页/共241页82(2)ListPlotp,PlotStyle-AbsolutePointSize4(3)ListPlotp,PlotJoined-True第82页/共241页83图形的组合图形的组合上述的各种图形命令中,ParametricPlot,ParametricPlot3D,Plot三个语句不仅可以画出一个函数的图形,而且可以同时画出几个函数的图形。其一般形式为:图形命令函数1,函数2,,变量范围,选项(1)PlotSinx,x,x-x3/6,x-x3/6+x5/120,x,-2Pi,2Pi第83页/共241页84第84页/共241页85图形元素作图图形元素作图如果要绘制一些最基本的图形,可以用Graphics语句(三维图形用Graphics3D)作出基本图形元素,再用Show语句显示图形二维图形元素二维图形元素集合意义集合意义Pointx,y点点x,yLinex1,y1,x2,y2,连接连接x1,y1,x2,y2,的折线段的折线段Rectanglex1,y1,x2,y2以以x1,y1,x2,y2为对角线两顶点的为对角线两顶点的填实矩阵填实矩阵Polygonx1,y1,x2,y2,以以x1,y1,x2,y2为顶点的填实多边为顶点的填实多边形形Circlex,y,r圆心在圆心在x,y,半径为半径为r的圆的圆Circlex,y,rx,ry中心在中心在x,y,长短半轴分别为长短半轴分别为rx,ry的椭的椭圆圆第85页/共241页86二维图形元素二维图形元素集合意义集合意义Circlex,y,r,t1,t2从弧度从弧度t1到弧度到弧度t2的圆弧的圆弧Diskx,y,r圆心在圆心在x,y,半径为,半径为r的填实圆的填实圆Text“expr”,x,y在在x,y处的文本处的文本”expr”第86页/共241页87(1)执行下列语句V1=GraphicsCircle0,0,3.5,4;V2=GraphicsLine-2,2.5,-1,2.5;V3=GraphicsLine2,2.5,1,2.5;V4=GraphicsCircle-1.5,1.5,0.5;V5=GraphicsCircle1.5,1.5,0.5;V6=GraphicsDisk-1.65,1.5,0.15;V7=GraphicsDisk1.35,1.5,0.15;V8=GraphicsPolygon-0.5,-1,0.5,-1,0,0;V9=GraphicsCircle0,-2,0.5,0.3;V10=GraphicsText“Hello”,0,-5;ShowV1,V2,V3,V4,V5,V6,V7,V8,V9,V10,AspectRatio-Automatic第87页/共241页88三维图形的元素的函数略,感兴趣的图形查相关手册第88页/共241页89第89页/共241页90第90页/共241页91 编 程分枝结构分枝结构在复杂的计算中经常需要根据表达式的情况(它是否满足一些条件)确定是否做某些处理,或在满足不同的条件时做不同的处理。Mathematica软件提供了一些描述条件分枝的结构,它们在常用的程序里,用于控制程序的执行过程。第91页/共241页921:If语句Mathematica软件中If语句有三种形式形式一:Iftest,expr当test的值为True时,对expr求值,将它的值作为整个语句的值;当test的值为False时,则给出空值Null形式二:Iftest,expr1,expr2当test的值为True时,求expr1的值作为整个语句的值,当test的值为False时,求expr2的值作为整个语句的值。形式三:Iftest,expr1,expr2,expr3当test的值为True时,求expr1的值作为整个语句的值,当test的值为False时,求expr2的值作为整个语句的值;当test求不出值为True与False时,求expr3的值作为整个语句的值第92页/共241页93(1)absx_=Ifx=0,x,-x(2)fx_:=Ifx5,3,2,1(3)f6(4)f5(5)fa第93页/共241页942:Which语句Whichtest1,expr1,test2,expr2,该语句依次求出每一个条件的值,当求出第一个值为True的条件时,求出对应表达式的值作为整个语句的值。(例)gx_:=Whichx=8,8,x=6,6,x=4,4,True,0用True作为Which语句的最后一个条件,可以处理“其他”情况。在此处即为,当x4时,gx取值为0第94页/共241页95循环结构循环结构高级程序设计语言都提供了描述重复执行的循环语句。在Mathematica软件中也提供了一些类似的循环控制结构。1、Whiletest,expr在计算时,条件test先被求值。若求出值为True,则对表达式求值,然后再重复上述过程;一旦test的值不是True,整个循环结果计算结束。第95页/共241页96例如下面的程序可用来计算与100!k=1;s=0;p=1;Whilek=100,s=s+k;p=p*k;k+;Print“s=”,s,“p=”,p第96页/共241页972、Forstart,test,incr,body在计算时,其初始表达式start首先求值,然后进入循环,依次计算条件test,步长表达式incr与循环体body,一旦test的值不是True,整个循环结构计算结束.s=0;p=1;Fork=1,k=100,k+,s=s+k;p=p*k;Print“s=”,s,“p=”,p第97页/共241页983、Doexpr,i,imin,imax,di在循环变量i依步长di从imin取到imax时,重复计算循环表达式expr,上述程序可用Do循环的形式写为:s=0;p=1;Dos=s+k;p=p*k,k1,100;Print“s=”,s,“p=”,p第98页/共241页99过程在高级程序设计语言中提供了子程序功能,用来将某些语句串在一起以实现某种目的。Mathematica软件中的过程也有类似的功能。在Mathematica软件中主要有两种过程1.expr1;expr2;exprn这一过程的输出值为最后一个表达式exprn的值。第99页/共241页100下面的程序用来检验一个正整数是否可以写成两个素数的和。如果正整数x不能写成两个素数的和,则px是一个空集;若正整数x能写成两个素数的和,则px给出两个素数构成的集合,这两个素数的和为x。px_:=m=2;n=Floorx/2;s=;Whiles=&m=n,IfPrimeQm&PrimeQx-m,s=m,x-m;m+;s第100页/共241页101计算结果第101页/共241页1022、Modulex=x0,y,expr1;expr2;exprn在Module过程中,大括弧中的语句用来说明局部变量,并可以赋初值。其输出结果也是表达式exprn的值。有时,我们为了输出多个结果,可将Returnexprk1,exprk2,置于Module过程的最后一个语句px_:=Modulem=2;n=Floorx/2;s=,Whiles=&m=10-m,n+;an=Nn(1/n);Print“k=”,k,“n=”,n,“an=”,an,“AbsA-an=”,AbsA-an第106页/共241页107极限计算左右极限的含义:左极限就是当x从左边逼近某个数时,y逼近的某个数右极限则刚好相反Limitfx,x-a,Direction-1(左极限)Limitfx,x-a,Direction-1(右极限)第107页/共241页108第108页/共241页109Limitexpr,x-,Direction-1computesthelimitasxapproachesfromsmallervalues.Limitexpr,x-,Direction-1computesthelimitasxapproachesfromlargervalues.第109页/共241页110第110页/共241页111第111页/共241页112在试图求无穷振荡点的极限时,Limit语句得到的是函数振荡时可能的取值范围LimitSin1/x,x-0第112页/共241页113极限的应用1问题1在市场经济条件中存在这样的循环问题:若去年的猪肉生产量供过于求(供不应求),猪肉的价格就会下降(上升);价格降低会使明年养猪者减少,使今年猪肉生产量供不应求,于是价格上扬;价格上扬又使明年猪肉产量增加,造成供过于求。据统计,某城市的猪肉产销情况如下所示:年份年份猪肉产量猪肉产量(万吨万吨)肉价肉价(元元/公斤公斤)1997406.001998358.00199938假设:猪肉产量与价格之间的线性关系,问若干年后猪肉产销是否趋于稳定?求出稳定的生产量和价格第113页/共241页114问题分析第114页/共241页115第115页/共241页116Clearf,g,a,b,c,d,x,y;x1997=40;y1997=6;x1998=35;y1998=8;x1999=39;z1=NSolvey1997=x1997*a+b,y1998=x1998*a+b,a,b;z2=NSolvex1998=y1997*c+d,x1999=y1998*c+d,c,d;t1=a,b/.z1;t2=c,d/.z2;a=t11,1;b=t11,2;c=t21,1;d=t21,2;fx_:=a*x+b;gy_:=c*y+d;x0=x1999;Forn=1999,n函数第193页/共241页194第194页/共241页195第195页/共241页196由最小二乘法确定的拟合多项式第196页/共241页197第197页/共241页198第198页/共241页199第199页/共241页200第200页/共241页201Fourier级数第201页/共241页202第202页/共241页203第203页/共241页2049线性方程组和矩阵的应用熟悉向量、矩阵的概念以及基本运算熟悉向量、矩阵的概念以及基本运算.熟悉熟悉MathematiaMathematia数学软件做向量运算、矩阵基本运算数学软件做向量运算、矩阵基本运算和计算行列式的命令。和计算行列式的命令。第204页/共241