Mathematic在数学中的应用2_第1页
Mathematic在数学中的应用2_第2页
Mathematic在数学中的应用2_第3页
Mathematic在数学中的应用2_第4页
Mathematic在数学中的应用2_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Mathematica在数学中的应用

中国科学院研究生院

TheApplicationofMathematicainMath2Mathematica软件的使用(1)用Mathematica软件进行各种简单数学处理(2)用Mathematica软件进行作图(3)用Mathematica软件编写程序本章教学目的Mathematica中的四种括弧Mathematica一般用到了四种括弧,每种括弧的功能都是不同的,下面总结一下:1、圆括号():用于组合运算,在计算中表示优先计算关系2、方括弧[]:用在函数中,表示其中为函数的参数3、大括弧{}:用来表示集合4、双括号[[]]:用来表示索引初等代数1.1有理式的展开(常用命令)命令说明Expand[poly]展开多项式polyFactor[poly]对多项式poly作因式分解FactorTerms[poly]提取数字公因子Exponent[poly,x]多项式poly中x的最高次数Cofficient[poly,expr]多项式poly中项expr的系数Poly[[n]]或Part[poly,n]多项式poly的第n项(1)f=Expand[(x+y+3)^2](2)Factor[f](3)Exponent[f,x](4)Coefficient[f,x](5)Factor[(x^3+2x+1)/(x^3+x^2+x+1)](6)Apart[%](*将表达式分解为最简单分式*)1.2有理式运算的常用命令命令说明ExpandNumerator[expr]展开分子ExpandDenominator[expr]展开分母Expand[expr]展开分子,每项除以分母ExpandAll[expr]分子,分母完全展开Together[expr]通分Apart[expr]分解为部分分式之和Cancel[expr]约分命令说明PolynomialQuotient[p,q,x]x的多项式p与q相除的商式PolynomialRemainder[p,q,x]x的多项式p与q相除的余式PolynomialGCD[p1,p2,….]多项式p1,p2,….的最大公因式PolynomialLCM[p1,p2,….]多项式p1,p2,….的最小公倍数1.3多项式的代数运算(1)PolynomialQuotient[1+x^2,x+1,x](2)PolynomialGCD[x^2+2x+1,x^3+1,x^5+1]命令说明Solve[方程或方程组,{变量}]求方程(组)的精确解NSolve[方程或方程组,{变量}]求方程(组)的(全部)近似解FindRoot[方程,{变量,初值}]用Newton法求方程组的一个近似解1.4方程求解(1)Solve[a*x+b==0,x](2)Reduce[a*x+b==0,x](*推导方程组的解*)(3)FindRoot[Sin[x]==0,{x,3}]Mathematica对符号运算的限制用户在使用Mathematica对符号表达式进行处理时,也许会执行Expand[(x+1)^(100^100)]的命令。这个命令执行的结果,表达式将有100^100+1项。也许计算机可以很方便地执行这个计算任务,但到计算的后期,每升高(x+1)的幂指数时,计算的增加量是非常大的。当运算超出计算机容量的限制时,Mathematica的计算只能停下来。即使计算下去,花费时间也是相当客观(1):进行包含10000位数的算术运算(2):展开有1000项的多项式(3):用有几千项的三个以上的变量分解多项式(4):使用一个递归计算1000次以上(5):找出100*100矩阵的逆矩阵的计算(6):输出结果超过10页的计算用符号做标记在Mathematica中,可以指定符号为不同类型的目标作标记。这个标记就像数值的单位一样。比如:微积分

Mathematica可以完成几乎所有标准数学函数的积分,可以对有理多项式进行积分,只要分母的幂指数不要太高.(1)D[Sin[n*x],{x,3}](2)Dt[Sin[n*x],x](3)Integrate[Log[x],x]有些积分可能无法用确定的式子表示,至少不能用标准的数学函数表示。比如像,这样的积分根本不能用数学手册中定义的标准函数的形式求解。Mathematica对于不可积分的数学表达式将不作任何处理。线形代数计算方法、拟和、最优化计算Mathematica软件的作图给出一个一元函数及其作图区间,用Plot语句可以立刻作出函数在相应区间上的图形(1)Plot[Sin[x],{x,0,2Pi}](2)Plot[Sin[x],{x,0,2Pi},

AspectRatio->Automatic,

PlotStyle->{GrayLevel[0.1], Dashing[{0.02,0.01}], Thickness[0.01]},

AxesLabel->{“x”,“y”}]二维函数作图

