急急急 MATLAB ga函数的使用

[复制链接]
查看11 | 回复1 | 2017-11-23 13:24:54 | 显示全部楼层 |阅读模式
不知道的用matlab 遗传算法求带约束的极值的ga函数的用法。
我的代码如下
优化目标函数:
function z=shishi(x)
z=2*x(1)+x(2)
约束.m文件代码
function [c,ce]=nonl(x)
ce=[]
c=[-1*x(1);

-1*x(2);

x(1)-1;

x(2)-1;

x(1)+x(2)-1]
MATLAB窗口输入命令如下:
[c,ce]=ga(@shishi,*********,@nonl)
问题:1.不知道我的m文件有没有问题

2.正确的ga命令应该怎么输入

3.希望能具体讲解一下ga()中参数的意义。(不要告诉我看MATLAB的help)我都快晕了。
最好能给我一个能直接正确运行的例子参考一下才最好。
可能是我没有 描述明白,我主要想知道约束函数 的m文件怎么编辑。最后我想使用的函数格式是ga(@shishi,*********,@nonl)
约束是通过@调用m文件实现的。
还是需要麻烦这位大哥(姐),就算送佛送到西。小弟先谢过啦。
问题是为什么我一运行就提示:
>> [c,ce]=ga(@shishi,2,[],[],[],[],[],[],@nonl)
??? Error using ==> ga
Too many input arguments.

回复

使用道具 举报

千问 | 2017-11-23 13:24:54 | 显示全部楼层
1. 没问题,就是最后最好加分号不然输出全乱了2. [c,ce]=ga(@shishi,2,[],[],[],[],[],[],@nonl)3. ga(函数句柄,变量个数,不等式约束系数矩阵,不等式约束常量向量,等式约束系数矩阵,等式约束常量向量,变量上限,变量下限,非线性约束)系数矩阵格式知道吧 x1 + 2x2 <= 3
2x1 + 3x2 <= 4改成矩阵就是[1 2;2 3] 和 [3;4]上下限是长度为变量个数的向量0 <= x1 <= 20 <= x2 <= 3就是[0;0] [2;3]等式约束也一样的 例子:http://zhida
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行