Mathematica入门教程学习目标¾了解Mathematica的基本使用¾会用Mathematica求解一些简单问题Mathematica基本介绍Mathematica是美国Wolfram研究公司开发的一种通用软件,以符号计算见长,也具有高精度的数值计算功能和强大的图形功能。Mathematica的应用领域:¾航天、科学、工程、金融和教育等领域Mathematica语法基础Mathematica区分大小写Mathematica内部函数一般写全称,且首字母大写¾Sin[x],Conjugate[x],Simplify[expr],LegendreP[x]Mathematica中的变量默认为全局变量Mathematica中的运算符:+,-,*,/,^(指数),!(阶乘)Mathematica支持符号运算¾a+a=2aa*(b+c)=a*b+a*c;回车表示换行,Shift+回车表示计算表达式以;结尾不输出计算结果一行可以输入多个表达式,但必须以;分隔%表示上一次的计算结果Mathematica中的括号()表示结合顺序,如(x+(y^x+1/(2x)))[]表示函数:Log[x],BesselJ[n,z]{}表示“表”,可以用于表示数组,矩阵,集合¾{2,4,6},{Sin[x],Cos[x],3x}{{1,2},{3,4}}[[]]双方括号表示“表”或“表达式”的下标¾{2,4,6}[[1]]=2JnzHLMathematica中的数Mathematica可以处理任意大、任意小及任意位精度的数值Mathematica中的常数是精确的¾Pi,EMathematica总是尽可能保持数的精度,如果想得到近似值,可以用N[expr]或N[expr,n]¾5/3Sqrt[2],N[Pi,10000]Mathematica支持复数运算¾Sqrt[-4],Exp[4+9I]Mathematica中的常用数学函数Abs[x]x绝对值Max[x1,x2,x3……..]x1,x2,x3…….中的最大值Min[x1,x2,x3……..]x1,x2,x3…….中的最小值Random[]0~1之间的随机函数Random[Real,xmax]0~xmax之间的随机函数Random[Real,{xmin,xmax}]xmin~xmax之间的随机函数Exp[x]指数函数Log[x]自然对数函数lnxLog[b,x]以b为底的对数函数Sin[x],Cos[x],Tan[x],Csc[x],Sec[x],Cot[x]三角函数(变量以弧度为单位)Sinh[x],Cosh[x],Tanhx[x],Csch[x],Sech[x],Coth[x]双曲函数ArcSech[x],ArcCoth[x]反双曲函数Mod[m,n]m被n整除的余数,余数与n的符相同N!n的阶程Re[z],Im[z],Conjugate[z]复数的实部,虚部,复共轭表达式的化简操作化简:Simplify[expr]因式分解:Factor[expr]展开表达式:Expand[expr]通分:Together[expr]取某一项的系数:Coefficient[expr]In[36]:=SimplifyAx4+4x3y+6x2y2+4xy3+y4EOut[36]=Hx+yL4In[37]:=FactorAx4+4x3y+6x2y2+4xy3+y4EOut[37]=Hx+yL4In[38]:=Expand@Hx+yL^3DOut[38]=x3+3x2y+3xy2+y3In[46]:=Together@1êH1−xL+1êH1+xLDOut[46]=−2H−1+xLH1+xLIn[47]:=CoefficientAx4+4x3y+4xy3+2bx3+y4,x3EOut[47]=2b+4y“表”及其用法“表”是Mathematica中一个相当有用的数据类型,它即可以作为数组,又可以作为矩阵;除此以外,你可以把任意一组表达式用一个或一组{}括起来,进行运算、存储。可以说表是任意对象的一个集合。它可以动态地分配内存,可以方便地进行插入、删除、排序、翻转等等几乎所有可以想象到的操作。¾s={a,b,{c,d}};¾s[[1]];s[[3,1]]表的基本操作Length[表]返回表第一个层次上的元素个数Append[表,表达式]或Prepend[表,表达式]把表达式添加到表的最前面或最后面¾Append[{1,2,3},a]Union[表1,表2,......],Jion[表1,表2,......]把几个表合并为一个表,Union在合并时删除了各表中重复的元素,而后者仅是简单的合并;¾Union[{1,2,3},{2,3,4}]]{1,2,3,4}¾Join[{1,2,3},{2,3,4}]]{1,2,3,2,3,4}Flatten[表]把表中所有子表“抹平”合并成一个表Patition[表,整数n]把表按每n个元素分段作为子表表的基本操作(续)Delete[表,位置]、Insert[表,位置]来向表中按位置插入或删除元素,如要删除上面提到的table中的aaa,你可以用Delete[table,{3,1}]来实现;Sort[表]给出了表中各元素的大小顺Reverse[表]、RotateLeft[表,整数n]、RotateRight[表,整数n]可以分别将一个表进行翻转、左转n个元素、右转n个元素等操作,Position[表,表达式]给出了表中出现该表达式的位置Count[表,表达式]则给出表达式出现的次数二维函数作图Plot[f,{x,xmin,xmax},opts]Plot[{f,g},{x,xmin,xmax},opts]In[17]:=Plot@x∗Sin@1êxD,8x,−0.5,0.5D-0.4-0.20.20.4-0.2-0.10.10.20.30.4In[20]:=Plot@8Sin@xD,Cos@xD,8x,0,2Pi,PlotStyle→8RGBColor@1,0,0D,RGBColor@0,1,0DD123456-1-0.50.51二维参数画图函数ParametricPlot[{x[t],y[t]},{t,t0,t1},opts]In[31]:=ParametricPlot@8Sin@3tD,Cos@5t+Piê3D,8t,0,2PiD-1-0.50.51-1-0.50.51Out[31]=Graphics三维函数作图Plot3D[f[x,y],{x,x0,x1},{y,y0,y1},opts]In[32]:=Plot3D@Sin@xyD,8x,0,4,8y,0,4D;0123401234-1-0.500.510123三维参数做图ParametricPlot3D[{x(u,v),y(u,v),z(u,v)},{u,下限,上限},{v,下限,上限},可选项]In[34]:=ParametricPlot3D@84+H3+Cos@yDL∗Sin@xD,4+H3+Cos@yDLCos@xD,4+Sin@yD,8x,0,2Pi,8y,0,2PiD;024680246833.544.550246Mathematica中的高等数学极限求导微分、全微分定积分、不定积分级数展开求极限Limit[expr,x-x0]x-x0时函数的极限Limit[expr,x-x0,Direction--1]x-x0-时函数的极限Limit[expr,x-x0,Direction-1]x-x0+时函数的极限In[49]:=LimitxSinx,x→0Out[49]=1微商和微分D[f,x]D[f,{x,n}]D[f,x1,x2,…xn]/nnfx∂∂/fx∂∂12//.../nxxxf∂∂∂∂∂∂In[51]:=DExpSinx,x,2Out[51]=Sin@xDCosx2−Sin@xDSinx全微分In[52]:=Dtxy^2,xOut[52]=y2+2xyDty,xDt[,]fxfx对的全导数Dt[f]全微分In[53]:=Dtx^2+y^2Out[53]=2xDtx+2yDty不定积分与定积分Integrate[f,x]不定积分Integrate[f,{x,x1,x2}]定积分NIntegrate[f{x,x1,x2}]数值定积分21()xxfxdx∫()fxdx∫In[54]:=Integrate@xSin@xDExp@xD,xDOut[54]=12xHCos@xD−xCos@xD+xSin@xDLIn[60]:=Integrate@x^3Sin@xD,8x,0,PiDOut[60]=πH−6+π2L级数展开Series[f,{x,x0,n}]在x0附近展开f(x)到n阶In[2]:=Series@Log@1+xD,8x,0,7DOut[2]=x−x22+x33−x44+x55−x66+x77+O@xD8