- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数学建模优化程序设计与数学原理的综合运用
数学建模优化程序设计与数学原理的综合运用
摘要:从符号与数值的转化、同余映射中的周期长度及分阶段执行程序等3个方面,以实际例子研究了如何在实践中运用数学原理来优化程序设计、节约运行时间,达到利于解决数学建模问题的目标。
关键词:数学建模;优化程序设计;数学原理
Optimizing and integrating program designing and mathematical principles in mathematics modeling
Wang Fulai
Zhejiang university of finance and economics, Hangzhou, 310018, China
Abstract: With three examples of transformation from symbols to numbers, periodic lengths of congruence and performance in steps, optimization program designing by integrating mathematical principles is studied to save runtime and solve problems in mathematical modeling.
Key words: mathematical modeling; optimization of program designing; mathematical principle
数学建模中程序设计与数学原理的综合运用往往直接涉及实践中目标能否实现。数学建模中经常涉及程序的编制,如果程序的编制过于复杂,往往会使系统运行时间过长,甚至无法运行,严重妨碍数学建模问题的解决。其中一个主要的原因是程序设计中没有尽量考虑用数学原理来优化程序,使程序得到简化、优化。
笔者分别从3个方面来论述如何用数学原理优化程序设计:(1)通过符号与数值的转化以有效确定序列的大小及距离;(2)根据数论知识解决同余映射中周期长度对初值的依赖性;(3)分阶段执行程序以验证程序的灵敏性或系统的稳定性。
1用数学原理优化程序设计的几种方法
1.1 比较子序列大小的问题
我们知道数学模型中经常要处理一些符号问题。如在Lorenz映射中,人们为了计算复杂度、排列熵等指数,经常利用符号动力学方法得到一列符号数据,这时往往需要比较子序列的大小。它的比较方式是,任给两个符号序列,它们的大小排序为:
(1)
这里, 为两个符号序列的公共字头。
这个比较在程序设计时是较为方便的,如果把它们先转化为二进制数据则更能节省时间。但另一些情况下就不会这么简单。例如,投掷硬币实验出现正面、反面,得到一个随机序列,如001011101,如果简单地把符号与十进制或二进制数值等同,这是没有意义的。但在数学建模中有时我们仍然可利用符号与数值的转化关系达到优化程序设计的目的。
为了计算两个点 与 间的距离,一般的文献采用如下两种距离定义方式:
(1) (2)
这里,距离表示当与的第n个符号出现不同时。
(2), (3)
这里,
以上两个式子都表明,两个符号序列,如与,前面符号重复得越多,则两个序列之间的距离越近。但若按照这种距离公式直接比较两个子序列的每个符号,则会占用太多的计算机机时,甚至是不可能完成的。
现在我们采用下面的数学处理方法,则会兼顾到这两方面,即既可以保留原来的顺序关系,又可以在程序上(用Matlab语言)节约计算机机时。
方法是:
Step1:用num2str()函数把符号串转为字符串,如num2str(1010)=1010,等式右边的1010不再是符号而是二进制字符串。
Step2:用bin2dec()函数将Step1中的二进制数据,设为转化为十进制的数据。
Step3:为了归一化,引入函数将Step2中的十进制数据转化为,令。
它的数学原理是:原来的序列,如,,,虽然它们之间并无顺序关系,但赋予了顺序关系后,并不妨碍原来的距离关系。这样就利于程序执行了,显然这种方法可以大量节约程序的机时。
1.2 同余映射中周期长度的问题
密码学中经常用同余映射(4)来模拟同余映射(5),以获得类似于(4)的混沌轨道:
(4)
(5)
同余映射(5)在时为混沌映射,且李雅普诺夫指数为。称作密钥。对每一个特定的数字混沌映射,都需要利用数论和遍历性理论等专门的数字工具进行独立的研究。例如,对于映射(4),当且时周期取得最小值;当为素数且z为一个乘法群的生成元时,取得最大值;而当为其他数时,的典型值为多少
文档评论(0)