Mathematica 教程03mathematica基本符号运算

合集下载

mathematica 运算符及特殊符号

mathematica 运算符及特殊符号

mathematica 运算符及特殊符号一、运算符及特殊符号Line1; 执行Line,不显示结果Line1,line2 顺次执行Line1,2,并显示结果name 关于系统变量name 的信息name 关于系统变量name 的全部信息在c 语言中使用math 的函数(*Note*) 程序的注释#n 第n 个参数## 所有参数rule& 把rule 作用于后面的式子% 前一次的输出%% 倒数第二次的输出%n 第n 个输出a+b 加a-b 减a*b 或a b 乘a/b 除a^b 乘方base^^num 以base 为进位的数lhs&&rhs 且lhs||rhs 或!lha 非++,-- 自加1,自减1+=,-=,*=,/= 同C 语言二、系统常数Pi 3.1415....的无限精度数值E 2.17828...的无限精度数值Catalan 0.915966..卡塔兰常数EulerGamma 0.5772....高斯常数GoldenRatio 1.61803...黄金分割数Degree Pi/180 角度弧度换算I 复数单位Infinity 无穷大-Infinity 负无穷大ComplexInfinity 复无穷大Indeterminate 不定式三、代数计算Expand[expr] 展开表达式Factor[expr] 展开表达式Simplify[expr] 化简表达式FullSimplify[expr] 将特殊函数等也进行化简PowerExpand[expr] 展开所有的幂次形式ComplexExpand[expr,{x1,x2...}] 按复数实部虚部展开FunctionExpand[expr] 化简expr 中的特殊函数Collect[expr, x] 合并同次项Collect[expr, {x1,x2,...}] 合并x1,x2,...的同次项Together[expr] 通分Apart[expr] 部分分式展开Apart[expr, var] 对var 的部分分式展开Cancel[expr] 约分ExpandAll[expr] 展开表达式ExpandAll[expr, patt] 展开表达式FactorTerms[poly] 提出共有的数字因子FactorTerms[poly, x] 提出与x 无关的数字因子FactorTerms[poly, {x1,x2...}] 提出与xi 无关的数字因子Coefficient[expr, form] 多项式expr 中form 的系数Coefficient[expr, form, n] 多项式expr 中form^n 的系数Exponent[expr, form] 表达式expr 中form 的最高指数Numerator[expr] 表达式expr 的分子Denominator[expr] 表达式expr 的分母ExpandNumerator[expr] 展开expr 的分子部分ExpandDenominator[expr] 展开expr 的分母部分TrigExpand[expr] 展开表达式中的三角函数TrigFactor[expr] 给出表达式中的三角函数因子TrigFactorList[expr] 给出表达式中的三角函数因子的表TrigReduce[expr] 对表达式中的三角函数化简TrigToExp[expr] 三角到指数的转化ExpToTrig[expr] 指数到三角的转化四、解方程Solve[eqns, vars] 从方程组eqns 中解出varsSolve[eqns, vars, elims] 从方程组eqns 中削去变量elims,解出varsDSolve[eqn, y, x] 解微分方程,其中y 是x 的函数DSolve[{eqn1,eqn2,...},{y1,y2...},x]解微分方程组,其中yi 是x 的函数DSolve[eqn, y, {x1,x2...}] 解偏微分方程Eliminate[eqns, vars] 把方程组eqns 中变量vars 约去SolveAlways[eqns, vars] 给出等式成立的所有参数满足的条件Reduce[eqns, vars] 化简并给出所有可能解的条件LogicalExpand[expr] 用&&和||将逻辑表达式展开InverseFunction[f] 求函数f 的逆函数Root[f, k] 求多项式函数的第k 个根Roots[lhs==rhs, var] 得到多项式方程的所有根五、微积分函数D[f, x] 求f[x]的微分D[f, {x, n}] 求f[x]的n 阶微分D[f,x1,x2..] 求f[x]对x1,x2...偏微分Dt[f, x] 求f[x]的全微分df/dxDt[f] 求f[x]的全微分dfDt[f, {x, n}] n 阶全微分df^n/dx^nDt[f,x1,x2..] 对x1,x2..的偏微分Integrate[f, x] f[x]对x 在的不定积分Integrate[f, {x, xmin, xmax}] f[x]对x 在区间(xmin,xmax)的定积分Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}] f[x,y]的二重积分Limit[expr, x->x0] x 趋近于x0 时expr 的极限Residue[expr, {x,x0}] expr 在x0 处的留数Series[f, {x, x0, n}] 给出f[x]在x0 处的幂级数展开Series[f, {x, x0,nx}, {y, y0, ny}]先对y 幂级数展开,再对x Normal[expr] 化简并给出最常见的表达式O[x]^n n 阶小量x^nO[x, x0]^n n 阶小量(x-x0)^nDt[f, x] 求f[x]的全微分df/dxDt[f] 求f[x]的全微分dfDt[f, {x, n}] n 阶全微分df^n/dx^nDt[f,x1,x2..] 对x1,x2..的偏微分Integrate[f, x] f[x]对x 在的不定积分Integrate[f, {x, xmin, xmax}] f[x]对x 在区间(xmin,xmax)的定积分Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}] f[x,y]的二重积分Limit[expr, x->x0] x 趋近于x0 时expr 的极限Normal[expr] 化简并给出最常见的表达式六、绘图函数二维作图Plot[f,{x,xmin,xmax}] 一维函数f[x]在区间[xmin,xmax]上的函数曲Plot[{f1,f2..},{x,xmin,xmax}] 在一张图上画几条曲线ListPlot[{y1,y2,..}] 绘出由离散点对(n,yn)组成的图ListPlot[{{x1,y1},{x2,y2},..}] 绘出由离散点对(xn,yn)组成的图。

Mathematica 教程03mathematica基本符号运算

Mathematica 教程03mathematica基本符号运算
合并。
注意:上例中表明,当第2个参数有多个变量时,答案 与第2个参数中变量的次序有关。
/sdssxwfd ◄ Up
► Down ◙ Main
表达式的展开
将表达式展开的函数有: Expand[expr] ExpandAll[expr] 这两个函数都可用于乘积的展开,也可以展开分式。后
注意:可以看到,乘法和除法其实什么也没做,需 要用前面介绍的化简函数将结果再化简。
/sdssxwfd ◄ Up
► Down ◙ Main
介绍四个常用函数: PolynomialQuotient[pl, p2,x] 求x的多项式p1被p2除的商。 PolynomialRemainder[pl, p2,x] 求x的多项式p1被p2除的余。 PolynomialGCD[p1,p2,…] 求多个多项式的最大公因式。 PolynomialLCM[pl,p2,…] 求多个多项式的最小公倍式。
/sdssxwfd ◄ Up
► Down ◙ Main
三角函数式的化简
三角函数专用的分解、展开、化简函数 TrigExpand[expr] 将三角函数式展开。 TrigFactor[expr] 将三角函数式因式分解。 TrigReduce[expr] 用倍角化简三角函数式。 TrigToExp[expr] 将三角函数式转换成指数形。 ExpToTrig[expr] 前一个函数的逆变换。
► Down ◙ Main
NSolve[eqns,vars] 求代数方程(组)的全部数值解。
FindRoot[eqns,{x,x0},{y,y0},…] 从(x0,y0,…,)出发找 方程(组)的一个解。
注意:上例中In[1]说明,如果方程中出现小数,则Solve 也求近似解. 还有求多项式根的函数Roots,通常可用 Solve代替,这里就不介绍了。

Mathematica基本运算指令

Mathematica基本运算指令

Mathematica基本运算指令基本运算a+b+c 加a-b 减a b c 或 a*b*c 乘a/b 除-a 负号a^b 次方Mathematica 数字的形式256 整数2.56 实数11/35 分数2+6I 复数常用的数学常数Pi 圆周率,π=3.141592654…E 尤拉常数,e=2.71828182…Degree 角度转换弧度的常数,Pi/180I 虚数,其值为√-1Infinity 无限大指定之前计算结果的方法% 前一个运算结果%% 前二个运算结果%%…%(n个%) 前n个运算结果%n 或 Out[n] 前n个运算结果复数的运算指令a+bI 复数Conjugate[a+bI] 共轭复数Re[z], Im[z] 复数z的实数/虚数部分Abs[z] 复数z的大小或模数(Modulus)Arg[z] 复数z的幅角(Argument)Mathematica 输出的控制指令expr1; expr2; expr3 做数个运算,但只印出最后一个运算的结果expr1; expr2; expr3; 做数个运算,但都不印出结果expr; 做运算,但不印出结果常用数学函数Sin[x],Cos[x],Tan[x],Cot[x],Sec[x],Csc[x] 三角函数,其引数的单位为弧度Sinh[x],Cosh[x],Tanh[x],… 双曲函数ArcSin[x],ArcCos[x],ArcTan[x] 反三角函数ArcCot[x],ArcSec[x],ArcCsc[x]ArcS inh[x],ArcCosh[x],ArcTanh[x],…反双曲函数Sqrt[x] 根号Exp[x] 指数Log[x] 自然对数Log[a,x] 以a为底的对数Abs[x] 绝对值Round[x] 最接近x的整数Floor[x] 小于或等于x的最大整数Ceiling[x] 大于或等于x的最小整数Mod[a,b] a/b所得的馀数n! 阶乘Random[] 0至1之间的随机数(最新版本已经不用这个函数,改为使用RandomReal[])Max[a,b,c,...],Min[a,b,c,…] a,b,c,…的极大/极小值数值设定x=a 将变数x的值设为ax=y=b 将变数x和y的值均设为bx=. 或 Clear[x] 除去变数x所存的值变数使用的一些法则xy 中间没有空格,视为变数xyx y x乘上y3x 3乘上xx3 变数x3x^2y 为 x^2 y次方运算子比乘法的运算子有较高的处理顺序四个处理指令Expand[expr] 将 expr展开Factor[expr] 将 expr因式分解Simplify[expr] 将 expr化简成精简的式子FullSimplify[expr] Mathematica 会尝试更多的化简公式,将expr化成更精简的式子多项式/分式转换ExpandAll[expr] 把算式全部展开Together[expr] 将 expr各项通分在并成一项Apart[expr] 把分式拆开成数项分式的和Apart[expr,var] 视var以外的变数为常数,将 expr拆成数项的和Cancel[expr] 把分子和分母共同的因子消去分母/分子运算Denominator[expr] 取出expr的分母Numerator[expr] 取出expr的分子ExpandDenominator[expr] 展开expr的分母ExpandNumerator[expr] 展开expr的分子多项式转换函数Collect[expr,x] 将 expr表示成x的多项式,如Collect[expr,{x,y,…}] 将 expr分别表示成x,y,…的多项式FactorTerms[expr] 将 expr的数值因子提出,如 4x+2=2(2x+1)FactorTerms[expr,x] 将 expr中把所有不包含x项的因子提出FactorTerms[exp r,{x,y,…}] 将 expr中把所有不包含{x,y,...}项的因子提出函数和指数运算TrigExpand[expr] 将三角函数展开TrigFactor[expr] 将三角函数所组成的数学式因式分解TrigReduce[expr] 将相乘或次方的三角函数化成一次方的基本三角函数之组合ExpT oTrig[expr] 将指数函数化成三角函数或双曲函数TrigToExp[expr] 将三角函数或双曲函数化成指数函数复数、次方乘积ComplexExpand[expr] 假设所有的变数都是实数来对expr展开ComplexExpand[expr,{x,y,…}] 假设x,y,..等变数均为复数来对 expr展开PowerExpand[expr] 将项次、系数最高次方Coefficient[expr,form] 于 expr中form的系数Exponent[expr,form] 于 expr中form的最高次方Part[expr,n] 或 expr[[n]] 在 expr项中第n个项代换运算子expr/.x->value 将 expr里所有的x均代换成valueexpr/.{x->value1,y->value2,…} 执行数个不同变数的代换expr/.{{x->value1},{x->value2},…} 将 expr代入不同的x值expr//.{x->value1,y->value2,…} 重复代换到 expr不再改变为止求解方程式的根Solve[lhs==rhs,x] 解方程式lhs==rhs,求xNsolve[lhs==rhs,x] 解方程式lhs==rhs的数值解Solve[{lhs1==rhs1,lhs2==rhs2,…},{x,y,…}] 解联立方程式,求x,y,…NSolve[{lhs1==rhs1,lhs2==rhs2,…},{x,y,…}] 解联立方程式的数值解FindRoot[lhs==rhs,{x,x0}] 由初始点x0求lhs==rhs的根四种括号(term) 圆括号,括号内的term先计算f[x] 方括号,内放函数的引数{x,y,z} 大括号或串列括号,内放串列的元素p[[i ]] 或 Part[p,i] 双方括号,p的第i项元素p[[i,j]] 或 Part[p,i,j] p的第i项第j个元素缩短输出指令expr//Short 显示一行的计算结果Short[expr,n] 显示n行的计算结果Command; 执行command,但不列出结果查询物件Command 查询Command的语法及说明Command 查询Command的语法和属性及选择项Aaaa* 查询所有开头为Aaaa的物件定义之查询与清除f[x_]= expr 立即定义函数f[x]f[x_]:= expr 延迟定义函数f[x]f[x_,y_,…] 函数f有两个以上的引数f 查询函数f的定义Clear[f] 或 f=. 清除f的定义Remove[f] 将f自系统中清除掉含有预设值的Patterna_+b_. b的预设值为0,即若b从缺,则b以0代替x_ y_ y的预设值为1x_^y_ y的预设值为1条件式的自订函数lhs:=rhs/;condition 当condition成立时,lhs才会定义成rhs If指令If[test,then,else] 若test为真,则回应then,否则回应elseIf[test,then,else,unknow] 同上,若test无法判定真或假时,则回应unknow 极限Limit[expr,x->c] 当x趋近c时,求expr的极限Limit[expr,x->c,Direction->1]Limit[expr,x->c,Direction->-1]微分D[f,x] 函数f对x作微分D[f,x1,x2,…] 函数f对x1,x2,…作微分D[f,{x,n}] 函数f对x微分n次D[f,x,NonConstants->{y,z,…}] 函数f对x作微分,将y,z,…视为x的函数全微分Dt[f] 全微分dfDt[f,x] 全微分Dt[f,x1,x2,…] 全微分Dt[f,x,Constants->{c1,c2,…}] 全微分,视c1,c2,…为常数不定积分Integrate[f,x] 不定积分∫f dx定积分Integrate[f,{x,xmin,xmax}] 定积分Integrate[f,{x,xmin,xmax},{y,ymin,ymax}] 定积分数列之和与积Sum[f,{i,imin,imax}] 求和Sum[f,{i,imin,imax,di}] 求数列和,引数i以di递增Sum[f,{i,imin,imax},{j,jmin,jmax}]Product[f,{i,imin,imax}] 求积Product[f,{i,imin,imax,di}] 求数列之积,引数i以di递增Product[f,{i,imin,imax},{j,jmin,jmax}]泰勒展开式Series[expr,{x,x0,n}] 对expr于x0点作泰勒级数展开至(x-x0)n 项Series[expr,{x,x0,m},{y,y0,n}] 对x0和y0展开关系运算子a==b 等于a>b 大于a>=b 大于等于aa<=b 小于等于a!=b 不等于逻辑运算子!p notp||q||… orp&&q&&… andXor[p,q,…] exclusive orLogicalExpand[expr] 将逻辑表示式展开二维绘图指令Plot[f,{x,xmin,xmax}]画出f在xmin到xmax之间的图形Plot[{f1,f2,…},{x,xmin,xmax}]同时画出数个函数图形Plot[f,{x,xmin,xmax},option->value]指定特殊的绘图选项,画出函数f的图形Plot几种指令选项预设值说明AspectRatio 1/GoldenRatio 图形高和宽之比例,高/宽Axes True 是否把坐标轴画出AxesLabel Automatic 为坐标轴贴上标记,若设定为AxesLabel->{?ylabel?},则为y轴之标记。

Mathematica符号计算

Mathematica符号计算
可视化
绘图光变定位Plot F(+F1)
Plot[Sin[x],{x,0,Pi}]
改色Plotstyle->{Red}
合并图像Show[a,b] (dim a ,b first)
动态展示Manipulate[Plot[Sin[omega x],{x,0,10}],{omega,1,5}]
slider拖动条
plot(x,y,’.’)点o x +
mesh(x,y,z)网格
surf(x,y,z)曲面
shading interp美化
逻辑运算
非~与&或|
If<逻辑表达式>
<命令语句集>
End
扩展
<<Units' (单位相关工具)
Convert[1 Meter/Second,Inch/Hour]
PS:
科学计算,数据处理、可视化ORIGIN
Wolfram Alpha知识网站
Matlab
Kernel+numerous toolboxes
入门
Workspace : processed data
Command History: copy & script
常量Pii&j eps(小量)inf(无穷大) nan(Not A Number)
符号[]数组、矩阵
a=2 b=3 a+b*sin(x)
矩阵输入
A=[1 2 3;4,5i,6
7 8i 9]
输出Variable Editor
B=A(:,[1,3])
作图
y=sin(x)
x=-10:0.1:10
y=sin(x)

mathematica 矩阵 符号运算

mathematica 矩阵 符号运算

mathematica 矩阵符号运算
在Mathematica 中进行矩阵的符号运算是一个相对直接的过程。

以下是一些基本的示例:
创建矩阵:
在Mathematica 中,可以使用大括号{} 来创建矩阵。

