查看单个帖子
旧 2009-02-27, 15:55   #1
blueye
初级会员
 
注册日期: 2009-02-26
年龄: 43
帖子: 6
声望力: 0
blueye 正向着好的方向发展
默认 [求助]为什么matlab自动关闭!

这些天一直在关注多目标优化的研究,我编了一个程序,调用matlab的优化工具箱的fminimax函数,结果只要程序一运行matlab就自动关闭了,这是为什么?

下面把程序代码贴出来,请帮忙分析一下。

执行主文件如下:

x=zeros(1,2);
x0=x;

C1=[0.8,-0.74,0.5,-0.2;-1,0.1,0.3,-0.5];
C2=[-0.5,0.2,-0.35,0.4;0.1,0.45,-0.7,-0.61];

X=[-1,-1;-1,1;1,-1;1,1];

Bound_up=[1,1];
Bound_down=[-1,-1];

save C1 C1;
save C2 C2;
save X X;

solver=fminimax(@fun_obj,x0,[],[],[],[],Bound_down,Bound_up,@fun_nonlcon)



下面是目标函数和约束函数的代码:
目标函数:
function y=fun_obj(x)

load X;
load C1;
n=length(C1(:,1));
m=length(x);
m1=length(X);
m2=length(C1(1,);

if(m~=m1 || m~=m2 || m1~=m2)
exit;
end

cc=1;
y=zeros(2,1);
for jj=1:m
for ii=1:n
y(jj)=y(jj)+C1(1,ii)*sqrt(abs(x-X(ii,)^2+cc^2);
end
end


约束函数:
function y=fun_nonlcon(x)

load X;
load C2;
n=length(C2(:,1));
m=length(x);
m1=length(X);
m2=length(C2(1,);

if(m~=m1 || m~m2 || m1~m2)
exit;
end

cc=1;
y=zeros(2,1);
for jj=1:m
for ii=1:n
y(jj)=y(jj)+C2(1,ii)*sqrt(abs(x-X(ii,)^2+cc^2);
end
end


注,我的机器的cpu是intel的,不是AMD的!
MATLAB自动关闭问题
我已经试过这里的方法,不行!

请大虾们给点建议吧,我都快疯了!
blueye 当前离线   回复时引用此帖