Matlab 如何在矩阵范数中使用粒子群优化算法

Matlab 如何在矩阵范数中使用粒子群优化算法,matlab,optimization,particles,swarm,Matlab,Optimization,Particles,Swarm,我有以下实现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) 如何修复它?只需更改函数的符号,即向量的条目 fun=@(X) norm([X(1)

我有以下实现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)

如何修复它?

只需更改函数的符号,即向量的条目

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)

particleswarm
将长度为
nvars
的行向量传递给
fun
,因此
X
不是矩阵。@rinkert您想给出答案吗?