例如,创建一个3x3 的矩阵A:
, a2, a3}, {b1, b2, b3}, {c1, c2, c3}}
a1, a2, ...` 是元素。

矩阵乘法:
使用* 运算符进行矩阵乘法。

例如,将矩阵A 和B 相乘:
, e2, e3}, {f1, f2, f3}}
A * B
法。

矩阵加法:
使用+ 运算符进行矩阵加法。

两个矩阵必须有相同的维度才能相加。

例如:
这将执行矩阵加法。

4. 元素级别的运算:
使用 .* 和/.* 运算符进行元素级别的乘法和除法。

例如:
B (点乘)
A/B (逐元素除法)
的逆**:
使用Inverse 函数计算矩阵的逆。

注意,不是所有的矩阵都有逆矩阵,只有可逆的矩阵才有。

例如:
]
使用Det 函数计算矩阵的行列式。

不是所有的矩阵都有行列式,只有方阵才有。

例如:
行列式。

7. 求矩阵的特征值和特征向量:
使用Eigenvalues 和Eigenvectors 函数分别计算矩阵的特征值和特征向量。

注意,不是所有的矩阵都有特征值或特征向量,只有方阵才可能有。

例如:
Eigenvalues[A]
Eigenvectors[A]
特征向量。

Mathematica语句基本命令

Mathematica语句基本命令

Mathematica的内部常数Pi , 或π(从基本输入工具栏输入, 或“Esc”+“p”+“Esc”)圆周率π E (从基本输入工具栏输入, 或“Esc”+“ee”+“Esc”)自然对数的底数e I (从基本输入工具栏输入, 或“Esc”+“ii”+“Esc”)虚数单位iInfinity, 或∞(从基本输入工具栏输入 , 或“Esc”+“inf”+“Esc”)无穷大∞Degree 或°(从基本输入工具栏输入,或“Esc”+“deg”+“Esc”)度Mathematica的常用内部数学函数指数函数Exp[x]以e为底数对数函数Log[x]自然对数,即以e为底数的对数Log[a,x]以a为底数的x的对数开方函数Sqrt[x]表示x的算术平方根绝对值函数Abs[x]表示x的绝对值三角函数(自变量的单位为弧度)Sin[x]正弦函数Cos[x]余弦函数Tan[x]正切函数Cot[x]余切函数Sec[x]正割函数Csc[x]余割函数反三角函数ArcSin[x]反正弦函数ArcCos[x]反余弦函数ArcTan[x]反正切函数ArcCot[x]反余切函数ArcSec[x]反正割函数ArcCsc[x]反余割函数双曲函数Sinh[x]双曲正弦函数Cosh[x]双曲余弦函数Tanh[x]双曲正切函数Coth[x]双曲余切函数Sech[x]双曲正割函数Csch[x]双曲余割函数反双曲函数ArcSinh[x]反双曲正弦函数ArcCosh[x]反双曲余弦函数ArcTanh[x]反双曲正切函数ArcCoth[x]反双曲余切函数ArcSech[x]反双曲正割函数ArcCsch[x]反双曲余割函数求角度函数ArcTan[x,y]以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度数论函数GCD[a,b,c,...]最大公约数函数LCM[a,b,c,...]最小公倍数函数Mod[m,n]求余函数(表示m除以n的余数)Quotient[m,n]求商函数(表示m除以n的商)Divisors[n]求所有可以整除n的整数FactorInteger[n]因数分解,即把整数分解成质数的乘积Prime[n]求第n个质数PrimeQ[n]判断整数n是否为质数,若是,则结果为True,否则结果为False Random[Integer,{m,n}]随机产生m到n之间的整数排列组合函数Factorial[n]或n!阶乘函数,表示n的阶乘复数函数Re[z]实部函数Im[z]虚部函数Arg(z)辐角函数Abs[z]求复数的模Conjugate[z]求复数的共轭复数Exp[z]复数指数函数求整函数与截尾函数Ceiling[x]表示大于或等于实数x的最小整数Floor[x]表示小于或等于实数x的最大整数Round[x]表示最接近x的整数IntegerPart[x]表示实数x的整数部分FractionalPart[x]表示实数x的小数部分分数与浮点数运算函数N[num]或num//N把精确数num化成浮点数(默认16位有效数字)N[num,n]把精确数num化成具有n个有效数字的浮点数NumberForm[num,n]以n个有效数字表示numRationalize[float]将浮点数float转换成与其相等的分数Rationalize[float,dx]将浮点数float转换成与其近似相等的分数,误差小于dx最大、最小函数Max[a,b,c,...]求最大数Min[a,b,c,...]求最小数符号函数Sign[x]Mathematica中的数学运算符a+b 加法a-b减法a*b (可用空格键代替*)乘法a/b (输入方法为:“ Ctrl ” + “ / ” ) 除法a^b (输入方法为:“ Ctrl ” + “ ^ ” )乘方-a 负号Mathematica的关系运算符==等于<小于>大于<=小于或等于>=大于或等于!=不等于注:上面的关系运算符也可从基本输入工具栏输入。

Mathematica函数大全--运算符及特殊符号

Mathematica函数大全--运算符及特殊符号

Mathematica函数大全--运算符及特殊符号一、运算符及特殊符号Line1; 执行Line,不显示结果Line1,line2 顺次执行Line1,2,并显示结果name 关于系统变量name的信息name 关于系统变量name的全部信息!command 执行Dos命令n! N的阶乘!!filename 显示文件内容<Expr>> filename 打开文件写Expr>>>filename 打开文件从文件末写() 结合率[] 函数{} 一个列表<*Math Fun*> 在c语言中使用math的函数(*Note*) 程序的注释#n 第n个参数## 所有参数rule& 把rule作用于后面的式子% 前一次的输出%% 倒数第二次的输出%n 第n个输出var::note 变量var的注释"Astring " 字符串Context ` 上下文a+b 加a-b 减a*b或a b 乘a/b 除a^b 乘方除a^b 乘方base^^num 以base为进位的数lhs&&rhs 且lhs||rhs 或!lha 非++,-- 自加1,自减1+=,-=,*=,/= 同C语言>,<,>=,<=,==,!= 逻辑判断(同c)lhs=rhs 立即赋值lhs:=rhs 建立动态赋值lhs:>rhs 建立替换规则lhs->rhs 建立替换规则expr//funname 相当于filename[expr]expr/.rule 将规则rule应用于exprexpr//.rule 将规则rule不断应用于expr知道不变为止param_ 名为param的一个任意表达式(形式变量)param__ 名为param的任意多个任意表达式(形式变量)二、系统常数Pi 3.1415....的无限精度数值E 2.17828...的无限精度数值Catalan 0.915966..卡塔兰常数EulerGamma 0.5772....高斯常数GoldenRatio 1.61803...黄金分割数Degree Pi/180角度弧度换算I 复数单位Infinity 无穷大-Infinity 负无穷大ComplexInfinity 复无穷大Indeterminate 不定式三、代数计算Expand[expr] 展开表达式Factor[expr] 展开表达式Simplify[expr] 化简表达式FullSimplify[expr] 将特殊函数等也进行化简PowerExpand[expr] 展开所有的幂次形式ComplexExpand[expr,{x1,x2...}] 按复数实部虚部展开FunctionExpand[expr] 化简expr中的特殊函数Collect[expr, x] 合并同次项Collect[expr, {x1,x2,...}] 合并x1,x2,...的同次项Together[expr] 通分Apart[expr] 部分分式展开Apart[expr, var] 对var的部分分式展开Cancel[expr] 约分ExpandAll[expr] 展开表达式ExpandAll[expr, patt] 展开表达式FactorTerms[poly] 提出共有的数字因子FactorTerms[poly, x] 提出与x无关的数字因子FactorTerms[poly, {x1,x2...}] 提出与xi无关的数字因子Coefficient[expr, form] 多项式expr中form的系数Coefficient[expr, form, n] 多项式expr中form^n的系数Exponent[expr, form] 表达式expr中form的最高指数Numerator[expr] 表达式expr的分子Denominator[expr] 表达式expr的分母ExpandNumerator[expr] 展开expr的分子部分ExpandDenominator[expr] 展开expr的分母部分ExpandDenominator[expr] 展开expr的分母部分TrigExpand[expr] 展开表达式中的三角函数TrigFactor[expr] 给出表达式中的三角函数因子TrigFactorList[expr] 给出表达式中的三角函数因子的表TrigReduce[expr] 对表达式中的三角函数化简TrigToExp[expr] 三角到指数的转化ExpToTrig[expr] 指数到三角的转化RootReduce[expr]ToRadicals[expr]四、解方程Solve[eqns, vars] 从方程组eqns中解出varsSolve[eqns, vars, elims] 从方程组eqns中削去变量elims,解出vars DSolve[eqn, y, x] 解微分方程,其中y是x的函数DSolve[{eqn1,eqn2,...},{y1,y2...},x]解微分方程组,其中yi是x的函数DSolve[eqn, y, {x1,x2...}] 解偏微分方程Eliminate[eqns, vars] 把方程组eqns中变量vars约去SolveAlways[eqns, vars] 给出等式成立的所有参数满足的条件Reduce[eqns, vars] 化简并给出所有可能解的条件LogicalExpand[expr] 用&&和||将逻辑表达式展开InverseFunction[f] 求函数f的逆函数Root[f, k] 求多项式函数的第k个根Roots[lhs==rhs, var] 得到多项式方程的所有根五、微积分函数D[f, x] 求f[x]的微分D[f, {x, n}] 求f[x]的n阶微分D[f,x1,x2..] 求f[x]对x1,x2...偏微分Dt[f, x] 求f[x]的全微分df/dxDt[f] 求f[x]的全微分dfDt[f, {x, n}] n阶全微分df^n/dx^nDt[f,x1,x2..] 对x1,x2..的偏微分Integrate[f, x] f[x]对x在的不定积分Integrate[f, {x, xmin, xmax}] f[x]对x在区间(xmin,xmax)的定积分Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}] f[x,y]的二重积分Limit[expr, x->x0] x趋近于x0时expr的极限Residue[expr, {x,x0}] expr在x0处的留数Series[f, {x, x0, n}] 给出f[x]在x0处的幂级数展开Series[f, {x, x0,nx}, {y, y0, ny}]先对y幂级数展开,再对xNormal[expr] 化简并给出最常见的表达式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的幂级数,其中aii 为系数O[x]^n n阶小量x^nO[x, x0]^n n阶小量(x-x0)^nDt[f, x] 求f[x]的全微分df/dxDt[f] 求f[x]的全微分dfDt[f, {x, n}] n阶全微分df^n/dx^nDt[f,x1,x2..] 对x1,x2..的偏微分Integrate[f, x] f[x]对x在的不定积分Integrate[f, {x, xmin, xmax}] f[x]对x在区间(xmin,xmax)的定积分Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}] f[x,y]的二重积分Limit[expr, x->x0] x趋近于x0时expr的极限Residue[expr, {x,x0}] expr在x0处的留数Series[f, {x, x0, n}] 给出f[x]在x0处的幂级数展开Series[f, {x, x0,nx}, {y, y0, ny}]先对y幂级数展开,再对xNormal[expr] 化简并给出最常见的表达式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 n阶小量x^nO[x, x0]^n n阶小量(x-x0)^n六、多项式函数Variables[poly] 给出多项式poly中独立变量的列表CoefficientList[poly, var] 给出多项式poly中变量var的系数CoefficientList[poly, {var1,var2...}]给出多项式poly中变量var(i)的系数列? PolynomialMod[poly, m] poly中各系数mod m同余后得到的多项式,m可为整式PolynomialQuotient[p, q, x] 以x为自变量的两个多项式之商式p/q PolynomialRemainder[p, q, x] 以x为自变量的两个多项式之余式PolynomialGCD[poly1,poly2,...] poly(i)的最大公因式PolynomialLCM[poly1,poly2,...] poly(i)的最小公倍式PolynomialReduce[poly, {poly1,poly2,...},{x1,x2...}]得到一个表{{a1,a2,...},b}其中Sum[ai*polyi]+b=polyResultant[poly1,poly2,var] 约去poly1,poly2中的varFactor[poly] 因式分解(在整式范围内)FactorTerms[poly] 提出poly中的数字公因子FactorTerms[poly, {x1,x2...}] 提出poly中与xi无关项的数字公因子FactorList[poly]给出poly各个因子及其指数{{poly1,exp1},{...}...} FactorSquareFreeList[poly]FactorTermsList[poly,{x1,x2...}] 给出各个因式列表,第一项是数字公因子,第二项是与xi无关的因式,其后是与xi有关的因式按升幂的排排? Cyclotomic[n, x] n阶柱函数Decompose[poly, x] 迭代分解,给出{p1,p2,...},其中p1(p2(...))=poly InterpolatingPolynomial[data, var] 在数据data上的插值多项式data可以写为{f1,f2..}相当于{{x1=1,y1=f1}..}data可以写为{{x1,f1,df11,df12,..},{x2,f2,df21..}可以指定数据点上的n阶导数值RootSum[f, form] 得到f[x]=0的所有根,并求得Sum[form[xi]]七、随机函数Random[type,range] 产生type类型且在range范围内的均匀分布随机数type可以为Integer,Real,Complex,不写默认为Realrange为{min,max},不写默认为{0,1}Random[] 0~1上的随机实数SeedRandom[n] 以n为seed产生伪随机数如果采用了<在2.0版本为<<"D:\\Math\\PACKAGES\\STATISTI\\Continuo.m" Random[distribution]可以产生各种分布如Random[BetaDistribution[alpha, beta]]stribution[alpha, beta]]Random[NormalDistribution[miu,sigma]]等常用的分布如BetaDistribution,CauchyDistribution,ChiDistribution, NoncentralChiSquareDistribution,ExponentialDistribution, ExtremeValueDistribution,NoncentralFRatioDistribution, GammaDistribution,HalfNormalDistribution, LaplaceDistribution, LogNormalDistribution,LogisticDistribution,RayleighDistribution,NoncentralStudentTDistribution, UniformDistribution, WeibullDistribution八、数值函数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[list] 对复数数据进行付氏变换InverseFourier[list] 对复数数据进行付氏逆变换Min[{x1,x2...},{y1,y2,...}]得到每个表中的最小值变换Min[{x1,x2...},{y1,y2,...}]得到每个表中的最小值Max[{x1,x2...},{y1,y2,...}]得到每个表中的最大值Select[list, crit] 将表中使得crit为True的元素选择出来Count[list, pattern] 将表中匹配模式pattern的元素的个数Sort[list] 将表中元素按升序排列Sort[list,p] 将表中元素按p[e1,e2]为True的顺序比较list的任两个元素e1,e2,实际上Sort[list]中默认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[list] IntegerDigits的反函数Rationalize[x,dx] 把实数x有理化成有理数,误差小于dxChop[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}],xx]*) 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[list] 矩阵的转置Transpose[list,{n1,n2..}]将矩阵list 第k行与第nk列交换Det[m] 矩阵的行列式Eigenvalues[m] 特征值Eigenvectors[m] 特征向量特征值Eigenvectors[m] 特征向量Eigensystem[m] 特征系统,返回{eigvalues,eigvectors}LinearSolve[m, b] 解线性方程组m.x==bNullSpace[m] 矩阵m的零空间,即m.NullSpace[m]==零向量RowReduce[m] m化简为阶梯矩阵Minors[m, k] 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[u]].DiagonalMatrix[w].vPseudoInverse[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[i]Table[expr,{i,imin,imax},{j,jmin,jmax},..] 多维表Range[imax] 简单数表{1,2,..,imax}Range[imin, imax, di] 以di为步长的数表Array[f, n] 一维表,元素为f[i] (i从1到n)Array[f,{n1,n2..}] 多维表,元素为f[i,j..] (各自从1到ni)IdentityMatrix[n] n阶单位阵DiagonalMatrix[list] 对角阵元素操作Part[expr, i]或expr[[i]]第i个元expr[[-i]] 倒数第i个元expr[[i,j,..]] 多维表的元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] 去掉表list前n个元剩下的表,其他参数同上Rest[expr] 去掉表list第一个元剩下的表Select[list, crit] 把crit作用到每一个list的元上,为True的所有元组成的表表的属性Length[expr] expr第一曾元素的个数Dimensions[expr] 表的维数返回{n1,n2..},expr为一个n1*n2...的阵TensorRank[expr] 秩Depth[expr] expr最大深度Level[expr,n] 给出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元前插入elemInsert[expr,elem,{i,j,..}]在元素expr[[{i,j,..}]]前插入elemDelete[expr, {i, j,..}] 删除元素expr[[{i,j,..}]]后剩下的表DeleteCases[expr,pattern]删除匹配pattern的所有元后剩下的表ReplacePart[expr,new,n] 将expr的第n元替换为newSort[list] 返回list按顺序排列的表Reverse[expr] 把表expr倒过来RotateLeft[expr, n] 把表expr循环左移n次RotateRight[expr, n] 把表expr循环右移n次Partition[list, n] 把list按每n各元为一个子表分割后再组成的大表Flatten[list] 抹平所有子表后得到的一维大表Flatten[list,n] 抹平到第n层Split[list] 把相同的元组成一个子表,再合成的大表FlattenAt[list, n] 把list[[n]]处的子表抹平FlattenAt[list, n] 把list[[n]]处的子表抹平Permutations[list] 由list的元素组成的所有全排列的列表Order[expr1,expr2] 如果expr1在expr2之前返回1,如果expr1在expr2之后返回-1,如果expr1与expr2全等返回0Signature[list] 把list通过两两交换得到标准顺序所需的交换次数(排列数)以上函数均为仅返回所需表而不改变原表AppendTo[list,elem] 相当于list=Append[list,elem];PrependTo[list,elem] 相当于list=Prepend[list,elem];十四、绘图函数二维作图Plot[f,{x,xmin,xmax}] 一维函数f[x]在区间[xmin,xmax]上的函数曲? Plot[{f1,f2..},{x,xmin,xmax}] 在一张图上画几条曲线ListPlot[{y1,y2,..}] 绘出由离散点对(n,yn)组成的图ListPlot[{{x1,y1},{x2,y2},..}] 绘出由离散点对(xn,yn)组成的图ParametricPlot[{fx,fy},{t,tmin,tmax}] 由参数方程在参数变化范围内的曲线ParametricPlot[{{fx,fy},{gx,gy},...},{t,tmin,tmax}]在一张图上画多条参数曲线选项:PlotRange->{0,1} 作图显示的值域范围AspectRatio->1/GoldenRatio生成图形的纵横比PlotLabel ->label 标题文字Axes ->{False,True} 分别制定是否画x,y轴AxesLabel->{xlabel,ylabel}x,y轴上的说明文字Ticks->None,Automatic,fun用什么方式画轴的刻度AxesOrigin ->{x,y} 坐标轴原点位置AxesStyle->{{xstyle}, {ystyle}}设置轴线的线性颜色等属性Frame ->True,False 是否画边框FrameLabel ->{xmlabel,ymlabel,xplabel,yplabel} 边框四边上的文字FrameTicks同Ticks 边框上是否画刻度GridLines 同Ticks 图上是否画栅格线FrameStyle ->{{xmstyle},{ymstyle}设置边框线的线性颜色等属性ListPlot[data,PlotJoined->True] 把离散点按顺序连线PlotSytle->{{style1},{style2},..}曲线的线性颜色等属性PlotPoints->15 曲线取样点,越大越细致三维作图Plot3D[f,{x,xmin,xmax}, {y,ymin,ymax}]二维函数f[x,y]的空间曲面Plot3D[{f,s}, {x,xmin,xmax}, {y,ymin,ymax}]同上,曲面的染色由s[x,y]值决定ListPlot3D[array] 二维数据阵array的立体高度图ListPlot3D[array,shades]同上,曲面的染色由shades[数据]值决定ParametricPlot3D[{fx,fy,fz},{t,tmin,tmax}]二元数方程在参数变化范围内的曲线二元数方程在参数变化范围内的曲线ParametricPlot3D[{{fx,fy,fz},{gx,gy,gz},...},{t,tmin,tmax}]多条空间参数曲线选项:ViewPoint ->{x,y,z} 三维视点,默认为{1.3,-2.4,2}Boxed -> True,False 是否画三维长方体边框BoxRatios->{sx,sy,sz} 三轴比例BoxStyle 三维长方体边框线性颜色等属性Lighting ->True 是否染色LightSources->{s1,s2..} si为某一个光源si={{dx,dy,dz},color}color为灯色,向dx,dy,dz方向照射AmbientLight->颜色函数慢散射光的光源Mesh->True,False 是否画曲面上与x,y轴平行的截面的截线MeshStyle 截线线性颜色等属性MeshRange->{{xmin,xmax}, {ymin,ymax}}网格范围ClipFill->Automatic,None,color,{bottom,top}指定图形顶部、底部超界后所画的颜色Shading ->False,True 是否染色HiddenSurface->True,False 略去被遮住不显示部分的信息等高线ContourPlot[f,{x,xmin,xmax},{y,ymin,ymax}]二维函数f[x,y]在指定区间上的等高线图ListContourPlot[array] 根据二维数组array数值画等高线选项:Contours->n 画n条等高线Contours->{z1,z2,..} 在zi处画等高线ContourShading -> False 是否用深浅染色ContourLines -> True 是否画等高线ContourStyle -> {{style1},{style2},..}等高线线性颜色等属性FrameTicks 同上密度图DensityPlot[f,{x,xmin,xmax},{y,ymin,ymax}]二维函数f[x,y]在指定区间上的密度图ListDensityPlot[array] 同上图形显示Show[graphics,options] 显示一组图形对象,options为选项设置Show[g1,g2...] 在一个图上叠加显示一组图形对象GraphicsArray[{g1,g2,...}]在一个图上分块显示一组图形对象SelectionAnimate[notebook,t]把选中的notebook中的图画循环放映选项:(此处选项适用于全部图形函数)>选项:(此处选项适用于全部图形函数)Background->颜色函数指定绘图的背景颜色RotateLabel -> True 竖着写文字TextStyle 此后输出文字的字体,颜色大小等ColorFunction->Hue等把其作用于某点的函数值上决定某点的颜色RenderAll->False 是否对遮挡部分也染色MaxBend 曲线、曲面最大弯曲度十四、绘图函数(续)图元函数Graphics[prim, options]prim为下面各种函数组成的表,表示一个二维图形对象Graphics3D[prim, options]prim为下面各种函数组成的表,表示一个三维图形对象SurfaceGraphics[array, shades]表示一个由array和shade决定的曲面对象ContourGraphics[array]表示一个由array决定的等高线图对象DensityGraphics[array]表示一个由array决定的密度图对象以上定义图形对象,可以进行对变量赋值,合并显示等操作,也可以存盘Point[p] p={x,y}或{x,y,z},在指定位置画点Line[{p1,p2,..}]经由pi点连线Rectangle[{xmin, ymin}, {xmax, ymax}] 画矩形Cuboid[{xmin,ymin,zmin},{xmax,ymax,zmax}]由对角线指定的长方体Polygon[{p1,p2,..}] 封闭多边形Circle[{x,y},r] 画圆Circle[{x,y},{rx,ry}] 画椭圆,rx,ry为半长短轴Circle[{x,y},r,{a1,a2}] 从角度a1~a2的圆弧Disk[{x, y}, r] 填充的园、衷病⒃弧等参数同上Raster[array,ColorFunction->f] 颜色栅格Text[expr,coords] 在坐标coords上输出表达式PostScript["string"] 直接用PostScript图元语言写Scaled[{x,y,..}] 返回点的坐标,且均大于0小于1颜色函数(指定其后绘图的颜色)GrayLevel[level] 灰度level为0~1间的实数RGBColor[red, green, blue] RGB颜色,均为0~1间的实数Hue[h, s, b] 亮度,饱和度等,均为0~1间的实数CMYKColor[cyan, magenta, yellow, black] CMYK颜色其他函数(指定其后绘图的方式)Thickness[r] 设置线宽为rPointSize[d] 设置绘点的大小Dashing[{r1,r2,..}] 虚线一个单元的间隔长度ImageSize->{x, y} 显示图形大小(像素为单位)ImageResolution->r 图形解析度r个dpi小(像素为单位)ImageResolution->r 图形解析度r个dpiImageMargins->{{left,right},{bottom,top}}四边的空白ImageRotated->False 是否旋转90度显示十五、流程控制分支If[condition, t, f] 如果condition为True,执行t段,否则f段If[condition, t, f, u] 同上,即非True又非False,则执行u段Which[test1,block1,test2,block2..] 执行第一为True的testi对应的blocki Switch[expr,form1,block1,form2,block2..]执行第一个expr所匹配的formi所对应的blocki段循环Do[expr,{imax}] 重复执行expr imax次Do[expr,{i,imin,imax}, {j,jmin,jmax},...]多重循环While[test, body] 循环执行body直到test为FalseFor[start,test,incr,body]类似于C语言中的for,注意","与";"的用法相反examp: For[i=1;t =x,i^2<10,i++,t =t+i;Print[t]]异常控制Throw[value] 停止计算,把value返回给最近一个Catch处理Throw[value, tag] 同上,Catch[expr] 计算expr,遇到Throw返回的值则停止Catch[expr, form] 当Throw[value, tag]中Tag匹配form时停止其他控制Return[expr] 从函数返回,返回值为exprReturn[ ] 返回值NullBreak[ ] 结束最近的一重循环Continue[ ] 停止本次循环,进行下一次循环Goto[tag] 无条件转向Label[Tag]处Label[tag] 设置一个断点Check[expr,failexpr] 计算expr,如果有出错信息产生,则返回failexpr的值Check[expr,failexpr,s1::t1,s2::t2,...]当特定信息产生时则返回failexpr CheckAbort[expr,failexpr]当产生abort信息时放回failexprInterrupt[ ] 中断运行Abort[ ] 中断运行TimeConstrained[expr,t] 计算expr,当耗时超过t秒时终止MemoryConstrained[expr,b]计算expr,当耗用内存超过b字节时终止运算交互式控制Print[expr1,expr2,...] 顺次输出expri的值examp: Print[ "X=" , X//N , " " ,f[x+1]];Input[ ] 产生一个输入对话框,返回所输入任意表达式Input["prompt"] 同上,prompt为对话框的提示Pause[n] 运行暂停n秒的提示Pause[n] 运行暂停n秒十六、函数编程(*函数编程是Mathematica中很有特色也是最灵活的一部分,它充分体现了*) (*Mathematica的“一切都是表达式”的特点,如果你想使你的Mathematica程*) (*序快于高级语言,建议你把本部分搞通*)纯函数Function[body]或body& 一个纯函数,建立了一组对应法则,作用到后面的表达达式?Function[x, body] 单自变量纯函数Function[{x1,x2,...},body]多自变量纯函数#,#n 纯函数的第一、第n个自变量## 纯函数的所有自变量的序列examp: #1^#2& [2,3] 返回第一个参数的第二个参数次方映射Map[f,expr]或f/@expr 将f分别作用到expr第一层的每一个元上得到的列表Map[f,expr,level] 将f分别作用到expr第level层的每一个元上Apply[f,expr]或f@@expr 将expr的“头”换为fApply[f,expr,level] 将expr第level层的“头”换为fMapAll[f,expr]或f//@expr把f作用到expr的每一层的每一个元上MapAt[f,expr,n] 把f作用到expr的第n个元上MapAt[f,expr,{i,j,...}] 把f作用到expr[[{i,j,...}]]元上MapIndexed[f,expr] 类似MapAll,但都附加其映射元素的位置列表Scan[f, expr] 按顺序分别将f作用于expr的每一个元Scan[f,expr,levelspec] 同上,仅作用第level层的元素复合映射Nest[f,expr,n] 返回n重复合函数f[f[...f[expr]...]]NestList[f,expr,n] 返回0重到n重复合函数的列表{expr,f[expr],f[f[exprr]]..} FixedPoint[f, expr] 将f复合作用于expr直到结果不再改变,即找到其不定点FixedPoint[f, expr, n] 最多复合n次,如果不收敛则停止FixedPointList[f, expr] 返回各次复合的结果列表FoldList[f,x,{a,b,..}] 返回{x,f[x,a],f[f[x,a],b],..}Fold[f, x, list] 返回FoldList[f,x,{a,b,..}]的最后一个元ComposeList[{f1,f2,..},x]返回{x,f1[x],f2[f1[x]],..}的复合函数列表Distribute[f[x1,x2,..]] f对加法的分配率Distribute[expr, g] 对g的分配率Identity[expr] expr的全等变换Composition[f1,f2,..] 组成复合纯函数f1[f2[..fn[ ]..]Operate[p,f[x,y]] 返回p[f][x, y]br> Operate[p,f[x,y]] 返回p[f][x, y]Through[p[f1,f2][x]] 返回p[f1[x],f2[x]]Compile[{x1,x2,..},expr]编译一个函数,编译后运行速度可以大大加快Compile[{{x1,t1},{x2,t2}..},expr] 同上,可以制定函数参数类型十七、替换规则lhs->rhs 建立了一个规则,把lhs换为rhs,并求rhs的值lhs:>rhs 同上,只是不立即求rhs的值,知道使用该规则时才求值Replace[expr,rules] 把一组规则应用到expr上,只作用一次expr /. rules 同上expr //.rules 将规则rules不断作用到expr上,直到无法作用为止Dispatch[{lhs1->rhs1,lhs2->rhs2,...}]综合各个规则,产生一组优化的规则组十八、查询函数(*查询函数一般是检验表达式是否满足某些特殊形式,并返回True或False*)(*可以在Mathematica中用“?*Q”查询到*)ArgumentCountQ MatrixQAtomQ MemberQDigitQ NameQEllipticNomeQ NumberQEvenQ NumericQExactNumberQ OddQFreeQ OptionQHypergeometricPFQ OrderedQInexactNumberQ PartitionsQIntegerQ PolynomialQIntervalMemberQ PrimeQInverseEllipticNomeQ SameQLegendreQ StringMatchQLetterQ StringQLinkConnectedQ SyntaxQLinkReadyQ TrueQListQ UnsameQLowerCaseQ UpperCaseQMachineNumberQ ValueQMatchLocalNameQ VectorQMatchQ十九、字符串函数"text" 一个串,头为_String"s1"<>"s2"<>..或StringJoin["s1","s2",..] 串的连接StringLength["string"] 串长度StringReverse["string"] 串反转StringTake["string", n] 取串的前n个字符的子串,参数同Take[] StringDrop["string", n] 参见Drop,串也就是一个表StringInsert["string","snew",n] 插入,参见Insert[]StringPosition["string", "sub"] 返回子串sub在string中起止字母位置StringReplace["string",{"s1"->"p1",..}] 子串替换StringReplacePart["string", "snew", {m, n}]把string第m~n个字母之间的替换为snew把string第m~n个字母之间的替换为snewStringToStream["string"] 把串当作一个输入流赋予一个变量Characters["string"] 把串"string"分解为每一个字符的表ToCharacterCode["string"] 把串"string"分解为每一个字符ASCII值的表FromCharacterCode[n] ToCharacterCode的逆函数FromCharacterCode[{n1,n2,..}]ToCharacterCode的逆函数ToUpperCase[string] 把串的大写形式ToLowerCase[string] 把串的小写形式CharacterRange["c1","c2"] 给出ASCII吗在c1到c2之间的字符列表ToString[expr] 把表达式变为串的形式ToExpression[input] 把一个串变为表达式Names["string"] 与?string同,返回与string同名的变量列表。

