Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-07-24, 22:03   #1
20052110
初级会员
 
注册日期: 2008-07-24
年龄: 39
帖子: 2
声望力: 0
20052110 正向着好的方向发展
帖子 如何用matlab解决这样的非线性优化问题!

minf=-36962.04*cos(a)+15868.3*cos(a+b)-3385*cos(a+b+r)
s.t.
g1=762.5*cos(a+b+r)-1260*cos(a)-1182.5*cos(a+b)+511.5-h=0;
g2=1260*sin(a)-1182.5*sin(a+b)+762.5*sin(a+b+r)+1400=0;
g3=a-60>=0;
g4=a-180<=0;
g5=b-64>=0;
g6=b-180<=0;
g7=r-64>=0;
g8=r-180<=0;
a,b,r的初始值为:a=160.06,b=64.94,r=147.5.
h=150:50:3500,h每给一下值计算一次,以每次算出的解,即a,b,r,做为下次计算的初值,迭代计算。
关键是那个非线性等式约束中的h该如何处理,问了很多人都做不来,还望高手多多指点呀!!!!谢了先。
20052110 当前离线   回复时引用此帖
旧 2008-07-26, 10:25   #2
yfchenth2
初级会员
 
注册日期: 2008-07-03
年龄: 47
帖子: 16
声望力: 17
yfchenth2 正向着好的方向发展
默认

主程序
clc
clear
p0=[160.06 64.94 147.5];
a=[];
b=[];
aeq=[];
beq=[];
xl=[60 64 64];
xu=[180 180 180];
i=1;
global h
for h=150:50:3500
[p,fmin]=fmincon(@obcon,p0,a,b,aeq,beq,xl,xu,@constraint);
c(i,1:3)=p;
p0=p;
i=i+1;
end
c



子程序
function [g u]=constraint(x)
global h
g=[];
u=762.5*cos(x(1)+x(2)+x(3))-1260*cos(x(1))-1182.5*cos(x(1)+x(2))+511.5-h+1260*sin(x(1))-1182.5*sin(x(1)+x(2))+762.5*sin(x(1)+x(2)+x(3))+1400;
end

function y=obcon(x)
y=-36962.04*cos(x(1))+15868.3*cos(x(1)+x(2))-3385*cos(x(1)+x(2)+x(3));
yfchenth2 当前离线   回复时引用此帖
旧 2008-07-28, 10:37   #3
20052110
初级会员
 
注册日期: 2008-07-24
年龄: 39
帖子: 2
声望力: 0
20052110 正向着好的方向发展
灯泡

先谢谢这位哥们了,很高兴你能回帖
不过,为什么运行的时候前面会出现很多警告,而且用两个非线性等式约束为什么要加在一起,我看书上好像是用分号隔开的!
20052110 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
Inside MATLAB Objects in R2008a TechnicalArticles MATLAB技术文章 0 2008-10-22 02:59
人脸识别分类的问题 feiyan2000000 MATLAB论坛 0 2008-06-06 11:43
【求助】新手请教,谢谢 zhugeping MATLAB论坛 0 2007-07-15 16:01
【求助】走遍了所有的Matlab社区都没人能够解答的一个小问题 TD——SCDMA MATLAB论坛 2 2007-05-19 12:56


所有时间均为北京时间。现在的时间是 10:37


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.