Mathematica是一款科学计算软件,很好地结合了数值和符号计算引擎、图形系统、编程语言、文本系统、和与其他应用程序的高级连接。很多功能在相应领域内处于世界领先地位,截至2009年,它也是为止使用最广泛的 数学软件之一。Mathematica的发布标志着现代科技计算的开始。自从20世纪60年代以来,在数值、代数、图形、和其它方面应用广泛,Mathematica是世界上通用计算系统中最强大的系统。自从1988发布以来,它已经对如何在科技和其它领域运用计算机产生了深刻的影响。
new logo
Mathematica的历史
人们常说,Mathematica的发布标志着现代科技计算的开始。自从上世纪六十年代以来,在数值、代数、图形、和其它方面一直有个别的软件包存在。但是,Mathematica的基本概念是用一个连贯的和统一的方法创造一个能适用于科技计算各个方面的软件系统。实现这一点的关键之处是发明了一种新的计算机符号语言。这种语言能仅仅用很少量的基本元素制造出广泛的物体,满足科技计算的广泛性。这在人类历史上还是第一次。 当Mathematica1.0版发布时,《纽约时代报》写道:“这个软件的重要性不可忽视”;紧跟着《商业周刊》又将Mathematica评比为当年十大最重要产品。在科技界,Mathematica被形容为智能和实践的革命。
Mathematica 应用广泛
最初,Mathematica的影响主要限于物理学、工程学、和数学领域。但是,随着时间的变化,Mathematica在许多重要领域得到了广泛的应用。现在,它已经被应用于科学的各个领域--物理、生物、社会学、和其它。许多世界顶尖科学家都是它的忠实支持者。它在许多重要的发现中扮演着关键的角色,并是数以千计的科技文章的基石。在工程中,Mathematica已经成为开发和制造的标准。世界上许多重要的新产品在它们的设计某一阶段或其它阶段都依靠了Mathematica的帮助。在商业上,Mathematica在复杂的金融模型中扮演了重要的角色,广泛地应用于规划和分析。同时,Mathematica也被广泛应用于计算机科学和软件发展:它的语言元件被广泛地用于研究、原型、和界面环境。
Mathematica的用户群中最主要的是科技工作者和其它专业人士。但是,Mathematica还被广泛地用于教学中。从高中到研究生院的数以百计的课程都使用它。此外,随着学生版的出现,Mathematica已经在全世界的学生中流行起来,成为了一个著名的工具。
Mathematica的开发工作是由世界级的队伍组成的。这支队伍自从成立以来一直由 史蒂芬·沃尔夫勒姆领导。Mathematica的成功使得公司能够集中注意力在非常长远的目标上,运行独特的研发项目,以及通过各种各样的免费网站支持世界各地的知识爱好者。 长期以来,Mathematica核心设计的普遍性使得其涉及的领域不断增长。从刚开始是一个主要用于数学和科技计算的系统,到现在发展成许多计算领域的主要力量,Mathematica已经成为世界上最强大的通用计算系统。 -------------------------------------------------------------------------------------- 官方网站∶www.wolfram.com --------------------------------------------------------------------------------------
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/180 I 虚数,其值为 √-1 Infinity 无限大 指定之前计算结果的方法 % 前一个运算结果 %% 前二个运算结果 %%…%(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] ArcSinh[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之间的乱数 Max[a,b,c,...],Min[a,b,c,…] a,b,c,…的极大/极小值 数之设定 x=a 将变数x的值设为a x=y=b 将变数x和y的值均设为b x=. 或 Clear[x] 除去变数x所存的值 变数使用的一些法则 xy 中间没有空格,视为变数xy x y x乘上y 3x 3乘上x x3 变数x3 x^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[expr,{x,y,…}] 将 expr中把所有不包含{x,y,...}项的因子提出 三角函数、双曲函数和指数的运算 TrigExpand[expr] 将三角函数展开 TrigFactor[expr] 将三角函数所组成的数学式因式分解 TrigReduce[expr] 将相乘或次方的三角函数化成一次方的基本三角函数之组合 ExpToTrig[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均代换成value expr/.{x->value1,y->value2,…} 执行数个不同变数的代换 expr/.{{x->value1},{x->value2},…} 将 expr代入不同的x值 expr//.{x->value1,y->value2,…} 重复代换到 expr不再改变为止 求解方程式的根 Solve[lhs==rhs,x] 解方程式lhs==rhs,求x Nsolve[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的根 Mathematica 的四种括号 (term) 圆括号,括号内的term先计算 f[x] 方括号,内放函数的引数 {x,y,z} 大括号或串列括号,内放串列的元素 p[[i ]] 或 Part[p,i] 双方括号,p的第i项元素 p[[i,j]] 或 Part[p,i,j] p的第i项第j个元素 缩短Mathematica输出的指令 expr//Short 显示一行的计算结果 Short[expr,n] 显示n行的计算结果 Command; 执行command,但不列出结果 查询Mathematica的物件 ?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自系统中清除掉 含有预设值的Pattern a_+b_. b的预设值为0,即若b从缺,则b以0代替 x_ y_ y的预设值为1 x_^y_ y的预设值为1 条件式的自订函数 lhs:=rhs/;condition 当condition成立时,lhs才会定义成rhs If指令 If[test,then,else] 若test为真,则回应then,否则回应else If[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] 全微分df Dt[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 大於等於 a<b 小於 a<=b 小於等於 a!=b 不等於 逻辑运算子 !p not p||q||… or p&&q&&… and Xor[p,q,…] exclusive or LogicalExpand[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轴之标记。若设定为AxesLabel->{xlabel,ylabel} ,则为{x轴,y轴}的标记 AxesOrigin Automatic 坐标轴的相交的点 DefaultFont $DefaultFont 图形里文字的预设字型 Frame False 是否将图形加上外框 FrameLabel False 从x轴下方依顺时针方向加上图形外框的标记 FrameTicks Automatic (如果Frame设为True)为外框加上刻度; None则不加刻度 GridLines None 设Automatic则於主要刻度上加上网格线 PlotLabel None 整张图之图名 PlotRange Automatic 指定y方向画图的范围 Ticks Automati 坐标轴之刻度,设None则没有刻度记号出现 ※「Automatic、None、True、False」为Mathmatica常用的选项设定,其代表意义分别为「使用内部设定、不包含此项、作此项目、不作此项目」。 串列绘图 ListPlot[{y1,y2,…}] 画出{1,y1},{2,y2},…的点 ListPlot[{{x1,y1},{x2,y2},…}] 画出{x1,y1},{x2,y2},…的点 ListPlot[{{x1,y1},{x2,y2},…},PlotJoined->True] 把画出来的点用线段连接 绘图颜色的指定 Plot[{f1,f2,…},{x,xmin,xmax}, PlotStyle->{RGBColor[r1,g1,b1],RGBColor[r2,g2,b2],…}] 彩色绘图 Plot[{f1,f2,…},{x,xmin,xmax}, PlotStyle->{GrayLevel
,GrayLevel[j],…}] 灰阶绘图 图形处理指令 Show[plot] 重画一个图 Show[plot1,plot2,…] 将数张图并成一张 Show[plot,option->opt] 加入选项 图形之排列 Show[GraphicsArray[{plot1,plot2,…}]] 将图形横向排列 Show[GraphicsArray[{,,…}]] 将图形垂直排列 Show[GraphicsArray[{{plot1,plot2,…},…}]] 将图形成二维 矩阵式排列 二维参数图 ParametricPlot[{f1,f2},{t,tmin,tmax}] 参数绘图 ParametricPlot[{{f1,f2},{g1,g2},…},{t,tmin,tmax}] 同时绘数个参数图 ParametricPlot[{f1,f2},{t,tmin,tmax},AspectRatio->Automatic] 保持曲线的真正形状,即x,y坐标比为1:1 等高线图 ContourPlot[f,{x,xmin,xmax},{y,ymin,ymax}] 於指定范围之内画出f的等高线图 ContourPlot[]的选项 选项 预设值 说明 ColorFunction Automatic 上色的预设值为灰阶,选Hue则为系列色彩 Contours 10 等高线的数目。设Contours->{z1,z2,…}则指定等高值为z1,z2,… ContourShading True Contour的上色,选False则不上色 PlotRange Automatic 高度z值的范围,也可指定{zmin,zmax} -------------------------------------------------------------------------------------------------------------------- 现在已经推出 7.0 版 其他的科学计算软件: Maple, Maxima, MathCad, Matlab,Reduce,FreeMat,Scilab, 几何画板。 Mathematica 1.0 (1988) Mathematica 1.2 (1989) Mathematica 2.0 (1991) Mathematica 2.1 (1992) Mathematica 2.2 (1993) Mathematica 3.0 (1996) Mathematica 4.0 (1999) Mathematica 4.1 (2000) Mathematica 4.2 (2002) Mathematica 5.0 (2003) Mathematica 5.1 (2004) Mathematica 5.2 (2005) Mathematica 6.0 (2007) Mathematica 6.0.3 (2008) Mathematica 7.0 (2008) Mathematica7.0.1(2009.2)