1、常用数学软件,延安大学计算机学院,主讲:许淳,主要内容,符号运算软件Mathematica, Maple,数学CAD软件 MathCAD,矩阵处理软件 Matlab,统计处理软件SAS, Spss, Origin,优化软件 Lindo、Lingo,Mathematica的发布标志着现代科技计算的开始。,官方网站,Mathematica是由美国科学家斯蒂芬沃尔夫勒姆(Stephen Wolfram,1959年- )领导的Wolfram Research开发的一个广泛使用的计算机代数系统。它拥有强大数值计算和符号运算能力。它是目前为止使用最广泛的数学软件之一。Mathematica同时也为Wolf
2、ram Research公司的注册商标。,一、 符号运算软件:Mathematica, Maple,Mathematica,1988 年推出第一版Mathematica版本 ,New York 时代周刊评论:“the importance of the program cannot be overlooked”,Business Week 把Mathematica列为当年十大最重要的新产品之一。,自上世纪六十年代以来,在数值、代数、图形、和其它方面一直有个别的软件包存在。但是,Mathematica的基本概念是用一个连贯的和统一的方法创造一个能适用于科技计算各个方面的软件系统。 实现这一点的关
3、键之处是发明了一种新的计算机符号语言。这种语言能仅仅用很少量的基本元素制造出广泛的物体,满足科技计算的广泛性。这在人类历史上还是第一次。,Mathematica,1、 Mathematica简介,Mathematica,图:Mathematica应用,现在,它已经被应用于科学的各个领域-物理、生物、社会学、和其它。许多世界顶尖科学家都是它的忠实支持者。它在许多重要的发现中扮演着关键的角色,并是数以千计的科技文章的基石。,最初,Mathematica的影响主要限于物理学、工程学、和数学领域。但是,随着时间的变化,Mathematica在许多重要领域得到了广泛的应用。,在工程中,Mathemati
4、ca已经成为开发和制造的标准。世界上许多重要的新产品在它们的设计某一阶段或其它阶段都依靠了Mathematica的帮助。 在商业上,Mathematica在复杂的金融模型中扮演了重要的角色,广泛地应用于规划和分析。同时,Mathematica也被广泛应用于计算机科学和软件发展:它的语言元件被广泛地用于研究、原型、和界面环境。,Mathematica,2维和3维图像处理 对稀疏矩阵的处理 多变量统计处理功能 图像分析工具 约束和非约束以及局部和全局的最优化技术支持 导入和导出数据、图像、视频、GIS、CAD各种文件格式的过滤器和SQL、Java、.NET、C+、FORTRAN、http基本系统的
5、链接工具 可以使用于多个不同的系统上,支持大量的范围广泛的运算符,图形和层的扩展功能。 包括一个可以计算有限用户输出的“核心”,并可以工作于网络之上。,各种基本数学运算和各种数学函数的处理功能,Mathematica,Mathematica的许多特色Package包含有: 一个个的运算单元,减少计算的错误 许多内建包装好的特殊的函式,如线性代数、排列组合、图像操作、绘图等等。 小波分析程序包、图像处理程序包、工程程序包等多种程序包。程序包在Mathematica中称为Package。,Mathematica,数值计算几乎人人用过计算器,它能进行+、-、*、四则运算和简单的函数运算。Mathem
6、atica作为一个功能强大的数学软件包,在处理数值运算方面具有非常强大的功能。使用Mathematica作算术计算就像使用电子计算器一样简单。,2、Mathematica示例,代数式运算Mathematica还可以作代数式的各种运算: 9 (2 + x) (x + y)+(x + y)2 将上式展开: Expand%3 分解因式: Factor%,求极限运算 LimitSinx/x,x-0 Limit(1+2 x)(1/x), x-0微积分 Integratex2 Sinx2, x D%, x Simplify%,和与积 Sumxi/i, i, 1, 7, 2 Sum1/i3, i, 1, 2
7、0 N% Productx+i, i, 1, 4,解方程或方程组 x3 7 x2 + 3 a x = 0 Solve%, x Solvea x+b y = 0, x+y = c, x, y FindRootSinx = x y, Cosy = x + y, x, 1, y, 0 ,解微分方程或微分方程组 DSolveyx = a yx, yx, x DSolveyx = a yx, y0 =1, yx, x,矩阵 m = Tablei/(i+j+1),i, 3, j, 3 MatrixForm% Transposem Inversem %.m Detm EigenvaluesNm Eigenv
8、ectorsm,极小值 FindMinimumSinx+x/5, x, 1线性规划 ConstrainedMax17 x 20 y+18 z, x y + z 20, x, y, z ConstrainedMinx + 3 y + 7 z, x 3 y = 5, x + y + z 10, x, y, z,编程下面是一个输出适合条件的数的简单程序:n = 10; While(n = n 1) 5, Printn,Maple :1980年加拿大Waterloo大学开始研究符号运算系统。 Maple是一个通用型的商用計算机代数系统。 Maple Inc.(亦称Maplesoft) 。最新版是Map
9、le 13。 它的主要竞争者是Mathematica。,http:/,Maple的主要功能: 数值计算:初等计算、线性代数计算、数值方法等 符号运算:多项式因式分解与展开、微分、积分、级数、数列等。 绘图功能:方便、强大、直观的二、三维绘图。,Maple,Maple特点: 简单易用的交互式操作方式: 两种软件都使用英文单词来命名函数,非常直观、易用。对每一个命令都能给出显示结果,非常方便。功能强大: 强大数值计算功能和符号运算功能;结构化的程序设计语言;Tex输出格式: Tex是科技文章的一种格式,科技界应用十分广泛。,Maple,SAS(Statistical Analysis System
10、)是由美国北卡罗来纳州州立大学1966年开发的统计分析软件。1976年SAS软件研究所(SAS Institute Inc.)成立,开始进行SAS系统的维护、开发、销售和培训工作。期间经历了许多版本,并经过多年来的完善和发展,SAS系统在国际上已被誉为统计分析的标准软件,在各个领域得到广泛应用。,二、 统计处理软件: SAS, Spss, Origin,http:/ (Statistical Analysis System)是一个模块化、集成化的大型应用软件系统。它由数十个专用模块构成,功能包括数据访问、数据储存及管理、应用开发、图形处理、数据分析、报告编制、运筹学方法、计量经济学与预测等等。
11、 SAS系统基本上可以分为四大部分:SAS数据库部分;SAS分析核心;SAS开发呈现工具;SAS对分布处理模式的支持极其数据仓库设计。 SAS系统主要完成以数据为中心的四大任务:数据访问;数据管理;数据呈现;数据分析。,SPSS(Statistical Package for the Social Science)社会科学用软件包是世界上最早的统计分析软件,由美国斯坦福大学的三位研究生于20世纪60年代末研制,同时成立了SPSS公司,并于1975年在芝加哥组建了SPSS总部。1984年SPSS总部首先推出了世界上第一个统计分析软件微机版本SPSS/PC+,开创了SPSS微机系列产品的开发方向,
12、极大地扩充了它的应用范围,并使其能很快地应用于自然科学、技术科学、社会科学的各个领域,世界上许多有影响的报刊杂志纷纷就SPSS的自动统计绘图、数据的深入分析、使用方便、功能齐全等方面给予了高度的评价与称赞。,Spss,http:/ Analysis System,统计分析系统)、BMDP(Biomedical Programs,生物医学程序)并称为国际上最有影响的三大统计软件。SPSS名为社会学统计软件包,这是为了强调其社会科学应用的一面(因为社会科学研究中的许多现象都是随机的,要使用统计学和概率论的定理来进行研究),而实际上它在社会科学、自然科学的各个领域都能发挥巨大作用,并已经应用于经济学
13、、生物学、教育学、心理学、医学以及体育、工业、农业、林业、商业和金融等各个领域。 此外,切记SPSS只是提供了强大的统计分析程序,至于选取哪种统计方法处理你的数据,还得由我们自己选择,最好以统计学权威书刊为主。,Origin是美国OriginLab公司(前身为Microcal公司)开发的图形可视化和数据分析软件,是科研人员和工程师常用的高级数据分析和制图工具。自1991年问世以来,由于其操作简便,功能开放,很快就成为国际流行的分析软件之一,是公认的快速、灵活、易学的工程制图软件。它的最新的版本号是8.0,另外分为普通版(Origin 8)和专业版(OriginPro 8)两个版本。Origin
14、为OriginLab公司出品的较流行的专业函数绘图软件,是公认的简单易学、操作灵活、功能强大的软件,既可以满足一般用户的制图需要,也可以满足高级用户数据分析、函数拟合的需要。,Origin,http:/ Origin的数据分析包括数据的排序、调整、计算、统计、频谱变换、曲线拟合等各种完善的数学分析功能。准备好数据后进行数据分析时,只需选择所要分析的数据,然后再选择相应的菜单命令即可。,Mathcad是由MathSoft公司(2006 年4 月被美国PTC收购)推出的一种交互式数值计算系统。 Mathcad 是一种工程计算软件,作为工程计算的全球标准,与专有的计算工具和电子表格不同,Mathca
15、d 允许工程师利用详尽的应用数学函数和动态、可感知单位的计算来同时设计和记录工程计算。独特的可视化格式和便笺式界面将直观、标准的数学符号、文本和图形均集成到一个工作表中。,三、 数学CAD软件: MathCAD,http:/ 矩阵功能定义的矩阵或矢量矩阵操作:矩阵转置、求逆矩阵、求矩阵的行列式的值。,Mathcad功能:,MathCAD,数学计算功能解方程:一般方程、线性方程组、不定方程、常微分方程、偏微分方程等数理统计与数据处理:统计函数、统计分布函数、插值预测、曲线拟合(回归)等。积分变换:Fourier变换、Laplace变换、Z变换、小波变换等。 符号处理:借用的是Maple内核。 图
16、形功能:包括绘制二维和三维图形。,MathCAD,1. 简介:MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与
17、分析等领域。,四、矩阵处理软件: Matlab,Matlab,http:/ 特点: (1) 强大的数值运算功能在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的命名表示自然,使得问题和解答像数学公式一般简单明了,让用户可全力发挥在解题方面,而非浪费在电脑操作上。,(2) 数据分析、可视化和文字处理功能MATLAB可以绘制二、三维图形,与Mathematic和Maple相比,它还能处理光照模型,制作出高品质的图形。功能十分强大。MATLAB Notebook为用户提供了强大的文字处理功能,并允许WORD访问MATLAB的数值计算和可视化结果,制作科学性或工程性图文
18、并茂的文章.,Matlab,(3) 高级、简单、高效的程序环境 做为一种解释型的程序语言,MATLAB允许使用者在 短时间内写完程序,所花的时间约为用 FORTRAN 或 C 的几 分之一,而且不需要编译 (compile) 及 连 接 (link) 即能执 行,同时包含了更多及更容易使用的内建功能。 (4) 开放及可延伸的架构MATLAB允许使用者接触它的大多数的数学源代码,检查运算法,更改现有函数,甚至加入自己的函数使 MATLAB成为使用者所需要的环境。,Matlab,(5) 丰富的工具箱MATLAB的工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提供了使用者
19、在特别应用领域所需的许多函数。现有工具箱有:符号运算(利用Maple V的计算核心执行)、图像处理、统计分析、信号处理、通信、线性矩阵不等式、偏微分方程、高阶谱分析、财政金融、神经网络、模拟分析、控制系统、实时控制、小波分析、最优化、模糊逻辑、分析及合成等30多种。,Matlab,运行MATLAB MATLAB中与数学相关的常用的工具箱MATLAB中基本代数运算符变量及数组输入 MATLAB中关系和逻辑运算,3、MATLAB命令简单介绍,Matlab,1、 运行MATLAB,a) 命令区(Command Window)是用户使用的主要场所,此 时,可以输入变量、数组及运算命令,进行一些简单的运
20、算;用 键搜索、修改以前使用过的命令操作, 用clc清除窗口; 用help sum 、help input 寻求有关帮助; b) 编辑区(EditorDebugger Window)编制各种m-文件,存盘(Save)、运行(Run)等.,Matlab,2、MATLAB中与数学相关的常用的工具箱,在命令区(Command Window)键入help命令,可查看工具箱; matlabelmat - Elementary matrices and matrix manipulation. matlabelfun - Elementary math functions. matlabspecfun -
21、 Specialized math functions. matlabmatfun - Matrix functions - numerical linear algebra. matlabdatafun - Data analysis and Fourier transforms. matlabpolyfun - Interpolation and polynomials. matlabfunfun - Function functions and ODE solvers. matlabgraph2d - Two dimensional graphs. matlabgraph3d - Thr
22、ee dimensional graphs. matlabspecgraph - Specialized graphs.,Matlab,MATLAB中与数学相关的工具箱(续),nnetnnet - Neural Network Toolbox. nnetnndemos - Neural Network Demonstrations. toolboxoptim - Optimization Toolbox. toolboxpde - Partial Differential Equation Toolbox. toolboxsplines - Spline Toolbox. toolboxsta
23、ts - Statistics Toolbox. toolboxsymbolic - Symbolic Math Toolbox. waveletwavelet - Wavelet Toolbox.,Matlab,MATLAB中基本数学函数(续),Matlab,Trigonometric.sin - Sine. sinh - Hyperbolic sine.asin - Inverse sine. asinh - Inverse hyperbolic sine.cos - Cosine. cosh - Hyperbolic cosine.acos - Inverse cosine. acosh
24、 - Inverse hyperbolic cosine.tan - Tangent. tanh - Hyperbolic tangent.atan - Inverse tangent. atan2 - Four quadrant inverse tangent.atanh - Inverse hyperbolic tangent. sec - Secant.sech - Hyperbolic secant. asec - Inverse secant.asech - Inverse hyperbolic secant. csc - Cosecant.csch - Hyperbolic cos
25、ecant. acsc - Inverse cosecant.acsch - Inverse hyperbolic cosecant. cot - Cotangent.coth - Hyperbolic cotangent. acot - Inverse cotangent.acoth - Inverse hyperbolic cotangent.,MATLAB中基本数学函数(续),Exponential.exp - Exponential.log - Natural logarithm.log10 - Common (base 10) logarithm.log2 - Base 2 loga
26、rithm and dissect floating point number.pow2 - Base 2 power and scale floating point number.sqrt - Square root.nextpow2 - Next higher power of 2. Complex.abs - Absolute value. angle - Phase angle.conj - Complex conjugate. imag - Complex imaginary part.real - Complex real part. unwrap - Unwrap phase
27、angle.isreal - True for real array.cplxpair - Sort numbers into complex conjugate pairs.,Matlab,MATLAB中基本数学函数(续),Exponential.exp - Exponential.log - Natural logarithm.log10 - Common (base 10) logarithm.log2 - Base 2 logarithm and dissect floating point number.pow2 - Base 2 power and scale floating p
28、oint number.sqrt - Square root.nextpow2 - Next higher power of 2. Complex.abs - Absolute value. angle - Phase angle.conj - Complex conjugate. imag - Complex imaginary part.real - Complex real part. unwrap - Unwrap phase angle.isreal - True for real array.cplxpair - Sort numbers into complex conjugat
29、e pairs.,Matlab,MATLAB中基本数学函数(续),Rounding and remainder.fix - Round towards zero.floor - Round towards minus infinity.ceil - Round towards plus infinity.round - Round towards nearest integer.mod - Modulus (signed remainder after division).rem - Remainder after division.sign - Signum.,Matlab,工具箱及命令查询
30、 help topics,在命令区(Command Window)键入help ops help lang help elfun help fabshelp sqrt,Matlab,3、MATLAB中基本代数运算符,运算 符号 举例 加法 a+b + 5+3 减法 a-b - 5-3 乘法 ab * 5*3 除法 ab / or 48/4=448=12 乘幂 ab 52=25,Matlab,MATLAB中数组、矩阵基本运算符,运算 符号 举例 加法 a+b + 1 2+3 4 1,2+3 减法 a-b - 1 2-3 4 1,2-3 乘法 a*b * 1,2*3 1,2*3,4a.*b .*
31、1,2.*3,4=3,8 逆乘 左乘 AX=B X=AB=inv(A)*B右乘 / XA=B X=B/A=B*inv(A) 乘幂 方阵的幂 A2=A*A元素的幂 . A.2 X.3,Matlab,4、变量及数组输入,MATLAB的变量及数组均是以向量或矩阵方式存储 1:向量方式输入x=1,2,3,4,5 %以向量(数组)方式给x赋值y=(x(3)+x(5)/2*x(4) %调用x中的元素z=sqrt(x) %每个元素开方t=x %向量x的转置赋给tu=x*t %向量的内积(u为向量x的模的平方),Matlab,变量及数组输入,2:矩阵方式输入 a=1,2,3;4,5,6;8,9,1 %矩阵输入
32、 (a为3阶方阵) b=350;602;56 %列矩阵输入 det(a) %方阵行列式 inv(a) %方阵的逆 x=ab %ax=b方程组的解 y=inv(a)*b %与x相同 disp(a,b,x) %显示矩阵,Matlab,变量及数组输入,3:矩阵的简单运算c=inv(a) %方阵的逆阵y=c*b %矩阵乘积d=a b;disp(d) %矩阵拼接d=a; disp(d) %矩阵转置g=2*a+3 %常数乘矩阵,各元素加3p=eye(3) %3阶单位矩阵y=a.*p %两矩阵对应元素乘积zeros(3) %3阶零矩阵,Matlab,变量及数组输入,Matlab,4:数组的分点输入和步长输入
33、x=linspace(0,2*pi,30); %按分点赋值y=50*sin(x);plot(x,y); %画正弦曲线 plot(x,y, r*);hold ont=0:0.5:7;z=t.2;plot(t,z, bo); %画y=x2曲线plot(t,z, r-);,5. MATLAB中关系和逻辑运算,关系运算符 = =0).*y; %z=(y0 | y=0).*y;z=z+.5*(y0);plot(x,z),Matlab,MATLAB中符号函数的表示,符号函数,MATLAB表示,1/(2*xn),1/sqrt(2*x),sin(x2)-cos(2*x),M=sym(a,b;c,d),f=in
34、t(x2/sqrt(1-x), a, b),Matlab,MATLAB中符号运算,fx=2*xn %建立函数diff(fx) %对变量x求一阶导数diff(fx, n,2) %对变量n求二阶导数 fx=x/(1+x2)int(fx) %对fx求不定积分int(fx,0, t) %对fx在0,t上求定积 syms xfy=1/(1+x2)taylor(fy,6) %对fy在x=0点求泰勒展开式(6项)taylor(fy,8,1) %对fy在x=1点求泰勒展开式(8项),Matlab,MATLAB中符号运算,fx=a*x2+b*x+csolve(fx) %求方程fx=0的符号解solve(fx,
35、b ) %求方程fx=0关于变量b的符号解 fx= 1/(1+exp(-1/x)limit(fx,x,0, right) %求fx: x-0右极限limit(fx,x,0, left) %求fx: x-0左极限limit(fx,x,inf) %求fx: x-极限,Matlab,史蒂芬沃尔夫勒姆 斯蒂芬沃尔夫勒姆(Stephen Wolfram,1959年- ),1959年出生于伦敦,科学家、数学软件Mathematica的发明者之一。 1959年生于英国伦敦,父亲是小说家,母亲是哲学教授。他曾在伊顿公学就读,入牛津大学圣约翰学院就读。 15岁时发表第一篇科学论文,20岁时获得加州理工大学理论物理博士学位, 22岁获得MacArthur奖(美国跨领域最高奖,丘成桐 1984年获得该奖时35岁), 23岁时创立复杂系统研究(complex systemsresearch)领域, 27岁时开发Mathematica软件,创立了Wolfram Research公司,从事Mathematica的开发和发行。 43岁时出版“ A New Kind of Science ”。 其中,Mathematica同时获得了技术与商业上的巨大成功,成为支撑Wolfram Research公司的旗舰产品。,Return,