matlab中GA对多参数优化问题

matlab中GA对多参数优化问题,第1张

遗传算法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,这个是数据拟合工具箱的界面 *** 作环境,你可以看一下。

我的腾讯****,散坝而要龄要伞流午

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/13495250.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存