24小时热门版块排行榜    

查看: 2775  |  回复: 9

zhanghui10

银虫 (小有名气)

[求助] 求助有关Matlab有约束非线性最优化问题

我现在进行一个有约束的非线性最优化,但是变量较多,我写了下面一段程序
定义目标函数
function f=myfun1(x)
ds=4.77;dr=2.36;
f=(ds*x(20)-dr*x(10))/(ds*x(20)+dr*x(10))-(x(1)-x(11))/(x(1)+x(11))
定义约束
function [c,ceq]=mycon1(x)
dr=4.77;dr=2.36;b=0.001;m=0.5.*b;w0=60.4;o0=100;f=41.7;
c=[w1.*dr.*x(1)+o1.*x(1)-o2.*x(2);w2.*dr.*x(2)+o2.*x(2)-w1.*dr.*x(1)-o3.*x(3);w3.*dr.*x(3)+o3.*x(3)-w2.*dr.*x(2)-o3.*x(4);w4.*dr.*x(4)+o4.*x(4)-w3.*dr.*x(3)-o3.*x(5);w5.*dr.*x(5)+o5.*x(5)-w4.*dr.*x(4)-o6.*x(6)-f.*m;w6.*dr.*x(6)+o6.*x(6)-w5.*dr.*x(5)-o7.*x(7);w7.*dr.*x(7)+o7.*x(7)-w6.*dr.*x(6)-o8.*x(8);w8.*dr.*x(8)+o8.*x(8)-w7.*dr.*x(7)-o9.*x(9);w9.*dr.*x(9)+o9.*x(9)-w8.*dr.*x(8)-o10.*x(10);w10.*dr.*x(10)+o10.*x(10)-w9.*dr.*x(9);w1.*ds.*x(11)+o1.*x(11)-o2.*x(12);w2.*ds.*x(12)+o2.*x(12)-w1.*ds.*x(11)-o3.*x(13);w3.*ds.*x(13)+o3.*x(13)-w2.*ds.*x(12)-o4.*x(14);w4.*ds.*x(14)+o4.*x(14)-w3.*ds.*x(13)-o5.*x(15);w5.*ds.*x(15)+o5.*x(15)-w4.*ds.*x(14)-o6.*x(16)-f.*m;w6.*dr.*x(16)+o6.*x(16)-w5.*dr.*x(15)-o7.*x(17);w7.*dr.*x(17)+o7.*x(17)-w6.*dr.*x(16)-o8.*x(18);w8.*dr.*x(18)+o8.*x(18)-w7.*dr.*x(17)-o9.*x(19);w9.*dr.*x(19)+o9.*x(19)-w8.*dr.*x(18)-o10.*x(20);w10.*dr.*x(20)+o10.*x(20)-w9.*dr.*x(19);w10.*dr.*x(20)+o1.*x(11)-f.*m;w10.*ds.*x(10)+o1.*x(1)-f.*m;w0+o0+f-w10-o1];
ceq=0;
主程序为:
b=0.001; x0=[0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b;0.1.*b];
lb=zeros(20,1);
[x,fval,exitflag,output]=fmincon('myfun1',x0,[],[],[],[],lb,[],'mycon1')
但是运行结果为
??? Error using ==> fmincon
FMINCON cannot continue because user supplied objective function failed with the following error:
Error using ==> feval
Undefined command/function 'myfun1'.

请问这是啥原因啊,是不是程序写错啦啊。
回复此楼

» 猜你喜欢

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

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

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

你的约束条件里面w1-w10 和o1-o10的值没有定义值
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
2楼2011-11-22 23:10:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

保存为m文件后,点击run
CODE:
function AA
b=0.001;
x0=b*rand(1,20);
lb=zeros(20,1);
[x,fval,exitflag,output]=fmincon(@myfun1,x0,[],[],[],[],lb,[],@mycon1)

function f=myfun1(x)
ds=4.77;dr=2.36;
f=(ds*x(20)-dr*x(10))/(ds*x(20)+dr*x(10))-(x(1)-x(11))/(x(1)+x(11))

