matlab中用遗传算法拟合方程

matlab中用遗传算法拟合方程,第1张

例如:

已知数据队列 buf=5410

x取值 1:n n是队列长度

函数 f(x)=a+bsin(cx+d)

avg 是队列平均值

a b c d 为参数 a范围 (2/3,1)avg

b范围 (0,1/3)avg

c的范围 (0,24pi)

d (0,2pi)

1、首先定义目标函数

function y=ga_curfit(x)

global ydata n

t=1:n;

y=0;

for i=1:n

y=y+(ydata(i)-(x(:,1)+x(:,2)sin(x(:,3)t(i)+x(:,4))))^2/n;

end

y=sqrt(y);

end

2、把数据btxt放在工作空间目录中

然后再命令窗口中输入

clear

global ydata n

format long g

load btxt

ydata=b';

n=length(ydata);

avg=sum(ydata)/n;

LB=[2/3avg 0 0 0];

UB=[1avg 1/3avg 24pi 2pi];

nvars=4;

options=gaoptimset;

options=gaoptimset(options,'PopulationSize',300);

options=gaoptimset(options,'CrossoverFraction',08);

options=gaoptimset(options,'MigrationFraction',01);

options=gaoptimset(options,'Generations',500);

options = gaoptimset(options,'TolFun',1e-50);

%options = gaoptimset(options,'InitialPopulation',final_pop);

options = gaoptimset(options,'Display','final');

options = gaoptimset(options,'PopInitRange',[LB;UB]);

options = gaoptimset(options,'PlotFcns',@gaplotbestf);

options=gaoptimset(options,'Vectorize','on');%目标函数向量化

[x,fval,exitflag,output,final_pop,scores]=ga(@ga_curfit,nvars,[],[],[],[],LB,UB,[],options);

t=1:n;

plot(t,ydata,'r');

hold on

plot(t,x(1)+x(2)sin(x(3)t+x(4)))

legend('数据','拟合')

用遗传算法求已知函数的最小值点的方法:1、首先建立自定义函数,f(x)ga_fun=@(x)11sin(6x)+7cos(5x);2、其二用ga()函数求解最小值[x,fval,exitflag]=ga(ga_fun,1,[],[],[],[],lb) 3、然后用ezplot()函数或plot()函数,绘出其函数f(x)的图形及最小值点4、运行结果5、执行代码

用遗传算法求最大值问题,可以这样来解决。

1、将最大值问题转换为最小值问题,即   max Z =- min Z;

2、建立其自定义函数,即

z=-(f140^15/1+f230^15/2+f220^15/2+。。。+f12127^15/2+f125^15/4)

其中:f1,f2,f3,。。。f11,f12为0,1变量,可以用sign()符号函数来处理。

3、用遗传算法ga()函数求解,使用方法

objectivef=@ga_func;

nvars=12;

[x, fval] =ga(objectivef,nvars)

4、编程运行后得到

f1=1,f2=1,f3=1,f4=0,f5=1,f6=0,f7=1,f8=1,f9=1,f10=1,f11=1,f12=1

Zmax=273295018

以上就是关于matlab中用遗传算法拟合方程全部的内容,包括:matlab中用遗传算法拟合方程、在matlab中如何用遗传算法求解函数和的最小值、matlab,遗传算法,求大佬帮忙等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9335668.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存