- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
·178· 第一篇 水资源可持续利用的水文学基础
基于MATLABC—MEX及优化工具箱的
水文模型参数优选木
舒全英 宋星原 罗鹏
(武汉大学水资源与水电工程国家重点实验室武汉430072)
并通过函数句柄将计算模型参数优选日标函数传递给MATLAB优化工具箱进行参数优选,界面友好,操作倚单,
省时省力,可进行数据可视化分析。为水文模型参数优选提供一条便捷的途径。
关键词C—MEX混合编程优化工具箱参数优选
1引言
开发、数据分析、图形图像处理和动态仿真等功能,在航空航天、机械制造、自动控制、神经网络、优化设
计等领域发挥着越来越重要的作用…。它包含丰富的内建函数和工具箱,为各行各业的计算应用提供极大
tion
Toolbox)箱集成标准的优化算法,如遗传算法或遗传混合算法,模式搜索,模拟退火,单纯行算法等,
能进行线性和非线性,单目标和多目标问题进行优化计算,并且提供图形操作界面,操作直观简便,是其中
应用比较广泛、影响较大的一个旧1。MATLAB语言是解释性语言,对循环语句执行等方面的速度偏慢,常
令人无法满意,解决的方法自然就考虑到了如何利用其他计算速度较快的语言工具与之结合使用。水文模型
一般比较复杂,计算量大,其计算速度对于水文模型参数优选是一个极大的瓶颈,而C/C++语言是编译性
语言,具有强大的文件I/0操作能力且计算速度快,本文运用混合编程的思想,利用C/C++语言建立水文
模型主体计算程序并创建C—MEX文件,编译后可像内建函数一样调用,这样可以通过函数句柄传递给优
化计算程序,简而不繁,兼顾计算速度和省去自己编写大型优选算法程序的时间,为水文模型参数优选提供
极大的便利。 ,
2 MATLAB外部应用程序接口MEx文件
入或输出数据以及和其他软件程序间建立客户/服务器关系等功能。MEX是Matlab
过它。用户可以完成以下功能p-:
法,而无需把这些程序重新编写为MATLAB的M文件。从而使资源得到充分利用。
这时可以使用其他高级编程语言进行算法的设计,然后在MATLAB中调用,从而大大地提高数据处理的
效率。
动态链接函数,在MicrosoftWindows操作系统中,这种文件类型的后缀名为dll。而在其他的平台上,则有
·
第一作者简介:舒全英(1983一),男,湖北黄石人,硕士研究生,主要从事水信息学方面研究。E-mail:8huqu’a-
’
nying@t63.corn
基于MATLABC—MEX及优化工具箱的水文模型参数优选 ·179·
命令提示符下键人MEX名即可,与MATLAB的内建函数的调用方式完全相同。
本文中C—MEX文件是通过VisualC++6.0、MATLABR2008a环境条件下建立的。
3 C—MEX文件建立
件才能转化为有效的MEX文件。C/C++语言的MEX文件的源程序主要由两个部分组成:
即可。 一
向mxArray的输人数据的指针。
形式为:voidmexFunction(int nrhs,const
nlhs,mxArray+plhs[].int
的main()函数。
在接口程序中,用户主要可以完成两个方面的任务:一方面,是从输入的mxArray结构体中获得计算所
需的数据,然后在用户的计算程序中加以使用;另一方面,用户同样可以将计算完毕的结果返回给一个用于
所示。
图1 MEX文件工作流程
^一l
程,Banana函数数学表达式为 厶。。=∑[100(z。一x。)2+(1一Xi)2]
Itl
#include”mex.h”/·一定要包含此头文件·/
*一Z水赍#T持4“m∞十i学基m
文档评论(0)