ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:2.38MB ,
资源ID:3240234      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3240234.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数学建模算法整理.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数学建模算法整理.docx

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

2、刻画出一个模型进行求解,只能靠随机仿真模拟。1.1 蒙特卡罗算法蒙特卡罗模拟就是随机数相关的东西,你只要知道随机数是怎么得到。其它的事就要好办了。rand(m,n)产生m*n均匀随机数。ex:用概率方法求piN=100000;x=rand(N,1);y=rand(N,1);count=0;for i=1:Nif (x(i)2+y(i)210); %10分分值的 sumb=length(b)*10+(10-length(b)*5; if sumb=50|sumb=100 income=income-100; elseif sumb=55|sumb=95 income=income-10; els

3、eif sumb=70|sumb=75|sumb=80 income=income+1; endendIncome2. 数据拟合、参数估计、插值等算法 数据拟合在很多赛题中有应用,与图形处理有关的问题很多与拟合有关系,一个例子就是98 年美国赛A 题,生物组织切片的三维插值处理,94 年A 题逢山开路,山体海拔高度的插值计算,还有吵的沸沸扬扬可能会考的“非典”问题也要用到数据拟合算法,观察数据的走向进行处理。此类问题在MATLAB中有很多现成的函数可以调用,熟悉MATLAB,这些方法都能游刃有余的用好。 2.1 三次样条插值在 Matlab 中的实现 在 Matlab 中数据点称之为断点。如果

4、三次样条插值没有边界条件,最常用的方法,就是采用非扭结(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。 p

5、p=csape(x0,y0):使用默认的边界条件,即 Lagrange 边界条件。 pp=csape(x0,y0,conds)中的 conds 指定插值的边界条件,其值可为: complete 边界为一阶导数,即默认的边界条件 not-a-knot 非扭结条件 periodic 周期条件 second 边界为二阶导数,二阶导数的值0, 0。 variational 设置边界的二阶导数值为0,0。 对于一些特殊的边界条件,可以通过 conds 的一个12矩阵来表示,conds 元素的取值为 1,2。此时,使用命令 pp=csape(x0,y0_ext,conds) 其中 y0_ext=left,

6、y0,right,这里 left 表示左边界的取值,right 表示右边界的取值。 conds(i)=j 的含义是给定端点i 的 j 阶导数, 即 conds 的第一个元素表示左边界的条件,第二个元素表示右边界的条件,conds=2,1表示左边界是二阶导数,右边界是一阶导数,对应的值由 left 和 right 给出。2.2 二维插值 前面讲述的都是一维插值,即节点为一维变量,插值函数是一元函数(曲线) 。若节点是二维的,插值函数就是二元函数,即曲面。如在某区域测量了若干点(节点)的高程(节点值) ,为了画出较精确的等高线图,就要先插入更多的点(插值点) ,计算这些点的高程(插值)。 2.1.

7、1 插值节点为网格节点 已知mn个节点: (i=1,2.m;j=1,2.n)并且。求点(x,y)处的插值z 。 Matlab 中有一些计算二维插值的程序。如 z=interp2(x0,y0,z0,x,y,method) 其中 x0,y0 分别为m 维和n 维向量,表示节点,z0 为nm维矩阵,表示节点值,x,y为一维数组,表示插值点,x 与 y 应是方向不同的向量,即一个是行向量,另一个是列向量,z 为矩阵,它的行数为 y 的维数,列数为 x 的维数,表示得到的插值,method的用法同上面的一维插值。 如果是三次样条插值,可以使用命令 pp=csape(x0,y0,z0,conds,valc

8、onds),z=fnval(pp,x,y) 其中 x0,y0 分别为m 维和n 维向量,z0 为mn维矩阵,z 为矩阵,它的行数为x 的维数,列数为 y 的维数,表示得到的插值,具体使用方法同一维插值。 例2 在一丘陵地带测量高程,x 和 y 方向每隔100米测一个点,得高程如2表,试插值一曲面,确定合适的模型,并由此找出最高点和该点的高程。 解:编写程序如下: clear,clc x=100:100:500; y=100:100:400; z=636 697 624 478 450 698 712 630 478 420 680 674 598 412 400 662 626 552 334

9、 310; pp=csape(x,y,z) xi=100:10:500;yi=100:10:400 cz1=fnval(pp,xi,yi) cz2=interp2(x,y,z,xi,yi,spline) i,j=find(cz1=max(max(cz1) x=xi(i),y=yi(j),zmax=cz1(i,j) 2.1.2 插值节点为散乱节点 已知n 个节点: (i=1,2.n)求点(x,y)处的插值z 。 对上述问题,Matlab 中提供了插值函数 griddata,其格式为: ZI = GRIDDATA(X,Y,Z,XI,YI) 其中 X、Y、Z 均为 n 维向量,指明所给数据点的横坐标

10、、纵坐标和竖坐标。向量 XI、YI 是给定的网格点的横坐标和纵坐标,返回值 ZI 为网格(XI,YI)处的函数值。XI与 YI 应是方向不同的向量,即一个是行向量,另一个是列向量。 例3 在某海域测得一些点(x,y)处的水深 z 由下表给出,在矩形区域(75,200)(-50,150) 画出海底曲面的图形。 解:编写程序如下: x=129 140 103.5 88 185.5 195 105 157.5 107.5 77 81 162 162 117.5; y=7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5; z=

11、-4 8 6 8 6 8 8 9 9 8 8 9 4 9; xi=75:1:200; yi=-50:1:150; zi=griddata(x,y,z,xi,yi,cubic) subplot(1,2,1), plot(x,y,*) subplot(1,2,2), mesh(xi,yi,zi)2.2 最小二乘法的 Matlab 实现 2.2.1 解方程组方法 在上面的记号下, Matlab 中的线性最小二乘的标准型为 命令为:A=RY。例 4 用最小二乘法求一个形如:的经验公式,使它与如下所示的数据拟合。 x 19 25 31 38 44 y 19.0 32.3 49.0 73.3 97.8 解

12、 编写程序如下 x=19 25 31 38 44; y=19.0 32.3 49.0 73.3 97.8; r=ones(5,1),x.2; ab=ry x0=19:0.1:44; y0=ab(1)+ab(2)*x0.2; plot(x,y,o,x0,y0,r) 2.2.2 多项式拟合方法 如果取:=即用m 次多项式拟合给定数据, Matlab中有现成的函数 a=polyfit(x0,y0,m) 其中输入参数 x0,y0 为要拟合的数据,m 为拟合多项式的次数,输出参数 a 为拟合多项式 y=amxm+a1x+a0系数 a= am, , a1, a0。 多项式在 x 处的值 y 可用下面的函数

13、计算 y=polyval(a,x)。 2.3 规划类问题算法 竞赛中很多问题都和数学规划有关,可以说不少的模型都可以归结为一组不等式作为约束条件、几个函数表达式作为目标函数的问题,遇到这类问题,求解就是关键了,比如98年B 题,用很多不等式完全可以把问题刻画清楚,因此列举出规划后用Lindo、Lingo 等软件来进行解决比较方便,所以还需要熟悉这两个软件。2.3.1 求解线性规划的 Matlab 解法 单纯形法是求解线性规划问题的最常用、最有效的算法之一。下面我们介绍线性规划的 Matlab 解法。 Matlab 中线性规划的标准型为:基本函数形式为 linprog(c,A,b), 它的返回值是向量 x 的值。 还有其它的一些函数调用形式(在 Matlab 指令窗运行 help linprog 可以看到所有的函数调用形式),如: x,fval=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS) 这里 fval 返回目标函数的值, LB 和 UB 分别是变量 x 的下界和上界,x0是x的初始值,OPTIONS 是控制参数。例 2 求解下列线性规划问题解 (i)编写 M 文件 c=2;3;-5

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1