logo资料库

数学软件MATHEMATICAL函数及使用方法.doc

第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
资料共16页,剩余部分请下载后查看
Mathematica函数及使用方法
Mathematica 函数及使用方法 一、运算符及特殊符号 Line1; Line1,line2 ?name ??name !command n! 执行 Line,不显示结果 顺次执行 Line1,2,并显示结果 关于系统变量 name 的信息 关于系统变量 name 的全部信息 执行 Dos 命令 N 的阶乘 显示文件内容 !!filename <> filename 打开文件写 Expr>>>filename 打开文件从文件末写 读入文件并执行 函数 结合率 () [] {} <*Math Fun*> 在 c 语言中使用 math 的函数 (*Note*) 程序的注释 一个表 #n ## rule& % %% %n var::note "Astring " ` Context 第 n 个参数 所有参数 把 rule 作用于后面的式子 前一次的输出 倒数第二次的输出 第 n 个输出 变量 var 的注释 字符串 上下文 乘 除 减 加 乘方 a+b a-b a*b 或 a b a/b a^b base^^num lhs&&rhs lhs││rhs !lha ++,-- +=,-=,*=,/= >,<,>=,<=,==,!= 逻辑判断(同 c) 非 自加 1,自减 1 同 C 语言 以 base 为进位的数 且 或
立即赋值 建立替换规则 建立替换规则 建立动态赋值 lhs=rhs lhs:=rhs lhs:>rhs lhs->rhs expr//funname 相当于 filename[expr] expr/.rule 将规则 rule 应用于 expr expr//.rule 将规则 rule 不断应用于 expr 知道不变为止 param_ param__ 二、系统常数 名为 param 的一个任意表达式(形式变量) 名为 param 的任意多个任意表达式(形式变量) 3.1415....的无限精度数值 2.17828...的无限精度数值 0.915966..卡塔兰常数 0.5772....高斯常数 1.61803...黄金分割数 Pi/180 角度弧度换算 复数单位 Pi E Catalan EulerGamma GoldenRatio Degree I Infinity -Infinity ComplexInfinity 复无穷大 Indeterminate 不定式 负无穷大 无穷大 三、代数计算 化简表达式 展开表达式 展开表达式 将特殊函数等也进行化简 化简 expr 中的特殊函数 合并同次项 合并 x1,x2,...的同次项 通分 Expand[expr] Factor[expr] Simplify[expr] FullSimplify[expr] PowerExpand[expr] 展开所有的幂次形式 ComplexExpand[expr,{x1,x2...}] 按复数实部虚部展开 FunctionExpand[expr] Collect[expr, x] Collect[expr, {x1,x2,...}] Together[expr] Apart[expr] Apart[expr, var] Cancel[expr] ExpandAll[expr] ExpandAll[expr, patt] FactorTerms[poly] 提出共有的数字因子 FactorTerms[poly, x] 提出与 x 无关的数字因子 FactorTerms[poly, {x1,x2...}] 提出与 xi 无关的数字因子 多项式 expr 中 form 的系数 Coefficient[expr, form] Coefficient[expr, form, n] 多项式 expr 中 form^n 的系数 表达式 expr 中 form 的最高指数 Exponent[expr, form] 部分分式展开 对 var 的部分分式展开 约分 展开表达式 展开表达式
Numerator[expr] Denominator[expr] ExpandNumerator[expr] ExpandDenominator[expr] 表达式 expr 的分子 表达式 expr 的分母 展开 expr 的分子部分 展开 expr 的分母部分 TrigExpand[expr] TrigFactor[expr] TrigFactorList[expr] TrigReduce[expr] TrigToExp[expr] ExpToTrig[expr] 展开表达式中的三角函数 给出表达式中的三角函数因子 给出表达式中的三角函数因子的表 对表达式中的三角函数化简 三角到指数的转化 指数到三角的转化 RootReduce[expr] ToRadicals[expr] 四、解方程 从方程组 eqns 中解出 vars 从方程组 eqns 中削去变量 elims,解出 vars 解微分方程,其中 y 是 x 的函数 Solve[eqns, vars] Solve[eqns, vars, elims] DSolve[eqn, y, x] DSolve[{eqn1,eqn2,...},{y1,y2...},x]解微分方程组,其中 yi 是 x 的函数 DSolve[eqn, y, {x1,x2...}] Eliminate[eqns, vars] SolveAlways[eqns, vars] Reduce[eqns, vars] LogicalExpand[expr] InverseFunction[f] Root[f, k] Roots[lhs==rhs, var] 求函数 f 的逆函数 求多项式函数的第 k 个根 得到多项式方程的所有根 化简并给出所有可能解的条件 用&&和││将逻辑表达式展开 解偏微分方程 把方程组 eqns 中变量 vars 约去 给出等式成立的所有参数满足的条件 五、微积分函数 求 f[x]的微分 求 f[x]的 n 阶微分 求 f[x]对 x1,x2...偏微分 求 f[x]的全微分 df/dx 求 f[x]的全微分 df n 阶全微分 df^n/dx^n 对 x1,x2..的偏微分 f[x]对 x 在的不定积分 D[f, x] D[f, {x, n}] D[f,x1,x2..] Dt[f, x] Dt[f] Dt[f, {x, n}] Dt[f,x1,x2..] Integrate[f, x] Integrate[f, {x, xmin, xmax}] Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}] Limit[expr, x->x0] Residue[expr, {x,x0}] Series[f, {x, x0, n}] 给出 f[x]在 x0 处的幂级数展开 Series[f, {x, x0,nx}, {y, y0, ny}]先对 y 幂级数展开,再对 x Normal[expr] 化简并给出最常见的表达式 x 趋近于 x0 时 expr 的极限 expr 在 x0 处的留数 f[x]对 x 在区间(xmin,xmax)的定积分 f[x,y]的二重积分
SeriesCoefficient[series, n] 给出级数中第 n 次项的系数 SeriesCoefficient[series, {n1,n2...}] '或 Derivative[n1,n2...][f] InverseSeries[s, x] ComposeSeries[serie1,serie2...] 给出两个基数的组合 SeriesData[x,x0,{a0,a1,..},nmin,nmax,den]表示一个在 x0 处 x 的幂级数,其中 ai 为系数 O[x]^n O[x, x0]^n n 阶小量 x^n n 阶小量(x-x0)^n 一阶导数 给出逆函数的级数 八、数值函数 N[expr] N[expr, n] 表达式的机器精度近似值 表达式的 n 位近似值,n 为任意正整数 NSolve[lhs==rhs, var] 求方程数值解 NSolve[eqn, var, n] 求方程数值解,结果精度到 n 位 NDSolve[eqns, y, {x, xmin, xmax}]微分方程数值解 NDSolve[eqns, {y1,y2,...}, {x, xmin, xmax}] 微分方程组数值解 FindRoot[lhs==rhs, {x,x0}] 以 x0 为初值,寻找方程数值解 FindRoot[lhs==rhs, {x, xstart, xmin, xmax}] NSum[f, {i,imin,imax,di}] 数值求和,di 为步长 NSum[f, {i,imin,imax,di}, {j,..},..] 多维函数求和 NProduct[f, {i, imin, imax, di}]函数求积 NIntegrate[f, {x, xmin, xmax}] 函数数值积分 优化函数: 数据处理: FindMinimum[f, {x,x0}] 以 x0 为初值,寻找函数最小值 FindMinimum[f, {x, xstart, xmin, xmax}] ConstrainedMin[f,{inequ},{x,y,..}] inequ 为线性不等式组,f 为 x,y..之线性函数,得到最小值及此时的 x,y..取值 ConstrainedMax[f, {inequ}, {x, y,..}]同上 LinearProgramming[c,m,b] 解线性组合 c.x 在 m.x>=b&&x>=0 约束下的 最小值,x,b,c 为向量,m 为矩阵 LatticeReduce[{v1,v2...}] 向量组 vi 的极小无关组 Fit[data,funs,vars]用指定函数组对数据进行最小二乘拟和 data 可以为{{x1,y1,..f1},{x2,y2,..f2}..}多维的情况 emp: Fit[{10.22,12,3.2,9.9}, {1, x, x^2,Sin[x]}, x] Interpolation[data]对数据进行差值, data 同上,另外还可以为{{x1,{f1,df11,df12}},{x2,{f2,.}..}指定各阶导数 InterpolationOrder 默认为 3 次,可修改 ListInterpolation[array]对离散数据插值,array 可为 n 维 ListInterpolation[array,{{xmin,xmax},{ymin,ymax},..}] FunctionInterpolation[expr,{x,xmin,xmax}, {y,ymin,ymax},..]
以对应 expr[xi,yi]的为数据进行插值 Fourier 对复数数据进行付氏变换 InverseFourier 对复数数据进行付氏逆变换 Min[{x1,x2...},{y1,y2,...}]得到每个表中的最小值 Max[{x1,x2...},{y1,y2,...}]得到每个表中的最大值 Select[list, crit] 将表中使得 crit 为 True 的元素选择出来 Count[list, pattern] 将表中匹配模式 pattern 的元素的个数 Sort 将表中元素按升序排列 Sort[list,p] 将表中元素按 p[e1,e2]为 True 的顺序比较 list 的任两个元素 e1,e2,实际上 Sort 中默认 p=Greater 集合论: 并集并排序 并排序 Union[list1,list2..] 表 listi 的 Intersection[list1,list2..] 表 listi 的交集 Complement[listall,list1,list2...]从全集 listall 中对 listi 的差集 九、虚数函数 Re[expr] Im[expr] Abs[expr] Arg[expr] 复数表达式的实部 复数表达式的虚部 复数表达式的模 复数表达式的辐角 Conjugate[expr] 复数表达式的共轭 十、数的头及模式及其他操作 Integer _Integer Real _Real Complex _Complex Rational_Rational 整数 实数 复数 有理数 (*注:模式用在函数参数传递中,如 MyFun[Para1_Integer,Para2_Real] 规定传入参数的类型,另外也可用来判断 If[Head[a]==Real,...]*) IntegerDigits[n,b,len] 数字 n 以 b 近制的前 len 个码元 RealDigits[x,b,len] 类上 FromDigits IntegerDigits 的反函数 Rationalize[x,dx] 把实数 x 有理化成有理数,误差小于 dx Chop[expr, delta] 将 expr 中小于 delta 的部分去掉,dx 默认为 10^-10 Accuracy[x] 给出 x 小数部分位数,对于 Pi,E 等为无限大
Precision[x] 给出 x 有效数字位数,对于 Pi,E 等为无限大 SetAccuracy[expr, n] 设置 expr 显示时的小数部分位数 SetPrecision[expr, n] 设置 expr 显示时的有效数字位数 十一、区间函数 Interval[{min, max}] 区间[min, max](* Solve[3 x+2==Interval[{-2,5}],x]*) IntervalMemberQ[interval, x] x 在区间内吗? IntervalMemberQ[interval1,interval2] 区间 2 在区间 1 内吗? IntervalUnion[intv1,intv2...] 区间的并 IntervalIntersection[intv1,intv2...] 区间的交 十二、矩阵操作 a.b.c 或 Dot[a, b, c] 矩阵、向量、张量的点积 Inverse[m] Transpose 矩阵的转置 矩阵的逆 Transpose[list,{n1,n2..}]将矩阵 list 第 k 行与第 nk 列交换 Det[m] Eigenvalues[m] Eigenvectors[m] Eigensystem[m] 矩阵的行列式 特征值 特征向量 特征系统,返回{eigvalues,eigvectors} LinearSolve[m, b] 解线性方程组 m.x==b NullSpace[m] 矩阵 m 的零空间,即 m.NullSpace[m]== 零向量 RowReduce[m] Minors[m, k] m 化简为阶梯矩阵 m 的所有 k*k 阶子矩阵的行列式的值(伴 随阵,好像是) MatrixPower[mat, n] 阵 mat 自乘 n 次 Outer[f,list1,list2..] listi 中各个元之间相互组合,并作为 f 的参 数的到的矩阵 Outer[Times,list1,list2]给出矩阵的外积 SingularValues[m] m 的奇异值,结果为{u,w,v}, m=Conjugate[Transpose].DiagonalMatrix[w].v PseudoInverse[m] m 的广义逆 QRDecomposition[m] QR 分解 SchurDecomposition[m] Schur 分解 LUDecomposition[m] LU 分解 十三、表函数 (*“表”,我认为是 Mathematica 中最灵活的一种数据类型 *) (*实际上表就是表达式,表达式也就是表,所以下面 list==expr *) (*一个表中元素的位置可以用于一个表来表示 *)
表的生成 {e1,e2,...} 一个表,元素可以为任意表达式,无穷嵌套 Table[expr,{imax}] 生成一个表,共 imax 个元素 Table[expr,{i, imax}] 生成一个表,共 imax 个元素 expr Table[expr,{i,imin,imax},{j,jmin,jmax},..] 多维表 Range[imax] 简单数表{1,2,..,imax} Range[imin, imax, di] 以 di 为步长的数表 Array[f, n] 一维表,元素为 f (i 从 1 到 n) Array[f,{n1,n2..}] 多维表,元素为 f[i,j..] (各自从 1 到 ni) IdentityMatrix[n] n 阶单位阵 DiagonalMatrix 对角阵 元素操作 Part[expr, i]或 expr[]第 i 个元 expr[[-i]] expr[[i,j,..]] 倒数第 i 个元 多维表的元 expr[[{i1,i2,..}] 返回由第 i(n)的元素组成的子表 First[expr] Last[expr] Head[expr] 第一个元 最后一个元 函数头,等于 expr[[0]] Extract[expr, list] 取出由表 list 制定位置上 expr 的元素值 Take[list, n] 取出表 list 前 n 个元组成的表 Take[list,{m,n}] 取出表 list 从 m 到 n 的元素组成的表 Drop[list, n] Rest[expr] 去掉表 list 前 n 个元剩下的表,其他参数同上 去掉表 list 第一个元剩下的表 Select[list, crit] 把 crit 作用到每一个 list 的元上, 为 True 的所有元组成的表 Length[expr] Dimensions[expr] TensorRank[expr] Depth[expr] Level[expr,n] expr 第一曾元素的个数 表的维数返回{n1,n2..},expr 为一个 n1*n2...的阵 秩 expr 最大深度 给出 expr 中第 n 层子表达式的列表 Count[list, pattern] 满足模式的 list 中元的个数 MemberQ[list, form] list 中是否有匹配 form 的元 FreeQ[expr, form] MemberQ 的反函数 Position[expr, pattern] 表中匹配模式 pattern 的元素的位置列表 Cases[{e1,e2...},pattern]匹配模式 pattern 的所有元素 ei 的表 Append[expr, elem] 返回 在表 expr 的最后追加 elem 元后的表 Prepend[expr, elem] 返回 在表 expr 的最前添加 elem 元后的表 Insert[list, elem, n] 在第 n 元前插入 elem Insert[expr,elem,{i,j,..}]在元素 expr[[{i,j,..}]]前插入 elem 表的属性 表的操作
Delete[expr, {i, j,..}] 删除元素 expr[[{i,j,..}]]后剩下的表 DeleteCases[expr,pattern]删除匹配 pattern 的所有元后剩下的表 ReplacePart[expr,new,n] 将 expr 的第 n 元替换为 new Sort 返回 list 按顺序排列的表 Reverse[expr] 把表 expr 倒过来 RotateLeft[expr, n] 把表 expr 循环左移 n 次 RotateRight[expr, n] 把表 expr 循环右移 n 次 Partition[list, n] 把 list 按每 n 各元为一个子表分割后再组成 的大表 Flatten 抹平所有子表后得到的一维大表 Flatten[list,n] 抹平到第 n 层 Split 平 把相同的元组成一个子表,再合成的大表 FlattenAt[list, n] 把 list[[n]]处的子表抹 Permutations 由 list 的元素组成的所有全排列的列表 Order[expr1,expr2] 如果 expr1 在 expr2 之前返回 1,如果 expr1 在 expr2 之后返回-1,如果 expr1 与 expr2 全等返回 0 Signature 所需的 把 list 通过两两交换得到标准顺序 交换次数(排列数) 以上函数均为仅返回所需表而不改变 原表 AppendTo[list,elem] 相当于 list=Append[list,elem]; PrependTo[list,elem] 相当于 list=Prepend[list,elem]; 十四、绘图函数 二维作图 一维函数 f[x]在区间[xmin,xmax]上的函数曲线 Plot[f,{x,xmin,xmax}] Plot[{f1,f2..},{x,xmin,xmax}] 在一张图上画几条曲线 ListPlot[{y1,y2,..}] ListPlot[{{x1,y1},{x2,y2},..}] 绘出由离散点对(xn,yn)组成的图 绘出由离散点对(n,yn)组成的图
分享到:
收藏