У меня есть следующий код, реализующий PSO, но он не работает с простой функцией: norm (A), где A - матрица.

Это код,

fun=@(X) norm([X(1,1),X(1,2); X(2,1), X(2,2)]);

rng default  % For reproducibility
lb = [-10,-15];
ub = [15,20];
nvars = 4;
x = particleswarm(fun,nvars,lb,ub)

Как я мог это исправить?

0
JuanMuñoz 22 Окт 2019 в 14:42

1 ответ

Лучший ответ

Просто измените обозначение функции как элементы вектора.

fun=@(X) norm([X(1),X(2), X(3), X(4)]);

rng default  % For reproducibility
lb = [-10,-15];
ub = [15,20];
nvars = 4;
x = particleswarm(fun,nvars,lb,ub)
0
JuanMuñoz 30 Окт 2019 в 14:31