function [c,ceq]=mycon1(x)
ds=4.77;dr=2.36;b=0.001;m=0.5.*b;w0=60.4;o0=100;f=41.7;
w1=1;w2=2;w3=3;w4=4;w5=5;w6=6;w7=7;w8=8;w9=9;w10=10;%输入w1-w10的值
o1=1;o2=2;o3=3;o4=4;o5=5;o6=6;o7=7;o8=8;o9=9;o10=10;%输入o1-o10的值
c=[w1.*dr.*x(1)+o1.*x(1)-o2.*x(2);w2.*dr.*x(2)+o2.*x(2)-w1.*dr.*x(1)-o3.*x(3);...
    w3.*dr.*x(3)+o3.*x(3)-w2.*dr.*x(2)-o3.*x(4);w4.*dr.*x(4)+o4.*x(4)-...
    w3.*dr.*x(3)-o3.*x(5);w5.*dr.*x(5)+o5.*x(5)-w4.*dr.*x(4)-o6.*x(6)-...
    f.*m;w6.*dr.*x(6)+o6.*x(6)-w5.*dr.*x(5)-o7.*x(7);w7.*dr.*x(7)+o7.*x(7)-...
    w6.*dr.*x(6)-o8.*x(8);w8.*dr.*x(8)+o8.*x(8)-w7.*dr.*x(7)-o9.*x(9);w9.*dr.*x(9)+...
    o9.*x(9)-w8.*dr.*x(8)-o10.*x(10);w10.*dr.*x(10)+o10.*x(10)-w9.*dr.*x(9);...
    w1.*ds.*x(11)+o1.*x(11)-o2.*x(12);w2.*ds.*x(12)+o2.*x(12)-w1.*ds.*x(11)-...
    o3.*x(13);w3.*ds.*x(13)+o3.*x(13)-w2.*ds.*x(12)-o4.*x(14);w4.*ds.*x(14)+...
    o4.*x(14)-w3.*ds.*x(13)-o5.*x(15);w5.*ds.*x(15)+o5.*x(15)-w4.*ds.*x(14)-...
    o6.*x(16)-f.*m;w6.*dr.*x(16)+o6.*x(16)-w5.*dr.*x(15)-o7.*x(17);...
    w7.*dr.*x(17)+o7.*x(17)-w6.*dr.*x(16)-o8.*x(18);w8.*dr.*x(18)+o8.*x(18)-...
    w7.*dr.*x(17)-o9.*x(19);w9.*dr.*x(19)+o9.*x(19)-w8.*dr.*x(18)-o10.*x(20);...
    w10.*dr.*x(20)+o10.*x(20)-w9.*dr.*x(19);w10.*dr.*x(20)+o1.*x(11)-...
    f.*m;w10.*ds.*x(10)+o1.*x(1)-f.*m;w0+o0+f-w10-o1];
ceq=[];

The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
3楼2011-11-22 23:18:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhanghui10

银虫 (小有名气)

w1-w10,o1-o10不能通过w0,o0与x(1),x(10)的关系输出嘛。
4楼2011-11-23 08:34:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

引用回帖:
4楼: Originally posted by zhanghui10 at 2011-11-23 08:34:24:
w1-w10,o1-o10不能通过w0,o0与x(1),x(10)的关系输出嘛。

又不是解方程 ,怎么输出约束条件里的参数
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
5楼2011-11-23 08:52:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhanghui10

银虫 (小有名气)

我的那个w1-w10与o1,o10都是未知的,就w0,o0已知,那应该怎样做啊
6楼2011-11-23 09:22:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

zhanghui10(金币+10): 2011-11-25 21:07:15
引用回帖:
6楼: Originally posted by zhanghui10 at 2011-11-23 09:22:51:
我的那个w1-w10与o1,o10都是未知的,就w0,o0已知,那应该怎样做啊

你可以分析下你的约束条件,目标函数只有x20 x10 x1 x11其他的关于x约束对好象由x1是一级一级传递到x20,这本身就是比较复杂问题,w 和o与x看样子是对应的,你还是要找个模型估计下,至少通过上面优化是解不出来。

» 本帖已获得的红花(最新10朵)

The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
7楼2011-11-23 11:24:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

雨夜漫步

禁虫 (正式写手)

送鲜花一朵
本帖内容被屏蔽

8楼2012-07-05 22:02:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Fibo101215

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by dbb627 at 2011-11-22 23:18:39
保存为m文件后,点击run

