mathematica分解三角函数公式 Cos[1.2+g]

> MathType在Mathematica中使用的一些小技巧
MathType在Mathematica中使用的一些小技巧
发布时间:
很多复杂的数学计算中在利用MathType编辑公式后还需要进行计算,比如Mathematica。而为了能够在Mathematica中进行计算,时也需要一定的技巧。
Mathematica中对数学表达式使用了大量的语法转换,这样可以对计算过程进行适当的描述。但量,MathType是一个公式编辑器,关心的主要是给作者提供一种简单的方法来创建合适风格的公式和排版符号,对创建的符号不强加任何限制条件。因此,当把一个MathType公式粘贴到Mathematica中时,为了确保它能够转换成Mathematica中的格式,必须对公式进行一定的修正。由于这这方面的问题出现频率较高,有两点需要强调:
1.特殊符号。Mathematica中使用特殊符号来消除表达式中的歧义。特别地,Mathematica使用一种特殊的微分ID符号来替代微分符号d(dx),指数E符号来描述欧拉常数,假设的I来描述-1的平方根。由于Mathematica依赖于这些符号,在编辑公式时也必须使用这些符号。通常情况下,这样的操作需要在将公式粘贴进Mathematica后进行,但是必须在Mathematica进行计算之前。
如果你的电脑系统中安装有Mathematica字体的话,这些符号在MathType中可以直接使用。使用MathType编辑窗口中的“编辑”——“插入符号”命令就可以打开“插入符号”对话框。在“查看”的下拉菜单的底部选择“描述”,然后选择点击“新的搜索”按钮。搜索“differential”(或者“exponential”、“imaginary”等类似的)。Mathematica的相关符号就会出现在搜索结果中,选择合适的符号插入到你的公式中。
在MathType中添加Mathematica关联符号
2.显示分组。在许多Mathematica表达式中,最佳分组条件是不会显示的,而是依赖于读者对符号定义的理解。比如计算,没有明确指定的分组是常见的错误源头。在没有明确指定的
表达式中,Mathematica和MathType都采用运算法则来推断合适的分组。但是,在下面的情况中,我们建议使用括号来进行分组显示:
对函数参数添加括号。这一点在三角函数中尤其重要,打印时三角函数的括号经常被忽略了,例如使用sin(2x)而不是sin2x。
对被积函数添加括号,例如:
对被积函数添加括号
注意:括号不能包括微分符号。
以上内容向大家介绍了MathType在Mathematica中使用的一些小技巧,这是因为MathType只能编辑公式,Mathematica不仅可以编辑还可以计算。MathType兼容很多不同的程序,根据不同的程序,MathType使用技巧也有很多,如果需要了解更多MathType兼容程序的使用技巧,可以参考
读者也访问这里:
相关问题:
联系电话 :400
服务邮箱 :
客服热线 400-Mathematica
Mathematica入门教程之Mathematica的基本语法特征
&&如果你是第一次使用Mathemaca,那么以下几点请你一定牢牢记住:
Mathemaca中大写小写是有区别的,如Name、name、NAME等是不同的变量名或函数名。
系统所提供的功能大部分以系统函数的形式给出,内部函数一般写全称,而且一定是以大写英文字母开头,如Sin[x],Conjugate[z]等。
乘法即可以用*,又可以用空格表示,如2 3=2*3=6 ,x y,2 Sin[x]等;乘幂可以用&^&表示,如x^0.5,Tan[x]^y。
自定义的变量可以取几乎任意的名称,长度不限,但不可以数字开头。
当你赋予变量任何一个值,除非你明显地改变该值或使用Clear[变量名]或&变量名=.&取消该值为止,它将始终保持原值不变。
一定要注意四种括号的用法:()圆括号表示项的结合顺序,如(x+(y^x+1/(2x)));[]方括号表示函数,如Log[x],BesselJ[x,1];{}大括号表示一个&表&(一组数字、任意表达式、函数等的集合),如{2x,Sin[12 Pi],{1+A,y*x}};[[]]双方括号表示&表&或&表达式&的下标,如a[[2,3]]、{1,2,3}[[1]]=1。
Mathemaca的语句书写十分方便,一个语句可以分为多行写,同一行可以写多个语句(但要以分号间隔)。当语句以分号结束时,语句计算后不做输出(输出语句除外),否则将输出计算的结果。
一.数的表示及计算                                                      
1.在Mathemaca中你不必考虑数的精确度,因为除非你指定输出精度,Mathematica总会以绝对精确的形式输出结果。例如:你输入
In[1]:=378/123,系统会输出Out[1]:=126/41,如果想得到近似解,则应输入
In[2]:=N[378/123,5],即求其5位有效数字的数值解,系统会输出Out[2]:=3.073
2,另外Mathematica还可以根据你前面使用的数字的精度自动地设定精度。
  Mathematica与众不同之处还在于它可以处理任意大、任意小及任意位精度的数值,如100^7000,2^(-2000)等数值可以很快地求出,但在其他语言或系统中这是不可想象的,你不妨试一试N[Pi,1000]。
Mathematica还定义了一些系统常数,如上面提到的Pi(圆周率的精确值),还有E(自然对数的底数)、I(复数单位),Degree(角度一度,Pi/180),Infinity(无穷大)等,不要小看这些简单的符号,它们包含的信息远远大于我们所熟知的它们的近似值,它们的精度也是无限的。
二.&表&及其用法
&表&是Mathematica中一个相当有用的数据类型,它即可以作为数组,又可以作为矩阵;除此以外,你可以把任意一组表达式用一个或一组{}括起来,进行运算、存储。可以说表是任意对象的一个集合。它可以动态地分配内存,可以方便地进行插入、删除、排序、翻转等等几乎所有可以想象到的操作。
  如果你建立了一个表,你可以通过下表操作符[[]](双方括号)来访问它的每一个元素,如我们定义table={2,Pi,Sin[x],{aaa,A*I}}为一个表,那么table[[1]]就为2,table[[2]]就是Pi,而table[[3,1]]表示嵌套在table中的子表{aaa,A*I}的第一个元素即aaa,table[[3,2]]表示{aaa,A*I}第二个元素即A*I。总之,表每一层次上并列的部分用逗号分割,表可以无穷嵌套。
你可以通过Append[表,表达式]或Prepend[表,表达式]把表达式添加到表的最前面或最后面,如Append[{1,2,3},a]表示{1,2,3,a}。你还可以通过Union[表1,表2,......],Jion[表1,表2,......]来把几个表合并为一个表,二者不同在于Union在合并时删除了各表中重复的元素,而后者仅是简单的合并;你还可以使用Flatten[表]把表中所有子表&抹平&合并成一个表,而Patition[表,整数n]把表按每n个元素分段作为子表,集合成的表。如Flatten[{1,2,{Sin[x],dog},{{y}}}]表示{1,2,Sin[x],y},而Partition[{1,2,Sin[x],y},2]把表每两个分段,结果为{{1,2},{Sin[x],y}};还可以通过Delete[表,位置]、Insert[表,位置]来向表中按位置插入或删除元素,如要删除上面提到的table中的aaa,你可以用Delete[table,{3,1}]来实现;Sort[表]给出了表中各元素的大小顺序,Reverse[表]、RotateLeft[表,整数n]、RotateRight[表,整数n]可以分别将一个表进行翻转、左转n个元素、右转n个元素等操作,Length[表]给出了表第一个层次上的元素个数,Position[表,表达式]给出了表中出现该表达式的位置,Count[表,表达式]则给出表达式出现的次数。各种表的操作函数还有很多,这里就不再一一介绍了。
三.图形函数
Mathematica的图形函数十分丰富,用寥寥几句就可以画出复杂的图形,而且可以通过变量和文件存储和显示图形,具有极大的灵活性。
  图形函数中最有代表性的函数为Plot[表达式,{变量,下限,上限},可选项],(其中表达式还可以是一个&表达式表&,这样可以在一个图里画多个函数);变量为自变量;上限和下限确定了作图的范围;可选项可要可不要,不写系统会按默认值作图,它表示对作图的具体要求。例如Plot[Sin[x],{x,0,2*Pi},AspectRatio-1]表示在0&x&2Pi的范围内作函数Sin[x]的图象,AspectRatio为可选项,表示图的x向y向比例,AspectRatio-1表示纵横比例为1:1,如果不写这一项,系统默认比例为1:GodenRatio,即黄金分割的比例(注意,可选项的写法为可选项名-可选项值),Plot还有很多可选项,如PlotRange表示作图的值域,PlotPoint表画图中取样点的个数,越大则图越精细,PlotStyle来确定所画图形的线宽、线型、颜色等特性,AxesLabel表式在坐标轴上作标记等等。
.二维函数作图
Plot[函数f,{x,xmin,xmax},选项]
在区间{x,xmin,xmax}上,按选项的要求画出函数f的图形
Plot[{函数1,函数2},{x,xmin,xmax},选项]
在区间{x,xmin,xmax}上,按选项的要求画出几个函数的图形&   
图一.用Plot生成x*Sin[1/x]的图形
.二维参数画图函数
ParametricPlot[{x[t],y[t]},{t,t0,t1},选项] 画一个X轴,Y轴坐标为{x[t],y[t]},参变量t在[t0,t1]中的参数曲线
图二.用ParametricPlot生成的图形
.三维函数作图
Plot3D[f[x,y],{x,x0,x1},{y,y0,y1},选项]
在区域上,画出空间曲面f[x,y].
图3.用Plot3D生成的Sin[x]*Cos[y]的三维图形
除Plot,二维参数方程作图的ParametricPlot[{x(t),y(t)},{t,下限,上限},可选项]、三维作图的Plot3D[二维函数表达式,{变量1,下限,上限}, {变量2,下限,上限},可选项}]、三维参数方程作图的ParametricPlot3D[{x(u,v),y(u,v),z(u,v)},{u,下限,上限},{v,下限,上限},可选项]外,还有画二维等高线图ContourPlot[二元表达式,{变量1,下限,上限}, {变量2,下限,上限},可选项}]、画二维密度图的DensityPlot[二元表达式,{变量1,下限,上限}, {变量2,下限,上限},可选项}]等等不一而足。  
  除使用上述函数作图以外,Mathematica还可以象其他语言一样使用图形元语言作图,如画点函数Point[x,y],画线函数Line[x1,y1,x2,y2],画圆的Circle[x,y,r],画矩形和多边形的Rectangle和Polygon,字符输出的Text[字符串,输出坐标],还有颜色函数RGBColor[red,green,blue]、Hue[],GrayLevel[gray]来描述颜色的亮度、灰度、饱和度,用PointSize[相对尺度]、Thickness[相对尺度]来表示点和线的宽度。总之Mathematica可以精确地调节图形的每一个特征。
四.数学函数的用法
Mathematica系统内核提供了丰富的数学计算的函数,包括极限、积分、微分、最值、极值、统计、规划等数学的各个领域,复杂的数学问题简化为对函数的调用,极大地提高了解决问题的效率。  
  Mathematica提供了所有的三角、反三角、双曲、反双曲、各种特殊函数(如贝塞尔函数系、椭圆函数等),各种复数函数(如Im[z],Re[z],Conjugate[z], Abs[z],Arg[z]),各种随机函数(如Random[n]可以通过不同的参数产生任意范围内整型、实型任意分布的随机数),矩阵运算函数(如求特征值特征向量的EigenVector[],EigenValue[],求逆的Inverse[]等)。  
  Mathematica还提供了大量数学操作的函数,如取极限的Limit[f[x],{x,a}],求微分的D[f[x],x],全微分的Dt[f[x],x],不定积分的Integrate[f[x],x]和定积分的Integrate[f[x],{x,a,b}],解任意方程的Solve[lhs=rhs,x]及微分方程的DSolve[lhs=rhs,x],解幂级数和付立叶展开的Series[f[x]],Fourier[f[x]]及其逆变化InverseSeries,InverseFourier, 求和函数Sum[],求积函数Product[],以上函数均可以适用于多维函数或多维方程。  
  Mathematica中还有相当数量的数值计算函数,最常用的是N[表达式,整数]可以求出表达式精确到指定有效数字的数值解,还有如数值求积分的NIntegrate[],求方程数值根的NSolve[]和NDSolve[],最小、最大值的NFindMinimum[]和NFindMaximum[]等等。  
