24小时热门版块排行榜    

查看: 1792  |  回复: 7

muyouyou

新虫 (初入文坛)

[求助] matlab优化求解中遇到问题,望大神指点。。。 已有1人参与

在matlab中
目标函数function=myfun(x)
f=0.5*1.935*10^(-5)*x(1)^2*x(2)*(x(3)+1.5)+0.5*5.75*x(2)^3*x(3)/x(1)^4;
约束条件function[C,Ceq]=mycon(x)
c=[1.35*10^(5)/x(1)+12.76*10^(6)*x(2)^2-6.9*10^5*x(1)*x(2)/(12.56*x(1)^3*x(2)-12.56*x(1)^4);x(1)^2*10^10/(x(2)*x(3));(x(1)*x(3)+x(1))/x(2)+86.25*10^3/x(2);x(1)*x(3)+1.5*x(1)-215];
ceq=[];
主程序:
x0=[38.6 191 4.06];
lb=[25 185 3.5];
ub=[40 250 7.0];
options=optimset('LargeScale','off');
[x,fval]=fmincon(‘myfun’,x0,[],[],[],[],lb,ub,'mycon')
运行结果为:??? Error using ==> fmincon
FMINCON cannot continue because user supplied nonlinear constraint function
failed with the following error:
One or more output arguments not assigned during call to 'F:\software\matlab\work\mycon.m (mycon)'.
本人初接触matlab,总是出现这种错误,不知是怎么回事。望高手指点。。。
回复此楼

» 猜你喜欢

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

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

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
约束条件是非线性的。
对于非线性约束情况,fmincon按附图1中格式调用。
附图1中正是一个例子。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2014-11-05 21:21:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

引用回帖:
2楼: Originally posted by 月只蓝 at 2014-11-05 21:21:38
约束条件是非线性的。
对于非线性约束情况,fmincon按附图1中格式调用。
附图1中正是一个例子。

重新上传附图1。
matlab优化求解中遇到问题,望大神指点。。。
附图1.png

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
3楼2014-11-05 21:22:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

muyouyou

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by 月只蓝 at 2014-11-05 21:22:11
重新上传附图1。

附图1.png
...

function Fmincon
>>clear all;clc
>> x0=[38.6 191 4.06];
>> lb=[25 185 3.5];
>> ub=[40 250 7.0];
>> [x,fval]=fmincon(@func,x0,[],[],[],[],lb,ub,@NlinCons)
%---------------------------------------------------------
function[C,Ceq]=NlinCons(x)
c=[1.35*10^(5)/x(1)+12.76*10^(6)*x(2)^2-6.9*10^5*x(1)*x(2)/(12.56*x(1)^3*x(2)-12.56*x(1)^4);x(1)^2*10^10/(x(2)*x(3));(x(1)*x(3)+x(1))/x(2)+86.25*10^3/x(2);x(1)*x(3)+1.5*x(1)-215];
ceq=[];
%---------------------------------------------------------
functionf=func(x)
f=0.5*1.935*10^(-5)*x(1)^2*x(2)*(x(3)+1.5)+0.5*5.75*x(2)^3*x(3)/x(1)^4
我按你给的步骤计算了一下,结果是??? Error: File: F:\software\matlab\work\Fmincon.m Line: 3 Column: 1
Missing variable or function..是怎么回事呢?谢谢你了。。。
4楼2014-11-06 09:32:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

引用回帖:
4楼: Originally posted by muyouyou at 2014-11-06 09:32:10
function Fmincon
>>clear all;clc
>> x0=;
>> lb=;
>> ub=;
>> =fmincon(@func,x0,[],[],[],[],lb,ub,@NlinCons)
%------------------------------------------------------ ...

CODE:
function test_1106
clear all;clc,format long
tic,
x0=[38.6 191 4.06];
lb=[25 185 3.5];
ub=[40 250 7.0];
OPTIONS=optimset('MaxFunEvals',5000,'TolFun',1e-6,'TolX',1e-6,'Algorithm','active-set');%,'Algorithm','interior-point','sqp','active-set');
[x,fval]=fmincon(@func,x0,[],[],[],[],lb,ub,@NlinCons,OPTIONS);
[ff fff]=NlinCons(x);
fprintf('\n\n计算结果:\n');
fprintf(' \t目标函数值 fval = %.6e\n\n',fval);
fprintf(' \t约束条件1函数值 f1 = %.6e\n',ff(1));
fprintf(' \t约束条件2函数值 f2 = %.6e\n',ff(2));
fprintf(' \t约束条件3函数值 f3 = %.6e\n',ff(3));
fprintf(' \t约束条件4函数值 f4 = %.6e\n',ff(4));
fprintf('\n\t参数 x1 = %.6f',x(1))
fprintf('\n\t参数 x2 = %.6f',x(2))
fprintf('\n\t参数 x3 = %.6f',x(3))
%---------------------------------------------------------
function[C,Ceq]=NlinCons(x)
C=[1.35*10^(5)/x(1)+12.76*10^(6)*x(2)^2-6.9*10^5*x(1)*x(2)/(12.56*x(1)^3*x(2)-12.56*x(1)^4);x(1)^2*10^10/(x(2)*x(3));(x(1)*x(3)+x(1))/x(2)+86.25*10^3/x(2);x(1)*x(3)+1.5*x(1)-215];
Ceq=[];

