请帮助使用PSO优化

7视图(30天)
我有使用PSO优化问题”我写的代码没有使用工具箱”. .我写了mainPSO代码和目标函数,但是我不知道如何定义等式和不等式约束的
x1 + x2 + x3 + x4 + x5 = 1000;
x1 ^ 2-4x2 + 5 x3 ^ 3 + x4 ^ 4 - 3.5 x5 ^ 2 = 300
如何定义这两个约束条件? ? ?

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2021年1月5日
% {
x1 + x2 + x3 + x4 + x5 = 1000;
x1 ^ 2-4x2 + 5 x3 ^ 3 + x4 ^ 4 - 3.5 x5 ^ 2 = 300
%}
注意,x2是唯一的变量线性出现在第二个方程。所以把第一个方程写成
% {
x2 = 1000 - x1 - x3 x4 - x5
%}
现在代入第二个方程
% {
x1 ^ 2 - 4 * (1000 - x1 - x3 x4 - x5) + 5 x3 ^ 3 + x4 ^ 4 - 3.5 x5 ^ 2 = 300
%}
这是一个二次x1(或x5),所以x1解决它
信谊(x1, x2) x3 x4 x5
eqn = x1 ^ 2 - 4 * (1000 - x1 - x3 x4 - x5) + 5 * x3 ^ 3 + x4 ^ 4 - 3.5 * x5 ^ 2 = = 300
eqn =
X1 =解决(eqn X1)
X1 =
现在您运行两种不同的算法运行时,一个替代1000 - x1 - x3 x4 - x5 x2和第一个x1的x1值;其他运行替代1000 - x1 - x3 x4 - x5 x2和x1 x1的第二个值。这些等式或不等式约束不需要运行(除非有更多的约束你没有告诉我们。)
跑你会做3变量,x3, x4, x5,你在你的目标函数代替x1和x2。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的