




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、常用数学软件的功能及特点比较1常用数学软件简介从计算机发明到现在已经有50多年的时间了,随着计算机的普及,计算机技术已被广泛应用于各行各业,对科学发展起到了巨大的推动作用.伴随科学研究的不断深入,科技工作者经常需要对 大量数据进行分析处理或者对复杂问题进行计算求解.为了减轻科技工作者的压力,许多数学软件 被相继开发.常用的数学软件包括符号计算软件,如 Mathematica、Maple等;数值计算软件,如 Matlab、MathCAD;求解最优化问题软件,如 Lingo、Lindo等.数学软件的优越性主要在于它能够进行大规模的代数运算.通常我们用笔和纸进行代数运算只能处理符号较少的算式,当算式
2、的符号上升到百位数后,手工计算便成为可能而不可行的事,主要原因 是在做大量符号运算时,我们很容易出错,并且缺乏足够的耐心.当算式的符号个数上升到四位数后,手 工计算便成为不可能的事,这时用计算机代数系统进行运算就可以做到准确,快捷,有效.下面介绍三个比较常用的数学软件 Mathematica、Matlab和Lingo .1.1 Mathematica 软件Mathematica 是由美国物理学家 Stephen Wolfram 领导的 Wolfram Research 公司1986年开发 的数学软件,1988年发布Mathematica系统的1.0版,因为系统精致的结构和强大的计算能力而被 广
3、为流传,经过不断扩充和修改后,在1991年和1997年推出了功能更加充实和完善的Mathematica 2.0 版和 Mathematica 3.0 版,1999 年又推出了 Mathematica 4.0 版,现在的最新版本是 Mathematica 5.2.2 版.Mathematica是一个拥有强大的符号计算和数值计算能力的软件,它将数值、符号、计算引擎、 图形运算、编程语言、文字处理和与其他应用程序的高级连接等众多功能有机地结合在一起.Mathematica是一个很容易扩充和修改的系统.它提供了一套描述方法,相当于编程语言,用 这个语言可以编写程序,解决各种特殊问题.Mathemati
4、ca的基本系统主要是用C语言开发的,因而可以比较容易地移植到各种平台上.Mathematica还是一个交互式的计算系统,计算是在用户和Mathematica互相交换、传递数据信息的过程中完成的.Mathematica系统所接受的命令称作表达式,系统在接受了一个表达式以后就对它进行处理,然后再把计算结果返回.Mathematica是最大的单应用程序之一,它内容丰富功能强大的函数覆盖了初等数学、微积分和线性代数等众多的数学领域.Mathematica软件虽然功能强大,但它的语言非常简单,很容易学会并且熟练掌握.1.1.1 Mathematica 具有强大的运算功能11一 ,4 1 T 4 2例i求
5、4/150 83的精确解及近似解.99In1:= 100A(1/4)*(1/9)A(-1/2)+8A(-1/3)*(4/9F(1/2)*PiOut1=3 M -(精确解)3In2:= N%Out2= 10.543(近似解)1.1.2 Mahematica具有强大的绘图功能例2描绘函数z sin xy在3,3上的图形.In1:= Plot3DSinx y,x,-Pi,Pi,y,-3,31 0.50 -0.5-1Out1= -Graphics3D-1.1.3 Mathematica 还具有一些专用的函数,主要用来查看和设置日期、时间、目录;测试、提高表达式的计算速度等例 3 ln1=DateOut
6、1=2008,5,1,13,58,26输出的元素依次是当前的年、月、日、时、分、秒.设置时间上限,表示如果担心计算时间太长,还可以使用TimeConstrainedexpr,t,failexpr当计算表达式expr花费的时间超过t秒后,强制中止计算,返回表达式 failexpr例 4 ln2=TimeConstrained,2,0k 1 Pr imekOut2=0.1.2 Matlab 软件Matlab是"MAT rix Laboratory "的缩写,是矩阵实验室的意思.70年代中期,美国的Cleve Morler教授在给学生开设线性代数课程时,为了让学生能使用子程序又不
7、至于在编程上花费过多的时间便为学生编写了使用子程序的接口程序,取名为Matlab . 80年代初期,Cleve Morler教授采用C语言编写了 Matlab 的核心.1984 年,Cleve Morle 和 John Little 成立 Math Works 公司,正式把 Matlab 推向市场.1992年MathWorks 公司于推出了 Matlab4.0版本,1994年的4.2版本扩充了 4.0版本 的功能,尤其在图形界面设计方面更提供了新的方法.1997年推出的5.0版允许了更多的数据结构,如单元数据、多维矩阵、对象与类等,使其成为一种更方便编程的语言.1999年推出的 Matlab
8、5.3版在很多方面又进一步改进了Matlab语言的功能.2000年10月底推出了其全新的Matlab 6.0正式版,在核心数值算法、界面设计、外部接口、应用桌面等诸多方面有了极大的改进.经过不断的 改进与完善,在 2007年秋季推出了 Matlab的最新版本 R2007b.Matlab是集数值计算、符号计算和图形处理等功能于一体的工程计算应用软件.Matlab不仅可以处理代数问题和数值分析问题,而且还具有强大的图形处理和仿真模拟等功能.他的图形功能既 包括对二维和三维数据可视化、图形处理、动画制作等高层次的绘图命令,也包括可以完全修改图 形局部及编制完整图形界面的低层次绘图命令.可以从线型、边
9、界面、色彩、渲染、光线、视角等 方面把数据的特征表现出来.它的图象处理工具包是由一系列支持图象处理操作的函数组成的,所 支持的图象处理操作有:几何操作、区域操作和块操作、线性滤波和滤波器设计、变换、图象分析 和增强、二值图象操作等.图象处理工具包的函数,按功能可以分为以下几类:图象显示、图象文 件输入与输出、几何操作、象素值和统计、图象分析与增强、图象变换、领域和块操作、二值图象 操作、颜色映射和颜色空间转换、图象类型和类型转换、工具包参数获取和设置等.现在,Matlab已经成为线性代数、数理统计、数值分析、优化技术、自动控制、数字信号处理、 图像处理、动态系统仿真等高级课程的基本教学工具.1
10、.2.1 Matlab在数值计算中的应用.Matlab语言中提供了丰富的统计函数,使用这些函数可以完成对数据的各种统计分析工作.例5如下给出8个学生的英语、数学、物理和化学的成绩,求各科成绩总分和各科平均成绩score =90979897779067875667899976677778889876895666754586677889758588788975857663848390>> score_sum=sum(score) score_sum =634636696574656(各科成绩总分)>> score_avg=score_sum./8score_avg =79.
11、250079.500087.000071.750082.0000(各科平土匀成绩)1.3 Lingo 软件美国芝加哥大学的 Linus Schrage教授于1980年前后开发了一套专门用于求解优化问题的软件包,后来又经过多年的不断完善与扩充,并成立了Lindo系统公司.2006年初,Lindo系统公司在全球推出 Lingo 的最新版本 LingoV10.0 版.Lingo 是英文 Linear Interactive and General Optimizer 字 首的缩写形式,即“交互式的线性和通用优化求解器”,它除了可以用于求解线形规划和二次规划问 题外,还可以用来求解非线形规划问题,也可
12、以用于一些线形和非线形方程(组)的求解等等.Lingo软件的最大特色在于可以允许优化模型中的决策变量是整数,即整数规划,而且执行速度快.Lingo还是最优化问题的一种建模语言,包括许多常用的数学函数可以让使用者在建立优化模 型时调用,并且可以接受其他的数据文件,如:文本文件、数据库文件、Excel电子表格文件等,即使对优化方面的知识了解不多的使用者,也能方便地建模和输入、有效地求解和分析实际中遇到 的大规模优化问题,并能快速得到复杂优化问题的高质量的解.2常用数学软件的功能比较通过上面的介绍可以发现不同的数学软件之间既有相同点又有不同点,比如它们都可以进行简 单的符号运算,数值计算和图形显示等
13、,但在一些具体应用上也是有差别的.与同类软件相比,Matlab是以数值计算为主,而Mathematica以符号运算为主.所谓符号运算是指它所处理的对象不仅仅是常见的数字(如12或3.14),而是一些带有代数符号的表达式(如 2x+3y=b等).它还建立了输入 各种数学符号和函数的专用模板,使输入数学公式和各种操作命令更加简便直观.Mathematica带有扩展的绘图软件包,使绘图功能更加完善,操作方面比Matlab手续也更为简便.另外,在数值计算方面,Mathematica注重计算精度,为精确计算的首选软件;Matlab是一种高度集成的科学计算软件,以矩阵为基本数据单位,复数或实数则可以理解为
14、1X1的矩阵.Matlab的很多运算都是直接针对矩阵的,所以表示起来也就特别方便.例如,复数“A=3+ 2i”,在 Matlab中表示就是“ A=3+ 2i” .又如,要计算两个矩阵C D的乘积,可以表示为“ CX D',而不像大多数计算机语言那样需要用户编写循环语句来实现等.下面仅就其中的某些方面加以比较.2.1用Mathematica和Matlab作三维图形例6 作My2的三维图形应用 Mathematica命令:>>Plot3DSqrtxA2+yA2,x,-4,4,y,-4,4>>应用Matlab命令:>> X,Y=meshgrid(-4:0.
15、5:4);>> Z=sqrt(X.A2+Y .人2);>> mesh(Z)注 从此例可以看出 Mathematica可直接作出函数 Jx2 y2在区间-4, 4 * -4, 4上的图象,其中x,y为符号;而Matlab作图是产生一个数值矩阵,然后作出图形,其中的 x, y不是符号而是数值向量.2.2 用Mathematica和Matlab作微积分计算例7求y sin xn的二阶导数应用Mathematica命令:In1:=DsinxAn,x,2n 2n 2 2n 2n ,Out1= (-1 + n) n x sin'x + n x sin x 应用Matlab命
16、令:> > n=sym('n');> > x=sym('x');> > dlff(sln(xAn) , 2)Ans=(n-1)* n *xA(n-2)*cos(xAn)- nA2*xA(2*n-2)*sin (xAn)注由上面例题可知Mathematica和Matlab软件都可以进行简单的符号微积分的运算,但Mathematica用起来很方便,而 Matlab软件是将变量n, x转化为符号变量才能计算的.2.3用Mathematica、Matlab和Lingo作线性规划问题例8某企业生产甲、乙两种产品,需要用到A,B,C三种设
17、备,关于产品的盈利与使用设备的工时及限制如下表所示.问:该企业应如何安排生产,使得在计划期内总利润最大?生产产品使用设备的工时、限制和产品的盈利甲乙设备的生产能力/hA/(h/件)2212B/(h/件)4016C/(h/件)0515盈利/ (元/件)200300设甲、乙产品的产量分别为 x1,x2,建立线性规划模型:Max z=200 x1 +300 x2 ;s.t.2 x1 +2 x212,4x116,5x215,x1 ,x2 0.应用Mathematica命令:In1:= ConstrainedMax200 x 1+300 x 2 ,2 x 1 +2 x 2 <=12,4 x 1 &
18、lt;=16,5 x 2 <=15, x 1 , x2 Out1= 1500, x 1 -> 3, x 2 -> 3应用Matlab命令:f=-200,-300;A=2,2;4,0;0,5;b=12,16,15;x,f=linprog(f,A,b,zeros(1,2);x,-fOptimization terminated successfully.x =3.00003.0000ans =1.5000e+003应用Lingo命令:max=200*x1+300*x2;2*x1+2*x2<=12;4*x1<=16;5*x2<=15;x1>=0;x2>
19、=0;Global optimal solution found at iteration:2Objective value:1500.000VariableValueReduced CostX13.0000000.000000X23.0000000.000000RowSlack or Surplus Dual Price11500.0001.00000020.000000100.000034.0000000.00000040.00000020.0000053.0000000.00000063.0000000.000000注 利用Mathematica、Matlab和Lingo这三个软件均可以
20、求出此题的最优解为x1 =3, x2 =3,z=1500.比较起来可知 Mathematica和Matlab只能求出最优解,而 Lingo除了可以求出最优解还可以得到灵敏度分析结果,而且 Lingo更适用于求解整数线性规划.2.4用Matlab和Lingo作二次规划问题22例 9 min f(x1,x2) 2x1 6x2 x1 2x1x2 2x2s.t. x1 + x2 < 2-x1 +2 x2 w 2x1 >0, x2 A 0应用Matlab命令:首先写成标准形式:1Min z=(x 1,x 2)(11 Xi +2X2T2Xi6x211x1212x22s.t.x1x2输入命令:H
21、=1 -1; -1 2;c=-2 ;-6;A=1 1; -1 2;b=2;2;Aeq=;beq=; VLB=0;0;VUB=;x,z=quadprog(H,c,A,b,Aeq,beq,VLB,VUB)x =0.6667 1.3333 z = -8.2222应用Lingo命令:x1+x2<=2;min=-2*x1-6*x2+x1A2-2*x1*x2+2*x2A2;-x1+2*x2<=2;x1>=0;x2>=0;Local optimal solution found at iteration:42-7.200000Objective value:VariableValue
22、 Reduced CostX10.80000010.8909355E-08X21.2000000.000000RowSlack or SurplusDual Price10.0000002.7999992-7.200000-1.00000030.40000020.00000040.80000010.00000051.2000000.000000注 此题在运算过程方面体现了 Matlab以矩阵为基本数据单位, 但求解过程较为复杂, 而用Lingo 求解过程则更简便;在运算结果方面,用Matlab软件的运算结果精确到小数点后面第四位,而用Lingo软件的运算结果精确到小数点后面第七位,由此可知 L
23、ingo为求二次规划问题的首选软件.2.5 用Mathematica和Matlab作矩阵的特征值和特征向量122例10求方阵a= 2 12的特征值和特征向量221应用Mathematica命令:In1:= a=1,2,2,2,1,2,2,2,1;In2:= MatrixFormaOut2/MatrixForm= 122212221In3:= EigenvaluesaOut3= 5,-1,-1In4:= EigenvectorsaOut4= 1, 1, 1, -1, 0, 1, -1, 1,0In5:= EigensystemaOut5= 5, -1, -1, 1, 1, 1, -1,0, 1, -1, 1,0应用Matlab命令:>>a=1,2,2;2,1,2;2,2,1;>>C,D=eig(a)V=注通过比较可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国钠粉项目创业计划书
- 中国多库脂钠项目创业计划书
- 2025年江苏海绵制品项目可行性研究报告-图文
- 2025年中国氯化钛白粉项目创业计划书
- 中国改性聚丙烯项目创业计划书
- 中国醋酸锂项目创业计划书
- 长治市中医院重症感染血糖管理考核
- 晋城市中医院病毒感染诊治考核
- 大同市人民医院科室科研项目组织考核
- 晋中市中医院重大手术主刀资格认证
- 骨骼肌的收缩原理
- DB31T 680.8-2019 城市公共用水定额及其计算方法 第8部分:公共管理和社会组织(机关单位)
- 智能制造 增材制造技术课件
- 中国古代数学中的数学文化课件
- 高职机械制图说课稿市公开课金奖市赛课一等奖课件
- 新教材湘教湘科版四年级上册科学全册课时练(同步练习)
- 连续梁0段支架法现浇施工方案
- 锚的作用与锚泊解析课件
- FHLG20型高频高压发生器说明书
- 国家自然科学基金资助项目结题报告模板(可编辑版)
- 镀锌钢管理论重量表
评论
0/150
提交评论