全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
1665 3
2012-08-16
准备用matlab做一个求最优解的问题;准备用fmincon 函数。在写function的时候遇到问题,请帮忙指点。源代码如下;

A = [1,1,1;-1,-1,-1;1,0,0;0,1,0;0,0,1;-1,0,0;0,-1,0;0,0,-1];
b = [1,1,1,1,1,1,1,1];
x0 = [1/3,1/3,1/3];


function  func = objfun (w)
r = 100;
coeff = importdata('C:\return.csv');
func =(1/11) * (r-1)^(-1)*(...
(1+w(1)*coeff(1,1)+w(2)*coeff(1,2)+w(3)*coeff(1,3))^(1-r)+...
(1+w(1)*coeff(2,1)+w(2)*coeff(2,2)+w(3)*coeff(2,3))^(1-r) +...
(1+w(1)*coeff(3,1)+w(2)*coeff(3,2)+w(3)*coeff(3,3))^(1-r)+...
(1+w(1)*coeff(4,1)+w(2)*coeff(4,2)+w(3)*coeff(4,3))^(1-r)+...
(1+w(1)*coeff(5,1)+w(2)*coeff(5,2)+w(3)*coeff(5,3))^(1-r)+...
(1+w(1)*coeff(6,1)+w(2)*coeff(6,2)+w(3)*coeff(6,3))^(1-r)+...
(1+w(1)*coeff(7,1)+w(2)*coeff(7,2)+w(3)*coeff(7,3))^(1-r)+...
.....................................................
);

x = fmincon( @objfun,x0,A,b);

在function代码中, (1+w(1)*coeff(1,1)+w(2)*coeff(1,2)+w(3)*coeff(1,3))^(1-r) 这个要做10000次循环,一直到
(1+w(1)*coeff(10000,1)+w(2)*coeff(10000,2)+w(3)*coeff(10000,3))^(1-r).

但是如何使用循环来做?手写全部方程是不可能的了。
感谢高人指点,现在非常着急!!!!!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-8-16 13:54:13
very good
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-8-16 22:26:47
提示: 作者被禁止或删除 内容自动屏蔽
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-8-16 22:33:13
提示: 作者被禁止或删除 内容自动屏蔽
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群