24小时热门版块排行榜    

Znn3bq.jpeg
查看: 807  |  回复: 3

木凡_123

银虫 (正式写手)

[求助] 求程序指导 已有2人参与

题目如下:
minf(1) = ((7240.6*x(1)+11.3)*sqrt(9.81*x(2)*cos(x(3))))/(300.91*pi*sqrt(x(1))*x(3)*(1+22*tan(x(3))*sqrt(tan(x(3)))));
minf(2) = ((12908.88*x(1)+11.1877)*sqrt(10.791*x(2)*cos(0.87*x(3))))/(290.89*pi*sqrt(1.8*x(1))*x(3)*(1+22*tan(0.87*x(3))*sqrt(tan(0.87*x(3)))));
两个函数差不多
0.004《x1《0.006
4《x2《5
22《x3《25
x3表示角度
我想用遗传求两个函数同时取最小值时的x1,x2,x3的值并给出程序
求大神们指教,谢谢!
根据一个题目编的的简单程序:
f1=inline('((7240.6*x(1)+11.3)*sqrt(9.81*x(2)*cos(x(3))))/(300.91*pi*sqrt(x(1))*x(3)*(1+22*tan(x(3))*sqrt(tan(x(3)))))');
f2=@(x) ((12908.88*x(1)+11.1877)*sqrt(10.791*x(2)*cos(0.87*x(3))))/(290.89*pi*sqrt(1.8*x(1))*x(3)*(1+22*tan(0.87*x(3))*sqrt(tan(0.87*x(3)))));
fun=@(x) [f1(x),f2(x)];
Lb=[0.004,4,22];
ub=[0.006,5,25];
options=gaoptimset('TolFun',le-4);
[x,fval]=gamultiobj(fun,3,[],[],[],Lb,ub)
x,fval;
这个程序运行提示:Error using  <=
Not enough input arguments.


另外一个程序:
将下属两个目标函数分别保存在两个m文件中
function f1=func1(x)                                                 %第一目标函数
f1=x(:,1).*x(:,1)./4+x(:,2).*x(:,2)./4;
function f2=func2(x)                                                 %第二目标函数
f2=x(:,1).*(1-x(:,2))+10;
function  GA()
clear;clc;close all
NIND=100;                                                        %个体数目
MAXGEN=50;                                                       %最大遗传代数
NVAR=2;                                                            %变量个数
PRECI=20;                                                          %变量的二进制位数
GGAP=0.9;                                                          %代沟
trace1=[];trace2=[];trace3=[];                                %性能跟踪
%建立区域描述器
% rep([PRECI],[1,NVAR])
FieldD=[rep([PRECI],[1,NVAR]) ;rep([1;2],[1,NVAR]) ;rep([1;0;1;1],[1,NVAR])];
Chrom=crtbp(NIND,NVAR*PRECI) ;                               %初始种群
v=bs2rv(Chrom,FieldD) ;                                         %初始种群十进制转换
gen=1;
while gen<MAXGEN,   
[NIND,N]=size(Chrom) ;   
M=fix(NIND/2) ;   
ObjV1=func1(v(1:M,: )) ;                                          %分组后第一目标函数值   
FitnV1=ranking(ObjV1) ;                                       %分配适应度值   
SelCh1=select('sus',Chrom(1:M,: ),FitnV1,GGAP) ;               %选择   
ObjV2=func2(v(M+1:NIND,: )) ;                                     %分组后第二目标函数值   
FitnV2=ranking(ObjV2) ;                                       %分配适应度值   
SelCh2=select('sus',Chrom(M+1:NIND,: ),FitnV2,GGAP) ;          %选择   
SelCh=[SelCh1;SelCh2];                                       %合并   
SelCh=recombin('xovsp',SelCh,0.7) ;                           %重组   
Chrom=mut(SelCh) ;                                            %变异   
v=bs2rv(Chrom,FieldD) ;   
trace1(gen,1)=min(func1(v)) ;   
trace1(gen,2)=sum(func1(v))/length(func1(v)) ;   
trace2(gen,1)=min(func2(v)) ;   
trace2(gen,2)=sum(func2(v))/length(func2(v)) ;   
trace3(gen,1)=min(func1(v)+func2(v)) ;   
trace3(gen,2)=sum(func1(v))/length(func1(v))+sum(func2(v))/length(func2(v)) ;   
gen=gen+1;
end
figure(1) ;clf;
plot(trace1(:,1)) ;hold on;
plot(trace1(:,2),'-.') ;
plot(trace1(:,1),'.') ;
plot(trace1(:,2),'.') ;grid on;l
egend('解的变化','种群均值的变化')
xlabel('迭代次数') ;ylabel('目标函数值') ;
figure(2);clf;plot(trace2(:,1)) ;hold on;
plot(trace2(:,2),'-.') ;
plot(trace2(:,1),'.') ;
plot(trace2(:,2),'.') ;grid;
legend('解的变化','种群均值的变化') ;
xlabel('迭代次数') ;ylabel('目标函数值') ;
figure(3) ;clf;
plot(trace3(:,1)) ;hold on;
plot(trace3(:,2),'-.') ;
plot(trace3(:,1),'.') ;
plot(trace3(:,2),'.') ;grid;
legend('解的变化','种群均值的变化') ;
xlabel('迭代次数');ylabel('目标函数值') ;
figure(4);clf;
plot(func1(v));hold on;
plot(func2(v),'r-.');grid;
这个程序中我不明白:rep([1;0;1;1],[1,NVAR])];
括号中的数字怎么定义的?

