Integrate[f,x,y] 计算不定积分?dx?f(x,y)dy Integrate[f,x,y,z] 计算不定积分?dx?dy?f(x,y,z)dz
In[1]:= Out[1]:= In[2]:= Out[2]:=
Integrate112Log-1+x- xIntegrate3 x^2+y,xy+3@??HLD@D@D@Dx^2- 112Log1
2.定积分
计算定积分的命令和计算不定积分是同一个Integrate函数,在计算定积分时,除了要给出变量外还要给出积分的上下限。当定积分算不出准确结果时,用N[%]命令总能得到其数值解.Nintegrate也是计算定积分的函数,其使用方法和形式和Integrate函数相同.用Integrate函数计算定积分得到的是准确解,Nintegrate函数计算定积分得到的是近似数值解.计算多重积分时,第一个自变量相应于最外层积分放在最后计算.
Integrate[f,{x,a,b}] 计算定积分?af(x)dx NIntegrate[f,{x,a,b}] 计算定积分?af(x)dx
Integrate[f,{x,a,b},{y,c,d}] 计算定积分?adx?cf(x,y)dy NIntegrate[f,{x,a,b},{y,c,d}] 计算定积分?adx?cf(x,y)dy
In[1]:= Out[1]:= In[2]:= Out[2]:= In[3]:= Out[3]:=
bdbdbbIntegrateCosx^2+Sinx^3,x, 0,76NIntegrateCosx^2+Sinx^3,x, 0, 0.90Integratex+y,x,b,a,y, 0,32a3@@D@D8 幂级数 幂级数展开函数Series的一般形式: Series[expr,{x,x0,n}] 将expr在x=x0点展开到n阶的级数 Series[expr,{x,x0,n},{y,y0,m}] 先对y展开到m阶再对x展开n阶幂级数 用Series展开后,展开项中含有截断误差OIn[1]:= Out[1]:= In[2]:= SeriesSin2 x,x, 0,2x-4x33Seriesfx,x, o,fo+fo¢Out[2]:= In[3]:= Out[3]:= SeriesCosx Cosy,x,0,3,y, 0,1-y22@@D8 n+4x515 +Ox-o+12f¢¢ox-o2+16f3ox-Ox-o4 +Oy4+-12+y24+Oy4x+O2 . 常微分方程 求解常微分方程和常微分方程组的函数的一般形式如下: Dsolve[eqns,y[x],x] 解y(x)的微分方程或方程组eqns,x为变量 Dsolve[eqns,y,x] 在纯函数的形式下求解 NDsolve[eqns,y[x],x,{xmin,xmax}] 在区间{xmin,xmax}上求解变量x的数的形式下求解常微分方程和常微分方程组eqns的数值解 In[1]:= Out[1]:= In[2]:= Out[2]:= xDSolvey'x??ayx,yyx??ax CDSolveDSolveIn[3]:= t@@D@D@D8@D@D<@8@D@D@D<@DD8@D<@8@D@D@D@D<8@D@D Out[3]:= 9@DI@D@D@D@DM@DI@D@D@D@DM=xt?yt?1212?-tC1+?2tC1-C2+?2tC2?-t-C1+?2tC1+C2+?2tC 2. 线性代数 1. 定义向量和矩阵函数 定义一个矩阵,可用函数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的循环范围表示方法略有区别.请在下面的实例中注意观察. In[1]:= Out[1]:= In[2]:= Out[2]:= In[3]:= Out[3]:= In[4]:= Out[4]:= In[5]:= Tableai,j,i,2, j,a1,1,a1,2U=Arraya, 2,(*IndentityMatrix[n]生成n维矩阵*) IdentityMatri1,0,0,0,1,0,0, 0,DiagonalMatrix(*TableForm[m]或MatrixForm[m]按矩阵形式输出m*) TableFor100020 @@D8<8 ,a2,1,a2,生成对角元素为表元素的对角矩阵*) 1,(*2,1,0,0,0,2,0,0, 0,Out[5]:= 一个矩阵可用一个变量表示,如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}组成的子矩阵. 2.矩阵的运算符号和函数 表达式 A+c A+B cA U.V A.B Det[M] Transepose[M] Inverse[M] Eigenvalus[A] Eigenvalus[N[A]] Eigenvectors[A] Eigenvectors[N[A]] Eigensystem[A] Eigensystem[N[A]] 意义 A为矩阵,c为标量,c与A中的每一个元素相加 A,B为同阶矩阵或向量,A与B的对应元素相加 A为矩阵,c为标量,c与A中的每个元素相乘 向量U与V的内积 矩阵A与矩阵B相乘,要求A的列数等于B的行数 计算矩阵M的行列式的值 M计算矩阵M的逆矩阵(MM的转置矩阵(或MT') ) ?1计算矩阵A的全部(准确解)特征值 计算矩阵A的全部(数值解)特征值 计算矩阵A的全部(准确解)特征向量 计算矩阵A的全部(数值解)特征向量 计算矩阵A的所有(准确解)特征值和特征向量 计算矩阵A的所有(数值解)特征值和特征向量 3. 方程组求解函数 在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为方阵 113310121-1-11,计算A的秩,计算AX=0的基础解系. 例:已知A=In[1]:= In[2]:= Out[2]:= A= RowReduc8<8<8<8<@D8<8<8<8< 1,1,1,1,1,0,-1,1,3,1,-1,3,3,2,1,显然,A的秩是2*) 1,0,-1,1,0,1,2,0,0,0,0,0,0,0,(*0,In[3]:= Out[3]:= NullSpac@D8<8< -1,0,0,1,1,-2,(*A1,的两个线性无关解*) 五.程序流程控制 作为一种语言,Mathematica提供了分支、循环、跳转等程序控制语句,如 If[test,block1,block2]表明满足条件test,则执行语句块block1,否则执行block2;Switch[expr,test1,block1,test2,block2,....]表示如果表达式expr的值等于第i个testi的值,则执行语句块blocki。 循环语句有For[赋初值,循环条件,增量语句,语句块]表示如果满足循环条件,则执行语句块和增量语句,直到不满足条件为止,While[test,block]表明如果满足条件test则反复执行语句块block,否则跳出循环,Do[block,{i,imin,imax,istep}]与前者功能是相同的。还有Goto[lab], Label[lab]提供了程序中无条件跳转,Continue[]和Break[]提供了继续循环或跳出循环的控制,Catch[语句块1]和Throw[语句块2]提供了运算中对异常情况的处理。另外,在程序中书写注释可以用一对\ *)\括起来,注释可以嵌套。 六.其他 以上是对Mathematica语法的一些特点做了一个很粗略的介绍,如果同学们对Mathematica感兴趣,你最好还是亲自使用一下。上机的过程中,希望你注意以下几点∶ 1. 使用帮助,Mathematica的帮助文件提供了Mathematica内核的基本用法的说明,十分详细,可以参照学习。 2. 你可以使用\符号名\或\符号名\来获得关于该符号(函数名或其他)的粗略或详细介绍。符号名中还可以使用通配符,例如?M*,则系统将给出所有以M开头的关键词和函数名,再如??For将会得到关于For语句的格式和用法的详细情况。 3. 在Mathematica的编辑界面中输入语句和函数,确认光标处于编辑状态(不断闪烁),然后按Insert键来对这一段语句进行求值。如果语句有错,系统将用红色字体给出 出错信息,你可以对已输入的语句进行修改,再运行。如果运行时间太长,你可以通过Alt+.(Alt+句号)来中止求值。 4. 对函数名不确定的,可先输入前面几个字母(开头一定要大写),然后按Ctrl+K,系统会自动补全该函数名。 关于Mathematica我们就暂时介绍到这里,由于水平有限,只能介绍一些基本用法,有兴趣的同学可以多上机,自己摸索,一定会有收获的。当然,计算机是为我们服务的,我们不是为了学习而学习,而是应该把它当成一种有力的工具,应用与我们的日常学习、工作和生活中。希望Mathematica会为你将来的探索之路增添一份力量。 七.应用例子