实际上,对于更加复杂的工程计算、编程和作图需求,目前最流行的两大软件是MATLAB和Mathematica。
它们均在高校教学、学术界和工业界发挥着重要作用。
MATLAB更加适合工程应用,Mathematica更加适合数学分析。
Mathematica是由美国的沃尔夫勒姆(Wolfram)研究公司开发的计算软件,于1988年问世,在数值计算、符号运算、数学绘图和动画显示等方面具有强大能力。
Mathematica作为一种交互式计算工具,能够智能化理解用户输入的英文计算命令,使用方便。
它作为一种程序语言,语法规则简单,语句精炼,能够使用较少语句完成复杂计算和公式推导等任务。
用户可以选择单命令对话方式或批处理程序方式进行计算。
Mathematica内置大量函数,例如Abs[x]表示x的绝对值,Random[]表示产生[0, 1]区间上的随机数,Factor[expr]表示对expr进行因式分解,Plot[f[x], {x, xmin, xmax}]表示对函数f作图。
它可以求解方程、方程组和不等式,例如使用Solve[x2-2x+1==0, x] 命令求解方程中的未知数x。
它可以求导数,例如使用D[f, x1, x2, x3] 命令能够求f关于x1、x2、x3的偏导数。
它可以求积分,例如使用Integrate[f, {x, a, b}]命令能够求函数f相对于x在x=a到x=b的范围内的积分值。
它还可以求解常微分方程和偏微分方程,例如使用DSolve[{x’’[t]-3x’[t]+8y’[t]+4y[t]==0, x’[t]-2y’[t]+7x[t]==3 Exp[t]}, {x[t], y[t]}, t]的命令能够求解自变量为t的常微分方程组。
从以上几个例子可以看出,Mathematica的计算方式是使用大量内置函数命令,非常便于计算和公式推导,免去了用户查找算法并使用FORTRAN或C语言自己编程的麻烦。
Mathematica与MATLAB在很多计算、绘图和编程的功能上类似。
它们之间的区别可以归纳为以下几点,各有优劣。
MATLAB在软件语言规则、编程便利性和程序调试方面比Mathematica更加方便易用。
MATLAB包括各种工具包,例如信号处理工具包、优化工具包、神经网络工具包、控制系统工具包、样条工具包、符号数学工具包、图像处理工具包、统计工具包等。
由于Mathematica提供一种称为“Notebook”的用户界面,格式灵活友好,因此用户能够很容易地将计算结果直接存成汇报演讲稿格式的文件,在这方面比MATLAB更加方便。
关于Mathematica的使用方法,本文从网上精选出一个详细的视频指南和一个讲座示例,建议读者观看。
掌握Mathematica的关键是熟悉其语法规则。
以下总结它的20条重要语法规则。
启动软件后,出现Notebook窗口。
输入用In[ ]表示,输出用Out[ ]表示,按“Shift+Enter”键运行计算。
用户在Notebook界面下,使用“?”或“??”可查询函数的定义和用法,获取帮助信息。
如果使用两个问号“??”,则帮助信息会更详细。
例如,“?Plot*”给出所有以“Plot”开头的命令。
完成计算后,点击File->Exit菜单退出。
如果文件未存盘,系统将提示用户存盘,文件名以“.nb”作为后缀,称为Notebook文件。
需要再次使用存盘的文件时,可以点击打开。
Mathematica 严格区分大小写。
内置函数的首字母须大写。
当函数名由几个单词构成时,每个单词的首写字母必须大写,例如:求局部极小值函数FindMinimum[f[x], {x, x0]。
用户自定义变量须以小写字母开头,后跟数字和字母的组合,长度不限。
特殊字符:Pi 表示圆周率。
E表示自然常数。
Degree表示角度转换为弧度的常数,等于Pi/180。
I表示虚数单位,其值为-1的平方根。
变量赋值规则:x=a表示将变数x的值设为a。
x=y=b表示将变数x和y的值均设为b。
x=.或Clear[x]表示清除变数x的值。
Remove[f]表示将f从系统中清除。
变量关系规则:当xy中间没有空格时,视为变量xy。
当x y中间有一个空格时,视为x乘y。
3x表示3乘x。
x3表示变量x3。
函数名和自变量参数之间用分隔符[ ]表示,而不是用数学书上常用的圆括号“( )”表示。
变量的列表值和范围用大括号{ }表示。
关于数学表达式的输入,Mathematica允许用户使用以下两种格式。
形如x/(1+7x)+y/(x-2)的称为一维格式。
形如下式的使用工具栏输入的格式称为二维格式:二维格式函数的展开与分解:Expand[expr]表示将expr展开。
Factor[expr]表示对expr做因式分解。
Simplify[expr]表示将expr化简成精简的式子。
FullSimplify[expr]表示Mathematica会尝试更多的化简公式,将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]表示反三角函数。
Sqrt[x]表示根号。
Exp[x]表示指数。
Log[x]表示自然对数。
Log[a, x]表示以a为底的对数。
Abs[x]表示绝对值。
Round[x]表示最接近x的整数。
Floor[x]表示小于或等于x的最大整数。
Ceiling[x]表示大于或等于x的最小整数。
Max[a, b, c, …]和Min[a, b, c, …]分别表示a、b、c、…的极大值和极小值。
关系运算子:a==b表示等于。
a!=b表示不等于。
a>b表示大于。
a>=b表示大于等于。
a<b表示小于。
a<=b表示小于等于。
基本运算法则:a^b表示幂次方。
a+b+c表示加法。
2+6I表示复数形式。
Conjugate[a+bI]表示共轭复数。
Re[z]和Im[z]分别表示复数z的实数和虚数部分。
Abs[z]表示复数z的大小或模数(Modulus)。
Arg[z]表示复数z的幅角(Argument)。
求和与求积法则:Sum[f, {i, imin, imax}]表示求和。
Sum[f, {i, imin, imax, di}]表示求数列之和,引数i以di递增。
Product[f, {i, imin, imax}]表示求积。
Product[f, {i, imin, imax, di}]表示求数列之积,引数i以di递增。
微分法则: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的函数。
积分法则:Integrate[f, x]表示将函数f相对于x进行不定积分。
Integrate[f, {x, xmin, xmax}]表示将函数f相对于x进行定积分。
Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}]表示将函数f相对于x和y进行定积分。
方程式求解法则: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的根。
作图函数主要包括Plot、Plot3D、ParametricPlot、ParametricPlot3D、PolarPlot、ContourPlot、ContourPlot3D、RevolutionPlot3D、SphericalPlot3D、DensityPlot、DensityPlot3D、RegionPlot、RegionPlot3D、ListPlot、ListPlot3D、ListContourPlot、ListContourPlot3D、ListContourPlot3D、ListPointPlot3D、ListDensityPlot、ListDensityPlot3D。
统计图作图函数主要包括Histogram、Histogram3D、DensityHistogram、SmoothHistogram3D等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)