24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1576  |  回复: 13

dfw1220

铜虫 (初入文坛)

[求助] 求助matlab解非线性规划。求代码。

具体题目见附件图。m
求y值的最小情况
回复此楼

» 猜你喜欢

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

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有2个 )

dfw1220

铜虫 (初入文坛)

dfw1220: 回帖置顶 2012-06-27 12:06:38
顶一个啊...
2楼2012-06-27 10:47:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dfw1220

铜虫 (初入文坛)

dfw1220: 回帖置顶 2012-07-03 15:52:42
引用回帖:
10楼: Originally posted by csgt0 at 2012-06-28 11:15:56
function dfw1220
clc
clear
k0=1-2^9:2^9;
ub=2^10*ones(1,2^10);
options=optimset('Algorithm','active-set');
k =fmincon(@caly,k0,[],[],[],[],[],ub,@nonlcon,options);
caly(k)
end

function y=c ...

不对呢,ki和i都是取整数。而且结果最后算出来应该是4096,就是2^12,我数学证明应该没错,不过非常感谢,还请你帮帮忙修改下~
11楼2012-06-28 11:30:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

dfw1220

铜虫 (初入文坛)

求y得最小值....
3楼2012-06-27 12:07:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
dfw1220: 金币+15, ★★★很有帮助, 虽然不是matlab,但也是给了一个答案的方法 2012-06-28 08:30:10
dbb627: 金币+1, 欢迎交流 2012-06-30 17:56:54
其实就是线性规划问题,求解难度不大,就是规模较大,如n=10,12和14时,求解变量达分别为:1024、4096、16384个。用1stOpt计算了n=10,m=8一组:
CODE:
Algorithm = LP;
Constant n=10, m=8;
Parameter For(i=1:2^n)(k[i]=[,2^n/i]);
MinFunction Sum(i=1:2^n)(k[i]*i^2);
            Sum(i=1:2^n)(k[i]*i)=2^n;
            Sum(i=1:2^n)(k[i])=2^m;

该线性规划的最小(Min)为:-528733802.610265152

参数值太长了,就不贴出了。
4楼2012-06-27 15:18:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dfw1220

铜虫 (初入文坛)

引用回帖:
4楼: Originally posted by dingd at 2012-06-27 15:18:53
其实就是线性规划问题,求解难度不大,就是规模较大,如n=10,12和14时,求解变量达分别为:1024、4096、16384个。用1stOpt计算了n=10,m=8一组:

Algorithm = LP;
Constant n=10, m=8;
Parameter For(i=1:2^n ...

忘了说了所有的参数都是整数。因此结果也是整数。能不能将目标化成2的指数。而且我刚才根据你的代码编译没成功,返回来的是如下?? Undefined function or variable 'LP'.

Error in ==> sum at 1
Algorithm = LP;
因为我matlab是初学...所以有很多不懂的地方,还望多多帮助
感激不尽
5楼2012-06-27 16:00:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

如果都是整数,代码略作修改如下:
CODE:
Algorithm = LP;
Constant n=10, m=8;
Parameter For(i=1:2^n)(k[i]=[,2^n/i,0]);
MinFunction Sum(i=1:2^n)(k[i]*i^2);
            Sum(i=1:2^n)(k[i]*i)=2^n;
            Sum(i=1:2^n)(k[i])=2^m;

线性规划的最小(Min)为:4096

另外1stOpt是个独立的软件,与Matlab无关。
6楼2012-06-27 20:42:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dfw1220

铜虫 (初入文坛)

引用回帖:
6楼: Originally posted by dingd at 2012-06-27 20:42:02
如果都是整数,代码略作修改如下:

Algorithm = LP;
Constant n=10, m=8;
Parameter For(i=1:2^n)(k=);
MinFunction Sum(i=1:2^n)(k*i^2);
            Sum(i=1:2^n)(k*i)=2^n;
            Sum(i=1:2^n)(k ...

你的计算结果和我理论证明结果是一样的。但是我把你的代码复制过去后,提示说2^10/1,]参数定义有误!没办法运行。我装的是1atOpt1.5注册版,不知道怎么回事。嗯,总之非常感谢的,matlab的话是不是很麻烦?
7楼2012-06-27 21:22:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

1网上的1.5版老了点,功能也缺失了不少。
8楼2012-06-27 21:38:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dfw1220

铜虫 (初入文坛)

引用回帖:
8楼: Originally posted by dingd at 2012-06-27 21:38:35
1网上的1.5版老了点,功能也缺失了不少。

呃,网上找不到破解或者更高的版本了》。。因为我写一个复杂度分析,所以要计算y的最小值情况,这会时,某算法的复杂度最大。不会用matlab,然后你这个代码不能在我现在的版本上运行...嗯,我支付金币吧,我在等等有没有会matlab帮忙一下,但算出来的结果确实和我分析出来的结果一样的。至少从实验上也验证了证明。谢谢了。
9楼2012-06-28 08:29:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
dbb627: 金币+2, 欢迎交流 2012-06-30 17:57:20
CODE:
function dfw1220
clc
clear
k0=1-2^9:2^9;
ub=2^10*ones(1,2^10);
options=optimset('Algorithm','active-set');
k =fmincon(@caly,k0,[],[],[],[],[],ub,@nonlcon,options);
caly(k)
end

function y=caly(k)
y=sum(k.*(1:length(k)).^2);
end

function [c,ceq]=nonlcon(k)
m=8;
n=10;
c=[k-2^n./(1:2^n)];
ceq=[sum(k)-2^m;sum(k.*(1:2^n))-2^n;all(mod(k,1))];
end

ans =

-5.2677e+008

大概弄了下,估计得优化优化,不知道对不对
showmethemoney
10楼2012-06-28 11:15:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dfw1220 的主题更新
信息提示
请填处理意见