四.数学函数的用法 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->
时函数的极限 In[1]:=
Out[1]:=1 . 微商和微分 在Mathematica中能方便地计算任何函数表达式的任意阶微商(导数).如果f是一元函数,D[f,x]表示
;如果f是多元函数,D[f,x]表示
.微商函数的常用形式如下: D[f,x]
In[1]:=D[x^x,x]Out[1]:=
下面列出全微分函数Dt的常用形式及其意义: Dt[f] 全微分 Dt[f,x] 全导数 Dt[f,x1,x2,…] 多重全导数 In[1]:=Dt[x^2+y^2] Out[1]:= . 不定积分和定积分 Integreate函数主要计算只含有1“简单函数”的被积函数. “简单函数”包括有理函数、指数函数、对数函数和三角函数与反三角函数。不定积分一般形式如下: Integrate[f,x] 计算不定积分 Integrate[f,x,y] 计算不定积分 Integrate[f,x,y,z] 计算不定积分
In[1]:=
Out[1]:=
In[2]:=
Out[2]:=
2.定积分 计算定积分的命令和计算不定积分是同一个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}] 计算定积分 In[1]:=
Out[1]:=
In[2]:=
Out[2]:=
In[3]:=
Out[3]:=
. 幂级数 幂级数展开函数Series的一般形式: Series[expr,{x,x0,n}] 将expr在x=x0点展开到n阶的级数 Series[expr,{x,x0,n},{y,y0,m}] 先对y展开到m阶再对x展开n阶幂级数 用Series展开后,展开项中含有截断误差
In[1]:=
Out[1]:=
In[2]:=
Out[2]:=
In[3]:=
Out[3]:=
. 常微分方程 求解常微分方程和常微分方程组的函数的一般形式如下: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]:=
In[3]:=
Out[3]:=
.线性代数
- 定义向量和矩阵函数
- 矩阵的运算符号和函数
- 方程组求解函数
定义一个矩阵,可用函数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]:=
(*IndentityMatrix[n]生成n维矩阵*) Out[3]:=
In[4]:=
(*生成对角元素为表元素的对角矩阵*) Out[4]:=
In[5]:=
(*TableForm[m]或MatrixForm[m]按矩阵形式输出m*) 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}组成的子矩阵. 表达式 | 意义 | A+c | A为矩阵,c为标量,c与A中的每一个元素相加 | A+B | A,B为同阶矩阵或向量,A与B的对应元素相加 | cA | A为矩阵,c为标量,c与A中的每个元素相乘 | U.V | 向量U与V的内积 | A.B | 矩阵A与矩阵B相乘,要求A的列数等于B的行数 | Det[M] | 计算矩阵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的基础解系. In[1]:=
In[2]:=
Out[2]:=
(*显然,A的秩是2*) In[3]:=
Out[3]:=
(*A 的两个线性无关解*)
|