24小时热门版块排行榜    

查看: 1843  |  回复: 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的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

引用回帖:
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的回帖
查看全部 8 个回答

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
约束条件是非线性的。
对于非线性约束情况,fmincon按附图1中格式调用。
附图1中正是一个例子。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2014-11-05 21:21:38
已阅   回复此楼   关注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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 建议基金发布提前给出明确的时间点 +11 kulium 2026-08-21 14/700 2026-08-24 02:12 by 流流伤
[基金申请] 范进中举一文的中心思想 +4 炎黄贵胄 2026-08-22 5/250 2026-08-24 02:09 by 流流伤
[基金申请] 2026国自然函评费到账 +16 羊腰板 2026-08-21 17/850 2026-08-23 23:02 by tianxiaochun
[基金申请] 让我中一个面上吧! +12 大萍1987 2026-08-20 15/750 2026-08-23 20:44 by 大萍1987
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +4 process2012 2026-08-23 5/250 2026-08-23 19:58 by jurkat.1640
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
[基金申请] 今天放榜吗? +15 布布和一二 2026-08-19 16/800 2026-08-23 09:55 by 张春生
[基金申请] filecode,4个jtjc了 +13 ziyangfang 2026-08-19 16/800 2026-08-22 17:08 by WH3796
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[基金申请] 放榜前的不淡定 40+4 snowwithsea 2026-08-19 14/700 2026-08-21 23:51 by cratir
[基金申请] 今日不放榜?网传国自然预计 8 月 27 日可查结果 +16 医学老男孩 2026-08-20 20/1000 2026-08-21 21:13 by Ldrop2023
[基金申请] 科研孤儿太难了 +17 我4大白菜 2026-08-20 18/900 2026-08-21 20:57 by zhangev
[基金申请] 时间戳又变了 +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by 紫杉醇
[论文投稿] 投稿咨询 +5 wwm09 2026-08-17 7/350 2026-08-21 10:11 by 期刊论文帮手
[基金申请] 今天放榜没戏了吧 +9 yuleib84 2026-08-19 11/550 2026-08-21 10:06 by gltch
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
[基金申请] 估计是周四 +3 archvillain 2026-08-18 3/150 2026-08-21 01:48 by jnhyjjm
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
信息提示
请填处理意见