%C=[];
%Ceq=[1.35*10^(5)/x(1)+12.76*10^(6)*x(2)^2-6.9*10^5*x(1)*x(2)/(12.56*x(1)^3*x(2)-12.56*x(1)^4);x(1)^2*10^10/(x(2)*x(3));(x(1)*x(3)+x(1))/x(2)+86.25*10^3/x(2);x(1)*x(3)+1.5*x(1)-215];

%---------------------------------------------------------
function f=func(x)
f=0.5*1.935*10^(-5)*x(1)^2*x(2)*(x(3)+1.5)+0.5*5.75*x(2)^3*x(3)/x(1)^4;
toc

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
5楼2014-11-06 09:57:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

引用回帖:
4楼: Originally posted by muyouyou at 2014-11-06 09:32:10
function Fmincon
>>clear all;clc
>> x0=;
>> lb=;
>> ub=;
>> =fmincon(@func,x0,[],[],[],[],lb,ub,@NlinCons)
%------------------------------------------------------ ...

5楼的代码全部复制进一个m文件,运行即可。运行成功之前,一个字母都不要改。
运行成功后,你再看看,是否可以改改初值。
特别需要注意的是,请检查约束条件中的等式约束和非等式约束是否定义正确。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
6楼2014-11-06 09:59:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

muyouyou

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by 月只蓝 at 2014-11-06 09:59:48
5楼的代码全部复制进一个m文件,运行即可。运行成功之前,一个字母都不要改。
运行成功后,你再看看,是否可以改改初值。
特别需要注意的是,请检查约束条件中的等式约束和非等式约束是否定义正确。...

知道了,特别感谢。。。
7楼2014-11-11 19:14:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

muyouyou

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by 月只蓝 at 2014-11-06 09:59:48
5楼的代码全部复制进一个m文件,运行即可。运行成功之前,一个字母都不要改。
运行成功后,你再看看,是否可以改改初值。
特别需要注意的是,请检查约束条件中的等式约束和非等式约束是否定义正确。...

x1=[21,26,31,21,26,31,21,26,31,21,26,31,21,26,31,21,26,31];
x2=[133,143,153,133,143,153,143,153,133,153,133,143,143,153,133,153,133,143];
x3=[3.9,4.4,4.9,4.4,4.9,3.9,3.9,4.4,4.9,4.9,3.9,4.4,4.9,3.9,4.4,4.4,4.9,3.9];
y=[40.69803,40.24597,39.66466,39.65027,39.3111,41.64728,39.43865,39.07176,42.09825,36.28181,42.55311,41.77374,37.45602,40.11952,43.03311,37.21668,40.57048,42.8215];
如何拟合成y=f(x1,x2,x3)的多项式,望高手指点指点。。。
8楼2014-11-11 19:28:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 muyouyou 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 9zw1gfyi7x 2026-08-01 3/150 2026-08-01 19:00 by Kddn1pB6pAzX
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 9zw1gfyi7x 2026-08-01 8/400 2026-08-01 18:50 by Kddn1pB6pAzX
[硕博家园] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 9zw1gfyi7x 2026-08-01 7/350 2026-08-01 18:50 by Kddn1pB6pAzX
[博后之家] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 9zw1gfyi7x 2026-08-01 9/450 2026-08-01 18:43 by Kddn1pB6pAzX
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 9zw1gfyi7x 2026-08-01 7/350 2026-08-01 18:42 by Kddn1pB6pAzX
[基金申请] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 9zw1gfyi7x 2026-08-01 9/450 2026-08-01 18:42 by Kddn1pB6pAzX
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 9zw1gfyi7x 2026-08-01 6/300 2026-08-01 18:37 by Kddn1pB6pAzX
[公派出国] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 9zw1gfyi7x 2026-08-01 8/400 2026-08-01 18:31 by Kddn1pB6pAzX
[公派出国] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 9zw1gfyi7x 2026-07-31 8/400 2026-08-01 18:22 by Kddn1pB6pAzX
[论文投稿] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 9zw1gfyi7x 2026-07-31 11/550 2026-08-01 18:17 by Kddn1pB6pAzX
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 9zw1gfyi7x 2026-07-31 9/450 2026-08-01 18:11 by Kddn1pB6pAzX
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 9zw1gfyi7x 2026-07-31 9/450 2026-08-01 18:10 by Kddn1pB6pAzX
[博后之家] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 jzg3xk1po8 2026-07-31 10/500 2026-08-01 17:51 by Kddn1pB6pAzX
[考博] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 jzg3xk1po8 2026-07-31 12/600 2026-08-01 17:50 by Kddn1pB6pAzX
[基金申请] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 jzg3xk1po8 2026-07-31 12/600 2026-08-01 17:50 by Kddn1pB6pAzX
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 jzg3xk1po8 2026-07-31 12/600 2026-08-01 17:43 by Kddn1pB6pAzX
[硕博家园] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 jzg3xk1po8 2026-07-31 9/450 2026-08-01 17:40 by Kddn1pB6pAzX
[基金申请] 微信指数没变化,科研之友没阅读 +14 wangze12014 2026-07-28 18/900 2026-07-31 18:35 by lzchaihuo
[基金申请] 这种情况还有戏吗 +5 drbart 2026-07-27 11/550 2026-07-29 05:50 by drbart
[基金申请] 同事接到电话了,我却没有 +4 1234567wang 2026-07-27 4/200 2026-07-28 10:11 by GOODLUCKER
信息提示
请填处理意见