
遗传算法GA求解无约束最优化问题,采用遗传算法求函数的最小值:
f(x,y)=x^4-16x^2-5xy+y^4-16y^2-5y
函数如下:
f=inline('x(1)^4-16x(1)^2-5x(1)x(2)+x(2)^4-16x(2)^2-5x(2)','x');
l=[-5 -5];
u=[5 5];
x0=[0 0];
Np=30;
Nb=[12 12];
Pc=05;
Pm=001;
eta=08;
kmax=200;
[xos,fos]=fminsearch(f,x0)
[xo_gen,fo_gen]=genetic(f,x0,l,u,Np,Nb,Pc,Pm,eta,kmax)
其中调用的遗传算法函数为如下几个
genetic函数
function [xo,fo]=genetic(f,x0,l,u,Np,Nb,Pc,Pm,eta,kmax)
N=length(x0);
if nargin<10,kmax=100;end
if nargin<9|eta>1|eta<=0,eta=1;end
if nargin<8,Pm=001;end
if nargin<7,Pc=05;end
if nargin<6,Nb=8ones(1,N);end
if nargin<5,Np=10;end
NNb=sum(Nb);
xo=x0(:)';l=l(:)';u=u(:)';
fo=feval(f,xo);
X(1,:)=xo;
for n=2:Np,X(n,:)=1+rand(size(x0))(u-1);
P=gen_encode(X,Nb,l,u);
for k=1:kmax
X=gen_decode(P,Nb,l,u);
for n=1:Np,fX(n)=feval(f,X(n,:));end
[fxb,nb]=min(fX);
if fxb<fo,fo=fxb;xo=X(nb,:);end
fX1=max(fxb)-fX;
fXm=fX1(nb);
if fXm<eps,return;end
for n=1:Np
X(n,:)=X(n,:)+eta(fXm-fX1(n))/fXm(X(nb,:)-X(n,:));
end
1、用audioread('');函数读取电脑中的音频文件,参数是音频文件的路径: [sampledata,FS] = audioread('F:1mp3'); sampledata保存音频信号数据,FS是音频采样率,MP3格式的采样率一般为44100; 2、判断音频数据是否是双声道
要是没有关系还好,但是你要求A,B,m相同,n不相同,这就比较难弄了!
本来matlab里面有现成的工具可以进行数据拟合的,但是好像没有满足这个约束的方法!
打入命令:cftool,这个是数据拟合工具箱的界面 *** 作环境,你可以看一下。
我的腾讯****,散坝而要龄要伞流午
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)