24小时热门版块排行榜    

查看: 862  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +8 医学老男孩 2026-08-13 23/1150 2026-08-13 20:42 by 医学老男孩
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +9 Tide man 2026-08-10 10/500 2026-08-13 20:33 by 温淼淼淼
[硕博家园] 一作与独作在应聘高校教师时区别大吗 +3 mbygzh 2026-08-08 4/200 2026-08-13 19:31 by 龙-樱
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 28/1400 2026-08-13 17:51 by 医学老男孩
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +9 家与远方 2026-08-10 14/700 2026-08-13 09:41 by 臭臭不臭01
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +22 Lanmanbaby 2026-08-09 36/1800 2026-08-12 22:50 by sdfapple719
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 关于代码变化问题,想知道的进来 +17 且听虎啸 2026-08-07 24/1200 2026-08-10 18:35 by zhangduo2008
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
[基金申请] fileCode有新解读? +10 Tide man 2026-08-08 18/900 2026-08-09 12:55 by 仁砚薪传
[基金申请] 化学口download_prp&amp;fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
信息提示
请填处理意见