% 灰狼优化算法(求函数极值)
clc;
clear;
close all;
%% 目标函数
f= @(x) - (x - 10) .^ 2 + x .* sin(x) .* cos(2 * x) - 5 * x .* sin(3 * x) ; % 适应度函数表达式(求这个函数的最大值)
figure(1);
fplot(f, [0 20], 'b-'); % 画出初始图像
title('初始图像');
hold on;
%% 初始化参数
N=30; % 灰狼个数
dim=1; % 维度
Iter=50; % 最大迭代次数
a=2; % 收敛因子
ub=20; % 最大值限制
lb=0; % 最小值限制
% 初始化alpha,beta,delta
Alpha_pos=zeros(1,dim);
Alpha_score=-inf; %求最大值改为inf
Beta_pos=zeros(1,dim);
Beta_score=-inf;
Delta_pos=zeros(1,dim);
Delta_score=-inf;
Positions=rand(N,dim).*(ub-lb)+lb; % 初始化个体位置
Convergence_curve=zeros(1,Iter); % 收敛曲线
l=0; %循环次数记录
%% 迭代求解
while l<Iter
for i=1:size(Positions,1)
灰狼算法程序
最新推荐文章于 2024-10-01 23:05:47 发布
该代码示例展示了如何运用灰狼优化算法寻找一元函数的最大值。算法首先定义了目标函数,然后初始化灰狼种群的位置,并在每次迭代中更新灰狼的位置以逼近最优解。最后,算法展示了收敛过程并输出最佳解决方案及其对应的函数值。
摘要由CSDN通过智能技术生成