悬赏 15 个论坛币 未解决
function f =aaa(x)
X1n2=[3,5,8,10,5,5,7,4,10,9];
X2n2=[46 15 29 15 38 54 10 45 3 8];
X1n3=[23 39 42 43 72 37 72 84 67 53];
X2n3=[32 68 75 43 21 56 31 74 77 47];
X1n4=[0.7 0.5 0.5 0.5 0.8 0.4 0.6 0.7 0.8 0.5];
X2n4=[0.5 0.5 0.6 0.7 0.7 0.7 0.7 0.7 0.8 0.9];
X1n5=[0 0 0 0 1 1 1 1 2 2];
X2n5=[0 0 0 0 0 0 0 0 0 0];
X1n6=[1 1 0 1 1 0 0 1 0 0];
X2n6=[1 0 0 0 0 0 1 0 1 1];
X1n7=[1 0 1 0 2 1 0 0 1 1];
X2n7=[0 2 2 0 1 2 0 1 0 0];
X1n8=[1 2 0 1 3 1 1 3 3 1];
X2n8=[1 1 1 2 1 2 1 1 1 1];
syms a1 a2 a3 a4 a5 a6 a7 a8
V=a1+a2.*(X1n2-X2n2)+a3.*(X1n3-X2n3)+a4.*(X1n4-X2n4)+a5.*(X1n5-X2n5)+a6.*(X1n6-X2n6)+a7.*(X1n7-X2n7)+a8.*(X1n8-X2n8);
W=exp(-(V))
P1=1./(1+W)
P2=W./(1+W)
p1=log(P1)
p2=log(P2)
Q1=sum(p1);
Q2=sum(p2);
f=-Q1-Q2
end
这是目标函数,我直接用matlab优化工具箱的fminunc函数求解,给出提示:
Optimization running.
Error running optimization.
FMINUNC requires all values returned by user functions to be of data type double.
肯定是我目标函数写错了,渣渣一枚,烦请耐心指教。