mathmatic 基本用法

mathmatic 基本用法

mathmatic 基本用法Mathematica是一种强大的数学软件,它具有广泛的数学计算和可视化功能。

基本用法包括使用Mathematica进行数学运算、求解方程、绘制图表等。

1.数学运算:Mathematica可以进行基本的数学运算,如加减乘除、幂运算、三角函数、对数函数等。

例如,可以输入"2+3"得到结果"5",输入"Sin[π/2]"得到结果"1"。

2.方程求解:Mathematica可以求解各种类型的方程。

例如,可以输入"Solve[x^2 - 3x + 2 == 0, x]"来求解这个二次方程,得到结果"x == 1 || x == 2"。

3.符号计算:Mathematica可以进行符号计算,包括展开、化简、因式分解等。

例如,可以输入"Simplify[(x^2 + x - 6)/(x + 3)]"来化简这个表达式,得到结果"x - 2"。

4.绘图功能:Mathematica可以生成各种类型的图表,包括二维曲线图、三维曲面图、柱状图、散点图等。

例如,可以输入"Plot[Sin[x], {x, 0, 2π}]"来绘制正弦函数的曲线图。

除了基本用法外,Mathematica还有许多其他功能,如矩阵计算、微积分、概率统计、符号推导、动态演示等。

它还提供了大量的内置函数和算法,可以用于求解复杂的数学问题。

使用Mathematica还可以进行科学计算、工程计算、数据分析等各种应用领域。

总之,Mathematica是一款功能强大的数学软件,可以帮助用户进行各种数学计算和可视化操作。

第3章 Mathematica的基本运算

第3章 Mathematica的基本运算

第3章 Mathematica的基本运算3.1 多项式的表示形式可认为多项式是表达式的一种特殊的形式,所以多项式的运算与表达式的运算基本一样,表达式中的各种输出形式也可用于多项式的输出。

Mathematica提供一组按不同形式表示代数式的函数。

1.下面是一些例子(1).对x^8-1 进行分解Factor[x^8-1](2).展开多项式(1+x)^5Expand[(1+x)^5](3).展开多项式(1+x+3y)^4Expand[(1+x+3y)^4](4).化简(2+x)^4(1+x)^4(3+x)^3Simplify[(2+x)^4(1+x)^4(3+x)^3]2.多项式的代数运算多项式的运算有加、减、乘、除运算:+,-,*,/ 下面通过例子说明。

