差分进化算法求函数y(x,y)=3cos(xy)+x+y的最小值

本文探讨了如何运用差分进化算法解决数学问题,具体案例为找到函数y(x, y) = 3cos(xy) + x + y的最小值。通过对算法的详细解释和步骤描述,展示了差分进化算法在优化问题中的应用。" 102694210,8346308,计算机网络基础概念详解,"['计算机网络基础概念', '网络拓扑', 'OSI模型', 'TCP/IP协议', '以太网']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% MATLAB主函数程序
% 求函数y(x,y)=3cos(xy)+x+y的最小值
% x的取值范围为[-4,4],y的取值范围为[-4,4]
% 多个局部极值的函数
% 环境:MATLAB R2018a
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function originalDE()
% 初始化参数设置
clear;
clc;
NP = 20;     % 种群数量
D = 2;       % 变量的维数
G = 100;     % 最大进化代数
F = 0.5;     % 变异算子
CR = 0.1;    % 交叉算子
Xs = 4;      % 变量上限
Xx = -4;     % 变量下限
t0 = cputime;

x = zeros(D,NP);           % 初始种群
v = zeros(D,NP);           % 变异种群
u = zeros(D,NP);           % 选择种群
x = rand(D,NP)*(Xs-Xx)+Xs; % 赋初值(改进使用特征值替换)

% 计算适应度函数值
for m = 1:NP
    Ob(m) = func2(x(:,m));
end
trace(1) = min(Ob);
% 差分操作
for gen = 1:G
    % 变异操作
    % r1,r2,r3和m互不相同
    for m = 1:NP
        r1 = randi([1,NP],1,1);
        while(r1 == m)
            r1 = randi([1,NP],1,1);
        end
        r2 = randi([1,NP],1,1);
        while(r2 == m)|(r2 == r1)
            r2 = randi([1,NP],1,1);
        end
        r3 = randi([1,NP],1,1);
        while((r3 == m)|(r3 == r1)|(r3 == r2))
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值