function AA
b=0.001;
x0=b*rand(1,20);
lb=zeros(20,1);
=fmincon(@myfun1,x0,[],[],[],[],lb,[],@mycon1)

function f=myfun1(x)
ds=4.77;dr=2.36;
f=(ds*x(20)-dr*x(10))/(d ...

您好,有关matlab的问题还想请教您一下。。
我的公式是这样的:y=[a*(t^2-e*t^2)+b*(2-t^2+e*t^2)*T1-(1-t*e-t^2+e*t^2)T2]/t*e
里面的e、t和y都是数组,T1为已知标量待输入,T2也是已知标量待输入,a、b是这个已知公式里需要优化的参数,我想请教的是:如果我想用lsqcurvefit这个函数或者其他函数或者DIY编码该如何进行编程,因为就目前而言我还处于菜鸟阶段,感激不尽~感激不尽!!!
9楼2012-09-06 11:38:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

李迹

新虫 (小有名气)

max f(x1,x2)  arccos(x1*(sqrt(1-x1.^2+x2.^2))./x2)
s.t  0.0872≤x1≤0.1392
      0.75≤x2≤1.25

您好,请问这个用MATLAB优化,如何编写程序
10楼2014-10-09 15:06:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhanghui10 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 290求调剂 +10 ADT 2026-03-11 10/500 2026-03-18 11:00 by 哦哦123
[考研] 0703化学调剂 +3 妮妮ninicgb 2026-03-17 3/150 2026-03-18 10:29 by macy2011
[考研] 0703化学调剂 ,六级已过,有科研经历 +9 曦熙兮 2026-03-15 9/450 2026-03-18 10:23 by macy2011
[考研] 304求调剂 +11 小熊joy 2026-03-14 12/600 2026-03-18 09:59 by macy2011
[教师之家] 焦虑 +8 水冰月月野兔 2026-03-13 10/500 2026-03-18 09:21 by 咪呜喵呜
[考研] 277调剂 +5 自由煎饼果子 2026-03-16 6/300 2026-03-17 19:26 by 李leezz
[考研] 301求调剂 +4 A_JiXing 2026-03-16 4/200 2026-03-17 17:32 by ruiyingmiao
[硕博家园] 湖北工业大学 生命科学与健康学院-课题组招收2026级食品/生物方向硕士 +3 1喜春8 2026-03-17 5/250 2026-03-17 17:18 by ber川cool子
[考研] 332求调剂 +6 Zz版 2026-03-13 6/300 2026-03-17 17:03 by ruiyingmiao
[考研] 【0856】化学工程(085602)313 分,本科学科评估A类院校化学工程与工艺,诚求调剂 +7 小刘快快上岸 2026-03-11 8/400 2026-03-17 16:57 by ruiyingmiao
[考研] 有没有道铁/土木的想调剂南林,给自己招师弟中~ +3 TqlXswl 2026-03-16 7/350 2026-03-17 15:23 by TqlXswl
[考研] 材料工程专硕274一志愿211求调剂 +6 薛云鹏 2026-03-15 6/300 2026-03-17 11:05 by 学员h26Tkc
[考研] 化学调剂0703 +8 啊我我的 2026-03-11 8/400 2026-03-16 17:23 by 我的船我的海
[考研] 一志愿985,本科211,0817化学工程与技术319求调剂 +5 Liwangman 2026-03-15 5/250 2026-03-16 17:10 by 我的船我的海
[考研] 一志愿211 0703方向310分求调剂 +3 努力奋斗112 2026-03-15 3/150 2026-03-16 16:44 by houyaoxu
[考研] 318求调剂 +3 Yanyali 2026-03-15 3/150 2026-03-16 16:41 by houyaoxu
[考研] 265求调剂 +4 威化饼07 2026-03-12 4/200 2026-03-14 17:23 by userper
[考研] 材料080500调剂求收留 +3 一颗meteor 2026-03-13 3/150 2026-03-14 10:54 by peike
[考研] 材料与化工085600调剂求老师收留 +9 jiaanl 2026-03-11 9/450 2026-03-13 20:22 by JourneyLucky
[考研] 308求调剂 +3 是Lupa啊 2026-03-12 3/150 2026-03-13 14:30 by 求调剂zz
信息提示
请填处理意见