MATLAB数学建模14个范例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.整数规划的蒙特卡洛解法2015-06-10........................................................................................22.罚函数法2015-06-11..........................................................................................................33.层次分析2015-06-12........................................................................................................44.粒子群优化算法的寻优算法--非线性函数极值寻优2015-06-13..................................55有约束函数极值APSO寻优2015-06-14..........................................................................126.模拟退火算法TSP问题2015-06-15...............................................................................177.右端步连续微分方程求解2015-06-16...................................................................................198.多元方差分析2015-06-17.....................................................................................................229.基于MIV的神经网络变量筛选2015-06-18.........................................................................2510.RBF网络的回归--非线性函数回归的实现2015-06-19....................................................2911.极限学习机在回归拟合中的应用2015-06-20...................................................................3212.极限学习机在分类中的应用2015-06-21...........................................................................3413.基于PSO改进策略2015-06-22...........................................................................................3714.神经网络遗传算法函数极值寻优2015-06-23...................................................................461.1.整数规划的蒙特卡洛解法2015-06-10已知非线性整数规划为:200520062800622400)5,....,1(9902328243max54233216432154321543212524232221xxxxxxxxxxxxxxxxixxxxxxxxxxxzi如果用显枚举试探,共需要计算100^5=10^10个点,其计算量非常大。然而应用蒙特卡洛去随机模拟计算10^6个点,便可以找到满意解,那么这种方法的可信度究竟怎么样呢?下面就分析随机采样10^6个点计算时,应用概率理论估计下可信度。不是一般性,假设一个整数规划的最优点不是孤立的奇点。假设目标函数落在高值区的概率分别为0.01,0.00001,则当计算10^6个点后,有任一个点落在高值区的概率分别为:1-0.99^1000000=0.99...99(100多位)1-0.99999^1000000=0.999954602解(1)首先编写M文件mengte.m定义目标函数f和约束向量g,程序如下:function[f,g]=mengte(x);f=x(1)^2+x(2)^2+3*x(3)^2+4*x(4)^2+2*x(5)-8*x(1)-2*x(2)-3*x(3)-...x(4)-2*x(5);g=[sum(x)-400x(1)+2*x(2)+2*x(3)+x(4)+6*x(5)-8002*x(1)+x(2)+6*x(3)-200x(3)*x(3)+x(4)+5*x(5)-200];(2)编写M文件mainint.m如下求问题的解:rand('state',sum(clock));p0=0;ticfori=1:10^5x=99*rand(5,1);x1=floor(x);%向下取整x2=ceil(x);%向上取整[f,g]=mengte(x1);ifsum(g=0)==4ifp0=fx0=x1;p0=f;endend[f,g]=mengte(x2);ifsum(g=0)==4ifp0=fx0=x2;p0=f;endendendx0,p0Matlab求解整数规划祥见第二章(优秀教材)2.罚函数法2015-06-11利用罚函数法,可将非线性规划问题的求解,转化为求解一系列无约束极值问题,因而也称这种方法为系列无约束最小化技术,简记为SUMT。罚函数法求解非线性规划问题的思想是,利用问题中的约束函数作出适当的罚函数,由此构造出带参数的增广目标函数,把问题转化为无约束非线性规划问题。主要有两种形式,一种叫外函数法,另一种叫内函数法,下面介绍外函数法。考虑问题:tmxksjxhrixgtsxfmji.....1,0)(,....1,0)(......1,0)(..)(min取一个充分大的数M0,构造函数:tiisiiriixkMxhMxgMxfMxP111|)(|)0),((min)0),(max()(),(增广目标函数P(x,M)为目标函数的无约束极值问题minP(x,M)的最优解x也是原问题的最优解。Eg:求解下列非线性规划问题0,020..8)(min212212212221xxxxxxtsxxxf解编写M文件test1.mfunctiong=test1(x);M=50000;f=x(1)^2+x(2)^2+8;g=f-M*min(x(1),0)-M*min(x(2),0)-M*min(x(1)^2-x(2),0)+M*abs(-x(1)-x(2)^2+2);然后命令窗口输入[x,y]=fminunc('test1',rand(2,1))扩展:将有约束的极值问题转化为无约束的极值问题,这样便可以很好的扩展matlab神经网络43个案例分析里面求无约束的函数极值问题。Matlab求解非线性规划祥见第三章(优秀教材)3.层次分析2015-06-12层次分析祥见第八章准则层b=[111411/2];方案层cb1=[11/41/2];cb2=[11/41/5];cb3=[131/3];cb4=[11/35];cb5=[117];cb6=[179];由总权值可以知道工作1最合适。权重的计算weight1.m传入各因素重要性例如b=[139]就可以计算相应的权重了weigth1(b)。Weight.m是近似算法和weight1.m用法相同。主要还是用weight1.mweight1.mfunction[w,cr]=weight1(b)%b=[11/31/9];%模糊比较n1=length(b);ri=[000.580.901.121.241.321.41.145];%一致性指标a=zeros(n1,n1);准则B1B2B3B4B5B6总权值准则层权值0.16000.16000.16000.04000.16000.3200工作10.14290.10000.23080.23810.46670.79750.4152工作20.57140.40000.07690.71430.46670.11390.3074工作30.28570.50000.69230.04760.06670.08860.2774fori=1:n1forj=1:n1a(i,j)=b(j)/b(i);endend[x,y]=eig(a);lamda=max(diag(y));num=find(diag(y)==lamda);w=x(:,num)/sum(x(:,num));cr=(lamda-n1)/(n1-1)/ri(n1);%一致性检验若cr0.1,认为矩阵的一致性可以接受主程序score3.mb=[111411/2];cb1=[11/41/2];cb2=[11/41/5];cb3=[131/3];cb4=[11/35];cb5=[117];cb6=[179];w0=weight1(b);w1=weight1(cb1);w2=weight1(cb2);w3=weight1(cb3);w4=weight1(cb4);w5=weight1(cb5);w6=weight1(cb6);ww=[w1w2w3w4w5w6];score3=ww*w0%计算总的权值4.粒子群优化算法的寻优算法--非线性函数极值寻优2015-06-13PSO算法首先在可解空间中初始化一群粒子,每个粒子都代表极值最优问题的一个潜在最优解。用位置、速度和适应度三项指标表示该粒子的特征,适应度值由适应度函数计算得到,其值的好坏表示例子的优劣。粒子在解空间中运动,通过跟踪个体极值Pbest和群体极值Gbest跟新个体位置;个体极值Pbest是指个体所经历位置中计算得到的适应度最优解的位置,群体的极值Gbest是指种群中的所有粒子搜索到的适应度最优位置。粒子每更新一次位置,就计算一次适应度值,并通过比较粒子的适应度值和个体极值、群体极值的适应度值来跟新个体极值Pbest和群体极值Gbest位置。假设在一个D维的搜索空间中有n个粒子组成的种群)(n1,.......,XXX,其中第i个粒子表示为一个D维的向量TiDixxX].......[1i,代表第i个粒子在D为搜索空间中的位置,亦代表问题的一个潜在解。根据目标函数即可以计算出每个粒子位置TiDixxX].......[1i对应的适应度值。第i个粒子的速度TiDiVVV].......[1i,其中个体极值为TiDiPPP].......[1i,种群的全局极值为TiDiPPP].......[1g。在每一次迭代过程中,粒子通过个体极值和全局极值更新自身的速度和位置,更新公式如下:速度:)()(22111kgdkgdkidkidkidkidXPrcXPrcVV位置:1idid1idkkkVXX式中,为惯性权重;21cc和为非负的常数,称为加速因子;21rr和为分布于[0,1]之间的随机数。为了防止粒子的盲目搜索,一般建议将奇位置和速度限制在一定的区间。例子:求非线性函数的最小值Minf(x)如果是带约束的可以通过罚函数法转化为无约束的。程序如下所求函数的最小值,函数如下:functiony=fun(x)%函数用于计算粒子适应度值%xinput输入粒子%youtput粒子适应度值y=-20*exp(-0.2*sqrt((x(1)^2+x(2)^2)/2))-exp((cos(2*pi*x(1))+cos(2*pi*x(2)))/2)+20+exp(1)

1 / 50
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功