maple优化算法v1.0
此次工作的主要目的是改进maple13的全局优化能力;当然,如果大家有maple的全局优化工具箱的话,就不用费事了。
这个版本还有很大的改进空间,姑且当作“勇敢的第一步”。
此次工作的主要目的是改进maple13的全局优化能力;
当然,如果大家有maple的全局优化工具箱的话,就不用费事了。
这个版本还有很大的改进空间,姑且当作“勇敢的第一步”。
241628
maplelab 发表于 2010-4-23 23:02 http://forum.simwe.com/images/common/back.gif
是你自己写的程序?
以下代码转自:http://blog.csdn.net/mmm_zx/archive/2010/04/18/5499756.aspx
以下代码所实现的是无约束全局优化的混沌算法,该算法的效果相当不错。
--------------------------------------------------------------------------------
restart;
ChaosIterationMin:=proc(expr::algebraic,xr::Or(listlist,list),n:=700)
local vl,z,numiter,sol,root,broot,best,numvl,Lx,Ux,nxr;
Digits:=50;
convert(indets(expr,name),list);
vl:=select(x->x<>Pi,%);
numvl:=nops(vl);
nxr:=Matrix(xr);
Lx:=nxr[...,1];
Ux:=nxr[...,2];
numiter:=floor(abs(n));
z:=Vector(numvl,fill=0.9);
###########z不能取为Logistic映射的不动点{0,0.25,0.50,0.75,1}.
broot:=Lx+~(Ux-Lx)*~z;
best:=subs(zip(`=`,vl,convert(broot,list)),expr);
to numiter do
z:=4*~z*~(1-~z);
root:=Lx+~(Ux-Lx)*~z;
if is(subs(zip(`=`,vl,convert(root,list)),expr)-best<=0) then
broot:=root;
best:=subs(zip(`=`,vl,convert(root,list)),expr);
fi;
od;
sol:=zip(`=`,vl,convert(broot,list));
if not hastype(expr,{trig,trigh}) then
return {best,<sol>};
else
return {evalf(best),<sol>};
fi;
end proc:
--------------------------------------------------------------------------------
调用方法很简单:
ChaosIterationMin(目标函数,边界条件,迭代次数);
迭代次数默认为700次。
--------------------------------------------------------------------------------
例1:求多峰测试函数sin(x)*x+sin(x)在区间[-3*Pi,3*Pi]内的全局最小值。
输入:
ChaosIterationMin(sin(x)*x+sin(x),[-3*3.14,3*3.14]);
返回
{-5.7972388494,}
--------------------------------------------------------------------------------
例2:求多峰Shaffer测试函数0.5+(sin(sqrt(x^2+y^2))^2-0.5)/((1.0+0.001*(x^2+y^2))^2)在区间x,y=[-100,100]内的全局最大值。
输入:
ChaosIterationMin(-(0.5+(sin(sqrt(x^2+y^2))^2-0.5)/((1.0+0.001*(x^2+y^2))^2)),[[-100,100],[-100,100.]]);
返回:
{-.9973614376, }
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mmm_zx/archive/2010/04/18/5499756.aspx
那个博客就是在下开的,程序当然也是在下写的。其中的混沌算法已经重写。当然,原来那个还是可以用的,不过没有这个新改进的强大。
有空的话,大家可以去看看。
http://blog.csdn.net/mmm_zx
其中还有些大家可能兴趣的东西。 那个博客就是在下开的,程序当然也是在下写的。其中的混沌算法已经重写。当然,原来那个还是可以用的,不过没有这个新改进的强大。
有空的话,大家可以去看看。
http://blog.csdn.net/mmm_zx
其中还有些大家可能兴 ...
maplelab 发表于 2010-4-24 07:08 http://forum.simwe.com/images/common/back.gif
很不错,你可以把你的签名档改为你的博客地址。 不错,谢谢分享,下载下来,满满学习 谢谢分享,下载下来, 学习下 Maple也在改进Optimization程序包。 原来希望maple会在下个版本v14中将它的全局优化工具箱合并到maple中,就像maple14已经将Maple Toolbox for MATLAB和Maple NAG® Connector合并在maple中。
现在只好放弃这个希望了。
不知v15会不会这样做。
matlab现在好像是全局优化工具箱的。
希望maple也能如此。 多谢楼主分享资料
页:
[1]