您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > Mathematic入门教程(整理版)
(1)简介数学系给本科生开设一门课:符号计算系统,主要简单讲授mathematica(以下简称math)软件的使用及其编程,赶兴趣的同学可以找本math书以求更深入的了解.我们平日用到编程语言时,大家都知道编程中用到的整型,实型,甚至双精度数,都只是一个近似的数,其精度有限,有效数字有限,在很多时候达不到实际需要的要求.符号计算与数值计算的区别就在于符号计算以准确值记录计算的每一步的结果,如果需要时,可以将精确表示按需要计算成任意位数的小数表示出来(只要机器内存足够大).最常见的符号计算系统有maple,mathematica,redues等,这些软件各有侧重,比如,maple内存管理及速度比math好,但是图形方面不如math;redues没找到,没用过,未明;而用得较多的matlab编程环境特好,和C语言接口极其简单,遗憾的是它不是符号计算,只是数值计算.所以,就实用而全面来说,math是一个很好用的软件.math软件不仅能够进行一般的+-*/及科学函数如Sin,Log等计算,而且能进行因式分解,求导,积分,幂级数展开,求特征值等符号计算,并且,math有较强的图元作图,函数作图,三维作图及动画功能.(2)mathematica入门mathematica自发布以来,目前比较常见的有math1.2forDOS,math2.2forWindows,math3.0forwin95,math3.0forUNIX.DOS下的math的好处就是系统小,对机器要求低,在386机器4M内存下就能运行得很好(机器再低点也是可以用的,比如说286/2M).在DOS下直接键入math回车即可进入math系统,出现的提示符In[1]:=,这时就可以进行计算了,键入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[数字]:=为提示符,不用键入)In[1]:=2^100计算2的100次方In[2]:=s={{3,7,9},{7,4,3},{1,3,8}}定义矩阵sIn[3]:=Eigenvalues[s]计算s的特征值In[4]:=Plot[Sin[x],{x,0,Pi}]在0,Pi间画SinIn[5]:=Plot[Cos[x],{x,0,Pi}]CosIn[6]:=Plot3D[Sin[x]Sin[y],{x,0,1},{y,0,2}]三维作图以In[6]为例说明:math的函数都以大写字母开头的单词为函数名,Plot3D,Plot,Eigenvalues,Sin等,常数也是如此,如Pi.函数名后的参数用[]括起,逗号隔开.math的输出可以作为函数的输入对象,你可以再试一个:In[7]:=Show[%%,%%%]这里一个%代表上一个输出,两个代表上两个...也可以直接用Out[n]代表第n个输出.这里需要补充的是!command执行DOS命令?name关于name(函数等)的信息(可以使用通配符)??name关于name的额外信息(3)基本计算1.算术运算符+加-减*乘/除^指数(乘也可用空格)N[expr]或expr//N计算expr的数值(6位有效数字)N[expr,n]n表示小数的位数2.数学函数Sqrt[x]x开方Exp[x]e的x方Log[x]x的自然对数Log[b,x]以b为底,x的对数Sin[x],Cos[x],Tan[x],ArcSin[x],ArcCos[x]三角函数Abs[x]|x|Round[x]离x最近的整数Floor[x]不超过x的最大整数Quotient[n,m]n/m的整数部分Mod[n,m]n/m的余数Random[]0,1间随机数Max[x,y,...]Min[x,y,...]最大数和最小数3.常数PiPi=3.141592653589793...Ee=2.71828...DegreePi/180Ii=Sqrt[-1]Infinity无穷大CatalanCatalan常数.=0.915966ComplexInfinity复无穷DirectedInfinity有向的无穷EulerGamma欧拉常数gamma=0.5772216GoldenRatio黄金分割(Sqrt[5]-1)/2Indeterminate不定值4.逻辑运算符==,!=,,=,,=,!,&&,||Xor异或Implies隐含If[条件,式1,式2]如果条件成立,值式1;否则得式25.变量a)变量名以字母(一般小写)开头;字母数字组成.(如x2为变量名;而2x,2*x,2x,x*2,x2均是x乘以2).b)赋值x=value;x=y=value;x=.(清除x值)c)代换expr/.x-value将式中x代换为valueexpr/.{x-xval,y-yval}下面就让我们以几个例子来结束本节:(大家还是注意,DOS下的Math,只要输入In[num]:=后的指令后按回车,而windows下则是按+回车.)大家看看都有什么输出.In[1]:=2.7+5.23In[2]:=1/3+2/7In[3]:=1/3+2/7//NIn[4]:=N[Pi,100]曾经有人问我,你是怎么算出Pi的1000位而没有错误的,其实很简单,大家只要把上式的100改为1000即可.In[5]:=Sin[Pi/2]+Exp[2]+Round[1.2]In[6]:=107In[7]:=x=5;如果在输入之后加上一个;,则只运算不输出.IN[8]:=y=0(所以In[7]和8完全可以合成一条x=5;y=0,假如我不需要x=5的输出)In[9]:=xyIn[10]:=t=1+m^2In[11]:=t/.m-2In[12]:=t/.m-5aIn[13]:=t/.m-Pi//N(4)代数变换上一节我们已经学习了Math里的基本运算及逻辑运算,常用数学函数,几个常见的常数,以及变量的使用.这一节,我们来学学基本代数变换:Apart,Cancel,Coefficient,Collect,Denominator,Expand,ExpandAll,Exponent,Factor,Numerator,Short,Simplify,Together.Expand[expr]多项式expr按项展开Factor[expr]因子形式Simplify[expr]最简形式In[1]:=Expand[(1+x)^2]In[2]:=Factor[%]我们以前说过的哦,%是上一个输出,%%是上上个,%%%是上上上个,...,%n是第n个输出(即Out[n])In[3]:=Simplify[%%]In[4]:=Integrate[x^2/(x^4-1),x]这是积分运算,详情后叙In[5]:=D[%,x]求导In[6]:=Simplify[%]ExpandAll[expr]所有项均展开Together[expr]通分Apart[expr]分离成具有最简分母的各项Cancel[expr]约去分子,分母的公因子Collect[expr]合并In[1]:=e=(x-1)^2(2+x)/((1+x)(x-3)^2)In[2]:=Expand[e]In[3]:=ExpandAll[e]In[4]:=Together[e]In[5]:=Apart[%]In[6]:=Factor[%]Coefficient[expr,form]表达式中form项的系数Exponent[expr,form]form的最高幂次Numerator[expr]取分子Denominator[expr]取分母expr//Short以简短形式输出In[1]:=e=Expand[(1+3x+4y^2)^2]In[2]:=Coefficient[e,x]In[3]:=Exponent[e,y]In[4]:=q=(1+x)/(2(2-y))In[5]:=Denominator[%]In[6]:=Expand[(x+5y+10)^4]In[7]:=%//Short把上式输出,中间项省去,以数字表示省去的项数.最后,我们以例子来看看用符号名做客体的标志的好处In[1]:=12metersIn[2]:=%+5.3metersIn[3]:=%/(25seconds)In[4]:=%/.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,...微分D[f,x]f对x求导D[f,x_1,x_2,...]f对x_1,x_2,...求导D[f,{x,n}]f对x求n次导Dt[f]全微分dfDt[f,x]全微商df/dxIn[1]:=D[x^n,x]In[2]:=D[f[x],x]In[3]:=D[2xf[x^2],x]In[4]:=D[x^n,{x,3}]In[5]:=D[x^2y^3,x,y]In[6]:=Dt[x^n]In[7]:=Dt[xy,x]积分Integrate[f,x]f对x积分Integrate[f,{x,xmin,xmax},{y,ymin,ymax},...]定积分NIntegrate[f,{x,xmin,xmax},{y,ymin,ymax},...]计算积分的数值解In[1]:=Integrate[Sin[Sin[x]],x]嘻嘻,无法计算,原样输出In[2]:=Integrate[Log[x],{x,0,6}]啊,广义积分也一样算In[3]:=Integrate[x^2+y^2,{x,0,1},{y,0,1}]In[4]:=In[3]//N如果你的上一条输入不是In[3],注意调整这一条的输入哦In[5]:=Integrate[Sin[Sin[x]],{x,0,1}]怎么还没法计算啊In[6]:=N[%]或NIntegrate[Sin[Sin[x]],{x,0,1}]呵,终于可以计算了.和与积Sum[f,{i,imin,imax},{j,jmin,jmax},...]f对i,j,...分别从imin到imax,jmin到jmax,...求和Sum[f,{i,imin,imax,di}]求和的步长为diProduct[f,{i,imin,imax},{j,jmin,jmax},...]求积NSum数值解NProduct数值解In[1]:=Sum[x^i/i,{i,1,4}]In[2]:=Sum[x^i/i,{i,1,5,2}]In[3]:=Sum[a/i^3,{i,1,10}]In[4]:=N[%]或NSum[a/i^3,{i,1,10}]In[5]:=Sum[1/i^3,{i,1,Infinity}]可能原样输出,也可能输出Zeta[3](依math的版本不同而异)In[6]:=N[%]In[7]:=Sum[x^i*y^j,{i,
本文标题:Mathematic入门教程(整理版)
链接地址:https://www.777doc.com/doc-2405173 .html