数学建模算法整理.docVIP

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

数学建模算法整理

...

数学建模常用算法

1.大多数建模赛题中都离不开计算机仿真,随机性模拟是非常常见的算法之一。

????举个例子就是97年的A题,每个零件都有自己的标定值,也都有自己的容差等级,而求解最优的组合方案将要面对着的是一个极其复杂的公式和108种容差选取方案,根本不可能去求解析解,那如何去找到最优的方案呢?随机性模拟搜索最优方案就是其中的一种方法,在每个零件可行的区间中按照正态分布随机的选取一个标定值和选取一个容差值作为一种方案,然后通过蒙特卡罗算法仿真出大量的方案,从中选取一个最佳的。另一个例子就是去年的彩票第二问,要求设计一种更好的方案,首先方案的优劣取决于很多复杂的因素,同样不可能刻画出一个模型进行求解,只能靠随机仿真模拟。

1.1蒙特卡罗算法

蒙特卡罗模拟

就是随机数相关的东西,你只要知道随机数是怎么得到。其它的事就要好办了。

rand(m,n)产生m*n均匀随机数。

ex:

用概率方法求pi

N=100000;

x=rand(N,1);

y=rand(N,1);

count=0;

fori=1:N

if(x(i)^2+y(i)^2=1)

count=count+1;

end

end

PI=4*count/N

数学建模算法整理全文共1页,当前为第1页。

数学建模算法整理全文共1页,当前为第1页。

试给出下面赌博中的蒙特卡洛模拟

在一次旅游途中,小王看到有人用20枚签(其中10枚标有5分分值,10枚标有10分分值)设赌。让游客从中抽出10枚,以10枚签的分值总和为奖罚金额,见表1

表1

分值50,10055,9560,65,85,9070,75,80

奖罚金额奖100元奖10元不奖不罚罚1元

你看,有奖有罚,在11个分值中有4个分值可以获奖,且最高奖额为100元;只有3个分值要受罚,而罚额仅为1元,很有吸引力吧?怪不得有些游客摩拳擦掌,跃跃欲试。那么这些奖是不是这么好拿呢?

试分析此游戏中,谁是真正的赢家?

%%假设前10个分值为5,后10个分值为10

income=0;%%收入

n=10000;%%模拟次数,即有n个人参加游戏

fori=1:n

a=randperm(20);

a=a(1:10);

b=find(a10);%%10分分值的

sumb=length(b)*10+(10-length(b))*5;

ifsumb==50||sumb==100

income=income-100;

elseifsumb==55||sumb==95

income=income-10;

elseifsumb==70||sumb==75||sumb==80

income=income+1;

end

end

Income

数学建模算法整理全文共2页,当前为第2页。

2.?数据拟合、参数估计、插值等算法

????数据拟合在很多赛题中有应用,与图形处理有关的问题很多与拟合有关系,一个例子就是98年美国赛A题,生物组织切片的三维插值处理,94年A题逢山开路,山体海拔高度的插值计算,还有吵的沸沸扬扬可能会考的“非典”问题也要用到数据拟合算法,观察数据的走向进行处理。此类问题在MATLAB中有很多现成的函数可以调用,熟悉MATLAB,这些方法都能游刃有余的用好。

数学建模算法整理全文共2页,当前为第2页。

2.1三次样条插值在Matlab中的实现

在Matlab中数据点称之为断点。如果三次样条插值没有边界条件,最常用的方法,就是采用非扭结(not-a-knot)条件。这个条件强迫第1个和第2个三多项式的三阶导数相等。对最后一个和倒数第2个三次多项式也做同样地处理。

Matlab中三次样条插值也有现成的函数:

y=interp1(x0,y0,x,spline);

y=spline(x0,y0,x);

pp=csape(x0,y0,conds),y=ppval(pp,x)。

其中x0,y0是已知数据点,x是插值点,y是插值点的函数值。

对于三次样条插值,我们提倡使用函数csape,csape的返回值是pp形式,要求插值点的函数值,必须调用函数ppval。

pp=csape(x0,y0):使用默认的边界条件,即Lagrange边界条件。

p

文档评论(0)

宋江 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档