【智能优化算法-水循环算法】基于蒸发的水循环算法求解用带约束的优化问题附matlab代码

本文通过Matlab实现了一种水循环算法(ERWCA),用于解决焊接梁问题。该算法适用于多种约束条件下的优化问题,并提供了详细的代码示例。文中还报告了多次独立运行的最优解、平均解等统计结果。

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

1 内容介绍

2 部分代码

clear all;

clc;

close all;

format long g

objective_function=@fun;

constraints=@Constraints;

for k=1:1  % Number of independent runds

    %==========================================================================

    % Problem 1

    % nvars=7;

    % LB=[-10 -10 -10 -10 -10 -10 -10];

    % UB=[10 10 10 10 10 10 10];

    %==========================================================================

    % Problem 2

    % nvars=5;

    % LB=[78 33 27 27 27];

    % UB=[102 45 45 45 45];

    %==========================================================================

    % Problem 3

    % nvars=10;

    % LB=ones(1,nvars)*0;

    % UB=ones(1,nvars)*1;

    %==========================================================================

    % Problem 4

    % nvars=3;

    % LB=ones(1,nvars)*0;

    % UB=ones(1,nvars)*10;

    %==========================================================================

    % Three-bar truss problem

    % nvars=2;

    % LB=[0 0];

    % UB=[1 1];

    %==========================================================================

    % Speed reducer problem

    % nvars=7;

    % LB=[2.6 0.7 17 7.3 7.3 2.9 5];

    % UB=[3.6 0.8 28 8.3 8.3 3.9 5.5];

    %==========================================================================

    % Pressure vessel problem

    % nvars=4;

    % LB=[0 0 10 10];

    % UB=[100 100 200 200];

    %==========================================================================

    % Tension/compression spring design problem

    % nvars=3;

    % LB=[0.05 0.25 2];

    % UB=[2 1.3 15];

    %==========================================================================

    % Welded beam problem

    nvars=4;

    LB=[0.1 0.1 0.1 0.1];

    UB=[2 10 10 2];

    %==========================================================================

    % Rolling Element Bearing

    % nvars=10;

    % D=160;

    % d=90;

    % LB=[0.5*(D+d) 0.15*(D-d) 4 0.515 0.515 0.4 0.6 0.3 0.02 0.6];

    % UB=[0.6*(D+d) 0.45*(D-d) 50 0.6 0.6 0.5 0.7 0.4 0.1 0.85];

    %==========================================================================

    % Multiple disk clutch brake

    % nvars=5;

    %--------------Info

    % % ri=[60,21,21,...,80]; x(1)

    % % ro=[90,91,92,...,110]; x(2)

    % % t=[1,1.5,2,2.5,3]; x(3)

    % % F=[600,610, 620,...,1000]; x(4)

    % % Z=[2,3,4,5,6,7,8,9]; x(5)

    %-------------

    % LB=[60 90 1 2];

    % UB=[80 110 3 9];

    

    [Xmin,Fmin,SUM_Constraints,NFEs,Elapsed_Time]=ERWCA_Const(objective_function,constraints,LB,UB,nvars)

    

    disp(['Run: ',num2str(k),'   Fmin= ',num2str(Fmin),'  Summation Constraint Violations:  ',num2str(SUM_Constraints)]);

    

    F(k)=Fmin;

    N(k)=NFEs;

    

end

[Min_F index]=min(F)

Ave_F=mean(F)

Max_F=max(F)

SD_F=std(F)

[Min_NFEs indexx]=min(N)

Ave_NFEs=mean(N)

Max_NFEs=max(N)

SD_NFEs=std(N)

3 运行结果

4 参考文献

[1]金爱娟, 苏俊豪, 李少龙. 基于水循环算法的开关磁阻电机性能优化[J]. 信息与控制, 2020.

博主简介:擅长智能优化算法神经网络预测信号处理元胞自动机图像处理路径规划无人机雷达通信无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值