24小时热门版块排行榜    

Znn3bq.jpeg
查看: 808  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 求助071001调剂!!! +7 黄守松 2026-04-05 8/400 2026-04-09 09:07 by 徐良白眉大侠
[考研] 调剂 +10 月@163.com 2026-04-08 10/500 2026-04-09 08:38 by 5268321
[考研] 材料工程调剂 +9 小刘同学吖吖 2026-04-06 10/500 2026-04-09 08:34 by byk122723822
[考研] 材料考研求调剂总分280 +30 mkjlz1 2026-04-06 35/1750 2026-04-08 21:25 by cyh—315
[考研] 085501机械英二77总分294求调剂,接受跨专业学习 +5 守法公民亓纪 2026-04-08 5/250 2026-04-08 21:19 by bljnqdcc
[考研] 求调剂 +14 张zic 2026-04-05 15/750 2026-04-08 16:14 by 一只好果子?
[考研] 283求调剂 +19 A child 2026-04-04 19/950 2026-04-08 14:26 by xingguangj
[考博] 申博 +8 IQwQl 2026-04-04 8/400 2026-04-08 09:43 by 0608104024
[考研] 312求调剂 +4 Say Never 2026-04-04 4/200 2026-04-08 08:41 by barlinike
[考研] 363求调剂 +9 zh096 2026-04-04 9/450 2026-04-07 21:51 by 418490947
[考研] 一志愿郑州大学材料与化工085600,求调剂 +34 吃的不少 2026-04-02 34/1700 2026-04-07 20:01 by lrll?l
[考研] 专硕085403,291分,有两篇专利,一国一奖 +3 哈吉咪哈吉咪 2026-04-07 3/150 2026-04-07 18:21 by 蓝云思雨
[考研] 22408 调剂材料 +7 我叫ez 2026-04-06 8/400 2026-04-07 17:12 by 蓝云思雨
[考研] 313求调剂 +5 海日海日 2026-04-04 5/250 2026-04-05 15:52 by jndximd
[考研] 调剂 +3 好好读书。 2026-04-02 3/150 2026-04-05 13:02 by arrow8852
[考研] 333求调剂 +12 wfh030413@ 2026-04-03 13/650 2026-04-04 21:02 by jj987
[考研] 289-求调剂 +4 这里是_ 2026-04-03 4/200 2026-04-03 14:23 by 1753564080
[考研] 303求调剂 +3 一色清羽 2026-04-02 4/200 2026-04-03 10:22 by 蓝云思雨
[考研] 295求调剂 +7 愿旅途永远坦然 2026-04-02 7/350 2026-04-03 08:22 by fangshan711
[考研] 085600,320分求调剂 +6 大馋小子 2026-04-02 6/300 2026-04-02 21:54 by dongzh2009
信息提示
请填处理意见