24小时热门版块排行榜    

查看: 1727  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

如瑜?运�

银虫 (初入文坛)

[求助] matlab优化设计目标函数复杂,求帮助 已有2人参与

我优化程序的本意是想在两条曲线取j个点,在y相等的情况下,两条曲线对应的x的差的总和值最小,但是好像目标函数太复杂,计算出的结果就迭代一次,根本就不是想要的结果,求高手帮忙呀,看看程序的问题再哪里,我用的是fmincon的优化,下面是我的程序
主函数
CODE:
clc;clear;
%format long;
A=[-1 0;0 -1];b=[0;0];
%A=[0 -zp/rp;0 zp/rp;1 0;-1 0];b=[-c1;c2;rp*(sin(pi/zp))/d1;-rp*(sin(pi/zp))/d2];
%lb=[1;0.6];ub=[7;3];
[x,fval,exitflag,output]=fmincon(@xiuxingOptimFun,[0.1 0.1],A,b,[],[],[0;0],[1.5;1.5],@xiuxingConFun)
%画图
rp=72.5;
rrp=4;
a=1.4;
zc=43;
zp=44;
data=0.14*pi/180;
kd1=a*zp/(rp);
for pha=0:0.002*pi/zc:pi/zc
s1=1+kd1^2-2*kd1.*cos(pha);
i=zp/zc;
xd5=(rp-rrp.*s1.^(-1/2)).*cos((1-i).*pha-data)-(a/rp).*(rp-zp*(rrp).*s1.^(-1/2)).*cos(i.*pha+data);
yd5=(rp-rrp.*s1.^(-1/2)).*sin((1-i).*pha-data)+(a/rp).*(rp-zp*(rrp).*s1.^(-1/2)).*sin(i.*pha+data);
xd7=(rp-rrp.*s1.^(-1/2)).*cos((1-i).*pha)-(a/rp).*(rp-zp*(rrp).*s1.^(-1/2)).*cos(i.*pha);
yd7=(rp-rrp.*s1.^(-1/2)).*sin((1-i).*pha)+(a/rp).*(rp-zp*(rrp).*s1.^(-1/2)).*sin(i.*pha);
%plot(x,y,'-','linewidth',3);
%plot(x,y,'-');
%hold on
kd2=a*zp/(rp+x(2));
s2=1+kd2^2-2*kd2.*cos(pha);
xd6=(rp+x(2)-(rrp+x(1)).*s2.^(-1/2)).*cos((1-i).*pha)-(a/(rp+x(2))).*(rp+x(2)-zp*(rrp+x(1)).*s2.^(-1/2)).*cos(i.*pha);
yd6=(rp+x(2)-(rrp+x(1)).*s2.^(-1/2)).*sin((1-i).*pha)+(a/(rp+x(2))).*(rp+x(2)-zp*(rrp+x(1)).*s2.^(-1/2)).*sin(i.*pha);
plot(xd5,yd5,'r');
hold on
plot(xd6,yd6);
hold on
plot(xd7,yd7,'g');
hold on
end

下面这个是目标函数
CODE:
function y=xiuxingOptimFun(x)

rp=72.5;
rrp=4;
a=1.4;
zc=43;
zp=44;
P=zeros(1,10000);
xd1=P;
yd1=P;
xd2=P;
yd2=P;
yd3=P;
yd4=0;
m=1;
j=1;
data=0.14*pi/180;
kd1=a*zp/(rp);
for pha=0:0.0002*pi/zc:pi/zc
s1=1+kd1^2-2.*kd1.*cos(pha);
i=zp/zc;
xd1(j)=(rp-rrp.*s1.^(-1/2)).*cos((1-i).*pha-data)-(a/rp).*(rp-zp*(rrp).*s1.^(-1/2)).*cos(i.*pha+data);
yd1(j)=(rp-rrp.*s1.^(-1/2)).*sin((1-i).*pha-data)+(a/rp).*(rp-zp*(rrp).*s1.^(-1/2)).*sin(i.*pha+data);

%plot(x,y,'-','linewidth',3);
%plot(x,y,'-');
%hold on
kd2=a*zp./(rp+x(2));
s2=1+kd2^2-2.*kd2.*cos(pha);
xd2(j)=(rp+x(2)-(rrp+x(1)).*s2.^(-1/2)).*cos((1-i).*pha)-(a/(rp+x(2))).*(rp+x(2)-zp*(rrp+x(1)).*s2.^(-1/2)).*cos(i.*pha);
yd2(j)=(rp+x(2)-(rrp+x(1)).*s2.^(-1/2)).*sin((1-i).*pha)+(a/(rp+x(2))).*(rp+x(2)-zp*(rrp+x(1)).*s2.^(-1/2)).*sin(i.*pha);
j=j+1;
end
for k=1:1:j-1
    for o=1:1:j-1
       if(yd1(k)-yd2(o)<=0.01)
          yd3(m)=abs(xd1(k)-xd2(o));
          yd4=yd4+yd3(m);
          m=m+1;
       end
    end
end
%plot(x,y,'-','linewidth',3);
%plot(x,y,'-');
%hold on
y=yd4;

约束条件
CODE:
function [c,ceq]=xiuxingConFun(x)
c=[];
ceq=x(1)-x(2)-0.02;

