您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > matlab常用测试函数
################################################测试函数#################################################1.Dejong函数F1#minf1(x1,x2,x3)=x1^2+x2^2+x3^2;-5.12=x1,x2,x3=5.12;#一个极小点f1(0,0,0)=0#《遗传算法原理及应用》周明孙树栋编著p125。#GA参数取默认值(以下未交代的GA参数都取默认值)#xu注:注意,含下标的变量在变量定义域表达式的表示形式要和数学表达式#中的一致!#x1^2+x2^2+x3^2;-5.12=x1,x2,x3=5.12;#以连加形式表示上式(只可以字母i为变量下标):sum(1,3,xi^2);-5.12=xi=5.12;sum(1,3,x[i]^2);-5.12=x[i]=5.12;#指定i或k或j等字母为变量下标的连加形式表达式:#说明:当指定某字母为变量下标,其变量名就不能含该字母!sumx(1,3,i,xi^2);-5.12=xi=5.12;sumx(1,3,k,xk^2);-5.12=xk=5.12;sumx(1,3,j,xj^2);-5.12=xj=5.12;#变量下标带[]的连加形式表达式:sumx(1,3,i,x[i]^2);-5.12=x[i]=5.12;#1-aminf(x)=sum(1,100,(x-0.5)^2);#0=xi=1.0;i=1,2,...,100;#最优解:f(0.5,0.5,...,0.5)=0#sum(1,100,(xi-0.5)^2);0=xi=1.0;#1-1.*Dejong函数F2,又称Rosonbrock马鞍函数#minf2(x1,x2)=100*(x1^2-x2)^2+(1-x1)^2;#它具有一个全局极小点f(1,1)=0.该函数虽然#是单峰值函数,但它却是病态的(螺旋型),难以进行全局极小化。#摘自:《遗传算法原理及应用》p125##这函数是二参数、单极值的非二次函数,但在x2=x1处有一狭#长深谷,其最小值在(x1,x2)=(1,1)时,minf=0,#寻优中可能陷入局部解.##Rosenbrock函数是一个二维单峰值函数,具有一个全局极小点#f(1.0,1.0)=0.0,但它却是病态的,在函数曲面上沿着曲线x2=x1^2#有一条较为狭窄的山谷,传统的梯度优化方法搜索到谷边缘时,往往#会发生振荡,难以进行全局优化。#但它在全局极小点邻近的狭长区域内取值变化极为缓慢,可用于评价#算法的搜索性能。#摘自:多点正交交叉的遗传算法刘清等#xu注:当变量定义域表达式中存在二个以上的变量时得用','分隔!#100*(x1^2-x2)^2+(1-x1)^2;-2.048=x1,x2=2.048;100*(x1^2-x2)^2+(1-x1)^2;-10.0=x1,x2=10.0;100*(x1^2-x2)^2+(1-x1)^2;-100.0=x1,x2=100.0;#1-2.Dejong函数F3#minf3(x1,x2,...,x5)=sum(integer(xi));#-5.12=xi=-5.12i=1,2,...,5这是一个不连续函数,#该函数参数多,不可导,是五参数的阶梯函数,#在-5.12=xi=-5.0区域内的每一点,它都取全局极小值:#f3(x1,x2,x3,x4,x5)=-30。#摘自:《遗传算法原理及应用》p125#floor(x1)+floor(x2)+floor(x3)+floor(x4)+floor(x5);-5.12=x1,x2,x3,x4,x5=5.12;sum(1,5,floor(xi));-5.12=xi=5.12;sumx(1,5,i,floor(xi));-5.12=xi=5.12;#1-3DeJong函数F4#minf4(x1,x2,...,x30)=sum(i*xi^4)+rnd;#-1.28=xi=1.28,i=1,2,...,30;#这是一个含噪声rnd的4次函数,当不考虑噪声的影响时,它具有#一个全局极小值f4(0,0,...,0)=0。#摘自:《遗传算法原理及应用》p125#原DeJong函数,该噪声是分布为N(0,1)的高斯随机变量#RandG(0,1)。据文献介绍,当函数不存在全局最小值时,该函数#是有缺陷的。#为此,有人建议以均匀分布的[0,1)的随机变量代替之。这可保证#最小值定位于0。#Quartic[F4]isasimpleunimodalfunctionpaddedwithnoise.#Thegaussiannoisemakessurethatthealgorithmnevergets#thesamevalueonthesamepoint.Algorithmsthatdonotdo#wellonthistestfunctionwilldopoorlyonnoisydata.#sum(1,30,i*xi^4)+RandG(0,1);-5.12=xi=5.12;sum(1,30,i*xi^4)+rand(0,1);-5.12=xi=5.12;#1-4DeJong函数F5#minf5(x1,x2)=1/(1/500+sum(1/(j+sum((xi-aij)^6)))),#-65.536=xi=65.536,j=1,2,...,25;i=1,2;#a1j=-32,-16,0,16,32,-32,-16,...,0,16,32#a2j=-32,-32,-32,-32,-32,-16,-16,...,32,32,32#它总共有25个局部极小值,其中有一个是全局极小值:#f5(-32,-32)=0.998。#摘自:《遗传算法原理及应用》p125#该函数是具有25个稀疏尖峰的多模态函数。#xu注:本程序规定常数项一维数组命名为c,二维数组命名为a,#即分别以c[j]和a[i,j]表示。#它们的二组数据即可记录在同一txt文件中,也可分别记#录在二个不同的txt文件中。文件应保存在本地文件夹内。#该数学表达式的常数项数组可调用1-4ConstTermsData.txt#给予输入。#xu注:minf(-31.97833,-31.97833)=0.998003840#若是f5(x1,x2)=0.002+sum(1/(j+sum((xi-aij)^6)))#minf=0.002001/(1/500+sumx(1,25,j,1/(j+sumx(1,2,i,(xi-a[i,j])^6))));-65.536=xi=65.536;1/(0.002+sumx(1,25,j,1/(j+sumx(1,2,i,(xi-a[i,j])^6))));-65.536=xi=65.536;0.002+sumx(1,25,j,1/(j+sumx(1,2,i,(xi-a[i,j])^6)));-65.536=xi=65.536;#2.Schaffer函数#minf(x1,x2),该函数在(x[1],x[2])=(0,0)处有一个全局最小值0。#0.5+((sin(sqrt(x[1]^2+x[2]^2))*sin(sqrt(x[1]^2+x[2]^2))-0.5)/((1.0+0.001*(x[1]^2+x[2]^2))*(1.0+0.001*(x[1]^2+x[2]^2))));-100=x[1],x[2]=100;0.5+((sin(sqrt(x1^2+x2^2)))^2-0.5)/(1.0+0.001*(x1^2+x2^2))^2;-100=x1,x2=100;0.5+((sin(sqrt(pow(x1,2)+pow(x2,2))))^2-0.5)/(1.0+0.001*(pow(x1,2)+pow(x2,2)))^2;-100=x1,x2=100;#3.*Schaffer函数#在其定义域内只有一个全局极小点minf(0,0)=0,-100=x1,x2=100;#((x^2+y^2)^0.25)*((sin(50*(x^2+y^2)^0.1)^2)+1.0);-5.12=x,y=5.12;((x1^2+x2^2)^0.25)*((sin(50*(x1^2+x2^2)^0.1)^2)+1.0);-10=x1,x2=10;pow(pow(x1,2)+pow(x2,2),0.25)*(pow(sin(50*pow((x1^2+x2^2),0.1)),2)+1.0);-100=x1,x2=100;#3-1minf=sum(1,D-1,pow(x[i+1]^2+x[i]^2,0.25)#*(1.0+pow(sin(50.0*pow(x[i+1]^2+x[i]^2,0.1)),2))),#-100=x[i],x[i+1]=100,i=1,2,...,D-1;#其minf(0,0,...,0)=0;其全局极小点与邻近的局部极小点之间#有Highbarrierheight.是演化算法的典型测试函数。#摘自:《快速演化算法研究》高飞等。sum(1,9,pow(x[i+1]^2+x[i]^2,0.25)*(1.0+pow(sin(50.0*pow(x[i+1]^2+x[i]^2,0.1)),2)));-100=x[i],x[i+1]=100;sum(1,29,pow(x[i+1]^2+x[i]^2,0.25)*(1.0+pow(sin(50.0*pow(x[i+1]^2+x[i]^2,0.1)),2)));-100=x[i],x[i+1]=100;#4.*Schaffer's函数#此函数只有一个最小值点minf(0,0)=-1;#该最小值点周围有很多局部极值点,形成二圈圈沟,其函数值分别为#-0.990283和-0.962776,因此很容易陷入在这些极小点处。#注:也可按多峰值函数处理,效果亦佳。#(sin(sqrt(x^2+y^2))^2-0.5)/(1+0.001*(x^2+y^2))^2-0.5;-100x,y100;#4-1Schaffer函数,此函数有一个全局最大值解maxf(0,0)=1.0。#该最大值点周围有两圈圈脊,取值分别为0.990284和0.962776,#而且这些局部极值与最大值间的值差很小,因此,优化过程中极易#停滞在这些局部极值点处。因而,该函数可以很好地衡量进化算法#的性能.#0.5-((sin(sqrt(x^2+y^2)))^2-0.5)/(1.0+0.001*(x^2+y^2))^2;-100x,y100;#4-2Multimodalsineenvelopesinewavefunction.#minf=sum(1,D-1,0.5+((sin(sqrt(x[i+1]^2+x[i]^2)))^2#-0.5)/(1.0+0.001*(x[i+1]^2+x[i]^2))^2),#-100=x[i],x[i+1]=100,i=1,2,...,D-1;#该函数有一个全局极小值minf(0,0,...,0)=0,该全局极小点#被无数的局部极小点所围绕,并且全局极小点与这些局部极小点之#间存在极大值点。该函数是评价演化算法全局收敛性及搜索性能的#经典函数。#摘自:快速演化算法研究高飞等.#sum(1,9,0.5+((sin(sqrt(x[i+1]^2+x[i]^2)))^2-0.5)/(1.0+0.001*(x[i+1]^2+x[i]^2))^2);-100=x[i],x[i+1]=100;sum(1,29,0.5+((sin(sqrt(x[i+1]^2+x[i]^2)))^2-0.5)/(1.0+0.001*(x[i+1]^2+x[i]^2))^2);-100=x[i],x[i+1]=100;#4-3minf(x1,x2)=(((sin(sqr(x1^2+x2^2))^2-0.5)#/(1+0.001*(
本文标题:matlab常用测试函数
链接地址:https://www.777doc.com/doc-3015407 .html