Mathematic入门教程(整理版)_第1页
Mathematic入门教程(整理版)_第2页
Mathematic入门教程(整理版)_第3页
Mathematic入门教程(整理版)_第4页
Mathematic入门教程(整理版)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

(1)简介 数学系给本科生开设一门课: 符号计算系统, 主要简单讲授 mathematica(以下简称math)软件的使用及其编程,赶兴趣的同学可以找本math书以求更深入的了解. 我们平日用到编程语言时, 大家都知道编程中用到的整型, 实型, 甚至双精度数, 都只是一个近似的数, 其精度有限, 有 效数字有限, 在很多时候达不到实际需要的要求. 符号计算与 数值计算的区别就在于符号计算以准确值记录计算的每一步的 结果, 如果需要时, 可以将精确表示按需要计算成任意位数的 小数表示出来(只要机器内存足够大). 最常见的符号计算系统有maple, mathematica, redues等, 这些软件各有侧重, 比如,maple内存管理及速度比math好, 但 是图形方面不如math; redues没找到, 没用过, 未明; 而用得 较多的matlab编程环境特好, 和C语言接口极其简单, 遗憾的是 它不是符号计算, 只是数值计算. 所以, 就实用而全面来说, math是一个很好用的软件. math软件不仅能够进行一般的+-*/及科学函数如Sin, Log 等计算, 而且能进行因式分解, 求导, 积分, 幂级数展开, 求 特征值等符号计算, 并且, math有较强的图元作图, 函数作图, 三维作图及动画功能. (2)mathematica入门 mathematica自发布以来, 目前比较常见的有math 1.2 for DOS, math 2.2 for Windows, math 3.0 for win95, math 3.0 for UNIX. DOS下的math的好处就是系统小, 对机器要求低, 在386机 器4M内存下就能运行得很好(机器再低点也是可以用的, 比如 说286/2M). 在DOS下直接键入math即可进入math系统, 出现的提示符In1:=, 这时就可以进行计算了, 键入math函 数, 回车即可进行运算. 如果输入的Quit, 则退出math. 这里 要注意的是, math区分大小写的, 一般math的函数均以大写字 母开始的. windows下的math对机器要求就要高一些了, math3.0更是 庞大, 安装完毕有100M之多(2.2大约十多兆). 同windows下的 其他软件一样, math可以双击图标运行, 在File菜单下有退出 这一项. windows下的math有其优越性, 就是可以在windows下 随心所欲地拷贝粘贴图形. math3.0更是能输入和显示诸如希腊 字母, 积分符号, 指数等数学符号. DOS的math与windows下的 一个区别是DOS的以回车结束一句输入, 而windows的以 +结束一句输入. DOS下的提示符显示为In数字:=, 而 windows下在结束输入后才显示出In数字:=及Out数字:=字样. (Out为输出提示符) 下面试试几个例子:(In数字:=为提示符, 不用键入) In1:= 2100 计算2的100次方 In2:= s=3,7,9,7,4,3,1,3,8 定义矩阵s In3:= Eigenvaluess 计算s的特征值 In4:= PlotSinx,x,0,Pi 在0,Pi间画Sin In5:= PlotCosx,x,0,Pi Cos In6:= Plot3DSinxSiny,x,0,1,y,0,2 三维作图 以In6为例说明: math的函数都以大写字母开头的单词 为函数名, Plot3D, Plot, Eigenvalues, Sin等, 常数也是如 此, 如Pi. 函数名后的参数用括起, 逗号隔开. math的输出可以作为函数的输入对象, 你可以再试一个: In7:=Show%,% 这里一个%代表上一个输出, 两个代表 上两个. 也可以直接用Outn代表第n个输出. 这里需要补充的是 !command 执行DOS命令 ?name 关于name(函数等)的信息(可以使用通配符) ?name 关于name的额外信息 (3)基本计算1. 算术运算符 +加-减*乘/除指数 (乘也可用空格) Nexpr或expr /N 计算expr的数值(6位有效数字) Nexpr, n n表示小数的位数 2. 数学函数 Sqrtx x开方 Expx e的x方 Logx x的自然对数 Logb,x 以b为底, x的对数 Sinx, Cosx, Tanx, ArcSinx, ArcCosx 三角函数 Absx |x| Roundx 离x最近的整数 Floorx 不超过x的最大整数 Quotientn,m n/m的整数部分 Modn,m n/m的余数 Random 0,1间随机数 Maxx,y,. Minx,y,. 最大数和最小数 3. 常数 Pi Pi=3.141592653589793. E e=2.71828. Degree Pi/180 I i=Sqrt-1 Infinity 无穷大 Catalan Catalan常数.=0.915966 ComplexInfinity 复无穷 DirectedInfinity 有向的无穷 EulerGamma 欧拉常数gamma=0.5772216 GoldenRatio 黄金分割(Sqrt5-1)/2 Indeterminate 不定值 4. 逻辑运算符 =, !=, , =, , value 将式中x代换为value expr /. x-xval, y-yval 下面就让我们以几个例子来结束本节:(大家还是注意, DOS下的Math, 只要 输入Innum:=后的指令后按回车, 而windows下则是按+回车.) 大 家看看都有什么输出. In1:= 2.7+5.23 In2:= 1/3+2/7 In3:= 1/3+2/7 /N In4:= NPi,100 曾经有人问我, 你是怎么算出Pi的1000位而 没有错误的, 其实很简单, 大家只要把上式的100改为1000即可. In5:= SinPi/2+Exp2+Round1.2 In6:= 10y In10:= t=1+m2 In11:= t /. m-2 In12:= t /. m-5a In13:= t /. m-Pi /N (4)代数变换 上一节我们已经学习了Math里的基本运算及逻辑运算, 常用数学函数, 几 个常见的常数, 以及变量的使用. 这一节, 我们来学学基本代数变换: Apart, Cancel, Coefficient, Collect, Denominator, Expand, ExpandAll, Exponent, Factor, Numerator, Short, Simplify, Together. Expandexpr 多项式expr按项展开 Factorexpr 因子形式 Simplifyexpr 最简形式 In1:= Expand(1+x)2 In2:= Factor% 我们以前说过的哦, %是上一个输出, %是上上个, %是上上上个, ., %n是第n个输出(即Outn) In3:= Simplify% In4:= Integratex2/(x4-1),x 这是积分运算, 详情后叙 In5:= D%,x 求导 In6:= Simplify% ExpandAllexpr 所有项均展开 Togetherexpr 通分 Apartexpr 分离成具有最简分母的各项 Cancelexpr 约去分子,分母的公因子 Collectexpr 合并 In1:= e=(x-1)2 (2+x)/(1+x)(x-3)2) In2:= Expande In3:= ExpandAlle In4:= Togethere In5:= Apart% In6:= Factor% Coefficientexpr, form 表达式中form项的系数 Exponentexpr, form form的最高幂次 Numeratorexpr 取分子 Denominatorexpr 取分母 expr /Short 以简短形式输出 In1:= e=Expand(1+3x+4y2)2 In2:= Coefficiente, x In3:= Exponente, y In4:= q=(1+x)/(2(2-y) In5:= Denominator% In6:= Expand(x+5y+10)4 In7:= %/Short 把上式输出, 中间项省去, 以表示 省去的项数. 最后, 我们以例子来看看用符号名做客体的标志的好处 In1:= 12meters In2:= %+5.3meters In3:= %/(25seconds) In4:= %/.meters-3.78084feet 一下子就把米制变为英尺了. (5)微积分运算(2-1) 学到上一节, 大家会发现怎么还停留在中学的计算中呢, 这一节, 大家就会看到微分D, Dt; 积分Integrate, NIntegrage; 和与积Sum, Product, NSum, NProduct. 下一节我们 介绍解方程Solve, Eliminate, Reduce, NRoot, FindRoot, FindMinimum; 幂级数Series, Normal; 极限Limit; 特殊函数Fourier, InverseFourier, . 微分 Df, x f对x求导 Df, x_1, x_2, . f对x_1, x_2, .求导 Df, x, n f对x求n次导 Dtf 全微分df Dtf, x 全微商df/dx In1:= Dxn,x In2:= Dfx,x In3:= D2x fx2,x In4:= Dxn, x, 3 In5:= Dx2 y3, x, y In6:= Dtxn In7:= Dtx y, x 积分 Integratef,x f对x积分 Integratef, x, xmin, xmax, y, ymin, ymax, . 定积分 NIntegratef, x, xmin, xmax, y, ymin, ymax, . 计算积分的数值解 In1:= IntegrateSinSinx,x 嘻嘻, 无法计算, 原样输出 In2:= IntegrateLogx, x,0,6 啊, 广义积分也一样算 In3:= Integratex2+y2, x,0,1, y,0,1 In4:= In3/N 如果你的上一条输入不是In3, 注意 调整这一条的输入哦 In5:= IntegrateSinSinx, x,0,1 怎么还没法计算啊 In6:= N% 或 NIntegrateSinSinx, x,0,1 呵, 终于可以计算了. 和与积 Sumf, i, imin, imax, j, jmin, jmax, . f对i, j, .分别从imin到imax,jmin到jmax,.求和 Sumf, i, imin, imax, di 求和的步长为di Productf, i, imin, imax, j, jmin, jmax, . 求积 NSum 数值解 NProduct 数值解 In1:= Sumxi/i, i,1,4 In2:= Sumxi/i, i,1,5,2 In3:= Suma/i3, i,1,10 In4:= N% 或 NSuma/i3, i,1,10 In5:= Sum1/i3, i,1,Infinity 可能原样输出, 也可能输出Zeta3 (依math的版本不同而异) In6:= N% In7:= Sumxi*yj, i,1,3, j,1,i 注: 如果想要求带符号上下限的Sum, 在math3.0中, 直接使用Sum函数即可: In8:= Sum1/Sini, i,1,n 而如果在旧版本的math, 则可能需要调入包(package) gospersu.m, 调入 格式一般为 In8:= x0 expr中x趋于x0 In1:= t=Sinx/x In2:= t/.x-0 错了吧. 0不能当分母的 In3:= Limitt,x-0 求极限总可以了吧 特殊函数 Fourier 傅利叶变换 InverseFourier 反傅利叶变换 In1:= 1,1,1,1,-1,-1,-1,-1 In2:= Fourier% In3:= InverseFourier% RungeKutta, . 等函数定义函数如下 In1:= fx_:=x2+1 math中定义函数:变量后跟_, 然后用:= In2:= fx_, y_:=x+y 以上两个定义同时存在并不矛盾, 当f仅使用一个参数, 自动用一式; 为两个参数, 则用二式 In3:= f3 In4:= f3,2 定义别名 In1:= para:=ParametricPlot 用:=来定义别名 In2:= paraCost,t, t,0,Pi In3:= Alaspara 查看para是什么的别名 (7)矩阵/表的运算 矩阵的定义Table, Array, IdentityMatrix, DiagonalMatrix; 输出 输入TalbeForm, ColumnForm, MatrixForm, list(其他输出TeXForm, FortranForm, CForm); 及运算: 数乘, 矩阵乘法, Inverse, Transpose, Det, MatrixPower, Eigenvalues, Eigenvectors, 矩阵定义使用的一点 说明. 矩阵的定义 Tablef, imax 包含imax个f的元素(f是规则) Tablef, i, imin, imax, istep, j, ., . istep=1可省, imin=1也等于1可再省 Arraya, n 建立向量a1, a2, ., an Arraya, m, n 建mxn矩阵a Arraya, m1, m2, ., mn n维张量 IdentityMatrixn 生成n维单位矩阵 DiagonalMatrixlist list元素为对角元 In1:= Tablex, 4 In2:= Tablei2, i, 1, 4 In3:= x%-1 看看表在运算符作用后的结果 In4:= D%, x 求导也可以 In5:= % /. x-3 代入值看看 In6:= Arraya, 3, 2 看个2维的(3x2)矩阵 In7:= DiagonalMatrix1,2,3 生成对角元是1,2,3的方阵 矩阵的输出/输入 TableFormlist 以表列格式显示一个表 ColumnFormlist 写成一列 MatrixFormlist 按矩阵形式 listi 第i个元素(一维); 第i行元素(二维) listi,j list的第i行, 第j列元素. In1:= a=Tablei+2*j, i, 1, 3, j, 1, 2 In2:= TableForm% 看看表格式 In3:= ColumnForm% 写成一列 In4:= MatrixForm% 再看看矩阵形式 In5:= %2 把上面的矩阵的第二行(是一维的表了哦)去来 In6:= %2,1 取第二行第一列元素(是一个数) 注: In5,In6也可用a2和a2,1的典型写法. 其他输出格式 TeXForm, FortranForm, CForm TeX(数学排版)格式, Fortran语言, C语言格式输出 In1:= (Sqrtx3-1+Expy)/Logx In2:= TeXForm% 注意TeX中T和X是大写, e是小写 In3:= CForm% 矩阵的数学运算 cm 数乘(c标量, m是Table或Array定义的矩阵) a.b 矩阵相乘(注意矩阵乘法的规则) Inversem 逆矩阵(当然要对方阵来说了) Transposem 转置 Detm m(方阵)的行列式 MatrixPowerm,n m(方阵)的n次幂 Eigenvaluesm m(方阵)的特征值 Eigenvectorsm m(方阵)的特征向量 EigenvaluesNm, EigenvectorsNm 数值解 In1:= a=Tablei+2*j, i, 1, 3, j, 1, 2 In2:= 5a 看看乘积 In3:= b=Table3*i-2j, i, 1, 3, j, 1, 3 In4:= b.a 矩阵乘法(注意,此例a.b没有意义) In4:= Transpose% 转置 In5:= Inverseb 求一下矩阵的逆(天哪, 是方阵还不行, 还要行列式不为0) In6:= Detb 果然行列式为0 In7:= c=b+1,0,0,0,0,0,0,0,0 In8:= Inversec 终于可以求逆了 In9:= MatrixPowerb,3 b的3次方 In10:= Eigenvaluesb 特征值 In11:= Eigenvectorsb 特征向量 一点说明: 矩阵可以先使用, 再定义; 局部定义和整体定义的顺序也自由. 如: In1:= d1,1=w; d1,2=e; d2,1=21; d2,2=22; In2:= Arrayd,3,3 你就会发现, 定义过的有值了, 没定义的还没有值.(8)表的运算.2 表的结构VertorQ, MatrixQ, MemberQ, FreeQ, Length, TensorRank, Dimensions, Count, Position; 取表元First, Last, list, Take, Rest, Drop, Select; 插入元素 Prepend, Append, Insert, Join; 表的集合Union, Intersection, Complement; 表的重排Sort, Union, Reverse, RotateLeft, RotateRight, Transpose, Flatten, Partition, Permutations, Apply 计算表的有关结构 VectorQlist 检验list是否为向量结构 MatrixQlist 检验list是否为矩阵结构 MemberQlist, form 检验form是否为list的元素 FreeQlist, form 检验form是否不是list的元素 Lengthlist list中元素的数目 TensorRanklist list的深度(看成张量的秩) Dimensionslist list作为向量或矩阵的维数 Countlist, form form在list中出现的次数 Positionlist, form form在list中的位置 In1:= t=1,2,3 t是一个表 In2:= VectorQt 不是向量 In3:= MemberQt,3 3是它的元素 In4:= MemberQt,2 2不是它的元素 In5:= Lengtht t的长度是2 In6:= TensorRankt t的深度是1 In7:= Dimensionst 作为向量,是2维: 1,2和3 In8:= Positiont,3 3在表t中的位置是2 在表中取部分元素 Firstlist list的首元素 Lastlist list的最后一个元素 listn list的第n个元素 list-n list的倒数第n个元素 (以后二者合写为n/-n) listn1,n2,.,nm 相当listn1n2.nm listn1,n2,.,nm list第n1,n2,.,nm元组成新表 listi1,i2,.,j1,j2,. list的i1,i2.行,j1,j2,.列 Takelist, n/-n 取list的前/后n个元素 Restlist 去掉首元的list Droplist, n/-n 去掉前/后n个元素的list Selectlist, crit 从list中选出满足crit的元素 In1:= t=2,1,1; In2:= VectorQt 函数名最后字母为Q,其值为True/False In3:= aa=a,b,c,d,e,f,g,h,i,j,k,l; In4:= aa1 看看以下几个, 体会一下取元素/子表 In5:= aa12 In6:= aa1,2 In7:= aa1,2 In8:= aa1,2 In9:= Selecta,23,12,0,3.5,EvenQ 看看Select怎么用 这里EvenQexpr判断expr是否偶数; OddQ.奇数?; NumberQ.数?; IntegerQ.整数?; PrimeQ.素数? AtomQ.简单表达式?. 表中插入元素 Prependlist, elem 表头加elem(PrependTo函数修改list) Appendlist, elem 在表尾加elem(AppendTo修改list) Insertlist, elem, n/-n 在正/倒数第n个位置插入elem Joinlist1, list2, . 连接list1, list2, . In1:= Prependa,b,c,x 在a,b,c前加x元素 In2:= Inserta,b,c,x,2 在a,b,c的第2个位置插入x In3:= Join1,2,3,xy,m,2,3,3 看看Join 集合函数 Unionlist1, list2, . 去掉重复元并排序后的Join Intersectionlist1, list2, . 取各list的公共元 Complementt, list1, list2, . 在t中, 不在各list中的元素 In4:= Union1,2,3,xy,m,2,3,3 看看Union In5:= Complementa,b,c,d,e,a,d,e,f 看看Complement 表的重排 Sortlist 将list排序 Unionlist 去掉重复元 Reverselist 倒序 RotateLeftlist, n/-n 将list向左/右转n个元素(n=1可省) RotateRightlist, n/-n 将list向右/左转n个元素(n=1可省) Transposelist 交换表的最上面两层 Transposelist, n 交换表的顶层与第n层 Flattenlist 将list所有层变为一层 Flattenlist, n 将list的最上面n层变为一层 Partitionlist, n 将list分成由n元组成的块(多余舍去) Partitionlist, n, d 各块中有偏移d Permutationslist 给出list一切可能的排列 ApplyPlus, list 求和listi ApplyTimes, list 求积listi In1:= RotateLefta,b,c,d,e,2 得到c,d,e,a,b In2:= Flattena,b,c,c,d 得到a,b,c,c,d In3:= Tablei2+j2+k2,i,2,j,2,k,2 In4:= Flatten%,1 展开一层 In5:= ApplyPlus,% 求和得到24,36 In6:= Partitiona,b,c,d,e,f,g,3,1 看看Partition (9)二维图形 二维函数作图Plot, 选项; 图的重现Show, Options, SetOptions, InputForm, Head; 参数绘图ParametricPlot; 线宽Thickness, 线型Dashing. 二维图形 函数作图 Plotfx,x,xmin,xmax 在xmin,xmax间画出fx的图形 Plotf1x,f2x,.,x,xmin,xmax 画出fix PlotReleasef,x,xmin,xmax 有时f的表达式很复杂, 直接用Plot计算量大,可能得不出结果,可以先求f的值,再画 Plot选项设置(格式: 选项-值) PlotRange Automatic ymin,ymax或xmin,xmax,ymin,ymax AxesLabel轴标 None x轴标,y轴标 Frame框 False True AxesOrigin原点Automatic x,y Axes轴 Automatic None不画 Ticks刻度 Automatic None或xticks(,.),yticks(,.) GridLines网格 None All或xlines.,ylines AspectRatio 1/GodenRatio 正实数(高/宽) PlotPoints 15 Plot的作图精度 In1:= PlotSinx2, x,0,3 In2:= PlotSinx2, x,0,3, PlotRange-0,1.2 In3:= PlotSinx2, x,0,3, AxesLabel-x,Sinx2 In4:= PlotSinx2, x,0,3, Axes-None In5:= PlotSinx2, x,0,3, PlotPoints-40 图形的重现 Showp 重画图p Showp1,p2,. 把p1,p2,.重画在一起 Showp,option-value 改变选项重画p(选项大多同上) (没有PlotPoits选项) Optionsp 显示图p的选项 InputFormp 显示图p的有关存储信息 SetOptions函数名,option-value 改变函数选项默认值 Headp p的类型,如果p是图,则值为Graphics In1:= t1=PlotBesselJ1,x,x,1,20 In2:= t2=PlotSinx,x,0,15 In3:= Showt1,% In4:= Show%,Axes-None In5:= Show%,Frame-True In6:= Options% In7:= InputFormt2 参数绘图 ParametricPlotfx,fy,t,tmin,tmax ParametricPlotfx,fy,gx,gy,.,t,tmin,tmax fx,fy的几种特殊情形 rtCost,rtSint 极坐标 Ref,Imf 复函数的相角图 Logf,Logg log-log图 注意: 有时需要把AspectRatio-1才能更好地显示y/x比例, 如画圆. In1:= ParametricPlotSint,Sin2t,t,0,2Pi In2:= ParametricPlotSint,Cost,t,0,2Pi In3:= Show%,AspectRatio-Automatic AspectRatio是1或Automatic是y/x的比例才是1 选项,改变线宽和线型(虚线):在Plot的选项里使用 PlotStyle-Thickness0到1的值 在math3.0下,使用0.005足矣 PlotStyle-Dashing画,空 在Show中,在GraphicsThickness.或GraphicsDashing. 之后的线宽或线型依此改变. In1:= PlotSinx2,x,0,3,PlotStyle-Thickness0.01 In2:= PlotSinx2,x,0,3,PlotStyle-Dashing0.01,0.01 In3:= t1=PlotSin(3x)2,x,-1,1 In4:= t2=ParametricPlotSint,Sin2t,t,0,2Pi In5:= Showt1,GraphicsDashing0.01,0.01,t2 In6:= Showt1,GraphicsThic

温馨提示

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

评论

0/150

提交评论