数学建模程序有什么

数学建模程序有什么,第1张

一般来说学习数学建模,常用的软件有四种,分别是:matlab、lingo、Mathematica和SAS下面简单介绍一下这四种。

1.MATLAB的概况

MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处

理,可视化建模仿真和实时控制等功能。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等

语言完相同的事情简捷得多.

当前流行的MATLAB 5.3/Simulink 3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具

包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强

的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.

开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改

或加入自己编写程序构造新的专用工具包.

2.Mathematica的概况

Wolfram Research 是高科技计算机运算( Technical computing )的先趋,由复杂理论的发明者 Stephen Wolfram 成立于

1987年,在1988年推出高科技计算机运算软件Mathematica,是一个足以媲美诺贝尔奖的天才产品。Mathematica 是一套整合数字以

及符号运算的数学工具软件,提供了全球超过百万的研究人员,工程师,物理学家,分析师以及其它技术专业人员容易使用的顶级

科学运算环境。目前已在学术界、电机、机械、化学、土木、信息工程、财务金融、医学、物理、统计、教育出版、OEM 等领域广

泛使用。

Mathematica 的特色

·具有高阶的演算方法和丰富的数学函数库和庞大的数学知识库,让 Mathematica 5 在线性代数方面的数值运算,例如特征向量、 反矩阵等,皆比Matlab R13做得更快更好,提供业界最精确的数值运算结果。

·Mathematica不但可以做数值计算,还提供最优秀的可设计的符号运算。

·丰富的数学函数库,可以快速的解答微积分、线性代数、微分方程、复变函数、数值分析、机率统计等等问题。

·Mathematica可以绘制各专业领域专业函数图形,提供丰富的图形表示方法,结果呈现可视化。

·Mathematica可编排专业的科学论文期刊,让运算与排版在同一环境下完成,提供高品质可编辑的排版公式与表格,屏幕与打印的 自动最佳化排版,组织由初始概念到最后报告的计划,并且对 txt、html、pdf 等格式的输出提供了最好的兼容性。

·可与 C、C++ 、Fortran、Perl、Visual Basic、以及 Java 结合,提供强大高级语言接口功能,使得程序开发更方便。

·Mathematica本身就是一个方便学习的程序语言。 Mathematica提供互动且丰富的帮助功能,让使用者现学现卖。强大的功能,简 单的 *** 作,非常容易学习特点,可以最有效的缩短研发时间。

3.lingo的概况

LINGO则用于求解非线性规划(NLP—NON—LINEAR PROGRAMMING)和二次规则(QP—QUARATIC PROGRAMING)其中

LINGO 6.0学生版最多可版最多达300个变量和150个约束的规则问题,其标准版的求解能力亦再10^4量级以上。虽然LINDO和

LINGO不能直接求解目标规划问题,但用序贯式算法可分解成一个个LINDO和LINGO能解决的规划问题。

模型建立语言和求解引擎的整合

LINGO是使建立和求解线性、非线性和整数最佳化模型更快更简单更有效率的综合工具。LINGO提供强大的语言和快速的求解引擎来阐述和求解最佳化模型。

■ 简单的模型表示

LINGO可以将线性、非线性和整数问题迅速得予以公式表示,并且容易阅读、了解和修改。

■ 方便的数据输入和输出选择

LINGO建立的模型可以直接从数据库或工作表获取资料。同样地, LINGO可以将求解结果直接输出到数据库或工作表。

■ 强大的求解引擎

LINGO内建的求解引擎有线性、非线性(convex and nonconvex)、二次、二次限制和整数最佳化。

■ Model Interactively or Create Turn-key Applications

LINGO提供完全互动的环境供您建立、求解和分析模型。LINGO也提供DLL和OLE界面可供使用者由撰写的程序中呼叫。

■ 广泛的文件和HELP功能

LINGO提供的所有工具和文件可使你迅速入门和上手。LINGO使用者手册有详细的功能定义。

4.SAS软件概况

SAS系统全称为Statistics Analysis System,最早由北卡罗来纳大学的两位生物统计学研究生编制,并于1976年成立了SAS软件研究所,正式推出了SAS软件。SAS是用于决策支持的大型集成信息系统,但该软件系统最早的功能限于统计分析,至今,统计分析功能也仍是它的重要组成部分和核心功能。SAS现在的版本为9.0版,大小约为1G。经过多年的发展,SAS已被全世界120多个国家和地区的近三万家机构所采用,直接用户则超过三百万人,遍及金融、医药卫生、生产、运输、通讯、政府和教育科研等领域。在英美等国,能熟练使用SAS进行统计分析是许多公司和科研机构选材的条件之一。在数据处理和统计分析领域,SAS系统被誉为国际上的标准软件系统,并在96~97年度被评选为建立数据库的首选产品。堪称统计软件界的巨无霸。在此仅举一例如下:在以苛刻严格著称于世的美国FDA新药审批程序中,新药试验结果的统计分析规定只能用SAS进行,其他软件的计算结果一律无效!哪怕只是简单的均数和标准差也不行!由此可见SAS的权威地位。