回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

把你的问题用文字图片简明扼要描述清楚,已知参数、数据、目标函数、约束条件、待求参数等,直接放Matlab代码不知道有几个人愿意根据代码去还原原问题?
3楼2014-12-08 16:45:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

如瑜?运�

银虫 (初入文坛)

怎么没人理呀,求帮助
2楼2014-12-08 15:14:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

???????:
2?: Originally posted by ?????? at 2014-12-08 15:14:59
????????????????

???????????ga?????
???????1stopt?????????
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2014-12-08 17:05:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

如瑜?运�

银虫 (初入文坛)

引用回帖:
3楼: Originally posted by dingd at 2014-12-08 16:45:23
把你的问题用文字图片简明扼要描述清楚,已知参数、数据、目标函数、约束条件、待求参数等,直接放Matlab代码不知道有几个人愿意根据代码去还原原问题?

您好,优化程序的本意是曲线1(xd1,yd1),与曲线2(xd2,yd2),方程为
xd1(j)=(rp-rrp.*s1.^(-1/2)).*cos((1-i).*pha-data)-(a/rp).*(rp-zp*(rrp).*s1.^(-1/2)).*cos(i.*pha+data);
yd1(j)=(rp-rrp.*s1.^(-1/2)).*sin((1-i).*pha-data)+(a/rp).*(rp-zp*(rrp).*s1.^(-1/2)).*sin(i.*pha+data);
xd2(j)=(rp+x(2)-(rrp+x(1)).*s2.^(-1/2)).*cos((1-i).*pha)-(a/(rp+x(2))).*(rp+x(2)-zp*(rrp+x(1)).*s2.^(-1/2)).*cos(i.*pha);
yd2(j)=(rp+x(2)-(rrp+x(1)).*s2.^(-1/2)).*sin((1-i).*pha)+(a/(rp+x(2))).*(rp+x(2)-zp*(rrp+x(1)).*s2.^(-1/2)).*sin(i.*pha);

这两段曲线上面分别有j个点,使用以下的循环嵌套,判断在yd1=yd2相等的情况下,xd1-xd2的差值加起来最小
for k=1:1:j-1
    for o=1:1:j-1
       if(yd1(k)-yd2(o)<=0.01)
          yd3(m)=abs(xd1(k)-xd2(o));
          yd4=yd4+yd3(m);
          m=m+1;
       end
    end
end
最后输出yd4的值作为目标函数,但是好像目标函数太复杂,计算出的结果就迭代一次,这个您看懂了吗,求高手帮忙
5楼2014-12-09 14:36:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[文学芳草园] 厉娜 +3 张丹枫1991 2026-11-09 3/150 2026-11-09 14:58 by 天下第一剑
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 kvewwGtKktqB 2026-11-04 12/600 2026-11-09 13:26 by Equinoxhua
[考研] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 ttH3f1oA6ace 2026-11-04 15/750 2026-11-09 13:19 by Equinoxhua
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +5 5sJFDKp2kwuI 2026-11-06 16/800 2026-11-09 11:47 by GwrQVVR6Oenx
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 5sJFDKp2kwuI 2026-11-06 15/750 2026-11-09 11:41 by GwrQVVR6Oenx
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 5sJFDKp2kwuI 2026-11-06 10/500 2026-11-09 08:00 by IhnEQauGmT3K
[考研] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 5sJFDKp2kwuI 2026-11-06 12/600 2026-11-09 06:32 by l48hFd8Nwae2
[公派出国] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 5sJFDKp2kwuI 2026-11-06 8/400 2026-11-09 00:14 by l48hFd8Nwae2
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 5sJFDKp2kwuI 2026-11-06 8/400 2026-11-08 23:01 by l48hFd8Nwae2
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +5 5sJFDKp2kwuI 2026-11-06 9/450 2026-11-08 22:46 by l48hFd8Nwae2
[教师之家] 延安大学回应“副教授留绝笔信”:确已离世,正核实举报内容 +3 yexuqing 2026-11-04 5/250 2026-11-07 13:22 by 苏东坡二世
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +5 ttH3f1oA6ace 2026-11-04 10/500 2026-11-06 16:12 by 5sJFDKp2kwuI
[公派出国] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +6 ttH3f1oA6ace 2026-11-04 12/600 2026-11-06 16:10 by 5sJFDKp2kwuI
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 ttH3f1oA6ace 2026-11-04 11/550 2026-11-06 16:10 by 5sJFDKp2kwuI
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 kvewwGtKktqB 2026-11-04 14/700 2026-11-06 05:10 by qL1cU46YIdK0
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +6 kvewwGtKktqB 2026-11-04 16/800 2026-11-06 05:00 by qL1cU46YIdK0
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ttH3f1oA6ace 2026-11-04 7/350 2026-11-06 02:13 by qL1cU46YIdK0
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 ttH3f1oA6ace 2026-11-04 10/500 2026-11-06 02:04 by qL1cU46YIdK0
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ttH3f1oA6ace 2026-11-04 9/450 2026-11-06 02:02 by qL1cU46YIdK0
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 hNpp4Y2CGvSC 2026-11-04 12/600 2026-11-06 01:53 by qL1cU46YIdK0
信息提示
请填处理意见