一、麻雀搜索算法SSA
二、爱心函数拟合
爱心函数可由一组余弦正交函数基构成,因此SSA优化该正交函数基的系数即可获得爱心函数。加大迭代次数效果更好。
点击查看:麻雀搜索算法(SSA)画爱心视频
2.1求解结果
2.2最后函数
x=linspace(-2,2,400);
%X为麻雀搜索算法求解得到的最终参数
X=[1.31019428548365,-0.648540409755690,-0.236997783455681,0.273117721603233,-0.251058335967004,-0.0492080470377230,0.133258526786096,-0.166543382966308,0.0252460095350893,0.0547239628984658,-0.121881402188698,0.0892019918525742,-0.0611438846127992,0.0178480834260963,-0.00796651829449292,-2.98773516366229,0.789574927467657,-0.202926905467625,-0.385710433099510,0.265895049915549,-0.175362709395008,-0.00154250110061306,-0.0614727635025854,0.0849598904656790,-0.119366274191529,0.0117415022417509,0.0713647215457548,-0.139056677011055,0.0993588848209280,-0.0517882809293093];
len=size(X,2);
ypredata=zeros(size(x));
zpredata=zeros(size(x));
for i=1:size(x,2)
for j=1:len/2
ypredata(i)=ypredata(i)+X(j).*cos(j*x(i));%采用余弦正交函数基拟合
zpredata(i)=zpredata(i)+X(j+len/2).*cos(j*x(i));%采用余弦正交函数基拟合
end
end
figure
plot(x,ypredata,'r',x,zpredata,'r');
%去除上右边框刻度
box off
%移除坐标轴边框
set(gca,'Visible','off');
%设置背景为白色
set(gcf,'color','w');
三、源代码