Mathematica还有各种表达式操作的函数,如取分子、分母的 Numerator[expr] , Denormator[expr],取系数的Coefficient[expr],因式分解的Factor[expr],以及展开的Expand[expr]和ExpandAll[expr],表达式化简的Simplify[expr]等。expr代表一个任意的表达式。
计算函数极限的一般形式是:
Limit[expr,x-&x0] x-&x0时函数的极限
Limit[expr,x-&x0,Direction-&-1] x-&时函数的极限
Limit[expr,x-&x0, Direction-&1] x-&时函数的极限
. 微商和微分
在Mathematica中能方便地计算任何函数表达式的任意阶微商(导数).如果f是一元函数,D[f,x]表示;如果f是多元函数,D[f,x]表示.微商函数的常用形式如下:
In[1]:=D[x^x,x]
下面列出全微分函数Dt的常用形式及其意义:
Dt[f] 全微分
Dt[f,x] 全导数
Dt[f,x1,x2,&] 多重全导数
In[1]:=Dt[x^2+y^2]
. 不定积分和定积分
Integreate函数主要计算只含有1&简单函数&的被积函数. &简单函数&包括有理函数、指数函数、对数函数和三角函数与反三角函数。不定积分一般形式如下:
Integrate[f,x] 计算不定积分
Integrate[f,x,y] 计算不定积分
Integrate[f,x,y,z] 计算不定积分
计算定积分的命令和计算不定积分是同一个Integrate函数,在计算定积分时,除了要给出变量外还要给出积分的上下限。当定积分算不出准确结果时,用N[%]命令总能得到其数值解.Nintegrate也是计算定积分的函数,其使用方法和形式和Integrate函数相同.用Integrate函数计算定积分得到的是准确解,Nintegrate函数计算定积分得到的是近似数值解.计算多重积分时,第一个自变量相应于最外层积分放在最后计算.
Integrate[f,{x,a,b}] 计算定积分
NIntegrate[f,{x,a,b}] 计算定积分
Integrate[f,{x,a,b},{y,c,d}] 计算定积分
NIntegrate[f,{x,a,b},{y,c,d}] 计算定积分
幂级数展开函数Series的一般形式:
Series[expr,{x,x0,n}] 将expr在x=x0点展开到n阶的级数
Series[expr,{x,x0,n},{y,y0,m}] 先对y展开到m阶再对x展开n阶幂级数
用Series展开后,展开项中含有截断误差
. 常微分方程
求解常微分方程和常微分方程组的函数的一般形式如下:
Dsolve[eqns,y[x],x] 解y(x)的微分方程或方程组eqns,x为变量
Dsolve[eqns,y,x] 在纯函数的形式下求解
NDsolve[eqns,y[x],x,{xmin,xmax}] 在区间{xmin,xmax}上求解变量x的数的形式下求解常微分方程和常微分方程组eqns的数值解
定义向量和矩阵函数
矩阵的运算符号和函数
方程组求解函数
定义一个矩阵,可用函数Table或Array.当矩阵元素能用一个函数表达式时,用函数Table在定义矩阵大小的同时也给每个矩阵元素定义确定的值.用函数Range只能定义元素为数值的向量.Array只能用于定义向量、矩阵和张量,并规定矩阵和张量的元素下标从1开始.Array的一般形式: Array[向量元素名,n,f] 定义下标从f开始的有n个元素的向量,当f是1时可省略. Array[矩阵元素名,{m,n}] 定义m行n列的矩阵.其中:矩阵元素名是一个标识符,表示矩阵元素的名称,当循环范围是{u,v,w}时定义一个张量. Table[表达式f,循环范围] 表达式f表示向量或矩阵元素的通项公式;循环范围定义矩阵的大小. 循环范围的一般形式:{循环变量名,循环初值,循环终值,循环步长}. 在Array或Table的循环范围表示方法略有区别.请在下面的实例中注意观察.
Out[1]:= (*矩阵每一行元素用一对{}括起来*)
In[3]:= (*IndentityMatrix[n]生成n维矩阵*)
In[4]:= (*生成对角元素为表元素的对角矩阵*)
In[5]:= (*TableForm[m]或MatrixForm[m]按矩阵形式输出m*)
一个矩阵可用一个变量表示,如In[2]所示U是一个矩阵,则U[[I]]表示U的第I行的N个元素;Transpose[U][[j]]表示U的第J行的M个元素;U[[I,j]]或a[I,j]表示U的第I行第J列元素;U[[{i1,i2,&,ip},{j1,j2,&,jq}]]表示由行为{i1,i2,&,ip}和列为{j1,j2,&,jq}组成的子矩阵.
A为矩阵,c为标量,c与A中的每一个元素相加
A,B为同阶矩阵或向量,A与B的对应元素相加
A为矩阵,c为标量,c与A中的每个元素相乘
向量U与V的内积
矩阵A与矩阵B相乘,要求A的列数等于B的行数
计算矩阵M的行列式的值
Transepose[M]
M的转置矩阵(或)
Inverse[M]
计算矩阵M的逆矩阵()
Eigenvalus[A]
计算矩阵A的全部(准确解)特征值
Eigenvalus[N[A]]
计算矩阵A的全部(数值解)特征值
Eigenvectors[A]
计算矩阵A的全部(准确解)特征向量
Eigenvectors[N[A]]
计算矩阵A的全部(数值解)特征向量
Eigensystem[A]
计算矩阵A的所有(准确解)特征值和特征向量
Eigensystem[N[A]]
计算矩阵A的所有(数值解)特征值和特征向量
在Mathematica中用LinerSolve[A,B],求解满足AX=B的一个解.如果A的行列式不为零,那么这个解是方程组的唯一解; 如果A的行列式是零,那么这个解是方程组的一个特解,方程组的全部解由基础解系向量的线性组合加上这个特解组成. NullSpace[A]计算方程组AX=0的基础解系的向量表,用LinerSolve[A,B]和NullSpace[A]联手解出方程组AX=B的全部解. Mathematica中还有一个美妙的函数RowReduce[A],它对A的行向量作化间成梯形的初等线性变换.用RowReduce可计算矩阵的秩,判断向量组是线性相关还是线性无关和计算极大线性无关组等工作.
解方程组函数
RowReduce[A]
作行的线性组合化简A,A为m行n列的矩阵
LinerSolve[A,B]
求解满足AX=B的一个解,A为方阵
NullSpace[A]
求解方程组AX=0的基础解系的向量表, A为方阵
例:已知A=,计算A的秩,计算AX=0的基础解系.
Out[2]:= (*显然,A的秩是2*)
Out[3]:= (*A的两个线性无关解*)
五.程序流程控制  
  循环语句有For[赋初值,循环条件,增量语句,语句块]表示如果满足循环条件,则执行语句块和增量语句,直到不满足条件为止,While[test,block]表明如果满足条件test则反复执行语句块block,否则跳出循环,Do[block,{i,imin,imax,istep}]与前者功能是相同的。还有Goto[lab], Label[lab]提供了程序中无条件跳转,Continue[]和Break[]提供了继续循环或跳出循环的控制,Catch[语句块1]和Throw[语句块2]提供了运算中对异常情况的处理。另外,在程序中书写注释可以用一对&(*  *)&括起来,注释可以嵌套。
  1. 使用帮助,Mathematica的帮助文件提供了Mathematica内核的基本用法的说明,十分详细,可以参照学习。  
  2. 你可以使用&? 符号名&或&??符号名&来获得关于该符号(函数名或其他)的粗略或详细介绍。符号名中还可以使用通配符,例如?M*,则系统将给出所有以M开头的关键词和函数名,再如??For将会得到关于For语句的格式和用法的详细情况。  
  3. 在Mathematica的编辑界面中输入语句和函数,确认光标处于编辑状态(不断闪烁),然后按Insert键来对这一段语句进行求值。如果语句有错,系统将用红色字体给出 出错信息,你可以对已输入的语句进行修改,再运行。如果运行时间太长,你可以通过Alt+.(Alt+句号)来中止求值。  
  4. 对函数名不确定的,可先输入前面几个字母(开头一定要大写),然后按Ctrl+K,系统会自动补全该函数名。  
