This is an accelerated PSO (APSO), developed by Xin-She Yang in 2008. APSO does not use velocities or any inertia parameter.
A full program for solving nonlinear constrained optimization problem (welded beam design as an example) is provided, which can be extended to solve other continuous optimization problems.

Thanks. "n=size(ns,1)" is better, as "length" only returns the longer size. For example, a=rand(4,8) is a two-dimensional array, then use "n=length(a), it will give n=8.

Thank you very much for the codes. It is working quite well to my problem. However, I think there is a mistyping in the function "findrange". In this case, where we have "n=length(ns)", it should be "n=size(ns,1)".