(1).多项式的加运算a2+3a+2与a+1相加(后面例子中也使用这两个多项式运算p1=a^2+3 a+2;p2=a+1;p1+p2(2).多项式相减p1-p2(3).多项式相乘p1*p2(4).多项式相除p1/p2(5).另外使用Cancel函数可以约去公因式Cancel[p1/p2]两个多项式相除,总能写成一个多项式和一个有理式相加Mathematic中提供两个函数PolynomialQuotient和PolynomialRemainder分别返商式和余式。

例如:PolynomialQuotient[x^2,1+2 x,x]PolynomialRemainder[x^2,1+2 x,x]3.2 方程及其根的表示因为Mathematica把方程看作逻辑语句。

在数学方程式表示为形如“x2-2x+1=0”的形式。

在Mathematica中“=”用作赋值语句,这样在Mathematica中用“==”表示逻辑等号,则方程应表示为“x^2-2x+1==0” 。

方程的解同原方程一样被看作是逻辑语句。

例如用Roots求方程x^2-3x+2的根显示为Roots[x^2-3 x+2==0,x]这种表示形式说明x取1或2均可。

mathmatica符号运算

mathmatica符号运算

Mathematica是一种强大的数学符号计算系统,它可以进行符号运算、数值计算、绘图和数据分析等多种数学操作。

作为一种专业的数学软件,Mathematica在科学研究、工程设计和教育教学中被广泛应用,它为用户提供了丰富的功能和简洁的操作界面。

本文将介绍Mathematica中的符号运算功能,包括基本运算、方程求解、微积分计算、矩阵运算等内容,帮助读者更好地了解和使用这一强大的数学工具。

一、基本运算在Mathematica中,可以使用基本的运算符号进行加减乘除等计算。

输入表达式"a + b",Mathematica会自动进行加法运算并给出结果。

除了基本的四则运算外,Mathematica还支持幂运算、取余运算等操作,可以满足用户在数学计算中的各种需求。

二、方程求解Mathematica能够对各种类型的方程进行求解,包括线性方程、二次方程、多项式方程、常微分方程等。

用户可以通过输入方程表达式,使用Solve或NSolve等函数进行求解,得到方程的解析解或数值解。

Mathematica还支持对方程组进行求解,可以解决多元方程的求解问题。

三、微积分计算微积分是数学中重要的内容,Mathematica提供了丰富的微积分计算功能,包括求导、积分、极限、级数等操作。

用户可以通过输入函数表达式,使用D、Integrate、Limit等函数进行微积分计算,得到函数的导数、不定积分、定积分等结果。

这些功能在科学研究和工程设计中具有重要的应用价值。

四、矩阵运算矩阵运算是数学中常见的运算方式,Mathematica为用户提供了丰富的矩阵运算功能,包括矩阵乘法、转置、逆矩阵、特征值等操作。

用户可以通过输入矩阵表达式,使用Dot、Transpose、Inverse、Eigenvalues等函数进行矩阵运算,得到矩阵的乘积、转置矩阵、逆矩阵、特征值等结果。

这些功能上线性代数和数值分析中具有重要的应用价值。

Mathematica常用符号

Mathematica常用符号

第8章Mathem‎‎a tica中‎的常用函数8.1 运算符及特殊‎符号Linel 执行Line‎‎,不显示结果Linel,line2 顺次执行Li‎‎n e1,Line2,并显示结果name 关于系统变量‎n a me的信‎息name 关于系统变量‎n a me的全‎部信息!comman‎d执行Dos命‎令N! N的阶乘!!filena‎m e 显示文件内容‎<<filena‎m e 读入文件并执‎行Expr:>>filena‎‎m e打开文件写Expr>>>filena‎m e 打开文件从文‎件末写( ) 结合率[ ] 函数{ } 一个表<*MathFu‎n*> 在c语言中使‎用m ath的‎函数(*Note*) 程序的注释#n 第n今参数## 所有参数Rule& 把rule作‎用于后面的式‎子% 前一次的输出‎%% 倒数第二次的‎输出V ar::mote 变量var的‎注释“Astrin‎g”字符串Contex‎t上下文A+b 加a-b 减A*b或ab 乘A/b 除8.2 系统常量Pi 3.1415的无‎限精度数值E 2.17828的‎无限精度数值‎Catala‎n0.915966‎‎C a tala‎‎n常数EulerG‎a mma 0.5772Eu‎‎l er常数Khinch‎i n 2.68545K‎‎h i nchi‎‎nGlaish‎e r 0.915966‎‎G l ai sh‎‎e rGolden‎R atio 1.61803黄‎金分割数Degree‎π/l80角度弧‎度换算I 复数单位Infini‎t y 无穷大-Infini‎t y 负无穷大Comple‎x lnfin‎i ty 复无穷大Indete‎r minat‎e不定式8.3 代数计算Expand‎[expr] 展开表达式Factor‎[expr] 展开表达式Simpli‎f y[expr] 化简表达式FullSi‎m plify‎[expr] 将特殊函数也‎进行化简PowerE‎x pand[expr] 展开所有的幂‎次形式Comple‎‎x Expan‎‎d[expr,{x1,x2…}] 按复数实部虚‎部展开Functi‎o nExpa‎n d[expr] 化简表达式中‎的特殊函数Collec‎t[expr,x] 合并同次项Collec‎‎t[expr,{x1,x2,…}] 合并x1,x2,...的同次项Togeth‎e r[expr] 通分Apart[expr] 部分分式展开‎Apart[expr,var] 对var的部‎分分式展开Cancel‎[expr] 约分Expand‎A ll[expr] 展开表达式Expand‎A ll[expr,patt] 展开表达式Factor‎T ermsr‎p oly] 提出共有的数‎字因子Factor‎‎T e rms[poly,x] 提出与x无关‎的数字因子Factor‎T erms[poly,(x1,x2…)]‎‎‎‎提出与xi无‎关的数字因子‎Coeffi‎c ient[expr,form] 多项式exp‎‎r中form‎‎的系数Coeffi‎‎c i ent[expr,form,n] 多项式exp‎‎r中form‎‎^n的系数Expone‎n t[expr,form] 表达式exp‎‎r中form‎‎的最高指数Numera‎t or[expr] 表达式exp‎‎r的分子Denomi‎n ator[expr] 表达式exp‎‎r的分母Expand‎N umera‎t or[expr] 展开expr‎‎的分子部分8.4 解方程Solve[eqns,vats] 从方程组eq‎‎n s中解出V‎‎a t sSolve[eqns,vats,elims] 从方程组eq‎‎n s中削去变‎量e lims‎‎,解出vats‎‎DSolve‎[eqn,y,x] 解微分方程,其中、y是x的函数‎DSolve‎‎[{eqnl,eqn2,…},{y1,y2…},] 解微分方程组‎,其中yi是x‎‎的函数DSolve‎[eqn,y,{x1,x2…}]解偏微分方程‎Elimin‎‎a te[eqns,V ats] 把方程组eq‎‎n s中变量v‎‎a rs约去SolveA‎‎l w ays[eqns,vars] 给出等式成立‎的所有参数满‎足的条件Reduce‎‎[eqns,V ats] 化简并给出所‎有可能解的条‎件Logica‎l Expan‎d[expr] 用&&和,,将逻辑表达式‎展开Invers‎‎e Funct‎‎i on[f] 求函数f的反‎函数Root[f,k] 求多项式函数‎的第k个根Roots[1hs==rhs,var] 得到多项式方‎程的所有根8.5 微积分D[f,x] 求f[x]的微分D[f,{x,n}] 求f[x]的n阶微分D[f,x1,x2…]‎求f[x]x1,x2…偏微分Dt[f,x] 求f[x]的全微分df‎‎/dxDt(f) 求f[x]的全微分df‎‎Dt[f,{x,n}] n阶全微分d‎‎^nf/dx^nDt[f,x1,x2..] 对x1,x2..的偏微分Integr‎a te[f,x] f[x]对x在的不定‎积分Integr‎‎a te[f,{x,xmin,xmax}] f[x]对x在区间(xmin,xmax)的定积分Integr‎‎a te[f,{x,xmin,xmax},{y,ymin,ymax}] f[x,y]的二重积分Limit[expr,x->x0] x趋近于x0‎‎时expr的‎极限Residu‎e[expr,{x,x0}] expr在x‎‎0处的留数Series‎[f,{x,x0,n}] 给出f[x]在x0处的幂‎级数展开Series‎‎[f,{x,x0,nx},{y,y0,ny}] 先对y幂级数‎展开,再对x幂级数‎展开Normal‎[expr] 化简并给出最‎常见的表达式‎Series‎‎C oeffi‎‎c i ent[series‎‎,n] 给出级数中第‎n次项的系数‎Series‎C oeffi‎c ient[series‎,{n1,n2…}]‎‎‎‎‎‎‎‎‎‎一阶导数Invers‎e Serie‎s[s,x] 给出逆函数的‎级数Compos‎e Serie‎s[seriel‎,serie2‎…]‎给出两个基数‎的组合Series‎D ata[x,x0,{a0,a1,..},nmin,nmax,den] 表示一个x0‎‎处x的幂级数‎O[x]^n n阶小量x^n8.6 多项式函数Variab‎l es[poly] 给出多项式p‎‎o l y中独立‎变量的列表Coeffi‎c ientL‎i st[poly,var] 给出多项式p‎‎o l y中变量‎v a r的系数‎Coeffi‎c ientL‎i st[poly,{varl,var2…}]给出多项式p‎‎o l y中变量‎v a r(i)的系数列Polyno‎m ialMo‎d[poly,m] poly中各‎系数mod m同余后得到‎的多项式,m可为整式Polyno‎m ialQu‎o tient‎[p,q,x] 以x为自变量‎的两个多项式‎之商式p/Polyno‎m ialRe‎m ainde‎r[p,q,x] 以x为自变量‎的两个多项式‎之余式P01yno‎m ialGC‎D[polyl,poly2,...] poly(i)的最大公因式‎Polyno‎‎m i alLC‎‎M[polyl,poly2....] poly(i)的最小公倍式‎Polyno‎‎m i alRe‎‎d uce[pjoly,{polyl,Poly2,..},{xl,x2…}) 得到一个表I‎‎(a1,a2,·),b)其中Suml‎‎d*polyi]+b=polyResult‎a nt[polyl,poly2,var] 约去poly‎‎l,poly2中‎的v arFactor‎[poly] 因式分解(在整式范围内‎)Factor‎T erms[poly] 提出poly‎‎中的数字公因‎子Factor‎‎T e rms[poly,{x1,x2…}] 提出poly‎‎中与xi无关‎项的数字公因‎子Factor‎‎L i st[poly],Factor‎‎S quare‎‎F reeLi‎‎s t[poly],Factor‎‎T e rmsL‎‎i st[poly,{x1,x2…}] 给出各个因式‎列表Cyclot‎o mic[n,x] n阶柱函数Decomp‎o set[poly,x] 迭代分解,给出{p1,p2,...},其中P1(p2(…))=poly Interp‎‎o l afin‎‎S Polyn‎‎o mial[data,V ar] 在数据dat‎‎a上的插值多‎项式RootSu‎m[f,form] 得到f[x]=0的所有根,并求得Sum‎‎[form[xi]]8.7 随机函数Random‎[type,range] 产生type‎‎类型且在ra‎‎n ge范围内‎的均匀分布随‎机数Random‎[] 0-1上的随机实‎数SeedRa‎n dom[n] 以n为see‎‎d产生伪随机‎数Random‎[distri‎b ution‎]可以产生各种‎分布8.8 数值函数N[expr] 表达式的机器‎精度近似值N[expr,n] 表达式的n位‎近似值,n为任意正整‎数NSolve‎‎[1hs==rhs,val] 求方程数值解‎Nsolve‎‎[eqn,V ar, n] 求方程数值解‎,结果精度到n‎‎位NDSolv‎‎e[eqns,y,{x,xmin,xmax}] 微分方程数值‎解NDSolv‎‎e[eqns,{y1,y2,…},{x,xmin,xmax}] 微分方程组数‎值解FindRo‎‎o t[1hs==rhs,{x,x0}] 以x0为初值‎,寻找方程数值‎解FindRo‎‎o t[1hs==rhs,{x,xstart‎‎,x min,xmax}] 以xstar‎‎t为初值,在[xmin,xmax]范围内寻找方‎程数值解NSum[f,{imin,imax,di}] 数值求和,di为步长NSum[f,{imin,imax,di},{jmin,jmax,dj},..] 多维函数求和‎NProdu‎c t[f,{i,imin,imax,di}] 函数求积NInteg‎‎rate[f,{x,xmin,xmax}] 函数数值积分‎FindMi‎‎n i mum[f,{x,x0}] 以x0为初值‎,寻找函数最小‎值FindMi‎‎n i mum[f,{x,xstart‎‎,x min,xmax}] 以xstar‎‎t为初值,在[xmin,xmax]范围内寻找函‎数最小值Constr‎‎a i nedM‎‎i n[f,{inequ},{x,y,..}] inequ为‎线性不等式组‎,f为x,y,…之线性函数,得到最小值及‎此时的x,y,…取值Constr‎‎a i nedM‎‎a x[f,{inequ},{x,y,..}] inequ为‎线性不等式组‎,f为x,y,…之线性函数,得到最大值及‎此时的x,y,…取值Linear‎‎P rogra‎‎m ming[C,m,b] 解线性组合C‎‎*x在m*x>=b&&x>=0约束下的最‎小值,x,b,C为向量,m为矩阵Lattic‎e Reduc‎e[{v1,v2...}] 向量组V i的‎极小无关组Fit[data,funs,vats] 用指定函数组‎对数据进行最‎小二乘拟合Interp‎o latio‎n[data] 对数据进行插‎值Lisfin‎t erpol‎a tion[array] 对离散数据插‎值,array可‎为n维ListIn‎‎terpol‎‎a fi on[array,{{xmin,xmax},{min,ymax},..}] 在特定网格上‎进行插值Functi‎‎o n Inte‎‎rpolat‎‎i on[expr,{x,xmin,xmax},{y,ymin,ymax},..] 以对应exp‎‎r[xi,yi]的数值为数据‎进行插值Fourie‎r[list] 对复数数据进‎行傅氏变换Invers‎e Fouri‎e r[list] 对复数数据进‎行傅氏逆变换‎8.9 表的操作(1)制表函数{e1,e2,...} 一个表,元素可以为任‎意表达式,无穷嵌套Table[expr,{imax}] 生成一个表,共imax个‎元素Table[expr,{i,imax}] 生成一个表,共imax个‎元素expr‎‎间Table[expr,{i,imin,imax},{j,jmin,jmax},..] 多维表Range[imax] 简单数表(1,i+,imax)Range[imin,imax,di] 从imin到‎i max,以di为步长‎的数表Array[f,n] 一维表,元素为f…(i从1到n)Array[f,{n1,n2..}] 多维表,元素为f (各自从1到n‎‎i)Identi‎t yMatr‎i x[n] n阶单位阵Diagon‎a lMatr‎i x[list] 对角阵(2)元素操作Part[expr,i]或expr[[i]] 第i个元素expr[[-i]] 倒数第i个元‎素expr[{i,j,..}] 多维表的元素‎expr[{i1,i2,..}] 返回由第i(n)的元素组成的‎子表First[expr] 第一个元素Last[expr] 最后一个元素‎Head[expr] 函数头,等于expr‎‎[[0]]Extrac‎t[expr,list] 取出由表li‎‎s t指定位置‎上e xpr的‎元素值Take[list,n] 取出表lis‎‎t前n个元素‎组成的表Take[list,{m,n}] 取出表lis‎‎t从m到n的‎元素组成的表‎Drop[list,n] 去掉表lis‎‎t前n个元素‎组下的表Rest[expr] 去掉表lis‎‎t第一个元素‎剩下的表Select‎‎[U St,crit] 把crit作‎用到每一个l‎‎i st的元素‎上,为True的‎所有元素组成‎的表Length‎[expr] expr第一‎层元素的个数‎Dimens‎i ons[expr] 表的维数返回‎(n1,n2..),expr为一‎个nl*n2…的阵Tensor‎R ank[expr] 秩Depth[expr] expr最大‎深度Level[expr,n] 给出expr‎‎中第n层子表‎达式的列表Count[USt,paUem] 满足模式的l‎‎i s t中元素‎的个数Membef‎‎Q[1ist,form] list中是‎否有匹配fo‎‎rm的元素FreeQ[expr,form] Member‎‎Q的反函数FreeQ[expr,form] 表中匹配模式‎p a tter‎‎n的元素的位‎置列表Cases[{e1,e2…},pattem‎‎]匹配模式pa‎‎t tem的所‎有元素ei的‎表(3) 表的操作Append‎[exp[elem] 返回在表ex‎‎p r的最后追‎加el em元‎素后的表Prepen‎d[expr,elem] 返回在表ex‎‎p r的最前添‎加el em元‎素后的表Insert‎‎[1i st,elem,n] 在第n元素前‎插入elem‎‎lnsert‎[expr,elem,{i,j,...}] 在元素exp‎‎r[[{i,j,..}]]前插入ele‎‎mDelete‎[expr,{i,j,..}] 删除元素ex‎‎p r[[{i,j,..}]]后剩下的表Delete‎C ases[expr,pattem‎]删除匹配pa‎‎t tern的‎所有元素后剩‎下的表Replac‎e Part[expr,new,n] 将expr的‎第n元素替换‎为newSort[list] 返回list‎‎按顺序排列的‎表Revers‎e[expr] 把表expr‎‎倒过来Rotate‎L eft[expr,n] 把表expr‎‎循环左移n次‎Rotate‎R ight[expr,n] 把表expr‎‎循环右移n次‎Partit‎i on[list,n] 把list按‎每n个元素为‎一个子表分割‎后再组成的大‎表Flatte‎n[1ist] 抹平所有子表‎后得到的一维‎大表Flatte‎n[1ist,n] 抹平到第n层‎Split[1ist] 把相同的元素‎组成一个子表‎,再合成的大表‎8.10 绘图函数(1)二维绘图Plot[f,{x,xmin,xmax}] 一维函数f[x]在区间[xmin,xmax]上的函数曲线‎Plot[{fl,f2..},{x,xmin,xmax}] 在同一图形上‎画几条曲线ListPl‎o t[{y1,y2,..}] 绘出由离散点‎对(n,yn)组成的图ListPl‎o t[{{x1,y1},{x2,y2},…}]‎绘出由离散点‎对(xn,ynl)组成的图Parame‎‎t ri cPl‎‎o t[{fx,fy},{t,tmin,tmax}] 由参数方程在‎参数变化范围‎内产生的曲线‎Parame‎‎t ri cPl‎‎o t[{{fx,fy},{gx,gy},...},{t,tmin,truax}] 由参数方程组‎在参数变化范‎围内产生的曲‎线(2)二维设置PlotRa‎n ge->{0,1} 作图显示的值‎域范围Aspect‎R atio->1/Golden‎R atio 生成图形的纵‎横比PlotLa‎b el->label 标题文字Axes->{false,True} 分别制定是否‎画x,y轴AxesLa‎b el->{xlabel‎,ylabel‎}x,y轴上的说明‎文字Ticks->None,Automa‎t ic,fun 用什么方式画‎轴的刻度AxesOr‎i gin->{x,y} 坐标轴原点位‎置AxesSt‎y le->{{xstyle‎},{ystyle‎}} 设置轴线的线‎性颜色等属性‎Frame->True,False 是否画边框FrameL‎a bel->{xmlabe‎l,ymlabe‎l,xplabe‎l,yplabe‎l} 边框四边上的‎文字FrameT‎‎i cks 同Ticks‎‎边框上是否画‎刻度GridLi‎‎n es 同Ticks‎‎图上是否画栅‎格线Frames‎‎t yle->{{xmstyl‎‎e},{ymstyl‎‎e}} 设置边框线的‎线性颜色等属‎性ListPl‎o t[data,PlotJo‎i ned->True] 把离散点按顺‎序连线Plotsy‎‎tl e->{{style1‎‎},{style2‎‎},..} 曲线的线性颜‎色等属性PlotPo‎i nts->15 曲线取样点,越大越细致(3)三维绘图Plot3D‎‎[f,{x,xmin,xmax},{y,ymin,ymax}] 二维函数fl‎‎x,y]的空间曲面Plot3D‎‎[{f,s},{x,xmin,xmax},{y,ymin,ymax}] 同上,曲面的染色由‎s(x,y)值决定ListPl‎o t3D[array] 二维数据阵a‎‎rray的立‎体高度图ListPl‎o t3D[array,shades‎]同上,曲面的染色由‎s hades‎‎[数据]值决定Parame‎t ricPl‎o t3D[{fx,fy,fz},{t,tmin,tmax}] 三维参数图形‎Contou‎‎r Plot[f,{x,xmin,xmax},{y,ymin,ymax}] 二维函数f(x,y)在指定区间上‎的等高线图ListCo‎n tourP‎l ot[array] 二维函数f(x,y)在指定arr‎‎a y上的等高‎线图(4)三维设置Contou‎r s->n 画n条等高线‎Contou‎‎r s->{z1,z2,...} 在zi处画等‎高线Contou‎r Shadi‎n g->False 是否用深浅染‎色Contou‎r Lines‎->True 是否画等高线‎Contou‎r Style‎->{{stylel‎},{style2‎},..} 等高线线性颜‎色等属性(5)密度图Densit‎y Plot[f,{x,xmin,xmax},{y,ymin,ymax}] 二维函数f[x,y]在指定区间上‎的密度图ListDe‎n sityP‎l ot[array] 二维函数f[x,y]在指定arr‎‎a y上的密度‎图(6)图形显示Show[graphi‎c s,option‎s] 显示一组图形‎对象,option‎‎s为选项设置‎Show[g1,g2,…] 在一个图上叠‎加显示一组图‎形对象Graphi‎‎c sA rra‎‎y[{g1,g2,...}] 在一个图上分‎块显示一组图‎形对象Select‎i onAni‎m ate[notebo‎o k,t] 把选中的no‎‎t ebook‎‎中的图画循环‎放映(7)图元函数Graphi‎‎c s[prim,option‎‎s] prim为下‎面各种函数组‎成的表,表示一个二维‎图形对象Graphi‎‎c s3D[prim,option‎‎s] prim为下‎面各种函数组‎成的表,表示一个三维‎图形对象Surfac‎‎e Graph‎‎i c s[array,shades‎‎]表示一个由a‎‎r ray和s‎‎h ade决定‎的曲面对象Contou‎r Graph‎i cs[array] 表示一个由a‎‎rray决定‎的等高线图对‎象Densit‎y Graph‎i cs[array] 表示一个由a‎‎r ray决定‎的密度图对象‎Point[p] p={x,y}或{x,y,2},在指定位置画‎点Line[{p1,p2,..}] 经由Pi点连‎线Rectan‎‎g l e[{xmin,ymin},{xmax,ymax}] 画矩形Cuboid‎‎[{xmin,ymin,zmin},{xmax,ymax,zmax}] 由对角线指定‎的长方体Polygo‎‎n[{p1,p2,...}] 封闭多边形Circle‎‎[{x,y},r] 画圆Circle‎[{x,y},{rx,ry}] 画椭圆,rx,ry为半长短‎轴Circle‎‎[{x,y},r,{a1,a2}] 从角度al-a2的圆弧Disk[{x,y},r] 填充的园、椭圆、圆弧等参数同‎上Raster‎[array,ColorF‎u nctio‎n->f] 颜色栅格Text[expr,coords‎]在坐标coo‎‎rd s上输出‎表达式PostSc‎r ip["string‎"] 直接用Pos‎‎t scrip‎‎t图元语言写‎Scaled‎‎[{x,y...}] 返回点的坐标‎,且均大于0小‎于1(8)着色及其他GrayLe‎v el[level] 灰度leve‎‎l为0~1间的实数RGBCol‎‎o r[red,green,blue] RGB颜色,均为0~I间的实数Hue[h,s,b] 亮度,饱和度等,均为0~1间的实数CMYKCo‎‎l or[cyan,magent‎‎a,yellow‎‎,block] CMYK颜色‎Thickn‎e ssr[r] 设置线宽为r‎‎PointS‎i ze[d] 设置绘点的大‎小Dashin‎g[{r1,r2,...}] 画一个单元的‎间隔长度的虚‎线ImageS‎‎i ze->{x,y} 显示图形大小‎(单位为像素)8.11 流程控制If[condit‎i on,t,f] 如果cond‎‎i tion为‎T rue,执行t,否则执行f段‎if[condit‎‎i on,t,f,u] 如果cond‎‎i tion为‎T m e,执行t,为False‎‎执行f,既非True‎‎又非Fals‎‎e,则执行u段Which[test1,blockl‎,test2,block2‎..] 执行第一为T‎‎rue的te‎‎s fi对应的‎b l ocki‎‎Switch‎[expr,forml,blockl‎,form2,block2‎...] 重复执行ex‎‎p r imax次Do[expr,{imax}] 重复执行ex‎‎p r imax次Do[expr,{i,imin,imax},{j,jmin,jmax}] 多重循环While[test,body] 循环执行bo‎‎d y直到te‎‎s t为Fal‎‎s eFor[start,test,incr,body] 循环执行bo‎‎d y直到te‎‎s t为Fal‎‎s eThrow[value] 停止计算,把value‎‎返回给最近一‎个C atch‎‎处理Throw[value,tag] 停止计算,把value‎‎返回给最近一‎个C atch‎‎处理Catch[expr] 计算expr‎‎,遇到Thro‎‎w返回的值则‎停止Catch[expr,form] 当Throw‎‎[value,tag]中Tag匹配‎fo rm时停‎止Return‎[expr] 从函数返回,返回值为ex‎‎p rReturn‎[] 返回值Nul‎‎lBreakl‎[] 结束最近的一‎重循环Contin‎u el[] 停止本次循环‎,进行下一次循‎环Goto[tag] 无条件转向L‎‎a bel[Tag]处Label[tag] 设置一个断点‎Check[expr,fmlexp‎r] 计算expr‎‎,如果有出错信‎息产生,则返回fai‎‎l expr的‎值Check[expr,failex‎‎p r,s1::t1,s2::t2,...] 当特定信息产‎生时则返回f‎‎a i lexp‎‎rCheckA‎b ort[expr,failex‎p r] 当产生abo‎‎r t信息时返‎回faile‎‎x p rInterr‎u pt[] 中断运行Abort[] 中断运行TimeCo‎n strai‎n ed[expr,t] 计算expr‎‎,当耗时超过t‎‎秒时终止Memory‎C onstr‎a ined[expr,b] 计算expr‎‎,当耗用内存超‎过b字节时终‎止运算Print[exprl,expr2,...] 顺次输出ex‎‎p ri的值Input[] 产生一个输入‎对话框,返回所输入的‎任意表达式Input["prompt‎"] 同上,prompt‎‎为对话框的提‎示Pause[n] 运行暂停n秒‎。

mathematica符号运算[指南]

mathematica符号运算[指南]

第3章符号运算求解析解(公式解)的主要工具是符号运算,所谓符号运算是指运算的主要对象是符号、文字或变量。所进行的运算自然是指精确解公式中所需要的各种运算了。比如二次方程求根,被运算的主要对象是文字a、b、c,而不是具体的数值1、2、3,所进行的运算是加、减、乘、除、平方、开平方等。在符号运算中,表达式的变换是最基本的也是最常见的运算,例如对多项式进行展开、分解、集项或者化简等。

3.1 表达式的变换这里的表达式主要是指多项式与有理式(分式多项式),有时也可以是三角多项式等。

化简Simplify[表达式] 设法化简表达式,寻求等价的最简形式化简FullSimplify[表达式] 使用更广泛的变换化简表达式展开Expand[表达式] 展开分子,每项除以分母展开ExpandAll[表达式] 分子与分母完全展开分解Factor[表达式] 将表达式分解因式,表示为最简因式的乘积通分Together[表达式] 用于通分,把所有的项放在同一分母上,并化简约分Cancel[表达式] 用于约分,消去分式中分子和分母的公因式分项Apart[表达式] 将有理分式分解为一些最简分式之和集项Collect[表达式,某一个(或某几个)变量] 将表达式按照某一个(或某几个)变量的幂次进行集项【例1】化简下面各表达式。3.2 函数的极限求函数的极限需分为两种情况,一种是当x→a(a为一有限实数)时,函数f(x)→?,另一种是当x→∞(∞为无穷大记号,包括+∞与-∞)时f(x)→?,在数学里记为lim x→a f(x)=?与lim x→∞f(x)=?,而在Mathematica里记为Limit[f(x),x→a]与Limit[f(x),x →Infinity]。【例1】【例2】【例3】Note:(1)对某些函数,极限虽然存在,但利用Mathematica系统不一定能够求出来。(2)对某些函数,利用Mathematica系统虽然求出了极限,但却不能保证所得结果的正确性。3.3 导函数与偏导数3.3.1求导函数D[f(x),x]D[f(x),{x,n}]上面第一式是将f(x)对x求一阶导数,而第二式是将f(x)对x求n阶导数,式中的D是求导符号。3.3.2求偏导数D[f(x,y),x,y] 将f(x,y)先对x求导,再对y求导。D[f(x,y),{x,m},{y,n}] 将f(x,y)先对x求m 阶导数,再对y求n阶导数。3.4不定积分与定积分3.4.1不定积分求不定积分在数学里的符号是∫f(x)dx=F(x)+c在Mathematica系统中的符号是Integrate[f(x),x]=F(x) ( 将常数c略去不写 )式中Integrate是求不定积分的符号,f(x)为被积函数,x为积分变量。Note:在初等函数范围内,不定积分有时是不存在的,亦即当f(x)为初等函数,而∫f(x)dx却不一定是初等函数.Zhou er3.4.2 定积分Integrate[f(x),{x,a,b}]3.5 将函数展开为幂级数Series[f(x),{x,x0,n}]式中f(x)为给定的函数,x0为展开点的坐标,n为展开的项数Note: Normal[Expr] 去掉余项3.6 求和与求积求和 Sum[u n,{n,n1,n2}]求积 Product[u n,{n,n1,n2}]式中u n为通项,n为通项的项数,n1为起始项,n2为终止项,n2可以取有限数,也可以取Infinity(即+∞)。3.7 方程求根在Mathematica系统中为我们提供了求解各类代数方程精确解的求解函数Solve,它的调用格式如下Solve[代数方程(或方程组),未知量]3.8 常微分方程求解在Mathematica系统中,利用符号运算求解常微分方程的调用函数是DSolve,它的求解对象自然也是以线性常微分方程,特别是常系数线性常微分方程为主。利用DSolve函数求解微分方程的调用格式如下:求通解 DSolve[微分方程或方程组,未知函数,自变量]求特解 DSolve[{微分方程,初始条件},未知函数,自变量]3.9 偏微分方程求解(略)。

mathmatic使用说明

mathmatic使用说明

Mathematica教程M athematica是美国Wolfram研究公司生产的一种数学分析型的软件,以符号计算见长,也具有高精度的数值计算功能和强大的图形功能。

假设在Windows环境下已安装好Mathematica4.0,启动Windows后,在“开始”菜单的“程序”中单击,就启动了Mathematica4.0,在屏幕上显示如图的Notebook窗口,系统暂时取名Untitled-1,直到用户保存时重新命名为止输入1+1,然后按下Shif+Enter键,这时系统开始计算并输出计算结果,并给输入和输出附上次序标识In[1]和Out[1],注意In[1]是计算后才出现的;再输入第二个表达式,要求系统将一个二项式展开,按Shift+Enter输出计算结果后,系统分别将其标识为In[2]和Out[2].如图在Mathematica的Notebook界面下,可以用这种交互方式完成各种运算,如函数作图,求极限、解方程等,也可以用它编写像C那样的结构化程序。

在Mathematica系统中定义了许多功能强大的函数,我们称之为内建函数(built-in function), 直接调用这些函数可以取到事半功倍的效果。

这些函数分为两类,一类是数学意义上的函数,如:绝对值函数Abs[x],正弦函数Sin[x],余弦函数Cos[x],以e为底的对数函数Log[x],以a为底的对数函数Log[a,x]等;第二类是命令意义上的函数,如作函数图形的函数Plot[f[x],{x,xmin,xmax}],解方程函数Solve[eqn,x],求导函数D[f[x],x]等。

必须注意的是:如果输入了不合语法规则的表达式,系统会显示出错信息,并且不给出计算结果,例如:要画正弦函数在区间[-10,10]上的图形,输入plot[Sin[x],{x,-10,10}],则系统提示“可能有拼写错误,新符号‘plot’ 很像已经存在的符号‘Plot’”,实际上,系统作图命令“Plot”第一个字母必须大写,一般地,系统内建函数首写字母都要大写。

mathematica 符号计算

mathematica 符号计算

Mathematica 是一款强大的数学软件,它可以进行符号计算,也就是处理数学公式和表达式,而不仅仅是数字。

以下是一些在 Mathematica 中进行符号计算的基本操作:1. **定义符号变量**:在Mathematica 中,你可以使用`Symbol` 函数定义符号变量。

例如,`Symbol[x]` 会创建一个名为 x 的符号。

2. **基本运算**:Mathematica 支持基本的数学运算,如加法、减法、乘法、除法、指数等。

例如,`x + y`、`x - y`、`x * y`、`x / y` 和 `x^n` 分别表示加法、减法、乘法、除法和指数运算。

3. **函数和表达式**:你可以定义自己的函数,并使用这些函数进行计算。

例如,`f[x_] := x^2 + 3x` 定义了一个函数f(x),这个函数返回 x 的平方加上 3x。

4. **积分和微分**:Mathematica 可以进行符号积分和微分。

例如,`Integrate[x^2, x]` 会计算 x^2 的积分,而 `D[x^2, x]` 会计算 x^2 的导数。

5. **简化表达式**:你可以使用 `Simplify` 函数来简化表达式。

例如,`Simplify[x^2 + 2x]` 会简化表达式为 `x(x + 2)`。

6. **求解方程**:你可以使用 `Solve` 函数来求解方程。

例如,`Solve[x^2 - 4 == 0, x]` 会求解方程 x^2 - 4 = 0 并返回解x = ±2。

7. **替换和替换规则**:你可以使用 `ReplaceAll` 或 `/.` 操作符来替换表达式中的一部分。

例如,`expr /. x -> y` 会将表达式 expr 中的所有 x 替换为 y。

以上是 Mathematica 进行符号计算的一些基本操作。

要深入了解 Mathematica 的符号计算功能,建议查阅 Mathematica 的官方文档或相关教程。

Mathematica--运算符及特殊符号

Mathematica--运算符及特殊符号

Mathematica--运算符及特殊符号一、运算符及特殊符号Line1; 执行 Line,不显示结果Line1,line2 顺次执行 Line1,2,并显示结果name 关于系统变量 name 的信息name 关于系统变量 name 的全部信息在 c 语言中使用 math 的函数(*Note*) 程序的注释#n 第 n 个参数## 所有参数rule& 把 rule 作用于后面的式子% 前一次的输出%% 倒数第二次的输出%n 第 n 个输出a+b 加a-b 减a*b 或 a b 乘a/b 除a^b 乘方base^^num 以 base 为进位的数lhs&&rhs 且lhs||rhs 或!lha 非++,-- 自加 1,自减 1+=,-=,*=,/= 同 C 语言二、系统常数Pi 3.1415....的无限精度数值E 2.17828...的无限精度数值Catalan 0.915966..卡塔兰常数EulerGamma 0.5772....高斯常数GoldenRatio 1.61803...黄金分割数Degree Pi/180 角度弧度换算I 复数单位Infinity 无穷大-Infinity 负无穷大ComplexInfinity 复无穷大Indeterminate 不定式三、代数计算Expand[expr] 展开表达式Factor[expr] 展开表达式Simplify[expr] 化简表达式FullSimplify[expr] 将特殊函数等也进行化简PowerExpand[expr] 展开所有的幂次形式ComplexExpand[expr,{x1,x2...}] 按复数实部虚部展开FunctionExpand[expr] 化简 expr 中的特殊函数Collect[expr, x] 合并同次项Collect[expr, {x1,x2,...}] 合并 x1,x2,...的同次项Together[expr] 通分Apart[expr] 部分分式展开Apart[expr, var] 对 var 的部分分式展开Cancel[expr] 约分ExpandAll[expr] 展开表达式ExpandAll[expr, patt] 展开表达式FactorTerms[poly] 提出共有的数字因子FactorTerms[poly, x] 提出与 x 无关的数字因子FactorTerms[poly, {x1,x2...}] 提出与 xi 无关的数字因子Coefficient[expr, form] 多项式 expr 中 form 的系数Coefficient[expr, form, n] 多项式 expr 中 form^n 的系数Exponent[expr, form] 表达式 expr 中 form 的最高指数Numerator[expr] 表达式 expr 的分子Denominator[expr] 表达式 expr 的分母ExpandNumerator[expr] 展开 expr 的分子部分ExpandDenominator[expr] 展开 expr 的分母部分TrigExpand[expr] 展开表达式中的三角函数TrigFactor[expr] 给出表达式中的三角函数因子TrigFactorList[expr] 给出表达式中的三角函数因子的表TrigReduce[expr] 对表达式中的三角函数化简TrigToExp[expr] 三角到指数的转化ExpToTrig[expr] 指数到三角的转化四、解方程Solve[eqns, vars] 从方程组 eqns 中解出 varsSolve[eqns, vars, elims] 从方程组 eqns 中削去变量 elims,解出 vars DSolve[eqn, y, x] 解微分方程,其中 y 是 x 的函数DSolve[{eqn1,eqn2,...},{y1,y2...},x]解微分方程组,其中 yi 是 x 的函数DSolve[eqn, y, {x1,x2...}] 解偏微分方程Eliminate[eqns, vars] 把方程组 eqns 中变量 vars 约去SolveAlways[eqns, vars] 给出等式成立的所有参数满足的条件Reduce[eqns, vars] 化简并给出所有可能解的条件LogicalExpand[expr] 用&&和||将逻辑表达式展开InverseFunction[f] 求函数 f 的逆函数Root[f, k] 求多项式函数的第 k 个根Roots[lhs==rhs, var] 得到多项式方程的所有根五、微积分函数D[f, x] 求 f[x]的微分D[f, {x, n}] 求 f[x]的 n 阶微分D[f,x1,x2..] 求 f[x]对 x1,x2...偏微分Dt[f, x] 求 f[x]的全微分 df/dxDt[f] 求 f[x]的全微分 dfDt[f, {x, n}] n 阶全微分 df^n/dx^nDt[f,x1,x2..] 对 x1,x2..的偏微分Integrate[f, x] f[x]对 x 在的不定积分Integrate[f, {x, xmin, xmax}] f[x]对 x 在区间(xmin,xmax)的定积分Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}] f[x,y]的二重积分Limit[expr, x->x0] x 趋近于 x0 时 expr 的极限Residue[expr, {x,x0}] expr 在 x0 处的留数Series[f, {x, x0, n}] 给出 f[x]在 x0 处的幂级数展开Series[f, {x, x0,nx}, {y, y0, ny}]先对 y 幂级数展开,再对 xNormal[expr] 化简并给出最常见的表达式O[x]^n n 阶小量 x^nO[x, x0]^n n 阶小量(x-x0)^nDt[f, x] 求 f[x]的全微分 df/dxDt[f] 求 f[x]的全微分 dfDt[f, {x, n}] n 阶全微分 df^n/dx^nDt[f,x1,x2..] 对 x1,x2..的偏微分Integrate[f, x] f[x]对 x 在的不定积分Integrate[f, {x, xmin, xmax}] f[x]对 x 在区间(xmin,xmax)的定积分Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}] f[x,y]的二重积分Limit[expr, x->x0] x 趋近于 x0 时 expr 的极限Normal[expr] 化简并给出最常见的表达式六、绘图函数二维作图Plot[f,{x,xmin,xmax}] 一维函数 f[x]在区间[xmin,xmax]上的函数曲Plot[{f1,f2..},{x,xmin,xmax}] 在一张图上画几条曲线ListPlot[{y1,y2,..}] 绘出由离散点对(n,yn)组成的图ListPlot[{{x1,y1},{x2,y2},..}] 绘出由离散点对(xn,yn)组成的图。

mathematica做符号运算

mathematica做符号运算

mathematica做符号运算Mathematica 是一种功能强大的数学软件,用于进行符号运算、数值计算、绘图等各种数学任务。

下面是一些使用Mathematica 进行符号运算的基本示例:1. 基本符号运算加法、减法、乘法、除法```mathematicaa = x + y;b = x - y;c = x * y;d = x / y;```幂运算```mathematicae = x^2; (* x 的平方*)f = y^3; (* y 的立方*)```开方```mathematicag = Sqrt[x]; (* x 的平方根*)```2. 求导一阶偏导数```mathematicaD[x^2 + y^3, x]D[x^2 + y^3, y]```高阶偏导数```mathematicaD[x^2 + y^3, {x, 2}] (* 对x 求二阶偏导数*)```3. 求积分定积分```mathematicaIntegrate[x^2, {x, 0, 1}] (* 对x^2 从0 到1 进行定积分*)```不定积分```mathematicaIntegrate[x^2, x] (* 对x^2 进行不定积分*)```4. 解方程一元方程```mathematicaSolve[x^2 - 4 == 0, x] (* 解x^2 - 4 = 0 的方程*)```二元方程组```mathematicaSolve[{x + y == 1, x - y == 2}, {x, y}] (* 解x + y = 1 和x - y = 2 的方程组*)```5. 矩阵运算矩阵定义```mathematicamatrix = {{1, 2}, {3, 4}};```矩阵乘法```mathematicaresult = matrix . matrix;```矩阵转置```mathematicatranspose = Transpose[matrix];```这只是Mathematica 的一小部分功能,该软件还有许多其他强大的功能,包括符号计算、数值计算、绘图、数据分析等。

Mathematica语句基本命令

Mathematica语句基本命令

Mathematica语句基本命令Mathematica的内部常数Pi , 或π(从基本输入工具栏输入, 或“Esc”+“p”+“Esc”)圆周率π E (从基本输入工具栏输入, 或“Esc”+“ee”+“Esc”)自然对数的底数e I (从基本输入工具栏输入, 或“Esc”+“ii”+“Esc”)虚数单位iInfinity, 或∞(从基本输入工具栏输入, 或“Esc”+“inf”+“Esc”)无穷大∞Degree 或°(从基本输入工具栏输入,或“Esc”+“deg”+“Esc”)度Mathematica的常用内部数学函数指数函数Exp[x]以e为底数对数函数Log[x]自然对数,即以e为底数的对数Log[a,x]以a为底数的x的对数开方函数Sqrt[x]表示x的算术平方根绝对值函数Abs[x]表示x的绝对值三角函数(自变量的单位为弧度)Sin[x]正弦函数Cos[x]余弦函数Tan[x]正切函数Cot[x]余切函数Sec[x]正割函数Csc[x]余割函数反三角函数ArcSin[x]反正弦函数ArcCos[x]反余弦函数ArcTan[x]反正切函数ArcCot[x]反余切函数ArcSec[x]反正割函数ArcCsc[x]反余割函数双曲函数Sinh[x]双曲正弦函数Cosh[x]双曲余弦函数Tanh[x]双曲正切函数Coth[x]双曲余切函数Sech[x]双曲正割函数Csch[x]双曲余割函数反双曲函数ArcSinh[x]反双曲正弦函数ArcCosh[x]反双曲余弦函数ArcTanh[x]反双曲正切函数ArcCoth[x]反双曲余切函数ArcSech[x]反双曲正割函数ArcCsch[x]反双曲余割函数求角度函数ArcTan[x,y]以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度数论函数GCD[a,b,c,...]最大公约数函数LCM[a,b,c,...]最小公倍数函数Mod[m,n]求余函数(表示m除以n的余数)Quotient[m,n]求商函数(表示m除以n的商)Divisors[n]求所有可以整除n的整数FactorInteger[n]因数分解,即把整数分解成质数的乘积Prime[n]求第n个质数PrimeQ[n]判断整数n是否为质数,若是,则结果为True,否则结果为False Random[Integer,{m,n}]随机产生m到n之间的整数排列组合函数Factorial[n]或n!阶乘函数,表示n的阶乘复数函数Re[z]实部函数Im[z]虚部函数Arg(z)辐角函数Abs[z]求复数的模Conjugate[z]求复数的共轭复数Exp[z]复数指数函数求整函数与截尾函数Ceiling[x]表示大于或等于实数x的最小整数Floor[x]表示小于或等于实数x的最大整数Round[x]表示最接近x的整数IntegerPart[x]表示实数x的整数部分FractionalPart[x]表示实数x的小数部分分数与浮点数运算函数N[num]或num//N把精确数num化成浮点数(默认16位有效数字)N[num,n]把精确数num化成具有n个有效数字的浮点数NumberForm[num,n]以n个有效数字表示numRationalize[float]将浮点数float转换成与其相等的分数Rationalize[float,dx]将浮点数float转换成与其近似相等的分数,误差小于dx最大、最小函数Max[a,b,c,...]求最大数Min[a,b,c,...]求最小数符号函数Sign[x]Mathematica中的数学运算符a+b 加法a-b减法a*b (可用空格键代替*)乘法a/b (输入方法为:“ Ctrl ” + “ / ” ) 除法a^b (输入方法为:“ Ctrl ” + “ ^ ” )乘方-a 负号Mathematica的关系运算符==等于<小于>大于<=小于或等于>=大于或等于!=不等于注:上面的关系运算符也可从基本输入工具栏输入。

Mathematica函数大全--运算符及特殊符号解读

Mathematica函数大全--运算符及特殊符号解读

Mathematica函数大全--运算符及特殊符号一、运算符及特殊符号Line1; 执行Line,不显示结果Line1,line2 顺次执行Line1,2,并显示结果?name 关于系统变量name的信息??name 关于系统变量name的全部信息!command 执行Dos命令n! N的阶乘!!filename 显示文件内容<Expr>> filename 打开文件写Expr>>>filename 打开文件从文件末写() 结合率[] 函数{} 一个表<*Math Fun*> 在c语言中使用math的函数(*Note*) 程序的注释#n 第n个参数## 所有参数rule& 把rule作用于后面的式子% 前一次的输出%% 倒数第二次的输出%n 第n个输出var::note 变量var的注释"Astring " 字符串Context ` 上下文a+b 加a-b 减a*b或a b 乘a/b 除a^b 乘方base^^num 以base为进位的数lhs&&rhs 且lhs||rhs 或!lha 非++,-- 自加1,自减1+=,-=,*=,/= 同C语言>,<,>=,<=,==,!= 逻辑判断(同c)lhs=rhs 立即赋值lhs:=rhs 建立动态赋值lhs:>rhs 建立替换规则lhs->rhs 建立替换规则expr//funname 相当于filename[expr]expr/.rule 将规则rule应用于exprexpr//.rule 将规则rule不断应用于expr知道不变为止param_ 名为param的一个任意表达式(形式变量)param__ 名为param的任意多个任意表达式(形式变量)Mathematica函数及使用方法—————————————————————————————————————二、系统常数Pi 3.1415....的无限精度数值E 2.17828...的无限精度数值Catalan 0.915966..卡塔兰常数EulerGamma 0.5772....高斯常数GoldenRatio 1.61803...黄金分割数Degree Pi/180角度弧度换算I 复数单位Infinity 无穷大-Infinity 负无穷大ComplexInfinity 复无穷大Indeterminate 不定式三、代数计算Expand[expr] 展开表达式Factor[expr] 展开表达式Simplify[expr] 化简表达式FullSimplify[expr] 将特殊函数等也进行化简PowerExpand[expr] 展开所有的幂次形式ComplexExpand[expr,{x1,x2...}] 按复数实部虚部展开FunctionExpand[expr] 化简expr中的特殊函数Collect[expr, x] 合并同次项Collect[expr, {x1,x2,...}] 合并x1,x2,...的同次项Together[expr] 通分Apart[expr] 部分分式展开Apart[expr, var] 对var的部分分式展开Cancel[expr] 约分ExpandAll[expr] 展开表达式ExpandAll[expr, patt] 展开表达式FactorTerms[poly] 提出共有的数字因子FactorTerms[poly, x] 提出与x无关的数字因子FactorTerms[poly, {x1,x2...}] 提出与xi无关的数字因子Coefficient[expr, form] 多项式expr中form的系数Coefficient[expr, form, n] 多项式expr中form^n的系数Exponent[expr, form] 表达式expr中form的最高指数Numerator[expr] 表达式expr的分子Denominator[expr] 表达式expr的分母ExpandNumerator[expr] 展开expr的分子部分ExpandDenominator[expr] 展开expr的分母部分ExpandDenominator[expr] 展开expr的分母部分TrigExpand[expr] 展开表达式中的三角函数TrigFactor[expr] 给出表达式中的三角函数因子TrigFactorList[expr] 给出表达式中的三角函数因子的表TrigReduce[expr] 对表达式中的三角函数化简TrigToExp[expr] 三角到指数的转化ExpToTrig[expr] 指数到三角的转化RootReduce[expr]ToRadicals[expr]四、解方程Solve[eqns, vars] 从方程组eqns中解出varsSolve[eqns, vars, elims] 从方程组eqns中削去变量elims,解出varsDSolve[eqn, y, x] 解微分方程,其中y是x的函数DSolve[{eqn1,eqn2,...},{y1,y2...},x]解微分方程组,其中yi是x的函数DSolve[eqn, y, {x1,x2...}] 解偏微分方程Eliminate[eqns, vars] 把方程组eqns中变量vars约去SolveAlways[eqns, vars] 给出等式成立的所有参数满足的条件Reduce[eqns, vars] 化简并给出所有可能解的条件LogicalExpand[expr] 用&&和||将逻辑表达式展开InverseFunction[f] 求函数f的逆函数Root[f, k] 求多项式函数的第k个根Roots[lhs==rhs, var] 得到多项式方程的所有根五、微积分函数D[f, x] 求f[x]的微分D[f, {x, n}] 求f[x]的n阶微分D[f,x1,x2..] 求f[x]对x1,x2...偏微分Dt[f, x] 求f[x]的全微分df/dxDt[f] 求f[x]的全微分dfDt[f, {x, n}] n阶全微分df^n/dx^nDt[f,x1,x2..] 对x1,x2..的偏微分Integrate[f, x] f[x]对x在的不定积分Integrate[f, {x, xmin, xmax}] f[x]对x在区间(xmin,xmax)的定积分Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}] f[x,y]的二重积分Limit[expr, x->x0] x趋近于x0时expr的极限Residue[expr, {x,x0}] expr在x0处的留数Series[f, {x, x0, n}] 给出f[x]在x0处的幂级数展开Series[f, {x, x0,nx}, {y, y0, ny}]先对y幂级数展开,再对xNormal[expr] 化简并给出最常见的表达式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的幂级数,其中aii为系数O[x]^n n阶小量x^nO[x, x0]^n n阶小量(x-x0)^nDt[f, x] 求f[x]的全微分df/dxDt[f] 求f[x]的全微分dfDt[f, {x, n}] n阶全微分df^n/dx^nDt[f,x1,x2..] 对x1,x2..的偏微分Integrate[f, x] f[x]对x在的不定积分Integrate[f, {x, xmin, xmax}] f[x]对x在区间(xmin,xmax)的定积分Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}] f[x,y]的二重积分Limit[expr, x->x0] x趋近于x0时expr的极限Residue[expr, {x,x0}] expr在x0处的留数Series[f, {x, x0, n}] 给出f[x]在x0处的幂级数展开Series[f, {x, x0,nx}, {y, y0, ny}]先对y幂级数展开,再对xNormal[expr] 化简并给出最常见的表达式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 n阶小量x^nO[x, x0]^n n阶小量(x-x0)^n六、多项式函数Variables[poly] 给出多项式poly中独立变量的列表CoefficientList[poly, var] 给出多项式poly中变量var的系数CoefficientList[poly, {var1,var2...}]给出多项式poly中变量var(i)的系数列? PolynomialMod[poly, m] poly中各系数mod m同余后得到的多项式,m可为整式PolynomialQuotient[p, q, x] 以x为自变量的两个多项式之商式p/q PolynomialRemainder[p, q, x] 以x为自变量的两个多项式之余式PolynomialGCD[poly1,poly2,...] poly(i)的最大公因式PolynomialLCM[poly1,poly2,...] poly(i)的最小公倍式PolynomialReduce[poly, {poly1,poly2,...},{x1,x2...}]得到一个表{{a1,a2,...},b}其中Sum[ai*polyi]+b=polyResultant[poly1,poly2,var] 约去poly1,poly2中的varFactor[poly] 因式分解(在整式范围内)FactorTerms[poly] 提出poly中的数字公因子FactorTerms[poly, {x1,x2...}] 提出poly中与xi无关项的数字公因子FactorList[poly]给出poly各个因子及其指数{{poly1,exp1},{...}...}FactorSquareFreeList[poly]FactorTermsList[poly,{x1,x2...}] 给出各个因式列表,第一项是数字公因子,第二项是与xi无关的因式,其后是与xi有关的因式按升幂的排排? Cyclotomic[n, x] n阶柱函数Decompose[poly, x] 迭代分解,给出{p1,p2,...},其中p1(p2(...))=poly InterpolatingPolynomial[data, var] 在数据data上的插值多项式data可以写为{f1,f2..}相当于{{x1=1,y1=f1}..}data可以写为{{x1,f1,df11,df12,..},{x2,f2,df21..}可以指定数据点上的n阶导数值RootSum[f, form] 得到f[x]=0的所有根,并求得Sum[form[xi]]七、随机函数Random[type,range] 产生type类型且在range范围内的均匀分布随机数type可以为Integer,Real,Complex,不写默认为Realrange为{min,max},不写默认为{0,1}Random[] 0~1上的随机实数SeedRandom[n] 以n为seed产生伪随机数如果采用了 <在2.0版本为 <<"D:\\Math\\PACKAGES\\STATISTI\\Continuo.m"Random[distribution]可以产生各种分布如Random[BetaDistribution[alpha, beta]]stribution[alpha, beta]]Random[NormalDistribution[miu,sigma]]等常用的分布如BetaDistribution,CauchyDistribution,ChiDistribution, NoncentralChiSquareDistribution,ExponentialDistribution, ExtremeValueDistribution,NoncentralFRatioDistribution, GammaDistribution,HalfNormalDistribution, LaplaceDistribution, LogNormalDistribution,LogisticDistribution,RayleighDistribution,NoncentralStudentTDistribution, UniformDistribution, WeibullDistribution八、数值函数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[list] 对复数数据进行付氏变换InverseFourier[list] 对复数数据进行付氏逆变换Min[{x1,x2...},{y1,y2,...}]得到每个表中的最小值Max[{x1,x2...},{y1,y2,...}]得到每个表中的最大值Select[list, crit] 将表中使得crit为True的元素选择出来Count[list, pattern] 将表中匹配模式pattern的元素的个数Sort[list] 将表中元素按升序排列Sort[list,p] 将表中元素按p[e1,e2]为True的顺序比较list的任两个元素e1,e2,实际上Sort[list]中默认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[list] IntegerDigits的反函数Rationalize[x,dx] 把实数x有理化成有理数,误差小于dxChop[expr, delta] 将expr中小于delta的部分去掉,dx默认为10^-10Accuracy[x] 给出x小数部分位数,对于Pi,E等为无限大Precision[x] 给出x有效数字位数,对于Pi,E等为无限大SetAccuracy[expr, n] 设置expr显示时的小数部分位数[expr, n] 设置expr显示时的有效数字位数十一、区间函数Interval[{min, max}] 区间[min, max](* Solve[3 x+2==Interval[{-2,5}],xx]*) 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[list] 矩阵的转置Transpose[list,{n1,n2..}]将矩阵list 第k行与第nk列交换Det[m] 矩阵的行列式Eigenvalues[m] 特征值Eigenvectors[m] 特征向量特征值Eigenvectors[m] 特征向量Eigensystem[m] 特征系统,返回{eigvalues,eigvectors}LinearSolve[m, b] 解线性方程组m.x==bNullSpace[m] 矩阵m的零空间,即m.NullSpace[m]==零向量RowReduce[m] m化简为阶梯矩阵Minors[m, k] 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[u]].DiagonalMatrix[w].vPseudoInverse[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[i]Table[expr,{i,imin,imax},{j,jmin,jmax},..] 多维表Range[imax] 简单数表{1,2,..,imax}Range[imin, imax, di] 以di为步长的数表Array[f, n] 一维表,元素为f[i] (i从1到n)Array[f,{n1,n2..}] 多维表,元素为f[i,j..] (各自从1到ni)IdentityMatrix[n] n阶单位阵DiagonalMatrix[list] 对角阵元素操作Part[expr, i]或expr[[i]]第i个元expr[[-i]] 倒数第i个元expr[[i,j,..]] 多维表的元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] 去掉表list前n个元剩下的表,其他参数同上Rest[expr] 去掉表list第一个元剩下的表Select[list, crit] 把crit作用到每一个list的元上,为True的所有元组成的表表的属性Length[expr] expr第一曾元素的个数Dimensions[expr] 表的维数返回{n1,n2..},expr为一个n1*n2...的阵TensorRank[expr] 秩Depth[expr] expr最大深度Level[expr,n] 给出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元前插入elemInsert[expr,elem,{i,j,..}]在元素expr[[{i,j,..}]]前插入elemDelete[expr, {i, j,..}] 删除元素expr[[{i,j,..}]]后剩下的表DeleteCases[expr,pattern]删除匹配pattern的所有元后剩下的表ReplacePart[expr,new,n] 将expr的第n元替换为newSort[list] 返回list按顺序排列的表Reverse[expr] 把表expr倒过来RotateLeft[expr, n] 把表expr循环左移n次RotateRight[expr, n] 把表expr循环右移n次Partition[list, n] 把list按每n各元为一个子表分割后再组成的大表Flatten[list] 抹平所有子表后得到的一维大表Flatten[list,n] 抹平到第n层Split[list] 把相同的元组成一个子表,再合成的大表FlattenAt[list, n] 把list[[n]]处的子表抹平FlattenAt[list, n] 把list[[n]]处的子表抹平Permutations[list] 由list的元素组成的所有全排列的列表Order[expr1,expr2] 如果expr1在expr2之前返回1,如果expr1在expr2之后返回-1,如果expr1与expr2全等返回0Signature[list] 把list通过两两交换得到标准顺序所需的交换次数(排列数)以上函数均为仅返回所需表而不改变原表AppendTo[list,elem] 相当于list=Append[list,elem];PrependTo[list,elem] 相当于list=Prepend[list,elem];十四、绘图函数二维作图Plot[f,{x,xmin,xmax}] 一维函数f[x]在区间[xmin,xmax]上的函数曲?Plot[{f1,f2..},{x,xmin,xmax}] 在一张图上画几条曲线ListPlot[{y1,y2,..}] 绘出由离散点对(n,yn)组成的图ListPlot[{{x1,y1},{x2,y2},..}] 绘出由离散点对(xn,yn)组成的图ParametricPlot[{fx,fy},{t,tmin,tmax}] 由参数方程在参数变化范围内的曲线ParametricPlot[{{fx,fy},{gx,gy},...},{t,tmin,tmax}]在一张图上画多条参数曲线选项:PlotRange->{0,1} 作图显示的值域范围AspectRatio->1/GoldenRatio生成图形的纵横比PlotLabel ->label 标题文字Axes ->{False,True} 分别制定是否画x,y轴AxesLabel->{xlabel,ylabel}x,y轴上的说明文字Ticks->None,Automatic,fun用什么方式画轴的刻度AxesOrigin ->{x,y} 坐标轴原点位置AxesStyle->{{xstyle}, {ystyle}}设置轴线的线性颜色等属性Frame ->True,False 是否画边框FrameLabel ->{xmlabel,ymlabel,xplabel,yplabel}边框四边上的文字FrameTicks同Ticks 边框上是否画刻度GridLines 同Ticks 图上是否画栅格线FrameStyle ->{{xmstyle},{ymstyle}设置边框线的线性颜色等属性ListPlot[data,PlotJoined->True] 把离散点按顺序连线PlotSytle->{{style1},{style2},..}曲线的线性颜色等属性PlotPoints->15 曲线取样点,越大越细致三维作图Plot3D[f,{x,xmin,xmax}, {y,ymin,ymax}]二维函数f[x,y]的空间曲面Plot3D[{f,s}, {x,xmin,xmax}, {y,ymin,ymax}]同上,曲面的染色由s[x,y]值决定ListPlot3D[array] 二维数据阵array的立体高度图ListPlot3D[array,shades]同上,曲面的染色由shades[数据]值决定ParametricPlot3D[{fx,fy,fz},{t,tmin,tmax}]二元数方程在参数变化范围内的曲线二元数方程在参数变化范围内的曲线ParametricPlot3D[{{fx,fy,fz},{gx,gy,gz},...},{t,tmin,tmax}] 多条空间参数曲线选项:ViewPoint ->{x,y,z} 三维视点,默认为{1.3,-2.4,2}Boxed -> True,False 是否画三维长方体边框BoxRatios->{sx,sy,sz} 三轴比例BoxStyle 三维长方体边框线性颜色等属性Lighting ->True 是否染色LightSources->{s1,s2..} si为某一个光源si={{dx,dy,dz},color} color为灯色,向dx,dy,dz方向照射AmbientLight->颜色函数慢散射光的光源Mesh->True,False 是否画曲面上与x,y轴平行的截面的截线MeshStyle 截线线性颜色等属性MeshRange->{{xmin,xmax}, {ymin,ymax}}网格范围ClipFill->Automatic,None,color,{bottom,top}指定图形顶部、底部超界后所画的颜色Shading ->False,True 是否染色HiddenSurface->True,False 略去被遮住不显示部分的信息等高线ContourPlot[f,{x,xmin,xmax},{y,ymin,ymax}]二维函数f[x,y]在指定区间上的等高线图ListContourPlot[array] 根据二维数组array数值画等高线选项:Contours->n 画n条等高线Contours->{z1,z2,..} 在zi处画等高线ContourShading -> False 是否用深浅染色ContourLines -> True 是否画等高线ContourStyle -> {{style1},{style2},..}等高线线性颜色等属性FrameTicks 同上密度图DensityPlot[f,{x,xmin,xmax},{y,ymin,ymax}]二维函数f[x,y]在指定区间上的密度图ListDensityPlot[array] 同上图形显示Show[graphics,options] 显示一组图形对象,options为选项设置Show[g1,g2...] 在一个图上叠加显示一组图形对象GraphicsArray[{g1,g2,...}]在一个图上分块显示一组图形对象SelectionAnimate[notebook,t]把选中的notebook中的图画循环放映选项:(此处选项适用于全部图形函数)Background->颜色函数指定绘图的背景颜色RotateLabel -> True 竖着写文字TextStyle 此后输出文字的字体,颜色大小等ColorFunction->Hue等把其作用于某点的函数值上决定某点的颜色RenderAll->False 是否对遮挡部分也染色MaxBend 曲线、曲面最大弯曲度图元函数Graphics[prim, options]prim为下面各种函数组成的表,表示一个二维图形对象Graphics3D[prim, options]prim为下面各种函数组成的表,表示一个三维图形对象SurfaceGraphics[array, shades]表示一个由array和shade决定的曲面对象ContourGraphics[array]表示一个由array决定的等高线图对象DensityGraphics[array]表示一个由array决定的密度图对象以上定义图形对象,可以进行对变量赋值,合并显示等操作,也可以存盘Point[p] p={x,y}或{x,y,z},在指定位置画点Line[{p1,p2,..}]经由pi点连线Rectangle[{xmin, ymin}, {xmax, ymax}] 画矩形Cuboid[{xmin,ymin,zmin},{xmax,ymax,zmax}]由对角线指定的长方体Polygon[{p1,p2,..}] 封闭多边形Circle[{x,y},r] 画圆Circle[{x,y},{rx,ry}] 画椭圆,rx,ry为半长短轴Circle[{x,y},r,{a1,a2}] 从角度a1~a2的圆弧Disk[{x, y}, r] 填充的园、衷病⒃弧等参数同上Raster[array,ColorFunction->f] 颜色栅格Text[expr,coords] 在坐标coords上输出表达式PostScript["string"] 直接用PostScript图元语言写Scaled[{x,y,..}] 返回点的坐标,且均大于0小于1颜色函数(指定其后绘图的颜色)GrayLevel[level] 灰度level为0~1间的实数RGBColor[red, green, blue] RGB颜色,均为0~1间的实数Hue[h, s, b] 亮度,饱和度等,均为0~1间的实数CMYKColor[cyan, magenta, yellow, black] CMYK颜色其他函数(指定其后绘图的方式)Thickness[r] 设置线宽为rPointSize[d] 设置绘点的大小Dashing[{r1,r2,..}] 虚线一个单元的间隔长度ImageSize->{x, y} 显示图形大小(像素为单位)ImageResolution->r 图形解析度r个dpi小(像素为单位)ImageResolution->r 图形解析度r个dpiImageMargins->{{left,right},{bottom,top}}四边的空白ImageRotated->False 是否旋转90度显示十五、流程控制分支If[condition, t, f] 如果condition为True,执行t段,否则f段If[condition, t, f, u] 同上,即非True又非False,则执行u段Which[test1,block1,test2,block2..] 执行第一为True的testi对应的blocki Switch[expr,form1,block1,form2,block2..]执行第一个expr所匹配的formi所对应的blocki段循环Do[expr,{imax}] 重复执行expr imax次Do[expr,{i,imin,imax}, {j,jmin,jmax},...]多重循环While[test, body] 循环执行body直到test为FalseFor[start,test,incr,body]类似于C语言中的for,注意","与";"的用法相反examp: For[i=1;t =x,i^2<10,i++,t =t+i;Print[t]]异常控制Throw[value] 停止计算,把value返回给最近一个Catch处理Throw[value, tag] 同上,Catch[expr] 计算expr,遇到Throw返回的值则停止Catch[expr, form] 当Throw[value, tag]中Tag匹配form时停止其他控制Return[expr] 从函数返回,返回值为exprReturn[ ] 返回值NullBreak[ ] 结束最近的一重循环Continue[ ] 停止本次循环,进行下一次循环Goto[tag] 无条件转向Label[Tag]处Label[tag] 设置一个断点Check[expr,failexpr] 计算expr,如果有出错信息产生,则返回failexpr的值Check[expr,failexpr,s1::t1,s2::t2,...]当特定信息产生时则返回failexpr CheckAbort[expr,failexpr]当产生abort信息时放回failexprInterrupt[ ] 中断运行Abort[ ] 中断运行TimeConstrained[expr,t] 计算expr,当耗时超过t秒时终止MemoryConstrained[expr,b]计算expr,当耗用内存超过b字节时终止运算交互式控制Print[expr1,expr2,...] 顺次输出expri的值examp: Print[ "X=" , X//N , " " ,f[x+1]];Input[ ] 产生一个输入对话框,返回所输入任意表达式Input["prompt"] 同上,prompt为对话框的提示Pause[n] 运行暂停n秒十六、函数编程(*函数编程是Mathematica中很有特色也是最灵活的一部分,它充分体现了 *)(*Mathematica的“一切都是表达式”的特点,如果你想使你的Mathematica程 *) (*序快于高级语言,建议你把本部分搞通*)纯函数Function[body]或body& 一个纯函数,建立了一组对应法则,作用到后面的表达达式? Function[x, body] 单自变量纯函数Function[{x1,x2,...},body]多自变量纯函数#,#n 纯函数的第一、第n个自变量## 纯函数的所有自变量的序列examp: #1^#2& [2,3] 返回第一个参数的第二个参数次方映射Map[f,expr]或f/@expr 将f分别作用到expr第一层的每一个元上得到的列表Map[f,expr,level] 将f分别作用到expr第level层的每一个元上Apply[f,expr]或f@@expr 将expr的“头”换为fApply[f,expr,level] 将expr第level层的“头”换为fMapAll[f,expr]或f//@expr把f作用到expr的每一层的每一个元上MapAt[f,expr,n] 把f作用到expr的第n个元上MapAt[f,expr,{i,j,...}] 把f作用到expr[[{i,j,...}]]元上MapIndexed[f,expr] 类似MapAll,但都附加其映射元素的位置列表Scan[f, expr] 按顺序分别将f作用于expr的每一个元Scan[f,expr,levelspec] 同上,仅作用第level层的元素复合映射Nest[f,expr,n] 返回n重复合函数f[f[...f[expr]...]]NestList[f,expr,n] 返回0重到n重复合函数的列表{expr,f[expr],f[f[exprr]]..} FixedPoint[f, expr] 将f复合作用于expr直到结果不再改变,即找到其不定点FixedPoint[f, expr, n] 最多复合n次,如果不收敛则停止FixedPointList[f, expr] 返回各次复合的结果列表FoldList[f,x,{a,b,..}] 返回{x,f[x,a],f[f[x,a],b],..}Fold[f, x, list] 返回FoldList[f,x,{a,b,..}]的最后一个元ComposeList[{f1,f2,..},x]返回{x,f1[x],f2[f1[x]],..}的复合函数列表Distribute[f[x1,x2,..]] f对加法的分配率Distribute[expr, g] 对g的分配率Identity[expr] expr的全等变换Composition[f1,f2,..] 组成复合纯函数f1[f2[..fn[ ]..]Operate[p,f[x,y]] 返回p[f][x, y]br> Operate[p,f[x,y]] 返回p[f][x, y]Through[p[f1,f2][x]] 返回p[f1[x],f2[x]]Compile[{x1,x2,..},expr]编译一个函数,编译后运行速度可以大大加快Compile[{{x1,t1},{x2,t2}..},expr] 同上,可以制定函数参数类型十七、替换规则lhs->rhs 建立了一个规则,把lhs换为rhs,并求rhs的值lhs:>rhs 同上,只是不立即求rhs的值,知道使用该规则时才求值Replace[expr,rules] 把一组规则应用到expr上,只作用一次expr /. rules 同上expr //.rules 将规则rules不断作用到expr上,直到无法作用为止Dispatch[{lhs1->rhs1,lhs2->rhs2,...}]综合各个规则,产生一组优化的规则组十八、查询函数(*查询函数一般是检验表达式是否满足某些特殊形式,并返回True或False*) (*可以在Mathematica中用“?*Q”查询到 *)十九、字符串函数"text" 一个串,头为_String"s1"<>"s2"<>..或StringJoin["s1","s2",..] 串的连接StringLength["string"] 串长度StringReverse["string"] 串反转StringTake["string", n] 取串的前n个字符的子串,参数同Take[] StringDrop["string", n] 参见Drop,串也就是一个表StringInsert["string","snew",n] 插入,参见Insert[]StringPosition["string", "sub"] 返回子串sub在string中起止字母位置StringReplace["string",{"s1"->"p1",..}] 子串替换StringReplacePart["string", "snew", {m, n}]把string第m~n个字母之间的替换为snew把string第m~n个字母之间的替换为snewStringToStream["string"] 把串当作一个输入流赋予一个变量Characters["string"] 把串"string"分解为每一个字符的表ToCharacterCode["string"] 把串"string"分解为每一个字符ASCII值的表FromCharacterCode[n] ToCharacterCode的逆函数FromCharacterCode[{n1,n2,..}]ToCharacterCode的逆函数ToUpperCase[string] 把串的大写形式ToLowerCase[string] 把串的小写形式CharacterRange["c1","c2"] 给出ASCII吗在c1到c2之间的字符列表ToString[expr] 把表达式变为串的形式ToExpression[input] 把一个串变为表达式Names["string"] 与?string同,返回与string同名的变量列表--。

mathematica 符号运算

mathematica 符号运算

Mathematica是一款强大的数学软件,主要用于符号运算、数值计算、数据可视化等。

以下是一些基本的Mathematica符号运算操作:1. **基本操作**:* 定义变量:例如,`a = 5`* 代数运算:例如,`2 + 3` 返回 `5`,`2 - 3` 返回 `-1`,`2 * 3` 返回 `6`,`2 / 3` 返回 `2/3`* 幂运算:例如,`a^2` 返回 `25`2. **函数操作**:* 内置函数:例如,`Sin[x]`、`Cos[x]`、`Sqrt[x]` 等。

* 自定义函数:例如,`f[x_] := x^2 + 3x + 2`3. **代数方程求解**:* 一元方程:例如,`Solve[x^2 - 4 = 0, x]` 返回 `{x: -2, x: 2}`* 二元方程组:例如,`Solve[{x + y == 3, x - y == 1}, {x, y}]` 返回 `{x: 2, y: 1}`4. **微积分运算**:* 求导数:例如,`D[f[x], x]` 对于函数 `f[x] = x^2` 返回`2x`* 求积分:例如,`Integrate[f[x], x]` 对于函数 `f[x] = x^2` 返回 `x^3/3`5. **极限和连续性**:* 求极限:例如,`Limit[f[x], x -> a]` 对于函数 `f[x] = x^2` 当 `x -> a` 时返回 `a^2`(注意,这仅在 `a = -∞, +∞, 或 a 是某函数的可去间断点时才有意义)6. **级数和序列**:* 级数求和:例如,对于级数 `1 + 1/2 + 1/3 + ...`,使用`Sum[1/n, {n, 1, Infinity}]` 可得结果为`π^2/6`。

7. **符号表达式的简化**:* 化简表达式:例如,使用 `Simplify[expr]` 可以化简符号表达式。

Mathematica函数及使用方法

Mathematica函数及使用方法

Mathematica函数及使用方法(来源:北峰数模)--------------------------------------------------------------------- 注:为了对Mathematica有一定了解的同学系统掌握Mathematica的强大功能,我们把它的一些资料性的东西整理了一下,希望能对大家有所帮助。

---------------------------------------------------------------------一、运算符及特殊符号Line1; 执行Line,不显示结果Line1,line2 顺次执行Line1,2,并显示结果name 关于系统变量name的信息name 关于系统变量name的全部信息!command 执行Dos命令n! N的阶乘!!filename 显示文件内容< Expr>> filename 打开文件写Expr>>>filename 打开文件从文件末写() 结合率[] 函数{} 一个表<*Math Fun*> 在c语言中使用math的函数(*Note*) 程序的注释#n 第n个参数## 所有参数rule& 把rule作用于后面的式子% 前一次的输出%% 倒数第二次的输出%n 第n个输出var::note 变量var的注释"Astring " 字符串Context ` 上下文a+b 加a-b 减a*b或a b 乘a/b 除a^b 乘方base^^num 以base为进位的数lhs&&rhs 且lhs||rhs 或!lha 非++,-- 自加1,自减1+=,-=,*=,/= 同C语言>,<,>=,<=,==,!= 逻辑判断(同c)lhs=rhs 立即赋值lhs:=rhs 建立动态赋值lhs:>rhs 建立替换规则lhs->rhs 建立替换规则exprule 将规则rule应用于exprexpr..的无限精度数值E ...的无限精度数值Catalan ..卡塔兰常数EulerGamma ....高斯常数GoldenRatio ...黄金分割数Degree Pi/180角度弧度换算I 复数单位Infinity 无穷大-Infinity 负无穷大ComplexInfinity 复无穷大Indeterminate 不定式—————————————————————————————————————三、代数计算Expand[expr] 展开表达式Factor[expr] 展开表达式Simplify[expr] 化简表达式FullSimplify[expr] 将特殊函数等也进行化简PowerExpand[expr] 展开所有的幂次形式ComplexExpand[expr,{x1,x2...}] 按复数实部虚部展开FunctionExpand[expr] 化简expr中的特殊函数Collect[expr, x] 合并同次项Collect[expr, {x1,x2,...}] 合并x1,x2,...的同次项Together[expr] 通分Apart[expr] 部分分式展开Apart[expr, var] 对var的部分分式展开Cancel[expr] 约分ExpandAll[expr] 展开表达式ExpandAll[expr, patt] 展开表达式FactorTerms[poly] 提出共有的数字因子FactorTerms[poly, x] 提出与x无关的数字因子FactorTerms[poly, {x1,x2...}] 提出与xi无关的数字因子Coefficient[expr, form] 多项式expr中form的系数Coefficient[expr, form, n] 多项式expr中form^n的系数Exponent[expr, form] 表达式expr中form的最高指数Numerator[expr] 表达式expr的分子Denominator[expr] 表达式expr的分母ExpandNumerator[expr] 展开expr的分子部分ExpandDenominator[expr] 展开expr的分母部分TrigExpand[expr] 展开表达式中的三角函数TrigFactor[expr] 给出表达式中的三角函数因子TrigFactorList[expr] 给出表达式中的三角函数因子的表TrigReduce[expr] 对表达式中的三角函数化简TrigToExp[expr] 三角到指数的转化ExpToTrig[expr] 指数到三角的转化RootReduce[expr]ToRadicals[expr]—————————————————————————————————————四、解方程Solve[eqns, vars] 从方程组eqns中解出varsSolve[eqns, vars, elims] 从方程组eqns中削去变量elims,解出varsDSolve[eqn, y, x] 解微分方程,其中y是x的函数DSolve[{eqn1,eqn2,...},{y1,y2...},x]解微分方程组,其中yi是x的函数DSolve[eqn, y, {x1,x2...}] 解偏微分方程Eliminate[eqns, vars] 把方程组eqns中变量vars约去SolveAlways[eqns, vars] 给出等式成立的所有参数满足的条件Reduce[eqns, vars] 化简并给出所有可能解的条件LogicalExpand[expr] 用&&和||将逻辑表达式展开InverseFunction[f] 求函数f的逆函数Root[f, k] 求多项式函数的第k个根Roots[lhs==rhs, var] 得到多项式方程的所有根—————————————————————————————————————五、微积分函数D[f, x] 求f[x]的微分D[f, {x, n}] 求f[x]的n阶微分D[f,x1,x2..] 求f[x]对x1,x2...偏微分Dt[f, x] 求f[x]的全微分df/dxDt[f] 求f[x]的全微分dfDt[f, {x, n}] n阶全微分df^n/dx^nDt[f,x1,x2..] 对x1,x2..的偏微分Integrate[f, x] f[x]对x在的不定积分Integrate[f, {x, xmin, xmax}] f[x]对x在区间(xmin,xmax)的定积分Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}] f[x,y]的二重积分Limit[expr, x->x0] x趋近于x0时expr的极限Residue[expr, {x,x0}] expr在x0处的留数Series[f, {x, x0, n}] 给出f[x]在x0处的幂级数展开Series[f, {x, x0,nx}, {y, y0, ny}]先对y幂级数展开,再对xNormal[expr] 化简并给出最常见的表达式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 n阶小量x^nO[x, x0]^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] 解线性组合在>=b&&x>=0约束下的最小值,x,b,c为向量,m为矩阵LatticeReduce[{v1,v2...}] 向量组vi的极小无关组数据处理:Fit[data,funs,vars]用指定函数组对数据进行最小二乘拟和data可以为{{x1,y1,..f1},{x2,y2,..f2}..}多维的情况emp: Fit[{,12,,}, {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[list] 对复数数据进行付氏变换InverseFourier[list] 对复数数据进行付氏逆变换Min[{x1,x2...},{y1,y2,...}]得到每个表中的最小值Max[{x1,x2...},{y1,y2,...}]得到每个表中的最大值Select[list, crit] 将表中使得crit为True的元素选择出来Count[list, pattern] 将表中匹配模式pattern的元素的个数Sort[list] 将表中元素按升序排列Sort[list,p] 将表中元素按p[e1,e2]为True的顺序比较list的任两个元素e1,e2,实际上Sort[list]中默认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[list] IntegerDigits的反函数Rationalize[x,dx] 把实数x有理化成有理数,误差小于dxChop[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...] 区间的交—————————————————————————————————————十二、矩阵操作或Dot[a, b, c] 矩阵、向量、张量的点积Inverse[m] 矩阵的逆Transpose[list] 矩阵的转置Transpose[list,{n1,n2..}]将矩阵list 第k行与第nk列交换Det[m] 矩阵的行列式Eigenvalues[m] 特征值Eigenvectors[m] 特征向量Eigensystem[m] 特征系统,返回{eigvalues,eigvectors}LinearSolve[m, b] 解线性方程组==bNullSpace[m] 矩阵m的零空间,即[m]==零向量RowReduce[m] m化简为阶梯矩阵Minors[m, k] 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[u]].DiagonalMatrix[w].vPseudoInverse[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[i] Table[expr,{i,imin,imax},{j,jmin,jmax},..] 多维表Range[imax] 简单数表{1,2,..,imax}Range[imin, imax, di] 以di为步长的数表Array[f, n] 一维表,元素为f[i] (i从1到n)Array[f,{n1,n2..}] 多维表,元素为f[i,j..] (各自从1到ni) IdentityMatrix[n] n阶单位阵DiagonalMatrix[list] 对角阵元素操作Part[expr, i]或expr[[i]]第i个元expr[[-i]] 倒数第i个元expr[[i,j,..]] 多维表的元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] 去掉表list前n个元剩下的表,其他参数同上Rest[expr] 去掉表list第一个元剩下的表Select[list, crit] 把crit作用到每一个list的元上,为True的所有元组成的表表的属性Length[expr] expr第一曾元素的个数Dimensions[expr] 表的维数返回{n1,n2..},expr为一个n1*n2...的阵TensorRank[expr] 秩Depth[expr] expr最大深度Level[expr,n] 给出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元前插入elemInsert[expr,elem,{i,j,..}]在元素expr[[{i,j,..}]]前插入elemDelete[expr, {i, j,..}] 删除元素expr[[{i,j,..}]]后剩下的表DeleteCases[expr,pattern]删除匹配pattern的所有元后剩下的表ReplacePart[expr,new,n] 将expr的第n元替换为newSort[list] 返回list按顺序排列的表Reverse[expr] 把表expr倒过来RotateLeft[expr, n] 把表expr循环左移n次RotateRight[expr, n] 把表expr循环右移n次Partition[list, n] 把list按每n各元为一个子表分割后再组成的大表Flatten[list] 抹平所有子表后得到的一维大表Flatten[list,n] 抹平到第n层Split[list] 把相同的元组成一个子表,再合成的大表FlattenAt[list, n] 把list[[n]]处的子表抹平Permutations[list] 由list的元素组成的所有全排列的列表Order[expr1,expr2] 如果expr1在expr2之前返回1,如果expr1在expr2之后返回-1,如果expr1与expr2全等返回0Signature[list] 把list通过两两交换得到标准顺序所需的交换次数(排列数)以上函数均为仅返回所需表而不改变原表AppendTo[list,elem] 相当于list=Append[list,elem];PrependTo[list,elem] 相当于list=Prepend[list,elem];--—————————————————————————————————————十四、绘图函数二维作图Plot[f,{x,xmin,xmax}] 一维函数f[x]在区间[xmin,xmax]上的函数曲线Plot[{f1,f2..},{x,xmin,xmax}] 在一张图上画几条曲线ListPlot[{y1,y2,..}] 绘出由离散点对(n,yn)组成的图ListPlot[{{x1,y1},{x2,y2},..}] 绘出由离散点对(xn,yn)组成的图ParametricPlot[{fx,fy},{t,tmin,tmax}] 由参数方程在参数变化范围内的曲线ParametricPlot[{{fx,fy},{gx,gy},...},{t,tmin,tmax}]在一张图上画多条参数曲线选项:PlotRange->{0,1} 作图显示的值域范围AspectRatio->1/GoldenRatio生成图形的纵横比PlotLabel ->label 标题文字Axes ->{False,True} 分别制定是否画x,y轴AxesLabel->{xlabel,ylabel}x,y轴上的说明文字Ticks->None,Automatic,fun用什么方式画轴的刻度AxesOrigin ->{x,y} 坐标轴原点位置AxesStyle->{{xstyle}, {ystyle}}设置轴线的线性颜色等属性Frame ->True,False 是否画边框FrameLabel ->{xmlabel,ymlabel,xplabel,yplabel}边框四边上的文字FrameTicks同Ticks 边框上是否画刻度GridLines 同Ticks 图上是否画栅格线FrameStyle ->{{xmstyle},{ymstyle}设置边框线的线性颜色等属性ListPlot[data,PlotJoined->True] 把离散点按顺序连线PlotSytle->{{style1},{style2},..}曲线的线性颜色等属性PlotPoints->15 曲线取样点,越大越细致三维作图Plot3D[f,{x,xmin,xmax}, {y,ymin,ymax}]二维函数f[x,y]的空间曲面Plot3D[{f,s}, {x,xmin,xmax}, {y,ymin,ymax}]同上,曲面的染色由s[x,y]值决定ListPlot3D[array] 二维数据阵array的立体高度图ListPlot3D[array,shades]同上,曲面的染色由shades[数据]值决定ParametricPlot3D[{fx,fy,fz},{t,tmin,tmax}]二元数方程在参数变化范围内的曲线ParametricPlot3D[{{fx,fy,fz},{gx,gy,gz},...},{t,tmin,tmax}]多条空间参数曲线选项:ViewPoint ->{x,y,z} 三维视点,默认为{,,2}Boxed -> True,False 是否画三维长方体边框BoxRatios->{sx,sy,sz} 三轴比例BoxStyle 三维长方体边框线性颜色等属性Lighting ->True 是否染色LightSources->{s1,s2..} si为某一个光源si={{dx,dy,dz},color} color为灯色,向dx,dy,dz方向照射AmbientLight->颜色函数慢散射光的光源Mesh->True,False 是否画曲面上与x,y轴平行的截面的截线MeshStyle 截线线性颜色等属性MeshRange->{{xmin,xmax}, {ymin,ymax}}网格范围ClipFill->Automatic,None,color,{bottom,top}指定图形顶部、底部超界后所画的颜色Shading ->False,True 是否染色HiddenSurface->True,False 略去被遮住不显示部分的信息等高线ContourPlot[f,{x,xmin,xmax},{y,ymin,ymax}]二维函数f[x,y]在指定区间上的等高线图ListContourPlot[array] 根据二维数组array数值画等高线选项:Contours->n 画n条等高线Contours->{z1,z2,..} 在zi处画等高线ContourShading -> False 是否用深浅染色ContourLines -> True 是否画等高线ContourStyle -> {{style1},{style2},..}等高线线性颜色等属性FrameTicks 同上密度图DensityPlot[f,{x,xmin,xmax},{y,ymin,ymax}]二维函数f[x,y]在指定区间上的密度图ListDensityPlot[array] 同上图形显示Show[graphics,options] 显示一组图形对象,options为选项设置Show[g1,g2...] 在一个图上叠加显示一组图形对象GraphicsArray[{g1,g2,...}]在一个图上分块显示一组图形对象SelectionAnimate[notebook,t]把选中的notebook中的图画循环放映选项:(此处选项适用于全部图形函数)Background->颜色函数指定绘图的背景颜色RotateLabel -> True 竖着写文字TextStyle 此后输出文字的字体,颜色大小等ColorFunction->Hue等把其作用于某点的函数值上决定某点的颜色RenderAll->False 是否对遮挡部分也染色MaxBend 曲线、曲面最大弯曲度绘图函数(续)图元函数Graphics[prim, options]prim为下面各种函数组成的表,表示一个二维图形对象Graphics3D[prim, options]prim为下面各种函数组成的表,表示一个三维图形对象SurfaceGraphics[array, shades]表示一个由array和shade决定的曲面对象ContourGraphics[array]表示一个由array决定的等高线图对象DensityGraphics[array]表示一个由array决定的密度图对象以上定义图形对象,可以进行对变量赋值,合并显示等操作,也可以存盘Point[p] p={x,y}或{x,y,z},在指定位置画点Line[{p1,p2,..}]经由pi点连线Rectangle[{xmin, ymin}, {xmax, ymax}] 画矩形Cuboid[{xmin,ymin,zmin},{xmax,ymax,zmax}]由对角线指定的长方体Polygon[{p1,p2,..}] 封闭多边形Circle[{x,y},r] 画圆Circle[{x,y},{rx,ry}] 画椭圆,rx,ry为半长短轴Circle[{x,y},r,{a1,a2}] 从角度a1~a2的圆弧Disk[{x, y}, r] 填充的园、椭圆、圆弧等参数同上Raster[array,ColorFunction->f] 颜色栅格Text[expr,coords] 在坐标coords上输出表达式PostScript["string"] 直接用PostScript图元语言写Scaled[{x,y,..}] 返回点的坐标,且均大于0小于1颜色函数(指定其后绘图的颜色)GrayLevel[level] 灰度level为0~1间的实数RGBColor[red, green, blue] RGB颜色,均为0~1间的实数Hue[h, s, b] 亮度,饱和度等,均为0~1间的实数CMYKColor[cyan, magenta, yellow, black] CMYK颜色其他函数(指定其后绘图的方式)Thickness[r] 设置线宽为rPointSize[d] 设置绘点的大小Dashing[{r1,r2,..}] 虚线一个单元的间隔长度ImageSize->{x, y} 显示图形大小(像素为单位)ImageResolution->r 图形解析度r个dpiImageMargins->{{left,right},{bottom,top}}四边的空白ImageRotated->False 是否旋转90度显示—————————————————————————————————————十五、流程控制分支If[condition, t, f] 如果condition为True,执行t段,否则f段If[condition, t, f, u] 同上,即非True又非False,则执行u段Which[test1,block1,test2,block2..] 执行第一为True的testi对应的blocki Switch[expr,form1,block1,form2,block2..]执行第一个expr所匹配的formi所对应的blocki段循环Do[expr,{imax}] 重复执行expr imax次Do[expr,{i,imin,imax}, {j,jmin,jmax},...]多重循环While[test, body] 循环执行body直到test为FalseFor[start,test,incr,body]类似于C语言中的for,注意","与";"的用法相反examp: For[i=1;t =x,i^2<10,i++,t =t+i;Print[t]]异常控制Throw[value] 停止计算,把value返回给最近一个Catch处理Throw[value, tag] 同上,Catch[expr] 计算expr,遇到Throw返回的值则停止Catch[expr, form] 当Throw[value, tag]中Tag匹配form时停止其他控制Return[expr] 从函数返回,返回值为exprReturn[ ] 返回值NullBreak[ ] 结束最近的一重循环Continue[ ] 停止本次循环,进行下一次循环Goto[tag] 无条件转向Label[Tag]处Label[tag] 设置一个断点Check[expr,failexpr] 计算expr,如果有出错信息产生,则返回failexpr的值Check[expr,failexpr,s1::t1,s2::t2,...]当特定信息产生时则返回failexpr CheckAbort[expr,failexpr]当产生abort信息时放回failexprInterrupt[ ] 中断运行Abort[ ] 中断运行TimeConstrained[expr,t] 计算expr,当耗时超过t秒时终止MemoryConstrained[expr,b]计算expr,当耗用内存超过b字节时终止运算交互式控制Print[expr1,expr2,...] 顺次输出expri的值examp: Print[ "X=" , X.},body]多自变量纯函数#,#n 纯函数的第一、第n个自变量## 纯函数的所有自变量的序列examp: ^& [2,3] 返回第一个参数的第二个参数次方映射Map[f,expr]或f/@expr 将f分别作用到expr第一层的每一个元上得到的列表Map[f,expr,level] 将f分别作用到expr第level层的每一个元上Apply[f,expr]或f@@expr 将expr的“头”换为fApply[f,expr,level] 将expr第level层的“头”换为fMapAll[f,expr]或f.}] 把f作用到expr[[{i,j,...}]]元上MapIndexed[f,expr] 类似MapAll,但都附加其映射元素的位置列表Scan[f, expr] 按顺序分别将f作用于expr的每一个元Scan[f,expr,levelspec] 同上,仅作用第level层的元素复合映射Nest[f,expr,n] 返回n重复合函数f[f[...f[expr]...]]NestList[f,expr,n] 返回0重到n重复合函数的列表{expr,f[expr],f[f[expr]]..} FixedPoint[f, expr] 将f复合作用于expr直到结果不再改变,即找到其不定点FixedPoint[f, expr, n] 最多复合n次,如果不收敛则停止FixedPointList[f, expr] 返回各次复合的结果列表FoldList[f,x,{a,b,..}] 返回{x,f[x,a],f[f[x,a],b],..}Fold[f, x, list] 返回FoldList[f,x,{a,b,..}]的最后一个元ComposeList[{f1,f2,..},x]返回{x,f1[x],f2[f1[x]],..}的复合函数列表Distribute[f[x1,x2,..]] f对加法的分配率Distribute[expr, g] 对g的分配率Identity[expr] expr的全等变换Composition[f1,f2,..] 组成复合纯函数f1[f2[..fn[ ]..]Operate[p,f[x,y]] 返回p[f][x, y]Through[p[f1,f2][x]] 返回p[f1[x],f2[x]]Compile[{x1,x2,..},expr]编译一个函数,编译后运行速度可以大大加快Compile[{{x1,t1},{x2,t2}..},expr] 同上,可以制定函数参数类型—————————————————————————————————————十七、替换规则lhs->rhs 建立了一个规则,把lhs换为rhs,并求rhs的值lhs:>rhs 同上,只是不立即求rhs的值,知道使用该规则时才求值Replace[expr,rules] 把一组规则应用到expr上,只作用一次expr /. rules 同上expr .}]综合各个规则,产生一组优化的规则组><Mathematica的常见问题><===================================1).Mathematica 可以定义变量为实数么1. 在Simplify/FullSimplify可以使用\[Element],如Simplify[Re[a+b*I],a\[Element]Reals]2. 可以使用ComplexExpand[]来展开表达式,默认:符号均为实数:Unprotect[Abs];Abs[x_] := Sqrt[Re[x]^2 + Im[x]^2];ComplexExpand[Abs[a + b*I], a]3. 使用/:,对符号关联相应的转换规则x /: Im[x] = 0;x /: Re[x] = x;y /: Im[y] = 0;y /: Re[y] = y;Re[x+y*I]===================================2).Mathematica中如何中断运算Alt+. 直接终止当前执行的运算Alt+, 询问是否终止或者继续如果不能终止,用菜单Kernel\Quit Kernal\Local来退出当前运算===================================3).请高手推荐Mathematica参考书我迄今为止看到的最好的一本就是Mathematica自己带的帮助里面的The Mathematica Book,内容全面,循序渐近,非常容易学习使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
p1 x^ 4 3 x ^ 3 x ^ 2 4 x 3; p2 3 x^ 3 10 x ^ 2 2 x 3; PolynomialQuotient p1, p2, x PolynomialGCD p1, p2 PolynomialLCM p1, p2
/sdssxwfd ◄ Up
然后再用它们解同一个方程组,Solve给出的答案遵循通 常的“系数行列式不等于0”的约定,而Reduce给出的答 案就令人厌烦了,因此解符号方程(组)时主要使用Solve.
应当指出它们不仅能解一般的代数方程,还可以解一些 无理方程、三角函数方程和含有指数、对数的方程等 (但是在解超越方程时,Mathematics有时会提示答案不 是全部解)。
Apart[expr] 将有理式分解为最简分式的和。 说明:由上例可以看出,这 三个函数对于同一个分式的 作用效果不同。函数Apart 通常用于求有理式的积分, 它的第二个可选参数表明谁 是变量,在上例In [5]中的a, b则作为常数。
/sdssxwfd ◄ Up
/sdssxwfd ◄ Up
► Down ◙ Main
调入方法是键入:
<<程序包子集名`文件名`(文件名不必带扩展名) 也可以调入整个程序包子集: <<程序包子集名` 当Mathernatica启动时自动装入程序包的方法,将留
在本书第6章介绍。标推扩展程序包集及其所含程序文 件名称可查看Help,如图所示。
► Down ◙ Main
输出的缩减形式
有时输出结果很长,并不需要了解其中的细节,只需知道它 的结构,这时可以使用函数Short简化结果的输出形式;
Short[expr] 将输出结果缩略成一行显示。 Short[expr,n] 将输出结果缩略成n行显示。
说明:Out[1]//Short中<<41>>表示省略了41项。指定 行数n后,有时实际显示会少于n行。上例第3句的函 数Length用于求表达式的项数。
/sdssxwfd ◄ Up
► Down ◙ Main

Simplify[Cos[x]^2+Sin[x]^2]
Simplify[Cos[x]^2+2Sin[x]Cos[x]+Sin[x]^2]
FullSimplify[Cos[x]^2+2Sin[x]Cos[x]+Sin[x]^2]
的分子、分母〔还可以先通分再分解)。
/sdssxwfd ◄ Up
► Down ◙ Main
合并同类项
合并同类项的函数是Collect Collect[expr, x] 将表达式expr中的x的同次幂合并。 Collect[expr,{x,y,...}] v将表达式expr按x,y,…的同次幕
► Down ◙ Main
解方程
解符号方程(组) 在Mathematica中“=”号用于给变量赋值,而方程中的等号使
用符号“==”(即两个等号)表示。方程组用花括号括起来,各 个方程用逗号分隔。所有未知量也用花括号括起来,未知量之 间用逗号分隔。单个方程和未知量不必使用花括号。以下用 eqns表示方程组,用vars表示未知量组。 下列函数用于解符号方程(组): Solve[eqns,vars] 对系数按常规约定求出方程(组)的全部解。 Reduce[eqns,vars] 讨论系数出现的各种可能情况,分别求解。
► Down ◙ Main
Mathematica在求不定积分时,答案常出现双曲函数, 不符合人工解题习惯,可以使用TrigToExp转换
/sdssxwfd ◄ Up
► Down ◙ Main
多项式的运算
两个多项式的四则运算使用通常的+,-,*, / 运算符,其 中乘号可以用空格代替
/sdssxwfd ◄ Up
► Down ◙ Main
带有条件的化简
化简函数允许带有条件,条件可以是等式或不等式,还可以使 用下面的表达式指明数的取值范围。
x∈dom 或Element[x,dom]
dom 只能取下列集合之一
Integers 整数集合。
/sdssxwfd ◄ Up
► Down ◙ Main
三角函数式的化简
三角函数专用的分解、展开、化简函数 TrigExpand[expr] 将三角函数式展开。 TrigFactor[expr] 将三角函数式因式分解。 TrigReduce[expr] 用倍角化简三角函数式。 TrigToExp[expr] 将三角函数式转换成指数形。 ExpToTrig[expr] 前一个函数的逆变换。
者展开得更为彻底,前者展开分式时只展开分子,而后 者将分子、分母都进行展开。 • 还有两个特殊的展开函数: • ExpandNumerator[expr] 只展开分式的分子。 • ExpandDenominator[expr] 只展开分式的分母
/sdssxwfd ◄ Up
注意:可以看到,乘法和除法其实什么也没做,需 要用前面介绍的化简函数将结果再化简。
/sdssxwfd ◄ Up
► Down ◙ Main
介绍四个常用函数: PolynomialQuotient[pl, p2,x] 求x的多项式p1被p2除的商。 PolynomialRemainder[pl, p2,x] 求x的多项式p1被p2除的余。 PolynomialGCD[p1,p2,…] 求多个多项式的最大公因式。 PolynomialLCM[pl,p2,…] 求多个多项式的最小公倍式。
/sdssxwfd ◄ Up
► Down ◙ Main
解不等式
Mathematica没有解不等式的内部函数,但是它自带的外部 函数有此功能,必须将含有此函数的程序文件调入后才能 使用,文件位于Mathematica的标准扩展程序包集中。
标准扩展程序包集是Mathematica的一个子目录 StandardPackages.它的子目录本书称为程序包子集。程序 包子集按数学学科分类,如Algebra,Calculus等。每个程序 包子集中有多个文件,文件扩展名为m。每个文件中有一 个或多个外部函数,将这类文件称► Down ◙ Main
消去某些变量 Eliminate[eqns,elims] 从一组等式中消去变量(组)elims.
注意:上例中In[3]表明,Solve[eqns,Vars,elims]的功能是消 去y,z,求出x的值。同样,函数Reduce也有此功能.
► Down ◙ Main
/sdssxwfd ◄ Up
► Down ◙ Main
分式的化简与展开
下列函数分别用于有理式的合并、化简与展开:
Together[expr] 用于通分,把所有的项放在同一个分 母上并化简
Cancel[expr] 用于约去分子、分母的公因式。
Simplify[ a2 ] Simplify[ a2 ,a>0] 说明:从例中可以看到这两个函数的差异,后一个功能更强。 从Out [4]看到根式没有化简,因Mathematics不知道a是什 么类型的数,不化简反倒是正确的。从In [5]〕中可以看出, 这两个函数允许加上含有条件的第二个可选参数,使化简 得以进行。
下例是解集输出的另一个不便之处及其解决办法:
下划线
用键入“: >”得到。
说明:这里复数解的标准输出不符合习惯,按照上例中的方 法使用复数展开函数就可以解决
求近似解
很多方程是根本不能求出准确解的,前面介绍的那些函数 也无能为力。下列函数专门用于求方程(组)的数值解,其 调用格式如下:
/sdssxwfd ◄ Up
Rationals 有理数集合。
Reals 实数集合。 Complexes 复数集合· Primes 素数集合。 Algebraics 代数数集合。
注意:以上集合都按常规的定义, 但是也有例外如小数不算作有理 数.
Booleans True或False .
/sdssxwfd ◄ Up
/sdssxwfd ◄ Up
► Down ◙ Main
注意:从实际常用的倍角公式知道,In[1]的答案应该有 3种、但Out[1]只能给出一种,因此使用机器化简远不 如人灵活,有时还需要人机结合。
/sdssxwfd ◄ Up
/sdssxwfd ◄ Up
► Down ◙ Main
/sdssxwfd ◄ Up
► Down ◙ Main
说明:上例首先用这两个解方程的函数解同一个方程, Solve不考虑,a=0的情况,而Reduce则进行讨论。
► Down ◙ Main
解集的再处理
解集的表达式也有不方便之处,如何提取解的值供后 面引用呢?下例给出一种实用的方法:
提示:用以上方法可以将全部解的值存入一个表,后面 需要时可以用提取表的元素的方法随意引用。
/sdssxwfd ◄ Up
► Down ◙ Main
合并。
注意:上例中表明,当第2个参数有多个变量时,答案 与第2个参数中变量的次序有关。
/sdssxwfd ◄ Up
► Down ◙ Main
表达式的展开
将表达式展开的函数有: Expand[expr] ExpandAll[expr] 这两个函数都可用于乘积的展开,也可以展开分式。后
如果在方程的系数中使用小数,则改为求近似解。
/sdssxwfd ◄ Up
► Down ◙ Main
说明:其中例2无解,则输出一个空括号。Mathematica 的解集输出优于MATLAB的同类函数的输出,有几个 解、各个未知量的值都一目了然。
/sdssxwfd ◄ Up
► Down ◙ Main
测试实例:
/sdssxwfd ◄ Up
► Down ◙ Main
相关文档
最新文档