matlab 求解函数z=x^2+y^2的最小值
已知y=(2*x^2+x+8)/(x+3),求z=x^2+y^2的最小值,请高手指点最好有具体代码...
已知y=(2*x^2+x+8)/(x+3),求z=x^2+y^2的最小值,请高手指点
最好有具体代码 展开
最好有具体代码 展开
展开全部
这是一个非线性最优问题,可以采用matlab自带GADST工具箱求解:
clear
clc
fitnessfcn=@(x)x^2+((2*x^2+x+8)/(x+3))^2; % y=(2*x^2+x+8)/(x+3)
nvars=1;
options=gaoptimset('PopulationSize',100,'EliteCount',10,'CrossoverFraction',0.75,'Generations',500,...
'StallGenLimit',500,'TolFun',1e-100,'PlotFcn',{@gaplotbestf,@gaplotbestindiv});
[x_best,fval]=ga(fitnessfcn,nvars,[],[],[],[],[],[],[],options);
figure
ezplot(fitnessfcn,[-10,10])
hold on
plot(x_best,fval,'*')
clear
clc
fitnessfcn=@(x)x^2+((2*x^2+x+8)/(x+3))^2; % y=(2*x^2+x+8)/(x+3)
nvars=1;
options=gaoptimset('PopulationSize',100,'EliteCount',10,'CrossoverFraction',0.75,'Generations',500,...
'StallGenLimit',500,'TolFun',1e-100,'PlotFcn',{@gaplotbestf,@gaplotbestindiv});
[x_best,fval]=ga(fitnessfcn,nvars,[],[],[],[],[],[],[],options);
figure
ezplot(fitnessfcn,[-10,10])
hold on
plot(x_best,fval,'*')
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |