声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 939|回复: 1

[综合讨论] 求助 fmincon的问题

[复制链接]
发表于 2009-4-7 21:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
function f=wucha(x)
A=[1.0000         1.0000         5.0000         6.5000         2.0000         3.5000         0.5000         1.0000         6.0000         8.5000;
0.0000         0.0000         1.0000         1.0000         0.6000         0.8000         0.1000         0.3000         3.0000         4.0000;
0.0000         0.0000         0.0000         0.0000         1.0000         1.0000         0.2000         0.6000         3.5000         5.0000;
0.0000         0.0000         0.0000         0.0000         0.0000         0.0000         1.0000         1.0000         7.0000         9.0000;
0.0000         0.0000         0.0000         0.0000         0.0000         0.0000         0.0000         0.0000         1.0000         1.0000 ];
B=[1.0000          1.0000   A(1,3)         A(1,4)          A(1,5)    A(1,6)         A(1,7)           A(1,8)   A(1,9)  A(1,10);
1/A(1,4)  1/A(1,3) 1.0000    1.0000          A(2,5)    A(2,6)         A(2,7)           A(2,8)   A(2,9)  A(2,10);
1/A(1,6)  1/A(1,5) 1/A(2,6)  1/A(2,5) 1.0000    1.0000   A(3,7)    A(3,8)   A(3,9)  A(3,10);
1/A(1,8)  1/A(1,7) 1/A(2,8)  1/A(2,7) 1/A(3,8)  1/A(3,7) 1.0000    1.0000   A(4,9)  A(4,10);
1/A(1,10) 1/A(1,9) 1/A(2,10) 1/A(2,9) 1/A(3,10) 1/A(3,9) 1/A(4,10) 1/A(4,9) 1.0000  1.0000 ];
D=[log(B(1,4)/B(1,3)) -log(B(1,6)/B(1,5))         0.0000         0.0000         log(B(2,6)/B(2,5))         0.0000         0.0000         0.0000         0.0000         0.0000;
log(B(1,4)/B(1,3)) 0.0000         -log(B(1,8)/B(1,7))         0.0000         0.0000         log(B(2,8)/B(2,7))         0.0000         0.0000         0.0000         0.0000;
log(B(1,4)/B(1,3)) 0.0000         0.0000         -log(B(1,10)/B(1,9))         0.0000         0.0000         log(B(2,10)/B(2,9))         0.0000         0.0000         0.0000;
0.0000         log(B(1,6)/B(1,5))         -log(B(1,8)/B(1,7))         0.0000         0.0000         0.0000         0.0000         log(B(3,8)/B(3,7))         0.0000         0.0000;
0.0000         log(B(1,6)/B(1,5))         0.0000         -log(B(1,10)/B(1,9))         0.0000         0.0000         0.0000         0.0000         log(B(3,10)/B(3,9))         0.0000;
0.0000 0.0000 log(B(1,8)/B(1,7)) -log(B(1,10)/B(1,9)) 0.0000 0.0000 0.0000 0.0000 0.0000 log(B(4,10)/B(4,9)) ];
d=[log(B(1,5)/B(1,3)/B(2,5));log(B(1,7)/B(1,3)/B(2,7));log(B(1,9)/B(1,3)/B(2,9));log(B(1,7)/B(1,5)/B(3,7));log(B(1,9)/B(1,5)/B(3,9));log(B(1,9)/B(1,7)/B(4,9))];
wucha=sqrt(((D(1,:)*[x(1);x(2);x(3);x(4);x(5);x(6);x(7);x(8);x(9);x(10)]-d(1)))^2+((D(2,:)*[x(1);x(2);x(3);x(4);x(5);x(6);x(7);x(8);x(9);x(10)]-d(2)))^2+((D(3,:)*[x(1);x(2);x(3);x(4);x(5);x(6);x(7);x(8);x(9);x(10)]-d(3)))^2+((D(4,:)*[x(1);x(2);x(3);x(4);x(5);x(6);x(7);x(8);x(9);x(10)]-d(4)))^2+((D(5,:)*[x(1);x(2);x(3);x(4);x(5);x(6);x(7);x(8);x(9);x(10)]-d(5)))^2+((D(6,:)*[x(1);x(2);x(3);x(4);x(5);x(6);x(7);x(8);x(9);x(10)]-d(6)))^2)
以上为m文件
运行以下内容:
x0=[0;0;0;0;0;0;0;0;0;0];
lb=[0;0;0;0;0;0;0;0;0;0];
ub=[1;1;1;1;1;1;1;1;1;1];
[x,fval]=fmincon(@wucha,x0,[],[],[],[],lb,ub)
出现的错误:
??? Error using ==> fmincon at 504
FMINCON cannot continue because user supplied objective function failed with the following error:
Output argument "f" (and maybe others) not assigned during call to "C:\Documents and Settings\Administrator\My
Documents\MATLAB\wucha.m (wucha)".
那位高手能帮我看看怎么改一下,拜谢~
回复
分享到:

使用道具 举报

 楼主| 发表于 2009-4-7 21:26 | 显示全部楼层
找到原因了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 16:41 , Processed in 0.052991 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表