修改坐标的原点为(3,0),并设定图形名称修改x轴的刻度,y轴的刻度仍然不变在绘图时,允许使用选项对绘制图形的细节提出各种要求和设置。如果不设置任何选项,则Mathematica软件作图时选项取默认值。选项默认值意义AspectRatio1/GoldRatio=0.618图形高度与宽度的比例。如果要图形按实际情况显示,设置的选项应为AutomaticAxesAutomatic是否画坐标轴以及设置坐标轴的中心位置.选项值为None时,不设置坐标轴AxesLabelNone设置坐标轴上的标记符号.用{“字符串1”,“字符串2”}的形式定义轴的横坐标和纵坐标标记PlotRangeAutomatic图形中坐标的范围选项默认值意义PlotPoints22采样函数的点数.对于函数值变化剧烈的表达式,应设定较大的点数PlotStyleAutomatic设置曲线的样式。取默认值时画出一条黑色、实的曲线。选项意义Graylevel[g]灰度比值,g取0到1之间的数,0为黑色,1为白色RGBColor[r,g,b]红、绿、蓝三色的强度,0到1之间的数Thickness线的宽度值为tPlotStyle的可选项目二维参数作图

使用Plot命令只能绘出一般的函数曲线,要绘制参数曲线,可以用ParametricPlot命令,其一般形式:

ParametricPlot[{x[t],y[t]},{t,tmin,tmax},选项](1)ParametricPlot[{Cos[t],Sin[t]},{t,0,2Pi}](2)ParametricPlot[{Cos[t],Sin[t]},{t,0,2Pi},

AspectRatio->Automatic]三维函数作图

作出二元函数f(x,y)的立体图形的命令是Plot3D,其格式为:Plot3D[f[x,y],{x,xmin,xmax},{y,ymin,ymax},选项](1)Plot3D[Sin[Sqrt[x^2+y^2]],{x,-5,5},{y,-5,5}]与Plot语句类似,Plot3D语句中也可以加入许多选项(2)Plot3D[Sin[Sqrt[x^2+y^2]],{x,-5,5},{y,-5,5}, Boxed->False,Axes->False,

PlotPoints->50,Mesh->False]三维函数作图

图形轴上加上标记

学习过画法几何或工程制图的都知道,制图时通常用三视图来表示一个物体的具体形状特性。我们在生活中也知道从不同观察点观察物体,其效果是很不一样的。在绘制立体图形时,在系统默认的情况下,观察点在(1.3,-2.4,2)处。这个参考点选择是具有一般性的,因此偶尔把图形的不同部分重在一起也不会发生视觉混乱。改变视点

带有阴影和网格的图形对于理解曲面的形状是很有好处的。在有些矢量图形的输出装置中,你可能得不到阴影,但是当有阴影时,输出装置可能要花很长时间来输出它。通常情况下,Mathematica为了使图形更加逼真而用明暗分布的形式给空间立体曲面着色。在这种情况下,Mathematica假定在图形的右上方有三种光源照在物体上。但有时这种方法会造成混乱,此时你可用Lighting->False来采取根据高度在表面上涂以不同灰度的阴影的方法。选项默认值意义AspectRatio1图形高度与宽度的比率AxesTrue是否画坐标轴AxesLabelNone设置坐标轴上的标记符号BoxedTrue是否显示外框MeshTrue是否在表面画网格PlotRangeAutomatic图形中坐标的范围PlotPoints15采样函数的点数ShadingTrue表面是阴影还是空白Plot3D语句的各种常用的选项三维参数作图

在Mathematica软件中三维参数作图有两种形式,一种是空间曲线参数作图,其命令为:ParametricPlot3D[{x[t],y[t],z[t]},{t,tmin,tmax},选项](1)ParametricPlot3D[{6Cos[t],6Sin[t],3*t}, {t,-8,8},AspectRatio->1]另外一种是空间曲面参数作图,其命令为: ParametricPlot3D[{x[u,v],y[u,v],z[u,v]}, {u,umin,umax},{v,vmin,vmax},选项](2)ParametricPlot3D[{Cos[u]*Cos[v], Sin[u]*Cos[v],Sin[v]},{u,0,2Pi}, {v,-Pi/2,Pi/2},Axes->False,Boxed->False](2)ParametricPlot3D[{{Cos[u]*Cos[v],Sin[u]*Cos[v],

Sin[v]},{2Cos[u]*Cos[v],2Sin[u]*Cos[v], 2Sin[v]}},{u,0,Pi},{v,-Pi/2,Pi/2}, Boxed->False,Axes->False]数据作图

在Mathematica软件也可以根据数据作出图形,其命令为:

ListPlot[数据,选项](1)p=Table[{n,Prime[n]},{n,1,20}];L istPlot[p](2)ListPlot[p,PlotStyle->AbsolutePointSize[4]](3)ListPlot[p,PlotJoined->True]图形的组合