[ Last edited by jjdg on 2014-8-5 at 07:20 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

elastic

金虫 (小有名气)

【答案】应助回帖


jjdg: 金币+1, 感谢参与 2014-08-05 07:21:03
这个程序中我不明白:rep([1;0;1;1],[1,NVAR])];该命令可以参考雷英杰编的《MATLAB遗传算法工具箱及应用(第二版)》第五章相关命令的解释。
衣带渐宽终不悔,为伊消得人憔悴
2楼2014-08-03 17:54:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xajdwangpeng

新虫 (初入文坛)

【答案】应助回帖

不知道报错的是哪一句?报的错误是说你的输入参数不够。。
3楼2014-08-04 22:36:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

木凡_123

银虫 (正式写手)

引用回帖:
2楼: Originally posted by elastic at 2014-08-03 17:54:10
这个程序中我不明白:rep(,)];该命令可以参考雷英杰编的《MATLAB遗传算法工具箱及应用(第二版)》第五章相关命令的解释。

谢谢
4楼2014-08-11 02:49:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 木凡_123 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 327求调剂 +10 Xxjc1107. 2026-04-06 11/550 2026-04-09 01:21 by lature00
[考研] 材料调剂 +14 一样YWY 2026-04-06 14/700 2026-04-08 23:00 by 猪会飞
[考研] 材料化工总分334求调剂 +7 Riot2025 2026-04-08 7/350 2026-04-08 20:15 by luoyongfeng
[考研] 一志愿华东理工085601材料工程303分求调剂 +15 a1708 2026-04-06 15/750 2026-04-08 16:23 by luoyongfeng
[考研] 化工学硕 285求调剂 +26 Wisjxn 2026-04-07 26/1300 2026-04-08 14:42 by screening
[考研] 277求调剂 +4 考研调剂lxh 2026-04-06 6/300 2026-04-08 10:40 by 逆水乘风
[考研] 301求调剂 +18 121. 2026-04-04 18/900 2026-04-07 17:49 by 蓝云思雨
[考研] 一志愿武理车辆专硕总分 281 求调剂 +4 上岸研究生. 2026-04-02 4/200 2026-04-07 09:52 by 加油向未来啊
[考研] 求调剂 +10 chenxrlkx 2026-04-05 10/500 2026-04-06 11:31 by 猪会飞
[考研] 283求调剂 +5 baiiyu 2026-04-05 6/300 2026-04-05 20:35 by 啵啵啵0119
[考研] 085602调剂 初试总分335 +12 19123253302 2026-04-04 12/600 2026-04-05 08:08 by 544594351
[考研] 一志愿郑大0705求调剂 +3 橘十一 2026-04-02 4/200 2026-04-05 00:05 by chongya
[考研] 材料与化工306分找调剂 +12 沧海轻舟e 2026-04-03 13/650 2026-04-04 23:45 by lqwchd
[考研] 11408,335分,本科211,求调剂,可转专业 +5 鳄梨大鳄鱼 2026-04-03 5/250 2026-04-04 22:49 by chongya
[考研] 348分环境工程·调剂 +10 吴彦祖24k 2026-04-03 11/550 2026-04-04 14:19 by 无际的草原
[考研] 材料科学与工程考研 +10 拯救皮特托先生 2026-04-02 10/500 2026-04-03 23:57 by userper
[考研] 350一志愿北京航空航天大学08500材料科学与工程求调剂 +5 kjnasfss 2026-04-03 5/250 2026-04-03 22:29 by 无际的草原
[考研] 285求调剂 +5 AZMK 2026-04-03 8/400 2026-04-03 18:17 by AZMK
[考研] 295求调剂 +7 愿旅途永远坦然 2026-04-02 7/350 2026-04-03 08:22 by fangshan711
[考研] 化学070300-总分378-求调剂 +5 挪椅子的泡泡糖 2026-04-02 5/250 2026-04-02 22:20 by ZXlzxl0425
信息提示
请填处理意见