七.应用例子
量子一维、二维简谐振子问题
量子一维简谐振子图像
量子二维简谐振子图像
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-当前位置浏览文章
放假了,近来无事,就复习了一下mathematica相关知识点。已经玩了很多东西,不过大概还是很熟悉。Mathematica(我简称mma),可以通过交互方式,实现函数作图,求极限,解方程等,也可以用它编写像c那样的结构化程序。Mma在系统定义了许多强大的函数,我们称之为内建函数,分二类,一是数学意义上的函数,如绝对值函数 Abs[x],正弦函数Sin[x]等;二是命令意义上的函数,如作图函数Plot[f[x],{x,xmin,xmax}],解方程函数Solve[eqn,x],求导函数D[f[x],x]等。1.0 Mma严格区分大小写,一般内建函数首字母必须大写,有时一个函数名由几个单词构成,则每一个单词的首字母也必须大写,如求局部极小值F
inMinimum[f[x],{x,x0}]等。image.png2.0 在mma中,函数名和变量名之间分隔符用[],不是一般数学上的();3.0 在交互界面,使用?可以查询运算符,函数和命令定义。image.png在mma中,基本的数据类型有4种,整数,有理数,实数和复数。如果计算机内存足够大,mma可以表示任意长度的精确实数,可以简化分数,可以科学计数法,可以复数。image.pngMma可以进行数据转换,%表示上一个输出结果。N[x,n]将x转换成近似实数,精度n,默认6位,Rationalize[x],给出近似实数。image.pngMma定义了一些常见的数学常数。数学常数.pngimage.png数的输出形式在数的输出中可以使用转换函数进行不同数据类型和精度的转换。另外对一些特殊要求的格式还可以使用如下的格式函数:NumberForm[expr,n]
以n位精度的实数形式输出实数exprScientificForm[expr]
以科学记数法输出实数exprEngineergForm[expr] 以工程记数法输出实数exprimage.png变量在mma中,函数和命令都是以大写字母开始的标识符,为了不和它们混淆,我们自定义的变量应该以小写字母开始,后跟数字和字母的组合,长度不限。在mma中,用等号给变量赋值(或:=)变量,同一个变量可以表示数组,数字,表达式,甚至一个图形,=是立即赋值, :=是延迟赋值。要清楚在用等号。image.png清除上一次的变量值,使用Clear[var]函数。可以使用变量替换来计算表达式的值,即 expr/.x-&xval。image.png函数定义立即定义函数的语法如下,F[x_]=expr 函数名F,变量x,expr是表达式,在执行时候会把expr中的x替换成f的自变量x,自变量具有局部性,只对所在函数起作用。image.pngMma可以计算极限,导数,偏导数,积分等。image.pngMma可以级数展开,可以求解一元二次方程,二元一次方程,微分方程等号各种方程。image.png其实mma求强大的功能在于画图。下面有些代码是网上copy的,我玩的也不是很牛。输入 Plot[{Sin[x],Cos[x],Tan[x]},{x,-Pi,Pi}]三角函数曲线.png输入 ParametricPlot[{Sin[t],Sin[2 t]},{t,0,2 Pi}]image.png输入
Plot3D[{Sqrt[(1-x^2 -y^2)]},{x,-1,1},{y,-1,1}]半球.png输入 ParametricPlot3D[{u Cosu,u Sinu,u Sin[v+u]},{u,0,4 Pi},{v,0,2 Pi},PlotPoints-&{60,12}]螺旋形.png输入 RegionPlot[(x^2 + y^2 - 1)^3 - x^2 y^3 &= 0, {x, -1.5, 1.5}, {y, -3/2,3/2}, PlotStyle -& Red]心.png输入 ContourPlot3D[(2x^2 + y^2 + z^2 - 1)^3 - (x^2 + y^2)/10 - y^2z^3 ==0, {x, -1.5, 1.5}, {y, -1.5, 1.5}, {z, -1.5, 1.5}, PlotPoints -& 30,Axes -& True, Lighting -& Automatic,ContourStyle -& {RGBColor[1, 0, 0]}, Mesh -& None]立体心.png输入 Rose[x_,theta_]:=Module[{phi=(Pi/2) Exp[-theta/(8 Pi)],X=1-(1/2) ((5/4) (1-Mod[3.6 theta,2 Pi]/Pi)2-1/4)2,y,r},y=1.95653 x^2 (1.27689 x-1)^2 Sin[phi];r=X (x Sin[phi]+y Cos[phi]);{r Sin[theta],r Cos[theta],X (x Cos[phi]-y Sin[phi])}]Manipulate[Show[ParametricPlot3D[Evaluate@Rose[x,theta],{x,0,1},{theta,-2 Pi,th},Mesh-&None,PerformanceGoal-&"Speed",PlotPoints-&100,PlotStyle-&{clr},ImageSize-&{450,400},PlotRange-&{{-1,1},{-1,1},{-1.6,1}},Boxed-&False,Axes-&Fase],Graphics3D[{Green,Cylinder[{{0,0,-.05},{0,0,-10}},.1]}]],{{th,15 Pi,"花瓣的变化"},Pi,15 Pi},{{clr,Red,"花瓣的颜色"},Red},SaveDefinitions-&True]玫瑰花.png输入
ContourPlot3D[(x^2 + 9/4 y^2 + z^2 - 1)^3 - x2z3 - 9/80 y2z3 ==0, {x, -1.5, 1.5}, {y, -1.5, 1.5}, {z, -1.5, 1.5}, Mesh -& None,BoxRatios -& 1, ContourStyle -& {Red}, PlotPoints -& 200,Axes -& None, Boxed -& False]红心.png相关代码,图片,和笔记百度云下载玩啊,玩啊,有时间看看python,争取用python画出这些图形。生日,阴历一月四日,下一篇文章应该给自己写一篇生日快乐的一、Mathematica 的主要功能1、符号运算功能:Mathematica 最突出的特点就是具有强大 的符号运算功能,能和人一样进行带字母的运算,得到精确 的结果。符号运算功能可以分成 4 大类:(1)初等数学:进行各种数和初等函数式的计算与化简。(2)微积分:求极限、导数(包括高阶导数和偏导数等)、 不定积分和定积分(包括多重积分),将函数展成幂 级数,进行无穷级数求和及积分变换。 (3)线性代数:进行行列式的计算、矩阵的各种运算(加 法、乘法、求逆矩阵等) 、解线性方程组、求特征值和 特征向量、进行矩阵分解。(4)解方程组:解各类方程组(包括微分方程组)。 2、数值计算功能:可以做任意位数的整数或分子分母为任 意大整数的有理数的精确计算,做具有任意位精度的数值 (实、 复数) 计算。 Mathematica 具有众多的数值计算函数, 能满足线性代数、插值与拟合、数值积分、微分方程数值 解、求极值、线性规划及概率统计等方面的常用计算需求。3、绘图功能:能绘制各种二维平面图形与全方位的三维立 体彩色图形,自动化程度很高。4、编程功能:用户可以自己编写各种程序(文本文件),开 发新的功能。 二、基本知识1、启动与运行方法Mathematica 作为标准的 Windows 程序, 其启动方式与 Windows 下其它程序的启动方式一样。Mathematica 的界面由工作区窗口、基本输入模板和主菜单组成。左边为工作窗口区,可以直接输入函数或命令;工作区窗口右边 的是基本输入模板, 由一系列按钮组成; 图上方所示的是主菜单。当输入完算式后按 Shift+Enter 键或小键盘中 Enter 键的执行计算, 而“Enter”键可以用来换行。如果执行运行后长时间没有完成计算, 可以通过“Alt +空格键,”或“Alt + .”来强制停止计算。 2、变量Mathematica 中的变量名是以字母开头并由字母或数字组成的 字符串(长度不限) ,不能含有空格或标点符号,大写与小写字 母用于表示不同的变量。一个变量可以表示各种类型的数或字符串, 也可以表示一个算式。 与 C 语言不同,不必事先声明变量的类型,Mathematica 会根据 用户给变量所赋的值自动处理。使用等号给变量赋值,具体格式如下:x =Value x = y =Value {x,y,…}={Value1,Value2,…} 给 x 赋值。 同时给 x,y 赋相同的值。 同时给 x,y,?赋不同的值。 为了避免隐蔽的错误,应该及时清除不再使用的变量,这时可以 用 “Clear” 命令, 格式为 “Clear[变量名]” ; 或者可以用 “x= .” 清除变量 x 的值。每次运行结束后, Mathematica 会自动在输入的式子前面加上 “In[n]:=” (n 表示输入命令的序列号) ,在输出的答案前面加上 “Out[n]=” (n 表示输出结果的序列号) ,以便分清输入和输出并 自动加上编号。可以用“%”表示前一个输出的内容, “%%” 表 示倒数第 2 个输出的内容,依此类推, “% n”表示第 n 个(即 Out[n])输出的内容。也就是说 Mathematica 输出的内容被系统 记忆,它们可以像其它变量一样在后面的计算中引用。 3、数Mathematica 以符号运算为主,这与一些语言有所不同,例如2 等符号表示准确数,近似数用带小数点的数表示,例如 3 1.2,2.3*10^5 等。Mathematica 中求近似值以及近似值的精度控制? , e, , 2函数为函数“N” ,其调用格式如下:N[表达式] 计算表达式的近似值,具有机器规定的精度(16 位有效数字) ,但是按标准输出只显示前 6 位有效数字N[ 表达式 ,数字位数 ] 指定计算表达式的具有任意数字位数的近似值(指定的数字位数应该大于 16),结果在末位后是四舍五 入的。 4、算术表达式常量和变量用算术运算符连接而成的式子称为算术表达式。表达式按 照与常规相同的优先级自左向右执行计算。在运算中运用的标点符号 必须是英文的,不能用中文的标点符号, “; ”表示运算但不显示结果。 Mathematica 中和、差、积、商、乘方运算分别用相应的键“+” 、 “-” 、 “*”或空格、 “/” 、 “^”来表示,也可通过基本输入模板来输入。用“/.”可以进行变量替换,变量替换是求算式的值而不改变 算式本身,例如输入命令: p = x^2 + 2x y + y^2;p / . x→1 运行结果可得:1 + 2y + y2,此运算是把表达式中的 x 换为 1 但不改变变量 p。若要替换两个变量,键入 p/.{x→1,y→2}即可。 5、内部函数Mathematica 支持所有的常用的数学函数,下面介绍一些简单而 又常用的数学函数: Sin[x] 正弦函数Tan[x] Sec[x] 正切函数 正割函数 Cos[x] Cot[x] Csc[x] 余弦函数 余切函数 余割函数ArcSin[x] ArcTan[x]Exp[x] Log[x] Abs[x] n!反正弦函数 反正切函数ArcCos[x] ArcCot[x]Sqrt[x]反余弦函数 反余切函数表示x表示 ex表示 lnx (一般以 a 为底的对数函数用 Log[a, x]表示) 求实数的绝对值或复数的模 求 n 的阶乘 Sign[x] 符号函数 求 C nkBinomial[n,k] Mathematica 系统函数的书写规则很严格,务必注意以下几点:(1)函数名的首字符用大写,后面的字符一般用小写,当函数名 分成几段时, 每段的首字符应大写, 函数名中不能含有空格。(2)参数用方括号括起来,不能用圆括号,Mathematica 认为圆 括号表示相乘。 6、表表是存储多个数、变量或算式等对象的一种数据结构。一个表用 一对花括号表示,它的成员在括号内用逗号隔开,同一个表的成 员可以有不同的数据类型,表的成员还可以是一个表(子表) 。Mathematica 中常用的建表函数是“Table”,其调用格式如下:Table[f,{i,imin,imax,stepi},{j,jmin,jmax,stepj}] 表的通项为 f(f 是变量 i 和 j 的函数),min,max,step 规定 了初值、终值、步长,min 和 step 的默认值为 1。注意:用“Table”构成的函数集常常不具备可计算性,这时可以 用 “ Evaluate ” 命 令 把 它 转 化 为 可 运 算 , 其 命 令 格 式 为 : Evaluate[Table[? ]]。 三、基本代数运算下面介绍一些实现基本代数运算的函数,用于变换数学表达式、解 方程和解不等式。Mathematica 具有强大的符号运算功能,下面列 举的函数均可代入具有字母的表达式进行计算,得到精确解。Simplify[expr] Factor[expr] Collect[expr,x] Together[expr] Cancel[expr] Apart[expr] 将表达式变换化简 对表达式进行因式分解 将表达式 expr 中 x 的同次幂合并 对表达式进行通分 约去表达式的分子、分母的公因式 将有理式分解为最简分式的和 PolynomialQuotient[p1,p2,x]求 x 的多项式 p1 被 p2 除的商PolynomialRemainder[p1,p2,x] 求 x 的多项式 p1 被 p2 除的余式 PolynomialGCD[p1,p2,? ] PolynomialLCM[p1,p2,? ] 求多个多项式的最大公因式。 求多个多项式的最小公倍式Solve[eqns,vars] Reduce[eqns,vars] FindRoot[eqn,{x,x0}] NSolve[eqns,vars] Eliminate[eqns,elims]求方程(组)的全部解 讨论系数出现的各种可能情况,分别求解 数值求解(x0 附近的解) 求代数方程(组)的全部数值解 从一组等式中消去变量(组)elims注意:在 Mathematica 中符号“=”用于给变量赋值,而方程中的等 号使用符号“= =”表示。若是针对方程组的运算,则方程组用花括 号括起来,各个方程用逗号分隔,未知量也是如此。 四、编程基础 1、自定义函数前面介绍了 Mathematica 本身自带的内置函数,下面我们以实x 2 例来说明定义函数的方法。例如,要定义函数 f ( x) ? e (sin x ? 1) ? ln x ,我们只要键入命令 f[x_]:=Exp[x]*(Sin[x]+1)+Log[x^2] 运行即可。注意:在函数的自变量后面有一个下划线“_”,这表示 x 为自变量, 可以把 x 代入为任何的值进行计算;等号前面的有个冒号,表示定 义函数。同样可以定义多变量函数。定义了函数 f[x]后,可以直接 地调用 f[x]来进行符号数学运算(例如积分、微分等) 2、 关系操作符与逻辑操作符关系运算符 & &= & &= == 小于 小于等于 大于 大于等于 等于逻辑运算符 && || ! 与 或 非 3、条件结构我们在用计算机语言进行编程时,常用到条件语句, Mathematica 也提供了多种设置条件的方法,并规定只有在该条件满足时才计算 表达式。常用形式的条件结构有:lhs:=rhsl/;test If[test,then,else] 当 test 为真时使用定义 rsh 如 test 为真计算 then, 反之计算 elseWhich[test1,value1,test2,value2,?] 依次计算 testi,给出对应的值 vaulei Switch[expr,form1,value1,form2,value2,?] expr 与每一个 formi 相比较,给出相匹配的值 valuei ? x2 ? 1 ? f ( x ) ? ?? x 2 ? 1 例如,我们可以用以下命令来定义分段函数 ? 0 ?x?0 x?0 x?0:f[x]:=x^2+1/;x&0; f[x_]:=-x^2-1/;x&0; f[x_]:=0/;x==0或f[x_]:=If[x&0,x^2+1,If[x&0,-x^2-1,0]]或f[x_]:=Which[x&0,x^2+1,x&0,-x^2-1,x==0,0] 4、循环结构Mathematica 提供了与一般程序语言类似的描述重复执行的循环控 制结构循环结构:Do 结构、For 与 While 结构。下面将它们的调用 形式做一简单介绍。Do[expr,{i,imin,imax,di}] 循环计算 expr,步长为 di,i从 imin 增加 imax(步长缺省则默认为 1,imin 缺省也默认为 1) Do[expr,{n}] 循环计算 expr 共 n 次Do[expr,{i,imin,imax,di},{j,jmin,jmax,dj}] 循环计算 expr,i 从 imin 到 imax 循环,对于每个 i,j 从 jmin 到 jmax 循环(即多重循环) While[test,body] 只要 test 为真,则重复计算执行主体 bodyFor[start,test,incr,body] 以 start 为起始值,重复计算执行主体 body 和执行表达式 incr 改变循环变量的值,直到 test 为假注意:当条件满足时,While 循环一直进行,因此为了防止死循环,在 While 中应包括命令能改变 test 的值。另: 有时需要改变正常的循环顺序, 以便使计算流程更加自然和提高程序 执行的效率,为此系统提供了一些特殊的程序流控制,在这里,介绍一个 “Break”命令,它的调用格式为:Break[],表示中断并退出循环。 第l章 Mathematica简介与基本量 教学基本要求了 解 数 学 软 件 , 了 解 Mathematica 的 环 境 使 用 , 了 解Mathematica的基本功能,了解Mathematica中基本量的表 示与数学中的异同。 掌 握 Mathematica 的 基 本 操 作 、 帮 助 的 使 用 ; 掌 握 Mathematica基本量的表示。教学重点Mathematica 的 基 本 操 作 , Mathematica 的 帮 助 , Mathematica基本量的表示。课时安排4学时讲授,2学时实验。 Mathematica 是美国 Wolfrmn 公司研制开发的著名数学软件系统,自1987年发布系统的 1.0版本开始便迅速广为流传,后经不断改进和完善,1991年与1997年又先后推出2.0 版和3.0版,1999年推出了为现在人们广泛使用的4.0版本。4.0 版本需要在 Windows 9x 以上的环境中运行,一般占用 150MB 以上的硬盘空间。软件的安装与一般 Wlndows应 用程序安装方法相同。我们介绍4.0版本。 ?1.1Mathenmtica系统简单操作1.1.1 进入系统与退出系统双击 Windows 9x 桌面上的 Mathematica 图标,或者在 “开始”菜单的“程序”中单击Mathematica 4.0选项,均 可进入这个系统,随即在屏幕上显示一个如图 1-1所示的工 作窗口,并将这个窗口暂命名为Untitled-1。 当软件使用完毕后,需要 退出Mathematica系统时, 只须单击工作窗口右上方的 关闭按钮即可,或者选择菜单 “ file/ Exit” , 或 者 按“Alt+F4”键。 1.1.2 工作窗口操作工作窗口是用户输入、输出、显示各种信息,以及运行各种程序的场地,用户的全部操作都将在这里进行,人们将这 种类型的窗口称之为Notebook。 下面举例说明在工作窗口中怎样进行操作。 【例1-1】已知a=2,b=3.7,试求c=a+b的值。在Untitled-1工作窗口中直接键入:a = 2; b = 3.7; c = a + b然后按执行键(执行键: Shift+Enter,或右 Shift),执行后,显示结果如下:Out[1]: 5.7 说明,此时在a = 2; b = 3.7; c = a + b的最左端显示&In[1]:=” 记号,它是系统提供的输入提示符,而“ Out[1]”则是对应于“In[1]:=”的输出提示符,都是在执行后,由系 统自动显示的,用户不必输入。【例1-2】已知函数y = sinx,试求其一阶导函数y '。在工作窗口中键入:y' = D[Sin[x], x]执行结果为:Cos[x]【例1-3】画出函数y=sinx 在区间[- 3,3]上的图形。 在工作窗口中键入:Plot[Sin[x], {x, -3, 3}] 注意:在 Mathematica 中函数名或者命令的第一个字母均必须大写,其具体内容将在后面的“函数名的书写规则”中作严格的规定。 说明:(1) 在Mathematica系统中,输入、运算以及输出结果,都将在同一工作窗口中进行,没有输入状态与运算状态的转 换,整个过程比其他高级语言简单明了;(2) 系统对于输入的量不要求事先有数据类型的说明,也不必对输出量预先设计格式,而是完全由参与运算的那些量 的输入形式决定; (3) 在系统的同一工作窗口里不仅可以进行数值计算(如 例 1 ),也可以进行符号运算(如例 2 ),还可作图形的处理(如例3),形式多样灵活,简单方便。 (4) 在Mathematica系统中,标点符号“,”用来分割各项,“;”用在句尾时不输出结果。(5) 在Mathematica系统中,一行可以书写多条命令语句, 长语句会自动换行,也可以用回车换行。但要注意标识符不能断开。 1.1.3 建立文件与保存文件在工作窗口做好的某些内容,如果想要保留,以供今后多次使用,通常地是建立一个文件,将做好的内容保存在文件 中。 1. 建立与保存文件 保 存 文 件 的 方 法 是 : 选 择 菜 单 “ File/Save” 或“File/Save As”,然后在对话框中操作。如此保存的 Mathematica文件的扩展名为 .nb,其中保存 有Notebook中所有输入文字与输出的文字和图形。 2. 调出文件选择菜单“ File/Open” ,在对话框中操作,选择文件名后单击“打开”按钮即可,在屏幕上便可看到重新调出的文 件中的文字与图形了。 1.1.4 获取帮助1. 使用?或??命令利用?或??命令可向系统查询运算符、函数和命令的定义及用法,它们的格式是:? name显示有关nane的信息;??name显示有关name的详细信息。 说明:可以使用通配符*,例如:?Abc*显示以字母Abc为开头对象的信息。 【例1-4】向系统查询符号函数Sign的定义。?Sign ? +? ? +?【例1-5】向系统查询画图函数Plot的用法。?Plot【例1-6】向系统查询Arc为开头的函数。?Arc* 2. 使用Help菜单选择菜单“Help/Mathematica Book”,或者按Shift + n键,均可调出如图1-4所示的帮助界面。 如果想了解Plot函数的用法以及系统中给出的有关用法的 例子,可在图1-4中CoTo栏键入Plot,然后敲回车键,系统 即显示有关Plot函数的定义、例题及其相关联的内容。 3. 使用名称完善功能 输入命令或函数名的前几个字母后,按“Ctrl + k”,可以 得到一个名称列表,可以选择其中所需要的名称,此功能称 为名称完善功能。 ?1.2Mathematica功能介绍开始使用 Mathematica 时,不必担心是否能够学会,其实它就像使用电子计算器一样简单。而要做的主要事情就是 如何用Mathematica的语言来描述所要作的计算。 在很多情况下,会发现这种语言和在数学中、在一般的计 算机语言中的习惯很接近。本节先简单地介绍一下Mathematica的主要功能,以后会有比较详细的介绍。 1.2.1 数值计算几乎人人用过计算器,它能进行 + 、-、 * 、/四则运算和简单的函数运算。Mathematica作为一个功能强大的数学软 件包, 在处理数值运算方面具有非常强大的功能 。使用 Mathematica作算术计算就像使用电子计算器一样简单。 1.2.2 代数式运算Mathematica还可以作代数式的各种运算:9 (2 + x) (x + y)+(x + y)^2将上式展开:Expand[%^3]分解因式:Factor[%] 1.2.3 求极限运算Limit[Sin[x]/x,x-&0]Limit[(1+2 x)^(1/x), x-&0]1.2.4 微积分Integrate[x^2 Sin[x]^2, x] D[%, x] Simplify[%] 1.2.5 和与积Sum[x^i/i, {i, 1, 7, 2}]Sum[1/i^3, {i, 1, 20}] N[%] Product[x+i, {i, 1, 4}] 1.2.6 解方程或方程组x^3 – 7 x^2 + 3 a x == 0Solve[%, x] Solve[{a x+b y == 0, x+y == c}, {x, y}] FindRoot[{Sin[x] == x – y, Cos[y] == x + y}, {x, 1}, {y, 0} ] 1.2.7 解微分方程或微分方程组DSolve[y'[x] == a y[x], y[x], x]DSolve[{y'[x] == a y[x], y[0] ==1}, y[x], x] 1.2.8 矩阵m = Table[i/(i+j+1),{i, 3}, {j, 3}]MatrixForm[%] Transpose[m] Inverse[m] %.m Det[m] Eigenvalues[N[m]]Eigenvectors[m] 1.2.9 极小值FindMinimum[Sin[x]+x/5, {x, 1}]1.2.10 线性规划ConstrainedMax[17 x – 20 y+18 z, {x – y + z & 10, x & 5, x + z & 20}, {x, y, z}] ConstrainedMin[x + 3 y + 7 z, {x – 3 y & 7, 2 x + 3 z &= 5, x + y + z & 10}, {x, y, z}] 1.2.11 编程下面是一个输出适合条件的数的简单程序:n = 10; While[(n = n – 1) & 5, Print[n]]1.2.11 绘图 ?1.3数在 Mathematica 里将数大致分为两类,一类是基本常数,包括整数、有理数、实数和复数;另一类是系统的内部常数, 包括数学、物理中常见的某些常数。 这些数的概念同数学中的概念完全一样,它们的表示方法 同数学中的也基本一致。但要指出的是,如果计算机字长允许的话,在Mathematica系统里,这些数可以具有任意的长度和精确值。 在这些数之间常常需要进行加、减、乘、除以及乘方等算术运算,这些算术运算的运算符在 Mathematica里分别用+、-、*、/、^等来表示,与计算机编程语言中的符号基本一致; 还可以使用模板进行输入。模板的调出可以选择菜单“File/Palettes/3 Basic Input”。 1.3.1 数的表示和计算1. 整数在 Mathematica 系统中,整数由一串连续的数字组成,数字之间不允许有空格或其他字符。在系统里可以对任意大的整数进行计算,系统将保持输入 的和计算后输出的整数永远是精确的,不会将大的整数转化为浮点数形式。例如 说明:(1) 乘法符号“*”可以用空格代替,但不能省略;(2) 算术运算的优先顺序:先乘方,再乘除,最后是加减, 可以用括号改变优先顺序;(3) 同级运算的顺序依顺序从左到右进行;(4) 负号用减号表示,直接写在数的前面即可,同数学习 惯完全一样; (5) 如果参加运算的整数都是精确数,那么运算的结果也 一定是精确数,Mathematica系统决不轻易丢失信息。 2. 有理数Mathematica 系统中任何有理数都可用两个整数的商来表示,并且对有理数将自动化简,约去分子与分母中的公因 数,最后结果是精确的。例如 3. 实数(浮点数)实数在 Mathematica 里用浮点数表示。浮点数是指含有一个小数点的数字串,它至少包含着一位有效数字,数字串 的长度可以任意。因此用浮点数来表示实数可以具有任意的 精度。 然而在书写时,数字串的长度总是有限位的,这样就有必 要引入实数在不同精度要求下的近似记法。在Mathematica 里用符号 N[x , n] 来表示实数 x 具有 n 位精度的近似值,当 n≤16时只取6位有效数字,当n&17时则取n位有效数字。例如 说明:当整数、有理数、实数进行混合运算时,如果参加运算的数都是精确的,那么在Mathematica系统中运行的结果也一定是精确数,决不轻易丢失信息。 如果其中有一些是近似数,那么运算的结果也只能是近似 数,但保持尽可能高的精度,仍然不轻易丢失信息。 注:(*…*)为Mathematica系统的注释符号,两个*号之间为注释内容,注释部分可以放在程序的任何位置。 4. 复数同数学中的复数表示法一样,在 Mathematica 里的每一个复数也表示为 z=x+Iy,其中 x与 y为实数,I 为虚数单位, 即,运算规则与数学中的规则一样。 5. 数学常数最常见的数学常数有:Pi E 圆周率?,? = 3.14159… 自然对数的底e,e=2.71828…DegreeI Infinity Indeterminate角度1度,1度 = ?/180虚数单位i,i = 无穷大,即? 不定值,即0/0,?/??1此外,还有欧拉常数、黄金分割常数、光速常数、万有引力 常数等数学、物理中常见的常数.对这类常数, Mathematica 将它们设置为系统的内部常数,用到时,可以利用Help命令到系统中查询。 1.3.2 数的转换有时需要将不同类型的数进行转换。例如,将有理数转换为实数,将精确数转换为近似数等。前面在实数举例中用到 的函数N[ ]就是这种转换函数之一。 下面列出的是最常用的两个转换函数:N[x] N[x,n] Rationalize[x] Rationalize[x,dx] 将x转换为实数形式 将x转换为最多具n个数字精度的近似实数 给出x的近似有理数 给出误差在dx内x的近似有理数 【例1-7】数的转换。N[1/3] N[1/3, 20] Rationalize[%] Rationalize[N[Sqrt[2]]]Rationalize[N[Sqrt[2]], 10^(-7)]说明:符号%的含义如下:% 表示上一次输出的结果%%%%…%(共n个) %n表示倒数第2次输出的结果表示倒数第n次输出的结果 表示以n为序号的那次输出结果 1.3.3 数的输出形式在Mathematica计算中,常用函数N[ ]将符号运算的结果转换为数值结果,或将有理数的准确值转换为近似数。 如果参与计算的数都是准确值,则计算结果将按准确值的 方式输出;如果参与计算的数有近似数,则计算的结果必是 近似数,系统将会根据数值类型与数值大小给出合理的输出形式。如果你对输出形式有精度方面的特殊要求,则可利用下面 科学记数形式进行输出。ScientificForm[表达式] 以科学记数形式输出表达式例如 ?1.4变量在 Mathematica 系统中,变量名与函数名总是用标识符来书写的。1.4.1 标识符标识符是由英文字母开头的字母数字串。字母与数字的长 度可以不限,但不能包含空格或标点符号。例如 a , bce , a12 , Cij , ArcSinh 等均为合法的标识符,而2ab,x*y,a12,Arc-Sinh等均为不合法的标识符。 1.4.2 变量命名变量命名即用标识符给变量命名,给变量用标识符命名时必须严格依照标识符的有关规定进行。 给函数命名时,除了要遵守标识符的规定外,还要遵守函 数命名的一些规则,这将在下一节作介绍。 标识符除了可给变量命名和给函数命名外,还可有别的用途,例如可以用它来表示计算中的单位:1.5Kg + 2.3Kg 3.8Kg 1.4.3 变量赋值在 Mathematica 中运算符“ =” 的作用是赋值。常常用它来给变量赋一个值,这个值可以是一个数值、一个数组、一 个表达式,甚至一个图形。例如x = 2+3 x=y=3变量x一旦被赋值,这个值将长期保留,直到它被清除或 被重新赋值为止。保留期间,无论在何处使用这个变量 x, 它将被数值3代替。例如p3 = x^3 + 3 * x^2 – 4*x + 5变量p3一旦被赋值多项式5 - 4 y + 3 y^2 + y^3,在以后 的运算中凡是用到 p3 的地方,也就相当于在那里写上了这个多项式。 对于已经赋值的变量,当不再使用而且想要清除掉时,可随时用“=.”清除掉。在这个命令执行后,变量的值就不存在了。应当特别注意 随时将以后不再使用的变量的值清除掉,以免影响后面某些计算结果的正确性。 1.4.4 变量替换在数学运算中,经常需要将数学式子中的某些变量替换为另外的一些变量,Mathematica中将这种替换机制叫做变换 规则,用记号“/.”来完成。例如p3 = 5 - 4 y + 3 y^2 + y^3 p3/.y -& t+1 p3/.y -&2对于多个变量的式子,这种替换同样可以进行。例如f = x^2 + x y + y^2 f/.{x-&u+1, y-&v-1} ?1.5表在 Mathematica 中,常常将一些有关联的元素组合成一个整体,并将其称为表(List)。 表中的元素可以是数,也可以是函数,还可以是表达式等; 同一表中的元素可以有不同的数据类型。 表常被用来表示数学中的向量、矩阵或集合。 1.5.1 表的描述表在形式上是用花括号括起来的一组元素,元素之间用逗号分隔。例如{1,2/3,0.5,x,Sin[t]}{3,4,{1,2},5}表的元素又称为表的分量,表中分量的一般表示如下:t[[n]]或Part[t,n] 表示表t中的第n个元素t[[-n]]或Part[t,-n]First[t] Last[t]表示表t中的倒数第n个元素表示表t中的第一个元素 表示表t中的最后一个元素t[{n1,n2,…}]或Part[t,n1,n2…]] 表示由表t中第n1,n2,…元素组成的表t[[i,j]]表示表t中的第i个子表的第j个元素 【例1-8】已知t1 = {3,4,5,6,7,8,9},则有:t1[[3]] t1[[-3]] First[t1] Last[t1]t1[[{2, 4, 5, 7}]] 1.5.2 表的建立当表中的元素较少时,可以采用直接输入的形式:表变量名 = {元素1,元素2,…}来生成表,即在给出表名的同时又给出了表中的元素,但在更多的时候是要利用建表函数 Table 、 Range 和 Array 来生成。 1. 循环描述在利用建表函数时常常要用到循环描述。(1) 循环描述的一般形式是:{循环变量,循环初值,循环终值,步长}其执行过程是:循环变量从初值开始,按照所给步长逐步递增(或递减),直至达到或超过终值的界限为止。 循环变量、初值、终值和步长可为整数、有理数和实数。 常见的几种循环描述如下:{j,min,max,step} j从min开始到max,按步长step增加{j,min,max}{j,max}说明:当步长为1时可省略不写,初值min为1时可省略不写{max} 重复max次 除了上面的单重循环外,有时还要用到多重循环。多重循环是在写循环描述的地方连续写几个上面形式的循环描述,它们之间用逗号分开。例如{i,imin,imax},{j,jmin,jmax}表示一个关于变量i与j的二重循环描述,它表示i从imin开始到imax,且对每一个j值,j从jmin到jmax。 2. 建表函数利用建表函数来生成表是十分方便的。(1) 数值表建表函数Range,格式如下:Range[正整数n] 生成表{1,2,3,…,n}Range[m,n]Range[m,n,d]生成表{m,m+1,m+2,…,n} (m&n)从m开始按步长d递增,直到n的界限为止【例1-9】建数值表。Range[3, 9] Range[1, 2, 0.31] (2) 通项表建表函数Table,格式如下:Table[fi,{i,min,max,step}]说明:依照通项 fi的规律,i从min到max,step为步长, 当步长为1时省略。Table[f,max]说明:依照通项f的规律,给出max个元素的表。Table[fij,{i,imin,imax}, {j,jmin,jmax},…]说明:生成一个多维表。 【例1-10】建通项表。Table[i^2, {i, 1, 7}] Table[2 n, {n, 3, 12, 2}] Table[x+1, {5}] Table[Prime[k], {k, 10}]式中,Prime[k]为产生第k个素数的函数。Table[Random[], {3}]式中,Random[]为产生一个0与1之间随机数的函数。Table[Sin[x], {x, 0, 1, 0.3}] Table[m+n, {m, 3}, {n, 5}] (3) 特殊表建表函数Array,格式如下:Array[函数f,整数n]Array[函数f,{n1,n2,…}]【例1-11】建特殊表。Array[Sin, 4] N[%] Array[a, {2, 3}]其中第一句等价于Table[Sin[n], {n, 4}]第三句等价于Table[a[i, j], [i, 2], [j, 3]] 说明:凡能用函数Range与函数Array生成的表,都能用函 数 Table 生 成 , Mathematica 系 统 提 供 函 数 Range 与Array的目的是为了使用户有更多的方便与选择余地,我们 的重点是对函数Table的掌握与使用上。 1.5.3 表的运算表的运算主要包括表的结构运算与表的集合运算两部分。1. 表的结构运算在Mathematica系统中,当一个表t与一个标量a作四则运算时,表示将a与t中的每一个元素作一次运算,运算的结果 仍然是一个表。当两个表t1与t2进行加减运算时,首先要求t1与t2的长度相同(即t1与t2中元素的个数一样多),然后将t1与t2对应 元素相加减即可,运算的结果仍是一个表。 两个表的相乘、相除以及更一般的运算,我们将放到线性代数中去介绍。下面列出几个表的常见结构运算函数。Join[t1,t2,…] 将表tl,t2,…连成一个表Union[t1,t2,…]元素排序 Sort[t]合并几个表,去掉表中重复元素,然后对将表t中的元素按照标准顺序排序Union[t]Reverse[t] RotateLift[t,n]去掉表t中的重复元素后对元素排序将表t中元素的顺序倒过来 将表t中元素向左转移n个位置RotateRight[t,n]Apply[Plus,t] Apply[Times,t]将表t中元素向右转移n个位置将表t中所有元素加在一起 将表t中所有元素乘在一起 【 例 1-12】 已 知 t1 ={1 , 3 , 5 , 7 , 2 , 6 , 10} ;t2=Table[2n-1,{n,1,7}],则Join[t1, t2] Union[t1, t2] Sort[t1] Reverse[t1] RotateLeft[t2, 3] RotateRight[t2, 3]Apply[Plus, t1]Apply[Times, t1] 2. 表的集合运算数学概念中的集合“并”、“交”、“补”运算,引伸到Mathematica里,是定义在几个表之间的“并”、“交”、 “补”的运算,运算结果仍为表。其函数如下:Union[t1,t2,…] 若干表之“并”,由表t1,t2,…中所有不同元素组成 Intersection[t1,t2,…] 若干表的“交”,由表t1,t2,…中公共元素组成 Complement[t1,t2] 表t1与表t2的“补”。由t1中有而t2中没有的元素组成 【例1-13】已知t1 = {1,3,5, 7,2,6, 10};t2={1,3,5,7,9,11,13},则Union[t1, t2] Intersection[t1, t2] Complement[t1, t2] Complement[t2, t1] ?1.6函数Mathematica 中的函数可以分为两大类:一类是在数学中常见的并且给出了明确定义的函数,比如三角函数、反三 角函数等,可称之为数学函数; 另一类是在 Mathematica 里给出定义的,具有计算和操 作性质方面的函数,比如画图函数、方程求根函数等,可称之为操作函数。数学函数又可大致分为初等函数和非初等函数两种,下面 将分别作简单介绍。 1.6.1 基本初等函数与初等函数1. 基本初等函数中文名称 数学符号 Mathematica符号三角函数反三角函 数 双曲函数 反双曲函 数 幂函数sin x, cos x, tan xcot x, sec x, csc x arcsin x, arccos x, arctan x arccot x, arcsec x, arccsc x Sinh x, cosh x, tanh x coth x, sech x, csch x arcsinh x, arccosh x, arctanh x arccoth x1Sin[x], Cos[x], Tan[x]Cot[x], Sec[x], Csc[x] ArcSin[x], ArcCos[x], ArcTan[x] ArcCot[x], ArcSec[x], ArcCsc[x] Sinh[x], Cosh[x], Tanh[x] Coth[x], Sech[x], Csch[x] ArcSinh[x], ArcCosh[x], ArcTanh[x] ArcCoth[x], … Sqrt[x]x2 ( x)指数函数对数函数exlog x (自然对数,以e为底)Exp[x]Log[x]以上函数常被作为各种计算机语言库函数里的标准函数而被 调用。在Mathematica库函数里也将它们作为最基本的函数供用户使用。 2. 初等函数将常量、变量与基本初等函数经过有限次的四则运算以及有限次的函数复合(函数套函数),并且能用一个解析式子 表示的函数,称为初等函数。 等函数;1 例如: y ? 2 sin 3x ? cos x 2 , y ? log( e ?2 x ? 1 ? x 2 ) ,…均是初 3 y ?| x |, y ' ? x 2 ? y 2 , y ? ? sin x dx ,…所确定的函数均不是初 x等函数。显然,初等函数里包含了全部基本初等函数。在自然科学与工程技术中最常见的函数是初等函数,它占有十分重要的地位。 1.6.2 非初等函数与特殊函数凡不满足初等函数定义要求的函数,均可称为非初等函数。比如上面所列举的后 3个函数便是非初等函数,又如数学分 析中讲过的 Gamma 函数 ? (x) 与 Beta 函数 B(p , q) ,也都不 是初等函数,再如由下面微分方程 x2y& + xy' + (x2 – v2)y = 0与(1 – x2)y& – 2xy' + n(n + 1)y = 0 的解所确定的函数分别称为 Bessel函数与Legender函数,也都不是初等函数。因此都可将它们归属到非初等函数中。 有些非初等函数,例如Bessel函数、Legender函数,由于它们在数学物理问题中具有特殊的意义,又将它们从非初等函数中划分出一小类,叫做特殊函数类。 大致弄清初等函数与非初等函数的界限是必要的,因为它涉及到下面章节里一些问题的结果。比如某个不定积分是否可积,某个常微分方程是否有解等, 对于这些问题的明确回答,将会起到关键性的作用。 1.6.3 系统操作函数与运算函数由于处理和求解数学问题的需要,在 Mathematica 里专门设计了一大批具有求解和操作性质方面的函数。 比如后面第 2 章中的各种绘图函数,第 3 章中的各种符号 运算函数,第4章中的各种数值计算函数等,都可将它们归 属到操作或运算函数类中。这类操作运算函数同前面介绍过的数学函数有着明显的区别,数学函数常被作为处理的对象,而操作运算函数常是处 理的手段。 在一些计算机高级语言中,我们还常看到阶乘函数、取整函数、取余函数、随机函数等,也都是为了处理这些数学问题的需要而专门设计的,因此可以将它们归属到系统的运算 函数类中,然而根据不同的需要,有时系统又将它们放入到x的符号 =数学函数类中。下面列出的是几个最常见的这类函数:n! n!! Quotient[m,n] Mod[m,n] GCD[n1,n2,…] LCM[n1,n2,…] Prime[k] Random Random[Real,{a, b}] Abs[x] Sign[x] n的阶乘n(n-1)(n-2)…2· 1 n的双阶乘n(n-2)(n-4)… m/n的整数部分 m/n的余数部分 nl,n2,…的最大公因子 nl,n2,…的最小公倍数 第k个素数 产生一个0与1之间的随机数 产生一个a与b之间的随机数 x的绝对值? 1, ? ? 0, ?? 1, ? x?0 x?0 x?0 1.6.4 函数名的书写规则通过上面的举例读者容易看到,在 Mathematica 中函数名的书写规则可以归纳如下: (1) 函数名必须以大写字母开头,后面的字母小写,例如 Sin,Tan等。 当函数名可分成几个段时,每个段的开头字母都要大写,其后小写,例如ArcTan,FindRoot等。注:第8章介绍的自定义函数名的开头字母不必大写。 (2) 函数名是一个字符串,中间不允许有空格。 (3) 函数中的参数表是用方括号括起来,而不是用圆括号,这一点与数学习惯写法很不一致,希望特别注意。参数表用方括号而不用圆括号是为了避免在数学中用圆括 号有时的多义性引起的混淆,例如 k(z+y) 的含义是什么 ?代表常数k与变量 x+y相乘 ?或是代表以 x+y为变量的一个二元函 数 k(x+y)? 如 果 写 成 k[x+y] , 那 么 可 以 肯 定 它 代 表 Mathematica中的某一个函数。 (4) 有多个参数的函数,参数之间用逗号隔开。 【例1-13】在 7 、?、e三个实数之中求出最小者:Min[Sqrt[7], Pi, E]容易看到,函数名书写的上述规定必须首先符合标识符规定的要求,即所有的函数名也总是用标识符来书写的。 1.6.5 表达式的初步描述前面几节的讨论中已经涉及到表达式的概念,今后各章的介绍里还将继续涉及这一概念。 在 Mathematica 里处理问题的任何一个工具,任何一个 被处理的对象,以及任何一个完整的输入都将是表达式,可 以说,在Mathematica里无处不遇到它。然而要给表达式下一个明确的定义却是十分困难的。为了后面的需要,我们不妨先给表达式一个初步的描述。 表达式可以分为两类,一类是简单表达式,另一类是复杂表达式。简单表达式没有内部结构,不能再分解为更简单的成分, 例如数、变量名、字符串等。复杂表达式是具有一定结构的,能够分解为一些简单表达式的组合,例如a+b,c * Sin[x]等。 因此可以将表达式初步描述如下:表达式是由常量、变量、 函数、命令、运算符、标点以及括号按一定规则组成的实体。 如表1-2中给出的几个例子就是常见的表达式。 表达式 x Tan[x] a+b x*y*z数学含义 输入一个变量 输入正切函数 将两个常量相加 将三个变量相乘Sin[x]/Cos[x]FindRoot[x^2-5*x+6 == 0,{x,1}] Plot[Exp[-x],{x,1,4}]将两个三角函数相除求二次方程的一个实根 画出指数函数在[1,4]上的图形 第2章 图 形 绘 制 这里的图形是指二维欧氏空间E2,与三维欧氏空间E3中的图形,即通常所说的平面图形与空间图形。本章讨论的主要对象是 E2中的曲线(平面曲线)、E3中的曲 线(空间曲线)与E3中的曲面,它们在数学里都有明确的定义。至于有些Mathematica书里提到的特殊图形,例如E2中的条形图、扇形图,E3中的多棱面(由多张平面拼装而成的面 ) 等,因为用到的方面很窄,为了节省篇幅,就不介绍了。 2.1 曲线与曲面表示法 2.2 平面曲线的绘制法 2.3 平面图形的可选项 2.4 空间曲线的绘制法 2.5 曲面的绘制法 2.1 曲线与曲面表示法2.1.1 平面曲线表示法2.1.2 空间曲线表示法2.1.3 曲面表示法 2.1.1 平面曲线表示法1. 直角坐标显式(简称显式)通常总是用显式y = f(x)来表示单值曲线,即在f(x)有定义的范围内任给一个x值,只有一个y值与之对应的曲线。例如:y = e-xsinx,y = 4 + 2x – x3等。 2. 直角坐标隐式(简称隐式)隐式F(x,y) = 0通常用来表示多值曲线(含闭合曲线),即在F(x,y) = 0有意义的范围内,任给一个x值,总有多个y值 存在的曲线,其中也包括闭合曲线。 例如:x2 + y2 = 9(圆),x2 / 3+y2 / 3 = a2 / 3(星形线)等。 3. 参数式参数式:z = x(t),y = y(t)也常用来表示多值曲线(含闭合曲线),使得对问题的分析与讨论比隐式更加简单方便。 例如:x = 3cost,y = 3sint(圆);x =acos3t,y = asin3t(星 形线)等。 4. 极坐标式极坐标式? = ? (? )用来表示向径?随转角?依某种规律而变化的那些曲线是十分方便的。 例如1 2? (螺旋线), ?? e 3 ? = b – acos?,a & b &? (蚶线)等。5. 列表式(又称数据形式,或称离散点形式)例如三角函数表,对数函数表,实验数据表等。6. 图形式(画出曲线的图形) 例如正弦曲线,对数曲线,实验曲线等。 平面曲线的上述 6 种表现形式,在一定的条件下是可以互相转化的。例如显式y = f(x)总可以转化为隐式 F(x,y) ? f(x) – y = 0,而隐式必须在一定的条件下才能转化为显式等。本章的主要任务就是要将形式(1) - (5)转化为形式(6),也 就是在高等数学中所说的已知曲线方程或数据怎样画出曲线 的问题。在那里也讲述曲线画图的若干方法,但通常是一个 比较复杂的过程。Mathematica为我们将这个过程编制为计算机程序,给使用者提供了极大的方便。 2.1.2 空间曲线表示法1. 参数形式x = x(t),y = y(t),z = z(t) 例如x = aetcost,y = betsint,z = cet等。 2. 交截形式? f ( x, y , z ) ? 0 ? ?? ( x, y , z ) ? 0 这是用两张曲面的交线来表示空间曲线。在理论研究与实际应用中,常常是通过引入参数 t 将交截式转化为参数式来讨论问题的。 2.1.3 曲面表示法(1) 直角坐标显式(简称显式):z = f(x,y)(2) 直角坐标隐式(简称隐式):F(x,y,z) = 0 (3) 参数形式:x = x(u,v),y = y(u,v),z = z(u,v) (4) 数据形式:即是将曲面上的点表示为 x = {xi},y = {yj},z = {zij} (i = 1,2,…,m;j = 1,2,…,n)的形式,其中 xi 与 yj为向量 x 与y中的元素, zij 为矩阵 z 中的元素。 (5) 图形形式(画出曲面的图形)曲面表示的上述5 种形式在一定条件下也是可以互相转化的,在实际问题中用得最多的是(1),(3),(5)三种形式。 2.2 平面曲线的绘制法2.2.1 显式 2.2.2 参数式 2.2.3 隐式 2.2.4 极坐标式2.2.5 数据形式 2.2.1 显式显式y = f (x)绘图函数Plot的调用格式如下:Plot[f(x),{x,x1,x2},可选项] Plot[{f1(x),f2(x),…},{x,x1,x2},可选项]格式 1是绘制一条平面曲线,格式 2 是绘制 ( 在同一坐标面上的)多条曲线。 式 中 Plot 为 平 面 曲 线 显 式 的 绘 图 函 数 , f(x) , f1(x) , f2(x),…为给定的平面曲线显式y = f(x)的右端项,x为自变 量,x1为x的下限, x2为x的上限,即有 x1≤x≤x2,亦即给定的绘图范围。 可选项是绘图中进一步考虑问题时需要的一些参数。比如绘图时两坐标轴上的比例,将曲线画成虚线或者实线,取什么颜色等等。 在绘图时使用者可以选用可选项,也可不选用,或者部分选用。如果不选用,那么Plot函数就会自动地取一组内部默认值 以后,正常地画出曲线来,如果选用或部分选用,我们将留 待稍后再作介绍。 显式画图的具体步骤举例如下:【例2-1】绘制函数 y ? x sin? 在区间-2 ≤ x ≤ 2上的图形。 xPlot[x Sin[Pi/x], {x, -2, 2} ] (*未用可选项,系统自动取默认值*)运行后可得图形和字符串如图 2-1 所示,其中 Graphics 表 明图形的表达式已经生成。2 1.5 1 0.5-2-1 -0.512图2-1 ,y2 = x,y3 = - x,指定区间为 y1 ? x sin x [-2,2],试在同一坐标平面上画出这3条曲线。 【例2-2】已知Plot[{x Sin[Pi/x], x, -x}, {x, -2, 2}]?运行后输出结果如图所示。 2.2.2 参数式参数式:x = x(t),y = y(t)绘图函数的调用格式如下:ParametricPlot[{x(t), y(t)}, {t, t1, t2}, 可选项] ParametricPlot[{{x1(t),yl(t)},{x2(t),y2(t)},…},{t,t1,t2},可选项]格式 1 绘制一条参数曲线 ,格式 2 绘制多条参数曲线 ,ParametricPlot 是参数曲线的绘制函数。 {x(t) , y(t)} 是曲线 参数方程,{t,t1,t2}是参数t的指定范围t1 ≤ t ≤ t2。 【例2-3】绘制x = a sinmt,y = a cosnt在0≤ t ≤2?上的图形,式中可取a = 8,m = 2,n = 5。ParametricPlot[{8 Sin[2 t], 8 Cos[5t ]}, {t, 0, 2 Pi}]运行后可得输出结果如图2-3所示。7.5 5 2.5-7.5-5-2.5 -2.5 -52.557.5图2-3-7.5作为练习,读者不妨改动式中的 m 与n值,比如取 (m, n) = (2 , 3) , (2 , 5) , (2 , 7) , (3 , 5) , (3 , 7) , (4 , 5) , (4 ,7),…(14,15)等,可以生成多种有趣的曲线。 2.2.3 隐式隐式F(x,y) = 0绘图函数的调用格式如下:ImplicitPlot[F[x,y] == 0,{x,x1,x2},可选项]式 中 ImplicitPlot 为 隐 式 绘 图 函 数 , = = 为 等 号 的Mathematica 书写法,列表 {x,x1,x2} 的含义是 x1≤x≤x2 ,而 x为自变量。 在Mathematica里,对于某些使用频率不高的绘图函数, 例如隐式绘图函数,极坐标绘图函数等,没有将它们放入系 统的内部函数中,而是将它们放置于外部函数的图形扩展程序 包 中 , 使 用 时 必 须 先 打 开 这 个 程 序 包 &&Graphics`Graphics`,或者&&Graphics`,然后才能调用其中的绘图函 数,请看下面的例子。 【例2-4】绘制隐函数x4 + y4 – 18(x2 + y2) + 14 = 0在区间 – 6≤ x ≤ 6上的图形。&& Graphics` ImplicitPlot[x^4 + y^4 – 18 (x^2 + y^2) + 14 ==0, {x, -6, 6}]运行后可得输出结果如图2-3所示。42-4-224-2-4 【例2-5】绘制隐函数(x2 + y2)3 - 16(x4 + y4) + 4 = 0在区间–6≤x≤6上的图形。&& Graphics` ImplicitPlot[(x^2 + y^2)^3 – 16 (x^4 + y^4) + 4 ==0, {x, -6, 6}]运行后可得输出结果如图2-4所示。42-4-224-2-4 2.2.4 极坐标式极坐标式? = ?(?)绘图函数的调用格式如下:PolarPlot[?(?),{?,?1,?2}]上面表达式中PolarPlot为极坐标式绘图函数,?(? )为? = ? (? )的右端表达式,列表{?,?1,?2}表示?1≤?≤?2。 极坐标式绘图的具体步骤举例如下:【例2-6】绘制函数? =1 – 2cos?在区间0≤?&2?上的图形。&& Graphics` PolarPlot[1 – 2 Cos[t], {t, 0, 2 Pi}]运行后可得输出结果如图2-5所示。1.510.5-3-2.5-2-1.5-1-0.5 -0.5-1图2-5-1.5 【例2-7】绘制函数? = 2cos3?在区间0≤?&3?上的图形。&& Graphics`PolarPlot[2 Cos[3 t], {t, 0, 3 Pi}]运行后可得输出结果如图2-6所示。1.510.5-1-0.5 -0.50.511.52-1-1.5 2.2.5 数据形式数据形式又称列表形式,或称离散点形式,其绘图调用格式如下:ListPlot[{x1,y1},{x2,y2},…,{xn,yn},可选项]式中ListPlot为数据形式的绘图函数;{xi,yi},i = 1, 2, …, n为离散点的直角坐标; 可选项如果不选用,即是取了默认值,则画出的图形仅是 一串点列; 如果将可选项中的 PlotJoined 改为 True( 真 ) ,则画出的图形是上述点列每相邻两点连接而成的折线。关于可选项,稍后我们再作介绍。 【例2-8】已知xi = {1,2,3,4,5,6,7,8},yi = {2.3,4.9,6.4,7.0,6.5,6.8,8.0,10.6}。试以{xi,yi},i = 1,2,…,8为坐标画出点列,并连接点列为折线。P = {{1,2.3},{2, 4.9},{3, 6.4},{4, 7.0},{5, 6.5},{6, 6.8},{7, 8.0},{8,10.6}};ListPlot[P]运行后可得输出结果如图2-7所示:ListPlot[P, PlotJoined-&True]运行后可得输出结果如图2-8所示,101088664423456782345678图2-7图2-8 作为练习,读者可以利用曲线表示法之间的互相转化来绘制一些图形例如可以将极坐标线? = ?(?)转化为参数式 x = ?(?)cos?,y = ?(?)sin?来绘出? = 1 – 2cos?的图形等。再者可以将隐函数f(x,y) = 0图形看作是曲面z = f(x,y)上 的等高线? f ( x, y ) ? z 0 ? , z ? 0 ? 0 然后利用后面2.5.7节要讲的等高线画法来画出x4 + y4 – 18(x2+ y2) + 14 = 0的图形等。这些练习可以帮助读者对各种形式曲线画法的理解,并能 提高绘制图形的灵活性与举一反三的能力,有兴趣的读者不 妨试一试。 2.3 平面图形的可选项前一节所举各例中均没有直接使用可选项,而是让系统将可选项自动取默认值来画出图形的,然而在有些情况下这样 做难于达到预期的结果,需要对某些默认值进行必要的修改 之后,才能得到理想的图形。 在Mathematica各种绘图函数里,设置的可选项内容很多,本书无法作全面介绍,按照既实用又节省的原则,我们挑选其中一部分较常用的内容在本节里作简要说明,没有纳入的 部分如果用到,读者可以到系统里查询,下面先将常用的可 选项列表介绍如下。 2.3 平面图形的可选项2.3.1 可选项列表2.3.2 可选项举例2.3.3 平面图形的重现与组合 2.3.1 可选项列表可选项名称 PlotRange 系统默认值 Automatic,即系统根据情况自 定 含义 作图的范围,可取{x1,x2},也可取{y1,y2},以及 {{x1,x2},{y1,y2}},若取All,则表示画出函数值的 全部图形AspectRatioAxes PlodLabel1/GoldenRatio,即y:x = 1:1.6180Automatic,表示要画坐标轴, 并且自动确定坐标中心位置 None,表示不做标记图形的高宽比,可以为AspectRatio指定一个任何其他 的数。GoldenRatio = 1.6180是否画坐标轴,以及坐标轴的中心放在什么位置 在图形上方居中位置增加标记AxesLabelTicks Frame GridLines PlotPoints MaxBend PlotDivision PlotStyleNone,表示不做标记Automatica自动确定坐标轴刻 度 False None 25 10 20 Automatic自动用黑色实线作图在坐标轴上增加标记规定坐标轴上刻度的位置,如果用None则不标刻度 是否画边框 是否加网格线 画图时基本的最少取点数 相邻两段曲线之间的最大扭转角,以度为单位 画图时在基本最少点数上增加的细分点数 选用什么颜色、线型作图(具体内容见注) 注:PlotStyle-&GrayLevel[i],i为灰度比值,0≤i≤1,0为黑色,1为白色;RGBColor[r,g,b],红,绿,蓝三色强度,0≤r,g,b≤1; Thickness[t] ,t为线条宽度,以占整个图的宽度比来量度;Dashing[{d1,d2,…}],用实虚线段序列画图,实虚线的长依次为d1,d2,… 上述可选项按照其功能可分为两类: 第一类(1-8),用于说明如何把一个构造好的图形显示出来, 包括若干附加的东西,比如坐标轴,边框,网格线等;第二类 (9-12) ,用于生成图形的基本元素,比如计算基本样点,将样点连接成一条折线等。 在使用可选项时,一方面要根据图形的需要,另一方面要注意可选项上述功能的特征。每一可选项都有一个名字,使用时必须给他们指定适当的 值,其使用形式是:可选项名 - & 可选项值 2.3.2 可选项举例为了进一步弄清可选项的内容和用法,再举实例如下。【例3-1】绘制参数圆x = acost,y = asint,a = 3,0≤t≤2?的 图形。ParametricPlot[{3 Cos[t], 3 Sin[t]}, {t, 0, 2 Pi}]运行后可得输出结果如图2-9所示。3 2 1-3-2-1 -1 -2 -3123图2-9 图形有些略扁,不像圆而像椭圆,原因是图形可选项中的高宽比AspectRatio(y/x)采用了默认值1/1.6180,如果将高宽比改为1/1,即:ParametricPlot[{3 Cos[t], 3 Sin[t]}, {t, 0, 2 Pi}, AspectRatio -&1/1]运行后可得输出结果如图2-10所示。3 21-3-2-1123-1-2-3这样得到的图形便是一个正常的圆了,读者不妨将高宽比再改为2/1与1/2,看看结果如何? 【例3-2】绘制参数圆x = 8sin2t,y = 8cos5t,0≤t≤2?,在曲线上不画坐标轴,但要加上边框,并在曲线上方加上标记。ParametricPlot[{8 Sin[2 t], 8 Cos[5 t]}, {t, 0, 2 Pi}, Axes -&None, Frame -& True, PlotLabel-&&x = 8 Sin2t, y = 8 Cos5t&]运行后可得输出结果如图2-11所示。x = 8Sin2t ,y = 8 Cos5t 7.5 5 2.5 0 -2.5 -5 -7.5图2-11-7.5-5-2.502.557.5 【例3-3】绘制隐函数(x2 + y2)3 – 16(x4 + y4) + 14 = 0在-6≤x≤6上的图形,加上边框,并加网格线。&& Graphics` ImplicitPlot[(x^2 + y^2)^3 – 16 (x^4 + y^4) + 4 ==0, {x, -6, 6},Frame-&True, GridLines-&Automatic]运行后可得输出结果如图2-12所示。420-2图2-12-4 -4 -2 0 2 4 【例3-4】绘制隐函数x4 – y4 + xy = 0在-1≤x≤1上的图形,要求加上坐标轴标记。&& Graphics` ImplicitPlot[x^4-y^4+x y ==0, {x, -1, 1}, AxesLabel-&{&xAxes&,&x^4-y^4+x*y=0&}]运行后可得输出结果如图2-13所示。x^4 - y^4 + x * y = 010.5-1-0.50.51xAxes-0.5-1 【例3-5】给定函数y1 = sinx与y2=cosx及区间0≤x≤2?,要求:(1) 在0≤x≤2?上用彩色线画出yl = sinx的图形;(2) 在0≤x≤2?上用实虚线画出y2 = cosx的图形; (3) 在0≤z≤2?上,将上述两曲线画在同一坐标平面内。Plot[Sin[x], {x, 0, 2 Pi}, PlotStyle-&{RGBColor[1, 0, 1]}]Plot[Cos[x], {x, 0, 2 Pi}, PlotStyle-&{Dashing[{0.07, 0.03}]}] Plot[{Sin[x], Cos[x]}, {x, 0, 2 Pi}, PlotStyle-&{RGBColor[1, 0, 1],Dashing[{0.07, 0.03}]}]1110.50.50.51 -0.523456 -0.5123456 -0.5123456-1图2-14-1-1 附注:① RGBColor[r,g,b]中的3个参数r、g、b分别代表红、绿、蓝3种颜色,其取值范围均在 [0,1]之间,即0≤r,g,b≤1,值的大小表示色彩的强度。 ② Dashing[d1,d2,…]中的参数d1,d2…代表实虚线的分段方式,交替地以长度d1,黑色实线段,长度d2空白虚线段 等 画 实 虚 线 , 参 数 的 取 值 范 围 均 小 于 1 , 即 有 0≤d1 , d2…≤1。 y1= tanx在x=?/2处为无穷型间断点,y2 = sin(1/x)在x = 0处为无穷次振荡点,y3 = sintanx – tansinx在x = ±?/2处也为无穷次振荡点, y4 = xlogx在x = 0处,函数值不确定(为0· ?)等等,这些点可以统称为函数的奇异点或非正常点。对于带有上述奇异点的函数,Mathematica经过适当的处 理后,仍能画出它们的图形。 比如遇有无穷型间断点时,系统将会自动截取它的有限部 分;遇有剧烈振荡值点时,系统会自动加密画图时的点数;遇有不确定值点时,将会用极限值代替函数值以确定其值等等。 这些地方都显示了 Mathematica系统考虑的周密与设计的 完善,给使用者提供了极大的方便。 【例3-6】已知y3 = sintanx – tansinx,试观察y3在区间[- ?,?],[1,2]及[1.5,1.6]上的图形。y3 = Sin[Tan[x]] - Tan[Sin[x]]; Plot[y3, {x, -Pi, Pi}]Plot[y3, {x, 1, 2}]Plot[y3, {x, 1.5, 1.6}]运行后依次可得结果如图 2-15( 左 ) 、图 2-15( 中) 、图 2-15( 右 ) 所示。-0.5 2 -0.5 1 -1 -1.5 -3 -2 -1 -1 -2 -2 -2.5 -2.5 1.52 1.54 1.56 1.58 1.6 1 2 3 -1.5 1.2 1.4 1.6 1.8 2 -1图2-15 2.3.3 平面图形的重现与组合用Mathematica系统绘制图形的过程大致可分为两步,第 一步是构造图形的基本元素,比如计算图形上的基本样点, 把样点连接成折线等;第二步是将构造好的图形显示出来, 同时包含若干附加的东西,比如加上坐标轴、网格线、边框 等。 每次图形绘制完毕之后,图形的全部信息都将被保存下来, 当用户需要再次画出这些图形时,只需调用重现函数 Show 即可,不必再去重复原来的第一步和第二步。 如果对原来的图形感到还有些不满意,例如范围不合适, 比例不合适或是坐标轴不合适时,那么只须对可选项中第一 类相应的参数值作些调整即可,不必再去重新构造图形的基 本元素。这样做可以有效地节省系统和用户的时间。 1. Show函数的功能之一是显示已经做好的图形。【例3-7】绘制函数y = sinx在- ?≤x≤?上的图形。Plot[Sin[x], {x, -Pi, Pi}]或者将图形存放于变量C1中:C1 = Plot[Sin[x], {x, -Pi, Pi}]运行后可得图形如下。当需要再次画出y = sinx在-?≤x≤?上的图形时,只须调用一下Show函数即可。Show[%]16 50.54或者Show[C1]3-3-2-11232-0.51-1-3-2-1123如果想要将图形的范围-?≤x≤?改为0≤x≤2?,有Show[C1, PlotRange-&{0, 2 Pi}] 2. Show函数的功能之二是能够将已经做好的多个图形显示在同一坐标系里,实现多个图形的组合。【例 3-8】在同一区间 [0 , 2?] 上给定函数 y1 = sinx , y2 = sin(x-1),y3 = sin(x+1),y4 = sin2x,要求用彩色线(红蓝线)画出y1,灰度线(黑白线)画出y2,用宽条线画出y3,用实虚线(点划线)画出y4,然后将y1,y2,y3,y4组合在同一 坐标系里。 首先分别画出y1,y2,y3,y4如下:C1 = Plot[Sin[x], {x, 0, 2 Pi}, PlotStyle-& RGBColor[1, 0, 1]];C2 = Plot[Sin[x – 1], {x, 0, 2 Pi}, PlotStyle-& GrayLevel[0.6]]; C3 = Plot[Sin[x + 1], {x, 0, 2 Pi}, PlotStyle-& Thickness[0.009]]; C4 = Plot[Sin[2 x], {x, 0, 2 Pi}, PlotStyle-& Dashing[{0.01, 0.02, 0.04}]];略去上面的四条单个曲线不必显示,其组合图形如下:Show[C1, C2, C3, C4]运行后可得输出结果如图2-17所示。1 0.51 -0.523456-1图2-17 如果想要将图形C1,C2,C3组成一个行,可以:Show[GraphicsArray[{C1, C2, C3}]]运行后可得输出结果如图2-18所示。 如果想要将图形C1,C2,C3,C4组合成一个阵,可以:Show[GraphicsArray[{{C1, C2}, {C3, C4}}]]运行后可得输出结果如图2-19所示。 上述关于Show函数的功能,我们所举的3个例子都是用于 显式平面曲线的,对于隐式、参数式等平面曲线,以及空间 曲线,还有曲面等几乎所有作图命令的重现与组合, Show 函数均是适用的。1 0.5 -0.5 1 2 3 4 5 6 -1 1 0.5 -0.5 1 2 3 4 5 6 -1 1 0.5 -0.5 1 2 3 4 5 6 -11 0.5 1 2 3 4 5 6 1 0.5 1 2 3 4 5 6 -0.5 -1 1 0.5 1 2 3 4 5 6 -0.5 -1 1 0.5 1 2 3 4 5 6-0.5 -1-0.5 -1 2.4 空间曲线的绘制法空间曲线的交截形式很少用到,通常总是以参数形式给出,绘制空间曲线自然应取参数形式: x = x(t),y = y(t),z = z(t)。 参数形式空间曲线绘图函数的调用格式如下:ParametricPlot3D[{x(t),y(t),z(t)},{t,t1,t2},可选项]式中ParametricPlot3D为空间参数式绘图函数,第一个表{x(t) , y(t) , z(t)} 为空间曲线参数方程的右端函数,第二个 表{t,t1,t2}为曲线的参数t及其下限t1,上限t2。可选项的内容与含义同平面曲线的基本相似,不同部分将在2.5.4节再作介绍。 【例4-1】绘制柱面螺旋线x = 4cost,y = 4sint,z = 1.5t,在0≤t≤8?上的图形。ParametricPlot3D[{4 Cos[t], 4 Sin[t], 1.5 t}, {t, 0, 8 Pi}]式中的可选项没有出现,而是全部采用系统内部设定的默认值,运行后可得输出结果如图2-20左所示。20-4 4 -2 0 2 2 410 0 -10 -20-2 -4030302020 10100 -200-10 0 10 20【例4-2】绘制锥面螺旋线x = tcost,y = t sint,z = 1.5t,在0≤t≤8?上的图形。ParametricPlot3D[{t Cos[t], t Sin[t], 1.5 t}, {t, 0, 8 Pi}]运行后可得输出结果如图2-20右所示。 2.5 曲面的绘制法曲面的表示通常采用显式z = f(x,y)或参数式x = x(u,v),y = y(u,v),z = z(u,v)。 单值曲面一般用显式,多值曲面(含闭合曲面)一般用参数式, 隐式F(x,y,z)=0也常用来表示多值曲面,但Mathematica系统 中没有为我们提供有隐式曲面的画图函数。 2.5 曲面的绘制法2.5.1 显式2.5.2 参数式2.5.3 数据形式2.5.4 空间图形的可选项2.5.5 空间图形的重现与组合2.5.6 二曲面相交与空间图形在坐标 面上的投影 2.5.7 等高线及密度图 2.5.1 显式显式曲面z = f (x,y)绘图函数的调用格式如下:Plot3D[f(x,y),{x,x1,x2},{y,y1,y2},可选项]式中Plot3D为空间显式绘图函数,f(x, y)为显式曲面的表达式,x与y为自变量,x1与x2为x的下限和上限,即有x1≤x≤x2; y1与y2为y的下限和上限,即有yl≤y≤y2, 可选项的内容与含义同平面曲线的大致相似,不同部分将 在2.5.4节中再作介绍。 【例5-1】绘制函数z = x4 + y4 – 18(x2 + y2)在区域-4≤x≤4,-4≤y≤4上的图形。Plot3D[x^4+y^4 – 18 (x^2 + y^2), {x, -4, 4}, {y, -4, 4}]式中可选项没有出现,全部采用了系统内部的默认值,运行后可得输出结果如图2-21所示。0 -50 -100 -150 -4 -2 0 2 4 -4 -2 0 2 41 0.75 0.5 0.25 0 -2 -1 0 1 2 -2 -1 0 1 2图2-21图2-22【例5-2】绘制函数在区域-2≤x≤2,-2≤y≤2上的图形。Plot3D[Exp[-x^2-y^2], {x, -2, 2}, {y, -2, 2}]运行后可得输出结果如图2-22所示。 2.5.2 参数式参数曲面x = x(u,v),y = y(u,v),z = z(u,v)绘图函数的调用格式如下:ParametricPlot3D[{x(u , v), y(u , v), z(u , v)}, {u, u1, u2}, {v, v1,v2},可选项]式中ParametricPlot3D为空间参数式绘图函数, x(u,v),y(u,v),z(u,v)为参数式曲面的表达式, u 与 v 为 参 变 量 , 变 量 u 的 下 限 为 u1 , 上 限 为 u2 , 即 有 u1≤u≤u2,变量v的下限为v1,上限为v2,即有v1≤v≤v2,可选项的内容与含义同平面曲线的基本相似,不同部分将 在2.5.4节中再作介绍。 【例5-3】绘制螺旋面x = ucosv,y = usinv,z = au + bv,在范围-3≤u≤3,0≤v≤2?上的图形,可取a = 0,b = 1。a = 0; b = 1; x[u_, v_] := u Cos[v];y[u_, v_] := u Sin[v];z[u_, v_] := a u + ParametricPlot3D[{x[u, v], y[u, v], z[u, v]}, {u, -3, 3}, {v, 0, 2 Pi}]运行后可得图2-23所示。-2 6 42 020图2-23-2 0 2当a = 0时,称为正螺面,当a ? 0时,称为斜螺面。 作为练习,读者不妨在上面式子中将a = 0换为a = 1.2,看看斜螺面的样子,式中应用了自定义函数符号 x[u_ , v_] , y[u_ , v_] , z[u_ , v_],有关情况请参看第8章中8.1.2节的内容。 【例 5-4】绘制螺管面 x=(R+rcosu)cosv , y=(R+rcosu)sinv ,z=rsinu+bv,在范围0≤u≤2?,0≤v≤3?上的图形。式中 R 为大圆半径, r 为小圆半径, b 为小圆沿 z 轴移动的 速度。不妨取R = 8,r = 3,b = 3。R = 8; r = 3; b = 3;x = (R + r Cos[u]) Cos[v]; y = (R + r Cos[u]) Sin[v];z = r Sin[u] +ParametricPlot3D[{x, y, z}, {u, 0, 2 Pi}, {v, 0, 3 Pi}]-5 10 -10 5 0 -5 0 5 10运行后可得图2-24所示。图2-24-10 3020100如果令b = 0则可得到圆环面,读者不妨一试。 【例5-5】绘制高维莫比乌斯曲面:? x ? (3 ? cos( t / 2) sin u ? sin( t / 2) sin 2u ) cos t ? ? y ? (3 ? cos( t / 2) sin u ? sin( t / 2) sin 2u ) sin t ? z ? sin( t / 2) sin u ? cos( t / 2) sin 2u ? 在范围0≤u≤2?,0≤t≤2?上的图形。x = (3 + Cos[t/2] Sin[u] – Sin[t/2] Sin[2 u]) Cos[t]; y = (3 + Cos[t/2] Sin[u] – Sin[t/2] Sin[2 u]) Sin[t]; z = Sin[t/2] Sin[u] + Cos[t/2] Sin[2 u]; ParametricPlot3D[{x, y, z}, {u, 0, 2 Pi}, {t, 0, 2 Pi}, Boxed&False, Axes-&False, PlotPoints-&30]运行后可得图2-25所示。 在上面例子的可选项中选用了 3项,是为了去掉方框,去掉坐标轴,加密了连线中的点数,让图形更加美观一些关于曲面的可选项,可参看本章2.5.4节的内容。 通过上面的例子,读者不难看到,利用参数方程可以表达许多十分复杂的曲面,而绘图函数又具有十分强大的参数绘图功能,这给我们绘制曲面图形提供了极大的方便。 2.5.3 数据形式如果已知某矩形区域 x1≤x≤x2 , y1≤y≤y2 ,网格点 (i , j) 上曲面的高度值 zij ,则可以利用 ListPlot3D函数绘制出此数据 曲面的图形。 【 例 5-6】 已 知 4?5 个 zij 值 {0,1,4,9,16} , {1,2,5,10,17} , {2,3,6,11,18},{3,4,7,12,19},试绘制该曲面的图形。Ta = {{0, 1, 4, 9, 16}, {1, 2, 5, 10, 17}, {2, 3, 6, 11, 18}, {3, 4, 7, 12,19}}; ListPlot3D[Ta]运行后可得输出结果如图2-26所示。15 10 5 0 1 2 3 4 5 1 2 34 其中数据 zij 可以由表达式 z = x + y2 在矩形区域 0≤x≤4 ,0≤y≤5上以步长为1划分网格生成的二维数据表得到,即取Ta = Table[x + y^2, {x, 0, 4, 1}, {y, 0, 5, 1}] 【例5-7】已知5?5个zij值的数据如下:{100 , 100 , 100 , 100 , 100} , {105 , 120 , 122 , 125 ,122} , {110 , 130, 155 , 157 , 130} , {115 , 133 , 157 , 160, 140},{113,132,149,154,128}试绘制该数据曲面的图形。Tb = {{100, 100, 100, 100, 100}, {105, 120, 122, 125, 122}, {110,

我要回帖

更多关于 三角函数值 的文章

 

随机推荐