24小时热门版块排行榜    

查看: 1659  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 304求调剂 +4 素年祭语 2026-03-15 4/200 2026-03-16 09:42 by 闲人终南山
[考研] 290求调剂 +5 孔志浩 2026-03-12 10/500 2026-03-16 09:01 by 余晖&
[考研] 311求调剂 +6 冬十三 2026-03-15 6/300 2026-03-16 08:00 by wang_dand
[考研] 材料专硕326求调剂 +4 墨煜姒莘 2026-03-15 4/200 2026-03-15 11:02 by dyw
[考研] 080500,材料学硕302分求调剂学校 +4 初识可乐 2026-03-14 5/250 2026-03-14 21:08 by peike
[考研] 一志愿哈工大材料324分求调剂 +5 闫旭东 2026-03-14 5/250 2026-03-14 14:53 by 木瓜膏
[考研] 云南财经大学信息学院计算机学硕专硕学位点 +3 zjptai 2026-03-10 5/250 2026-03-14 01:23 by 飞行琦
[考研] 一志愿郑大070303,338分,求调剂 +4 dadawaf 2026-03-10 5/250 2026-03-14 01:20 by lsw010101
[考研] 求调剂 +6 yfihxh 2026-03-09 6/300 2026-03-14 01:18 by JourneyLucky
[考研] 341求调剂 +4 番茄头--- 2026-03-10 4/200 2026-03-13 23:12 by JourneyLucky
[考研] 085600调剂 +5 漾漾123sun 2026-03-12 5/250 2026-03-13 22:06 by 星空星月
[考研] 333求调剂 +3 球球古力 2026-03-11 3/150 2026-03-13 21:27 by JourneyLucky
[考研] 315求调剂 +9 小羊小羊_ 2026-03-11 10/500 2026-03-13 21:13 by SXNU李老师
[考研] 293求调剂 +3 世界首富 2026-03-11 3/150 2026-03-13 16:27 by JourneyLucky
[考研] 0856化工原理 +6 z2839474511 2026-03-10 6/300 2026-03-13 10:41 by houyaoxu
[考研] 283求调剂,材料、化工皆可 +8 苏打水7777 2026-03-11 10/500 2026-03-13 09:06 by Linda Hu
[考研] 333求调剂 +3 152697 2026-03-12 4/200 2026-03-13 07:08 by Iveryant
[考研] 哈工大材料324求调剂 +6 闫旭东 2026-03-10 8/400 2026-03-10 22:49 by 星空星月
[考研] 298求调剂 +3 Vv呀! 2026-03-10 3/150 2026-03-10 22:40 by 剑诗杜康
[考研] 0856材料与化工353分求调剂 +11 NIFFFfff 2026-03-09 11/550 2026-03-10 18:36 by suyuanhai
信息提示
请填处理意见