上述的各种图形命令中,ParametricPlot,ParametricPlot3D,Plot三个语句不仅可以画出一个函数的图形,而且可以同时画出几个函数的图形。其一般形式为: 图形命令[{函数1,函数2,…},变量范围,选项](1)Plot[{Sin[x],x,x-x^3/6,x-x^3/6+x^5/120}, {x,-2Pi,2Pi}]

图形元素作图

如果要绘制一些最基本的图形,可以用Graphics语句(三维图形用Graphics3D)作出基本图形元素,再用Show语句显示图形二维图形元素集合意义Point[{x,y}]点{x,y}Line[{x1,y1},{x2,y2},…]连接{x1,y1},{x2,y2},…的折线段Rectangle[{x1,y1},{x2,y2}]以{x1,y1},{x2,y2}为对角线两顶点的填实矩阵Polygon[{x1,y1},{x2,y2},…]以{x1,y1},{x2,y2}为顶点的填实多边形Circle[x,y,r]圆心在{x,y},半径为r的圆Circle[{x,y},{rx,ry}]中心在{x,y},长短半轴分别为rx,ry的椭圆二维图形元素集合意义Circle[{x,y},r,{t1,t2}]从弧度t1到弧度t2的圆弧Disk[{x,y},r]圆心在{x,y},半径为r的填实圆Text[“expr”,{x,y}]在{x,y}处的文本”expr”(1)执行下列语句V1=Graphics[Circle[{0,0},{3.5,4}]];V2=Graphics[Line[{{-2,2.5},{-1,2.5}}]];V3=Graphics[Line[{{2,2.5},{1,2.5}}]];V4=Graphics[Circle[{-1.5,1.5},0.5]];V5=Graphics[Circle[{1.5,1.5},0.5]];V6=Graphics[Disk[{-1.65,1.5},0.15]];V7=Graphics[Disk[{1.35,1.5},0.15]];V8=Graphics[Polygon[{{-0.5,-1},{0.5,-1},{0,0}}]];V9=Graphics[Circle[{0,-2},{0.5,0.3}]];v10=Graphics[Text[“Hello”,{0,-5}]];Show[V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,

AspectRatio->Automatic]三维图形的元素的函数-略,感兴趣的图形查相关手册编程

分枝结构

在复杂的计算中经常需要根据表达式的情况(它是否满足一些条件)确定是否做某些处理,或在满足不同的条件时做不同的处理。Mathematica软件提供了一些描述条件分枝的结构,它们在常用的程序里,用于控制程序的执行过程。1:If语句

Mathematica软件中If语句有三种形式

形式一:If[test,expr]当test的值为True时,对expr求值,将它的值作为整个语句的值;当test的值为False时,则给出空值Null

形式二:If[test,expr1,expr2]

当test的值为True时,求expr1的值作为整个语句的值,当test的值为False时,求expr2的值作为整个语句的值。

形式三:If[test,expr1,expr2,expr3]当test的值为True时,求expr1的值作为整个语句的值,当test的值为False时,求expr2的值作为整个语句的值;当test求不出值为True与False时,求expr3的值作为整个语句的值 (1)abs[x_]=If[x>=0,x,-x](2)f[x_]:=If[x>5,3,2,1](3)f[6](4)f[5](5)f[a]2:Which语句

Which[test1,expr1,test2,expr2,…]

该语句依次求出每一个条件的值,当求出第一个值为True的条件时,求出对应表达式的值作为整个语句的值。(例)g[x_]:=Which[x>=8,8,x>=6,6,x>=4,4,True,0]

用True作为Which语句的最后一个条件,可以处理“其他”情况。在此处即为,当x<4时,g[x]取值为0

循环结构

高级程序设计语言都提供了描述重复执行的循环语句。在Mathematica软件中也提供了一些类似的循环控制结构。1、While[test,expr]在计算时,条件test先被求值。若求出值为True,则对表达式求值,然后再重复上述过程;一旦test的值不是True,整个循环结果计算结束。例如下面的程序可用来计算与100!k=1;s=0;p=1;While[k<=100,s=s+k;p=p*k;k++];Print[“s=”,s,“p=”,p]2、For[start,test,incr,body]在计算时,其初始表达式start首先求值,然后进入循环,依次计算条件test,步长表达式incr与循环体body,一旦test的值不是True,整个循环结构计算结束.s=0;p=1;For[k=1,k<=100,k++,s=s+k;p=p*k];Print[“s=”,s,“p=”,p]3、Do[expr,{i,imin,imax,di]在循环变量i依步长di从imin取到imax

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论