PSO如何求解非线性方程组求解

来源:百度知道 编辑:UC知道 时间:2024/05/31 16:04:38
问题有两种转化形式 一是求平方和 二是求绝对值和 谁能具体给我解释下~~

PSO搜索需要一个适应度函数,粒子的好坏是根据其适应度来的,一个非线性方程组,比如说,
f1(x,y)=0;
f2(x,y)=0;

你要搜索它的解,需要定义一个适应度函数,你可以定义
|f1|+|f2|或者定义(f1)^2+(f2)^2,这样再搜索时寻找适应度函数值最小的那个解,最优粒子的适应度会越来越趋进0,当适应度函数值为0时,必有f1(x,y)=0;f2(x,y)=0;因此,就得到了方程组的解。

当然,你也可以根据侧重点的不同来定义适应度函数,例如,若希望优先考虑方程1,则可把适应度函数定义为10*|f1|+|f2|或者10*(f1)^2+(f2)^2,这里的10是我随意定的,实际中可根据需求来定。

另外,适应度函数,也不是一定向上面那么定义,你要定义为(f1)^4+(f2)^2等等也是可以的,只是最终的侧重点不同了,比如说,f1=0.1,f2=0.15,没有f1=0.3,f2=0.1的适应度好,显然是不合乎实际的。

再者,你还可以定义适应度函数为1/|f1| + 1/|f2| ,但是这样定义后,适应度函数值越大,粒子的适应度越好,在搜索的过程中,最优粒子的适应度函数值越来越大,但理论上适应度函数值为无穷大才行,实际搜索永远都达不到。

该说的我都说明了,以前写过PSO算法,这些都是自己的心得,不知道能否帮上你~~