shizao21 发表于 2008-8-5 17:01

求助 非线性方程组最优解的matlab编程

问题是:
目标函数:f=2*x+15*t;
s.t         66*x*y>=100;
             y>=1;
             (0.9^(y-2))*t>=1;

我用的是fmincon函数来求解,大家帮帮忙,看下哪里出了错,并帮着修改一下。

编写fop.m文件
function f=fop(x)
f=2*x(1)+15*x(3);

再编写nonlcon1.m
function =nonlcon1(x)
c=;
ce=[];

再编写testfmincon.m
clc;
x0=;
A=;
b=;
lb=;
option=optimset;option.LargeScale='off';option.Display='off';
=fmincon('fop',[],[],[],[],lb,[],'nonlcon1',option)

最后运行testfmincon,但是有错,没办法输出结果。

sigma665 发表于 2008-8-5 19:08

回复 楼主 的帖子

x应该就是你的结果吧
没办法输出结果是什么
一直在运行?

shizao21 发表于 2008-8-5 20:23

有错误,无法运行
x0,A,b,option,lb都有错,
A,b都是[],lb是';x0是';
为什么lb后面要加'?
x0是什么意思?
最后是=fmincon('fop',x0,[],[],[],[],lb,[],'nonfun')      为什么不是=.....

nonfun.m是:
function =nonlcon1(x)
c(1)=100-66*x(1)*x(2);
c(2)=1-(0.9^(x(2)-2))*x(3)];
ce=[];

shizao21 发表于 2008-8-5 20:26

最后是=fmincon('fop',x0,[],[],[],[],lb,[],'nonfun')      :hug: 为什么不用加option?
:loveliness:

sigma665 发表于 2008-8-6 09:40

原帖由 shizao21 于 2008-8-5 20:23 发表 http://www.chinavib.com/forum/images/common/back.gif
有错误,无法运行
x0,A,b,option,lb都有错,
A,b都是[],lb是';x0是';
为什么lb后面要加'?
x0是什么意思?
最后是=fmincon('fop',x0,[],[],[],[],lb,[],'nonfun')      为什么不是= ...

x0,A,b,option,lb这些数不是你自己应该给的吗
=fmincon('fop',x0,[],[],[],[],lb,[],'nonfun')      为什么不是= ... 这个有什么关系,变量名不同而已

lz 还是先去看帮助文档吧
页: [1]
查看完整版本: 求助 非线性方程组最优解的matlab编程