【数学建模】智能算法-遗传算法 | matlab | GA工具箱 |求解固定区间

一、例题:求解固定区间里目标函数的最大值

问题:maxf(x)=200*exp(-0.05x)*sinx
-2≤x≤2

clear all;
clc;

options=gaoptimset('generations',400,'StallGenLimit',300,'PlotFcns',@gaplotbestf)
[x1,f]=ga(@fun,1,options) %1是指目标函数的自变量个数

y1=200*exp(-0.05*x1)*sin(x1);
t=-2:0.0001:2
y=200*exp(-0.05*t).*sin(t)
figure(2)
plot(t,y)
text(x1,y1,'o','color','b');
text(x1,y1,['(',num2str(x1),',',num2str(y1),')'],'color','r');

%目标函数
function f=fun(x)
    if (x<-2|x>2)
        f=100
    else 
        f=-200*exp(-0.05*x)*sin(x);
    end
end

结果如下:
在这里插入图片描述
当然可以改变plotfcns的参数,画出其他的图片如下

clear all;
clc;

options=gaoptimset('generations',400,'StallGenLimit',300,'PlotFcns',...
    {@gaplotbestf,@gaplotbestindiv,@gaplotexpectation,@gaplotstopping})
[x1,f]=ga(@fun,1,options) %1是指目标函数的自变量个数

y1=200*exp(-0.05*x1)*sin(x1);
t=-2:0.0001:2
y=200*exp(-0.05*t).*sin(t)
figure(2)
plot(t,y)
text(x1,y1,'o','color','b');
text(x1,y1,['(',num2str(x1),',',num2str(y1),')'],'color','r');

%目标函数
function f=fun(x)
    if (x<-2|x>2)
        f=100
    else 
        f=-200*exp(-0.05*x)*sin(x);
    end
end

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后找找到的最大值点:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值