Mathematica中国代理产品介绍
Mathematica是由Wolfram Research开发的科学计算软件,最初发布于1988年,支持Windows、Mac OS和Linux平台。该软件整合数值计算、符号运算、图形处理及编程语言,与MATLAB、Maple并称为三大数学软件。其核心基于Wolfram语言,采用符号式语言设计与笔记本界面,涵盖网络、图像、几何等领域近6000个内置函数。
软件采用内核与前端双模块结构,支持多线程计算、GPU加速。2025年8月发布的14.3版本新增深色模式界面,完善非交换代数体系,扩展希尔伯特变换、区域高斯曲率计算等函数库,并修复1073个错误 。通过MathLink协议实现与C、.NET、Java等语言交互,内置生物医学、金融等可计算数据集,提供与Excel、MATLAB的数据接口。该系统集成Wolfram知识库,涵盖15万范例及实时数据,支持云端与本地混合计算环境。
影响
Mathematica的用户群中最主要的是科技工作者和其它专业人士。但是,Mathematica还被广泛地用于教学中。数学中的许多计算是非常繁琐的,特别是函数的作图费时又费力,而且所画的图形很不规范,所以流行用Mathematica符号计算系统进行学习,从高中到研究生院的数以百计的课程都使用它,很多问题便迎刃而解。此外,随着学生版的出现,Mathematica已经在全世界的学生中流行起来,成为了一个著名的工具。
开发组
Mathematica的开发工作是由世界级的队伍组成的。这支队伍自从成立以来一直由史蒂芬·沃尔夫勒姆领导。Mathematica的成功使得公司能够集中注意力在非常长远的目标上,运行独特的研发项目,以及通过各种各样的免费网站支持世界各地的知识爱好者。
长期以来,Mathematica核心设计的普遍性使得其涉及的领域不断增长。从刚开始是一个主要用于数学和科技计算的系统,到发展成许多计算领域的主要力量,Mathematica已经成为世界上最强大的通用计算系统。
高性能计算
Mathematica系统已经支持高性能计算。在Mathematica 5.2版本中,它已经支持自动多线程计算。在2002年,gridMathematica的引入使得用户级的并行编程可以在不同的集群和多处理器系统中进行。在2008年,在所有的Mathematica许可证中囊括了并行计算技术,包括支持网格技术如Windows HPC Server 2008、Microsoft Compute Cluster Server和Sun Grid。2010年,Mathematica增加了对CUDA和OpenCLGPU硬件的支持。另外,第8版还可以生成C代码,它可以自动由系统C编译器进行编译,比如Intel C++编译器或者Visual Studio 2010编译器。
界面
Mathematica 分为两部分:内核和前端。内核对表达式(即 Mathematica 代码)进行解释,并且返回结果表达式。
前端由 Theodore Gray 设计,提供了一个 GUI,它使得用户可以创建并且编辑一个“笔记本文档”,该笔记本文档可以包含程序代码和其它格式化的文本(比如公式、图像、GUI组件、表格、声音等),并且支持标准文字处理功能。所有的内容和格式都可以通过算法生成或者通过交互式方法进行编辑。
文档可以使用层次式单元进行结构化处理,这样便于对文档划分章节。文档也可以表示为幻灯片形式,便于进行演讲。笔记本与其内容均以 Mathematica 表达式的形式存储,并且可用使用 Mathematica 程序进行创建、编辑和修改,而且还可以转化为其它格式,比如 TeX 或者 XML。
前端包括开发工具,比如调试器、输入自动补全、以及自动语法着色。
默认情况下,Mathematica 使用一个标准前端,不过也有其它前端可供选择,包括 Wolfram Workbench、2006年引入的基于 Eclipse 的IDE。它们为 Mathematica 提供了面向项目的开发工具,包括版本管理、调试、归档和测试。 此外,Mathematica 还包括一个命令行前端(Mathematica Kernel)。
函数概览
基本运算
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[x] 0至1之间的随机数(最新版本已经不用这个函数,改为使用RandomReal[x])
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的根
四种括号
(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自系统中清除掉
含有预设值的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 不等于
矩阵代数
EigenvalueDecomposition — 可对角化矩阵的特征值分解
FrobeniusDecomposition — 矩阵的 Frobenius 分解(分块伴随)
PolynomialHermiteDecomposition — 多项式矩阵的 Hermite 分解
PolynomialSmithDecomposition — 多项式矩阵的 Smith 分解
积分变换
HilbertTransform — 计算一个函数的 Hilbert 变换
InverseHilbertTransform — 计算函数的逆 Hilbert 变换
几何
FindShortestCurve — 在一个区域内查找两点之间弧长最小的曲线
ShortestCurveDistance — 给定区域内两点之间的最小弧长
RegionGaussianCurvature — 给出某一区域某点的高斯曲率
逻辑运算子
!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 Automatic 坐标轴之刻度,设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}
表格处理
JoinAcross (已更新) — 支持对两个 Tabular 对象进行连接
LeftJoinAcross — 对两个表格左连接的特定支持
ColumnwiseCombine — 合并多个表格,比较共有列的值
区域可视化
SurfaceContourPlot3D — 在曲面上绘制函数的等值线图
SurfaceDensityPlot3D — 在曲面上绘制函数的密度图
HighlightRegion — 突出显示区域中的特定感兴趣区域
ListFitPlot — 绘制带有拟合曲线的数据
ListFitPlot3D — 使用拟合曲线绘制数据图
SmoothDateHistogram — 在日期轴上绘制平滑密度估计
视频处理与分析
VideoStabilize — 稳定抖动视频
ImageFeatureTrack (已更新),ImageDisplacements (已更新) — 视频中的稀疏和稠密目标跟踪
VideoObjectTracking (已更新) — 从指定的点集开始进行跟踪
机器学习与神经网络
LLMGraph, LLMGraphSubmit — 安排并组合多个 LLM 生成的步骤
SemanticRanking, RerankingMethod — 按语义相似度对文本项进行排序
FeatureExtract (已更新) — 新的句子级特征提取器
产品功能
Mathematica的功能包括:
1、使用一行代码可显示的图形
2、各种基本数学函数库
3、各种特殊属性函数库
4、矩阵和数据操纵工具,包括对稀疏矩阵的处理
5、支持复数、任意精度数、区间算术和符号运算
6、2维和3维数据以及函数的可视化和动画工具
7、求解方程组、常微分方程、偏微分方程、微分代数方程、时滞微分方程、递推关系式等等
8、离散和连续微积分的数值和符号工具
9、多变量统计程序库,包括支持100多种数据分布的数据拟合、假设检验、概率和期望的运算
10、对运算和应用程序添加用户界面的各种工具包
11、约束和非约束以及局部和全局的最优化技术支持
12、程序语言支持:过程式编程语言、函数式编程语言和面向对象的编程语言
13、图像处理工具 ,包括图像识别
14、提供用于图论中图的分析和可视化的工具
15、分析组合问题的工具
16、用于文本挖掘的工具
17、数据挖掘的工具,比如聚类分析、字符串对齐和模式匹配
18、数论函数库
19、金融运算的工具,包括期权、债券、年金、派生工具等的计算
20、群论函数
21、技术文本处理,包括公式编辑器和自动报告生成
22、用于声音、图像和数据的小波分析程序库
23、控制系统程序库
24、连续和离散的积分变换
25、导入和导出数据、图像、视频、GIS、CAD等各种文件格式,并支持对生物医学类数据的输入和输出
26、链接Wolfram Alpha的大量数学、科学、社会经济学类的数据集合
27、查看并且重新使用前面的输入和输出(包括图像和文本记号)的笔记本界面
28、和基于DLL、SQL、Java、.NET、C++、FORTRAN、CUDA、OpenCL以及http的系统相链接的工具
29、编写并行程序的工具
30、当与互联网连接时,在笔记本中可同时使用“自由格式语言输入”(一个自然语言型的用户界面)和 Mathematica 语言
应用的链接
链接方式
Mathematica通过名为MathLink的协议与其它应用程序链接。通过该协议,Mathematica实现内核与前端的通讯,并且也提供了内核和其它应用程序之间的一个通用接口。
Mathematica不但本身具有丰富的功能,而且它也提供了大量接口用以访问其它软件,从而可以方便地调用那些其它软件具有但Mathematica暂时不具备的功能。这样做可以进一步增强Mathematica的适用性。
Wolfram Research发布了一个免费的开发工具包,该工具包允许C programming language编写的应用程序通过MathLink链接到Mathematica内核。
使用 .NET/Link,任何一个 .NET 程序都可以调用Mathematica执行计算操作;相应地,Mathematica程序也可以加载 .NETclasses、操纵 .NET 对象并且执行方法调用。这样就可以从Mathematica内部构建 .NET 图形用户界面。类似地,Mathematica也有J/Link。顾名思义,它可以用于Mathematica与Java程序之间的交互。
与SQL数据库之间的通讯是通过内置的JDBC支持实现的。Mathematica也可以从一个WSDL描述中安装网页服务。
其它与Mathematica相链接的语言包括Haskell、AppleScript、PLT Scheme、Visual Basic、Python和Clojure。
在Mathematica和OpenOffice.org Calc以及Microsoft Excel之间有双向的链接。
Mathematica也提供了与许多专门的数学软件包之间的链接,包括MATLAB、R、Sage、SINGULAR、MathModelica和Origin
Mathematica中的数学公式也可以与其它计算或者排版软件(比如MathML)的公式进行相互转换。
Mathematica可以通过多种方式捕获实时数据,比如与LabVIEW的链接,金融数据feeds,或者直接通过GPIB从硬件设备(IEEE 488)、USB以及串行接口获取。
其他可用界面有JMath,它基于GNU readline和MASH,并利用UNIX命令行运行内置的Mathematica程序(内含参数)。
支持语言
语言:C、.NET、Java、SQL
支持软件
软件:OpenOffice、Microsoft Excel、MATLAB、R
可计算数据
Mathematica囊括了大量可立即计算的数据。用户可以通过编程访问这些数据,并且也可以通过Wolfram Research的数据服务器自动更新数据。某些数据如股票价格和天气数据都是实时递送的。
数据集包括:
天文数据:155,000个天体的99个属性
化学数据:34,000个化合物的111个属性,118个化学元素的86个属性以及1000个亚原子粒子的35个属性
地缘政治数据:237个国家的225个属性,以及全世界160,000个城市的14个属性
金融数据:186,000个股票和金融工具的历史和实时属性
数学数据:187种多面体的89个属性,3000种图的258个属性,6种knots的63个属性,21种晶格结构的37个属性,52个测地学方案的32个属性
语言数据:149,000个英语单词的37个属性。26个其他语言的词典
生物医学数据:所有40,000个人类基因的41个数据,27,000类蛋白质的30个属性
天气数据:全球17,000个气象站的43个实时和历史的测量数据
Wolfram Alpha数据:来自Wolfram Alpha的亿万兆数据
适用平台
Mathematica可以在许多不同的平台上运行,包括:Linux、Apple的Mac OS X以及基于NT的Microsoft Windows。所有平台都支持64位实现。在6.0.3之前的版本还支持其它操作系统,包括:Solaris、AIX、Convex、HP-UX、IRIX、MS-DOS、NeXTSTEP、OS/2、Ultrix和Windows Me。
Mathematica家用版是Microsoft Windows、Linux和Mac OS X(Intel)上的一个32位应用程序。