24小时热门版块排行榜    

查看: 791  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 294求调剂材料与化工专硕 +14 陌の森林 2026-03-18 14/700 2026-03-19 22:38 by 学员8dgXkO
[考研] 0703化学调剂 ,六级已过,有科研经历 +12 曦熙兮 2026-03-15 12/600 2026-03-19 19:42 by maocaozhuxi
[考研] 288求调剂,一志愿华南理工大学071005 +5 ioodiiij 2026-03-17 5/250 2026-03-19 18:22 by zcl123
[考研] 化学求调剂 +3 临泽境llllll 2026-03-17 4/200 2026-03-19 13:59 by houyaoxu
[考研] 354求调剂 +4 Tyoumou 2026-03-18 7/350 2026-03-18 21:45 by Tyoumou
[考研] 一志愿武理材料305分求调剂 +5 想上岸的鲤鱼 2026-03-18 6/300 2026-03-18 17:53 by 无际的草原
[考研] 化学工程321分求调剂 +15 大米饭! 2026-03-15 18/900 2026-03-18 14:52 by haxia
[考研] 085601专硕,总分342求调剂,地区不限 +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[考研] 0854可跨调剂,一作一项核心论文五项专利,省、国级证书40+数一英一287 +8 小李0854 2026-03-16 8/400 2026-03-18 14:35 by 搏击518
[考研] 材料专硕306英一数二 +10 z1z2z3879 2026-03-16 13/650 2026-03-18 14:20 by 007_lilei
[考研] 312求调剂 +8 陌宸希 2026-03-16 9/450 2026-03-18 12:39 by Linda Hu
[考研] 304求调剂 +12 小熊joy 2026-03-14 13/650 2026-03-18 12:34 by Linda Hu
[考博] 环境领域全国重点实验室招收博士1-2名 +3 QGZDSYS 2026-03-13 5/250 2026-03-18 11:13 by QGZDSYS
[考研] 265求调剂 +3 梁梁校校 2026-03-17 3/150 2026-03-18 09:12 by zhukairuo
[考研] 278求调剂 +5 烟火先于春 2026-03-17 5/250 2026-03-18 08:43 by 星空星月
[考研] 274求调剂 +5 时间点 2026-03-13 5/250 2026-03-17 07:34 by 热情沙漠
[基金申请] 今年的国基金是打分制吗? 50+3 zhanghaozhu 2026-03-14 3/150 2026-03-16 17:07 by 北京莱茵润色
[考研] 中科院材料273求调剂 +4 yzydy 2026-03-15 4/200 2026-03-16 15:59 by Gaodh_82
[考研] 22408总分284求调剂 +3 InAspic 2026-03-13 3/150 2026-03-15 11:10 by zhq0425
[考研] 070305求调剂 +3 mlpqaz03 2026-03-14 4/200 2026-03-15 11:04 by peike
信息提示
请填处理意见