matlab用粒子群算法求解方程组最优解

y1,y2为两个数列,想求能满足下面两个方程组时X1,X2的最优解方程组为:E(X1y1+X2y2)=0;D(X1y1+X2y2)=1可以用粒子群群算法求最优解吗,如果可... y1,y2为两个数列,想求能满足下面两个方程组时X1,X2的最优解
方程组为:E(X1y1+X2y2)=0 ; D(X1y1+X2y2)=1
可以用粒子群群算法求最优解吗,如果可以,用matlab怎么编写程序?越详细越好~
展开
 我来答
天才的土地
2014-03-06 · TA获得超过746个赞
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:171万
展开全部
这关键是适应度函数的问题,你可以编写如下适应度函数:
F=|E(X1y1+X2y2)-0|+|D(X1y1+X2y2)-1|,F值越小越好,||指的是绝对值。

而变量你就选取X1和X2里的每个元素。比如X1=[x1,x2,x3];X2=[x4,x5,x6];你就可以设置PSO的变量为x1到x6这六个值。
答毕,不懂追问。
追问
您好,您的解答对我很有启发,但是我想X1,X2求出来后是一个确定的数,而不是数组,比如就像解方程那样得出来,X1=0.8,X2=0.2。粒子群算法中输入的粒子X1,X2中一定要是数组吗。还有在程序中怎么体现适应度函数F越小越好呢。是min(fitness)来实现吗,如果X1+X2=1,我是不是可以直接使适应度函数中的X2=1-X1来实现,这样是不是简单些。
谢谢您的耐心回答
追答
你的x1和x2如果是两个值得花,那不就更加简单了。两个数就和你所说一样的直接X2=1-X1这样带入进去就可以了。

另外,粒子群算法有两部分,一个是粒子群的主函数,含有就是你的适应度函数,也就是你的研究对象。
先把研究对象选定好,编写你的适应度函数,然后使用算法代码调用运行即可,懂了不。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式