SAS系统是一个组合软件系统,它由多个功能模块组合而成,其基本部分是BASE SAS模块。BASE SAS模块是SAS系统的核心,承担着主要的数据管理任务,并管理用户使用环境,进行用户语言的处理,调用其他SAS模块和产品。也就是说,SAS系统的运行,首先必须启动BASE SAS模块,它除了本身所具有数据管理、程序设计及描述统计计算功能以外,还是SAS系统的中央调度室。它除可单独存在外,也可与其他产品或模块共同构成一个完整的系统。各模块的安装及更新都可通过其安装程序非常方便地进行。SAS系统具有灵活的功能扩展接口和强大的功能模块,在BASE SAS的基础上,还可以增加如下不同的模块而增加不同的功能:SAS/STAT(统计分析模块)、SAS/GRAPH(绘图模块)、SAS/QC(质量控制模块)、SAS/ETS(经济计量学和时间序列分析模块)、SAS/OR(运筹学模块)、SAS/IML(交互式矩阵程序设计语言模块)、SAS/FSP(快速数据处理的交互式菜单系统模块)、SAS/AF(交互式全屏幕软件应用系统模块)等等。SAS有一个智能型绘图系统,不仅能绘各种统计图,还能绘出地图。SAS提供多个统计过程,每个过程均含有极丰富的任选项。用户还可以通过对数据集的一连串加工,实现更为复杂的统计分析。此外,SAS还提供了各类概率分析函数、分位数函数、样本统计函数和随机数生成函数,使用户能方便地实现特殊统计要求。

在无约束最优化问题中,有些重要的特殊情形,比如目标函数由若干个函数的平方和构成。这类函数一般可以写成:

其中 ,一般假设 。我们把极小化这类函数的问题:

称为最小二乘优化问题。

求解

s.t.

其中 为矩阵, 为向量。

Matlab函数为:

x=lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)

解:程序如下:

给定输入输出数列 ,求参量 使得

Matlab中的函数为:

X=lsqcurvefit(FUN,X0,XDATA,YDATA,LB,UB,OPTIONS)

其中FUN是定义函数 的N文件。

解:这个问题即解最优化问题:

解这个问题要分两步:

首先编写待求函数:

已知函数向量 ,求 使得:

Matlab中的函数为:

用该函数求解例2:

首先编写含有待求参数的函数:

之后调用函数lsqnonlin,编写如下程序:

求解 非负 的 ,使得满足

Matlab中的函数为:

编写程序如下:

当 s 个服务台被占用后,顾客自动离去。

这里我们着重介绍如何使用 LINGO 软件中的相关函数。

对于损失制排队模型,其模型的基本参数与等待制排队模型有些不同,我们关心如下指标。

(1)系统损失的概率

其中rho是系统到达负荷 ,s是服务台或服务员的个数。

(2)单位时间内平均进入系统的顾客数( )

(3)系统的相对通过能力( )与绝对通过能力( )

(4)系统在单位时间内占用服务台(或服务员)的均值(即 )

注意:在损失制排队系统中, ,即等待时间为0。

在上述公式,引入 是十分重要的,因为尽管顾客以平均 的速率到达服务系统,但当系统被占满后,有一部分顾客会自动离去,因此,真正进入系统的顾客输入率是 ,它小于

其参数为 。编写LINGO程序如下:

求得系统的顾客损失率为43%,即43%的电话没有接通,有57%的电话得到了服务,通话率为平均每分钟有0.195次,系统的服务效率为43%。对于一个服务台的损失制系统,系统的服务效率等于系统的顾客损失率,这一点在理论上也是正确的。

(1)电话交换台的服务分为两类,第一类内线打外线,其强度为:

第二类时外线打内线,其强度为:

因此,总强度为:

(2)这是损失制服务系统,按题目要求,系统损失率不能超过5%,即:

(3)外线是整数,在满足条件下,条数越小越好。

由上述三条,编写相应的Lingo程序如下:

求得需要15条外线。在此条件下,交换台的顾客损失率为3.65 %,有96.35%的电话得到了服务,通话率为平均每小时185.67次,交换台每条外线的服务效率为64.23%。

求解时,尽量选用简单的模型让LINGO软件求解,而上述程序是解非线性整数规划(尽管是一维的),但计算时间可能会较长,因此,我们选用下面的处理方法,分两步处理。

编写LINGO程序:

求得

第二步,注意到@pel(rho,s)是s的单调递减函数,因此,对s取整数(采用只入不舍原则)就是满足条件的最小服务台数,然后再计算出其它的参数指标。

编写LINGO程序如下:

比较上面两种方法的计算结果,其答案是相同的,但第二种方法比第一种方法在计算时间上要少许多。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11430979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存